# dont perform the libgen and libsocket test in configure for AROS.
[AROS-Contrib.git] / fish / surf / fasttrig.c
blob2474213388d1c63bf28cb6550212f9002e56b3bf
1 #include <aros/oldprograms.h>
2 #include <stdlib.h>
3 #include "fasttrig.h"
5 float *sintab;
6 float *costab;
8 extern struct Library * MathTransBase;
10 static int oldn = -1,
11 oldrange = -1,
12 oldstart = -1;
16 * return true if could not get memory for trig lookup tables
18 bool InitFastTrig(angstart, angrange, n)
19 int angstart;
20 int angrange;
21 int n;
25 int i;
26 float AngleInc;
27 float curangle;
29 if( n == oldn && oldrange == angrange && oldstart == angstart ) {
30 return(false);
33 if( n != oldn ) {
34 if( sintab ) free(sintab);
35 if( costab ) free(costab);
36 sintab = (float *)malloc( n * sizeof( float ));
37 costab = (float *)malloc( n * sizeof( float ));
38 if( !sintab || !costab ) {
39 return(true);
43 oldn = n;
44 oldrange = angrange;
45 oldstart = angstart;
47 AngleInc = (PI*angrange)/(180 *(n-1));
48 for( curangle = angstart*PI/180.0, i = 0;
49 i< n; i++, curangle += AngleInc ) {
51 sintab[i] = sin( curangle );
52 costab[i] = cos( curangle );
54 return(false);