Home | History | Annotate | Download | only in trigo
      1 /*
      2  * Copyright (C) Bull S.A. 2001
      3  * Copyright (c) International Business Machines  Corp., 2001
      4  *
      5  *   This program is free software;  you can redistribute it and/or modify
      6  *   it under the terms of the GNU General Public License as published by
      7  *   the Free Software Foundation; either version 2 of the License, or
      8  *   (at your option) any later version.
      9  *
     10  *   This program is distributed in the hope that it will be useful,
     11  *   but WITHOUT ANY WARRANTY;  without even the implied warranty of
     12  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
     13  *   the GNU General Public License for more details.
     14  *
     15  *   You should have received a copy of the GNU General Public License
     16  *   along with this program;  if not, write to the Free Software
     17  *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     18  */
     19 
     20 /******************************************************************************/
     21 /*                                                                            */
     22 /* Dec-03-2001  Created: Jacky Malcles & Jean Noel Cordenner                  */
     23 /*              These tests are adapted from AIX float PVT tests.             */
     24 /*                                                                            */
     25 /******************************************************************************/
     26 #include	<sys/types.h>
     27 #include	<sys/wait.h>
     28 #include 	<float.h>
     29 #include 	<stdio.h>
     30 #include 	<stdlib.h>
     31 #include 	<string.h>
     32 #include 	<errno.h>
     33 #include        <limits.h>
     34 #include        <unistd.h>
     35 #include        <fcntl.h>
     36 #include        <errno.h>
     37 #include        <sys/signal.h>
     38 #include        <math.h>
     39 
     40 #define 	M_PIl	3.1415926535897932384626433832795029L L
     41 #define		MAX_FNAME_LEN	16
     42 
     43 /*****************************************************************
     44  * create file:
     45  *
     46  * func_name is the name of the trigo function (sin, cos, tan...)
     47  *
     48  * code can take 2 values: DATA_CREATE to create a input data file
     49  *			   RESULT_CREATE for output result file
     50  */
     51 
     52 int create_file(char *func_name, int NbVal)
     53 {
     54 	pid_t myproc;
     55 
     56 	if ((myproc = fork()) != 0)
     57 		return myproc;
     58 	else {
     59 		char *arglist[] = { func_name, NULL };
     60 		execvp(arglist[0], arglist);
     61 
     62 		fprintf(stderr, "ERROR %s\n", strerror(errno));
     63 		abort();
     64 	}
     65 }
     66 
     67 int main(int argc, char *argv[])
     68 {
     69 	char *funct, *bin_path;
     70 	pid_t child;
     71 
     72 	if (argc != 2) {
     73 		printf("ERROR: need the path to generation binaries\n");
     74 		abort();
     75 	}
     76 
     77 	bin_path = argv[1];
     78 
     79 	funct = malloc(strlen(bin_path) + MAX_FNAME_LEN);
     80 	sprintf(funct, "%s/gencos", bin_path);
     81 	child = create_file(funct, 0);
     82 	waitpid(child, NULL, 0);
     83 
     84 	sprintf(funct, "%s/gensin", bin_path);
     85 	child = create_file(funct, 0);
     86 	waitpid(child, NULL, 0);
     87 
     88 	sprintf(funct, "%s/gentan", bin_path);
     89 	child = create_file(funct, 0);
     90 	waitpid(child, NULL, 0);
     91 
     92 	sprintf(funct, "%s/genatan", bin_path);
     93 	child = create_file(funct, 0);
     94 	waitpid(child, NULL, 0);
     95 
     96 	sprintf(funct, "%s/genatan2", bin_path);
     97 	child = create_file(funct, 0);
     98 	waitpid(child, NULL, 0);
     99 
    100 	sprintf(funct, "%s/genacos", bin_path);
    101 	child = create_file(funct, 0);
    102 	waitpid(child, NULL, 0);
    103 
    104 	sprintf(funct, "%s/genasin", bin_path);
    105 	child = create_file(funct, 0);
    106 	waitpid(child, NULL, 0);
    107 
    108 	return 0;
    109 }
    110