diff options
author | torset | 2009-02-27 13:30:30 +0000 |
---|---|---|
committer | torset | 2009-02-27 13:30:30 +0000 |
commit | 05fb6a62c83ae7cea37aa2795e61697b3560f135 (patch) | |
tree | e4135e36ec029b677faeb18125b19fa4a6d11a6c /src | |
parent | 3ce979f5740261766f4248864c0758d6cb6af857 (diff) | |
download | scilab2c-05fb6a62c83ae7cea37aa2795e61697b3560f135.tar.gz scilab2c-05fb6a62c83ae7cea37aa2795e61697b3560f135.tar.bz2 scilab2c-05fb6a62c83ae7cea37aa2795e61697b3560f135.zip |
change precision for tests : put it to 3e-16 for double and 3e-6 for float
Diffstat (limited to 'src')
40 files changed, 411 insertions, 377 deletions
diff --git a/src/elementaryFunctions/acos/testCplxAcos.c b/src/elementaryFunctions/acos/testCplxAcos.c index 76974af1..4053bb58 100644 --- a/src/elementaryFunctions/acos/testCplxAcos.c +++ b/src/elementaryFunctions/acos/testCplxAcos.c @@ -611,14 +611,14 @@ void zacossTest(void){ for (i=0;i<200;i++){ - assert ( ( fabs(zreals(out[i]) - zreals(tRes[i])) / fabs(zreals(out[i])) ) < 1e-15); - assert ( ( fabs(zimags(out[i]) - zimags(tRes[i])) / fabs(zimags(out[i])) ) < 1e-15); + assert ( ( fabs(zreals(out[i]) - zreals(tRes[i])) / fabs(zreals(out[i])) ) < 3e-16); + assert ( ( fabs(zimags(out[i]) - zimags(tRes[i])) / fabs(zimags(out[i])) ) < 3e-16); } out[0]=zacoss(DoubleComplex(0.2,0.1)); printf ("%1.20f + %1.20f *i\n",zreals(out[0]),zimags(out[0])); - assert ( ( fabs(zreals(out[0]) - 1.3704927556955963652285) / fabs(zreals(out[0])) ) < 1e-15); - assert ( ( fabs(zimags(out[0]) - (- 0.1018639159801242727310)) / fabs(zimags(out[0])) ) < 1e-15); + assert ( ( fabs(zreals(out[0]) - 1.3704927556955963652285) / fabs(zreals(out[0])) ) < 3e-16); + assert ( ( fabs(zimags(out[0]) - (- 0.1018639159801242727310)) / fabs(zimags(out[0])) ) < 3e-16); } @@ -660,8 +660,8 @@ void zacosaTest(void){ } zacosa(tIn,200,out); for (i=0;i<200;i++){ - assert ( ( fabs(zreals(out[i]) - zreals(tRes[i])) / fabs(zreals(out[i])) ) < 1e-15); - assert ( ( fabs(zimags(out[i]) - zimags(tRes[i])) / fabs(zimags(out[i])) ) < 1e-15); + assert ( ( fabs(zreals(out[i]) - zreals(tRes[i])) / fabs(zreals(out[i])) ) < 3e-16); + assert ( ( fabs(zimags(out[i]) - zimags(tRes[i])) / fabs(zimags(out[i])) ) < 3e-16); } } diff --git a/src/elementaryFunctions/acos/testRealsAcos.c b/src/elementaryFunctions/acos/testRealsAcos.c index 5b8b2d0e..9ba5554c 100644 --- a/src/elementaryFunctions/acos/testRealsAcos.c +++ b/src/elementaryFunctions/acos/testRealsAcos.c @@ -576,7 +576,7 @@ void sacossTest(void) { for(i=0;i<200;i++){ assert ( ( fabs(sacoss(tIn1[i]) - tRes1[i]) / fabs(sacoss(tIn1[i])) ) < 1e-6); - assert ( ( fabs(sacoss(tIn2[i]) - tRes2[i]) / fabs(sacoss(tIn2[i])) ) < 1e-5); + assert ( ( fabs(sacoss(tIn2[i]) - tRes2[i]) / fabs(sacoss(tIn2[i])) ) < 3e-6); } } @@ -589,8 +589,8 @@ void dacossTest(void) { double tRes2[]=ResID; for(i=0;i<200;i++){ - assert ( ( (fabs(dacoss(tIn1[i])) - tRes1[i]) / fabs(dacoss(tIn1[i])) ) < 1e-15); - assert ( ( (fabs(dacoss(tIn2[i])) - tRes2[i]) / fabs(dacoss(tIn2[i])) ) < 1e-15); + assert ( ( (fabs(dacoss(tIn1[i])) - tRes1[i]) / fabs(dacoss(tIn1[i])) ) < 3e-16); + assert ( ( (fabs(dacoss(tIn2[i])) - tRes2[i]) / fabs(dacoss(tIn2[i])) ) < 3e-16); } } @@ -607,7 +607,7 @@ void sacosaTest(void){ sacosa(tIn2,200,out2); for(i=0;i<200;i++){ assert( (fabs(out1[i]-tRes1[i])/fabs(out1[i])) <1e-6); - assert( (fabs(out2[i]-tRes2[i])/fabs(out2[i])) <1e-5); + assert( (fabs(out2[i]-tRes2[i])/fabs(out2[i])) <3e-6); } } @@ -622,8 +622,8 @@ void dacosaTest(void){ dacosa(tIn1,200,out1); dacosa(tIn2,200,out2); for(i=0;i<200;i++){ - assert( (fabs(out1[i]-tRes1[i])/fabs(out1[i])) <1e-15); - assert( (fabs(out2[i]-tRes2[i])/fabs(out2[i])) <1e-15); + assert( (fabs(out1[i]-tRes1[i])/fabs(out1[i])) <3e-16); + assert( (fabs(out2[i]-tRes2[i])/fabs(out2[i])) <3e-16); } } diff --git a/src/elementaryFunctions/acosh/testDoubleAcosh.c b/src/elementaryFunctions/acosh/testDoubleAcosh.c index d4767612..9ed77b3c 100644 --- a/src/elementaryFunctions/acosh/testDoubleAcosh.c +++ b/src/elementaryFunctions/acosh/testDoubleAcosh.c @@ -434,7 +434,7 @@ void dacoshsTest(void) { if (In[i]<1) assert(1); else { out = dacoshs(In[i]); - assert ( ( fabs(out-Res[i]) / fabs(out) ) <1e-15); + assert ( ( fabs(out-Res[i]) / fabs(out) ) <3e-16); } } } @@ -450,8 +450,8 @@ void zacoshsTest(void) { for (i=0;i<200;i++){ in=DoubleComplex(InR[i],InI[i]); out=zacoshs(in); - assert( ( fabs(zreals(out)-ResR[i]) / fabs(zreals(out)) ) <1e-15); - assert( ( fabs(zimags(out)-ResI[i]) / fabs(zimags(out)) ) <1e-15); + assert( ( fabs(zreals(out)-ResR[i]) / fabs(zreals(out)) ) <3e-16); + assert( ( fabs(zimags(out)-ResI[i]) / fabs(zimags(out)) ) <3e-16); } } @@ -469,7 +469,7 @@ void dacoshaTest(void) { for (i=0;i<200;i++){ if (isnan(out[i])) assert(1); else{ - assert ( ( fabs(out[i]-Res[i]) / fabs(out[i]) ) <1e-15); + assert ( ( fabs(out[i]-Res[i]) / fabs(out[i]) ) <3e-16); } } } @@ -487,8 +487,8 @@ void zacoshaTest(void) { } zacosha(in,200,out); for (i=0;i<200;i++){ - assert( ( fabs(zreals(out[i])-ResR[i]) / fabs(zreals(out[i])) ) <1e-15); - assert( ( fabs(zimags(out[i])-ResI[i]) / fabs(zimags(out[i])) ) <1e-15); + assert( ( fabs(zreals(out[i])-ResR[i]) / fabs(zreals(out[i])) ) <3e-16); + assert( ( fabs(zimags(out[i])-ResI[i]) / fabs(zimags(out[i])) ) <3e-16); } } diff --git a/src/elementaryFunctions/asin/testDoubleAsin.c b/src/elementaryFunctions/asin/testDoubleAsin.c index 5e21bca8..915c0a19 100644 --- a/src/elementaryFunctions/asin/testDoubleAsin.c +++ b/src/elementaryFunctions/asin/testDoubleAsin.c @@ -430,7 +430,7 @@ void dasinsTest(void) { for (i=0;i<200;i++){ out=dasins(in[i]); - assert( ( (fabs(out-res[i])) / (fabs(out)) ) <1e-15); + assert( ( (fabs(out-res[i])) / (fabs(out)) ) <3e-16); } } @@ -445,8 +445,8 @@ void zasinsTest(void) { for (i=0;i<200;i++){ in = DoubleComplex(inR[i],inI[i]); out=zasins(in); - assert( ( (fabs(zreals(out)-resR[i])) / (fabs(zreals(out))) ) <1e-15); - assert( ( (fabs(zimags(out)-resI[i])) / (fabs(zimags(out))) ) <1e-15); + assert( ( (fabs(zreals(out)-resR[i])) / (fabs(zreals(out))) ) <3e-16); + assert( ( (fabs(zimags(out)-resI[i])) / (fabs(zimags(out))) ) <3e-16); } } @@ -458,7 +458,7 @@ void dasinaTest(void) { dasina(in,200,out); for (i=0;i<200;i++){ - assert( ( (fabs(out[i]-res[i])) / (fabs(out[i])) ) <1e-15); + assert( ( (fabs(out[i]-res[i])) / (fabs(out[i])) ) <3e-16); } } @@ -475,8 +475,8 @@ void zasinaTest(void) { zasina(in,200,out); for (i=0;i<200;i++){ - assert( ( (fabs(zreals(out[i])-resR[i])) / (fabs(zreals(out[i]))) ) <1e-15); - assert( ( (fabs(zimags(out[i])-resI[i])) / (fabs(zimags(out[i]))) ) <1e-15); + assert( ( (fabs(zreals(out[i])-resR[i])) / (fabs(zreals(out[i]))) ) <3e-16); + assert( ( (fabs(zimags(out[i])-resI[i])) / (fabs(zimags(out[i]))) ) <3e-16); } } diff --git a/src/elementaryFunctions/asin/testFloatAsin.c b/src/elementaryFunctions/asin/testFloatAsin.c index 567a8485..00a630ac 100644 --- a/src/elementaryFunctions/asin/testFloatAsin.c +++ b/src/elementaryFunctions/asin/testFloatAsin.c @@ -445,9 +445,8 @@ void casinsTest(void) { for (i=0;i<200;i++){ in = FloatComplex(inR[i],inI[i]); out=casins(in); - /* printf("%d - %f - erreur %f\n",i,cimags(out),(fabs(cimags(out)-resI[i])) / (fabs(cimags(out))));*/ assert( ( (fabs(creals(out)-resR[i])) / (fabs(creals(out))) ) <1e-6); - assert( ( (fabs(cimags(out)-resI[i])) / (fabs(cimags(out))) ) <1e-1); + assert( ( (fabs(cimags(out)-resI[i])) / (fabs(cimags(out))) ) <1e-6); } } @@ -478,7 +477,7 @@ void casinaTest(void) { casina(in,200,out); for (i=0;i<200;i++){ assert( ( (fabs(creals(out[i])-resR[i])) / (fabs(creals(out[i]))) ) <1e-6); - assert( ( (fabs(cimags(out[i])-resI[i])) / (fabs(cimags(out[i]))) ) <1e-1); + assert( ( (fabs(cimags(out[i])-resI[i])) / (fabs(cimags(out[i]))) ) <1e-6); } } diff --git a/src/elementaryFunctions/asinh/testDoubleAsinh.c b/src/elementaryFunctions/asinh/testDoubleAsinh.c index 8eb3baaf..1501ee87 100644 --- a/src/elementaryFunctions/asinh/testDoubleAsinh.c +++ b/src/elementaryFunctions/asinh/testDoubleAsinh.c @@ -431,7 +431,7 @@ void dasinhsTest(void) { for (i=0;i<200;i++){ out=dasinhs(in[i]); - assert ( ( (fabs(out-res[i])) / (fabs(out)) ) <1e-15); + assert ( ( (fabs(out-res[i])) / (fabs(out)) ) <3e-16); } } @@ -447,8 +447,8 @@ void zasinhsTest(void) { in=DoubleComplex(inR[i],inI[i]); out = zasinhs(in); - assert( ( ( fabs( zreals(out)-resR[i] ) ) / (fabs(zreals(out)) ) ) <1e-15); - assert( ( ( fabs( zimags(out)-resI[i] ) ) / (fabs(zimags(out)) ) ) <1e-15); + assert( ( ( fabs( zreals(out)-resR[i] ) ) / (fabs(zreals(out)) ) ) <3e-16); + assert( ( ( fabs( zimags(out)-resI[i] ) ) / (fabs(zimags(out)) ) ) <3e-16); } } @@ -460,7 +460,7 @@ void dasinhaTest(void) { dasinha(in,200,out); for (i=0;i<200;i++){ - assert ( ( (fabs(out[i]-res[i])) / (fabs(out[i])) ) <1e-15); + assert ( ( (fabs(out[i]-res[i])) / (fabs(out[i])) ) <3e-16); }} void zasinhaTest(void) { @@ -476,8 +476,8 @@ void zasinhaTest(void) { } zasinha(in,200,out); for (i=0;i<200;i++){ - assert( ( ( fabs( zreals(out[i])-resR[i] ) ) / (fabs(zreals(out[i])) ) ) <1e-15); - assert( ( ( fabs( zimags(out[i])-resI[i] ) ) / (fabs(zimags(out[i])) ) ) <1e-15); + assert( ( ( fabs( zreals(out[i])-resR[i] ) ) / (fabs(zreals(out[i])) ) ) <3e-16); + assert( ( ( fabs( zimags(out[i])-resI[i] ) ) / (fabs(zimags(out[i])) ) ) <3e-16); } } diff --git a/src/elementaryFunctions/atan/testDoubleAtan.c b/src/elementaryFunctions/atan/testDoubleAtan.c index 78d48267..87429c83 100644 --- a/src/elementaryFunctions/atan/testDoubleAtan.c +++ b/src/elementaryFunctions/atan/testDoubleAtan.c @@ -430,7 +430,7 @@ void datansTest() { for (i=0;i<200;i++){ out=datans(in[i]); - assert( ( (fabs(out-res[i])) / (fabs(out)) ) <1e-15); + assert( ( (fabs(out-res[i])) / (fabs(out)) ) <3e-16); } } @@ -445,8 +445,8 @@ void zatansTest() { for (i=0;i<200;i++){ in=DoubleComplex(inR[i],inI[i]); out=zatans(in); - assert( ( (fabs(zreals(out)-resR[i])) / (fabs(zreals(out))) ) <1e-15); - assert( ( (fabs(zimags(out)-resI[i])) / (fabs(zimags(out))) ) <1e-15); + assert( ( (fabs(zreals(out)-resR[i])) / (fabs(zreals(out))) ) <3e-16); + assert( ( (fabs(zimags(out)-resI[i])) / (fabs(zimags(out))) ) <3e-16); } } @@ -458,7 +458,7 @@ void datanaTest(void) { datana(in,200,out); for (i=0;i<200;i++){ - assert( ( (fabs(out[i]-res[i])) / (fabs(out[i])) ) <1e-15); + assert( ( (fabs(out[i]-res[i])) / (fabs(out[i])) ) <3e-16); } } @@ -475,8 +475,8 @@ void zatanaTest(void) { } zatana(in,200,out); for (i=0;i<200;i++){ - assert( ( (fabs(zreals(out[i])-resR[i])) / (fabs(zreals(out[i]))) ) <1e-15); - assert( ( (fabs(zimags(out[i])-resI[i])) / (fabs(zimags(out[i]))) ) <1e-15); + assert( ( (fabs(zreals(out[i])-resR[i])) / (fabs(zreals(out[i]))) ) <3e-16); + assert( ( (fabs(zimags(out[i])-resI[i])) / (fabs(zimags(out[i]))) ) <3e-16); } } diff --git a/src/elementaryFunctions/atan2/testAtan2.c b/src/elementaryFunctions/atan2/testAtan2.c index 9ba88c48..30cb6735 100644 --- a/src/elementaryFunctions/atan2/testAtan2.c +++ b/src/elementaryFunctions/atan2/testAtan2.c @@ -78,7 +78,7 @@ static void satan2sTest ( void ) { Fout[i] = satan2s( Fin1[i], Fin2[i] ); printf ( "%e - %e\n" , Fout[i] , Result[i] ); - assert ( fabs ( Fout[i] - Result[i] ) / fabs( Fout[i]) < 1e-3 ); + assert ( fabs ( Fout[i] - Result[i] ) / fabs( Fout[i]) < 3e-6 ); } } @@ -205,7 +205,7 @@ double Result[] = { Fout[i] = datan2s( Fin1[i], Fin2[i] ); printf ( "%e - %e\n" , Fout[i] , Result[i] ); - assert ( fabs ( Fout[i] - Result[i] ) / fabs( Fout[i]) < 1e-3 ); + assert ( fabs ( Fout[i] - Result[i] ) / fabs( Fout[i]) < 1e-16 ); } } @@ -272,7 +272,7 @@ static void satan2aTest ( void ) for ( i = 0 ; i < SIZE ; ++i) { printf ( "%e - %e\n" , Fout[i] , Result[i] ); - assert ( fabs ( Fout[i] - Result[i] ) / fabs( Fout[i]) < 1e-3 ); + assert ( fabs ( Fout[i] - Result[i] ) / fabs( Fout[i]) < 3e-6 ); } } diff --git a/src/elementaryFunctions/atanh/testDoubleAtanh.c b/src/elementaryFunctions/atanh/testDoubleAtanh.c index d7e68080..2ee28c91 100644 --- a/src/elementaryFunctions/atanh/testDoubleAtanh.c +++ b/src/elementaryFunctions/atanh/testDoubleAtanh.c @@ -532,7 +532,7 @@ void datanhsTest() { out=datanhs(in[i]); if (disnans(out)) assert(1); else { - assert( ( (fabs(out-res[i])) / (fabs(out)) ) <1e-15); + assert( ( (fabs(out-res[i])) / (fabs(out)) ) <3e-16); } } } @@ -548,11 +548,11 @@ void zatanhsTest() { for (i=0;i<200;i++){ in=DoubleComplex(inR[i],inI[i]); out=zatanhs(in); - assert( ( (fabs(zreals(out)-resR[i])) / (fabs(zreals(out))) ) <1e-15); - assert( ( (fabs(zimags(out)-resI[i])) / (fabs(zimags(out))) ) <1e-15); + assert( ( (fabs(zreals(out)-resR[i])) / (fabs(zreals(out))) ) <3e-16); + assert( ( (fabs(zimags(out)-resI[i])) / (fabs(zimags(out))) ) <3e-16); } out=zatanhs((DoubleComplex(2.0/10.0,11.0/10.0))); - assert( ( (fabs(zreals(out)-0.0898435002269743487879)) / (fabs(zreals(out))) ) <1e-15); + assert( ( (fabs(zreals(out)-0.0898435002269743487879)) / (fabs(zreals(out))) ) <3e-16); assert( ( (fabs(zimags(out)-0.8419736541926906570055)) / (fabs(zimags(out))) ) <1e-16); } @@ -566,7 +566,7 @@ void datanhaTest(void) { datanha(in,200,out); for (i=0;i<200;i++){ if (disnans(out[i])) assert(1); - else assert( ( (fabs(out[i]-res[i])) / (fabs(out[i])) ) <1e-15); + else assert( ( (fabs(out[i]-res[i])) / (fabs(out[i])) ) <3e-16); } } @@ -583,8 +583,8 @@ void zatanhaTest(void) { } zatanha(in,200,out); for (i=0;i<200;i++){ - assert( ( (fabs(zreals(out[i])-resR[i])) / (fabs(zreals(out[i]))) ) <1e-15); - assert( ( (fabs(zimags(out[i])-resI[i])) / (fabs(zimags(out[i]))) ) <1e-15); + assert( ( (fabs(zreals(out[i])-resR[i])) / (fabs(zreals(out[i]))) ) <3e-16); + assert( ( (fabs(zimags(out[i])-resI[i])) / (fabs(zimags(out[i]))) ) <3e-16); } } diff --git a/src/elementaryFunctions/atanh/testFloatAtanh.c b/src/elementaryFunctions/atanh/testFloatAtanh.c index fe929721..3addb959 100644 --- a/src/elementaryFunctions/atanh/testFloatAtanh.c +++ b/src/elementaryFunctions/atanh/testFloatAtanh.c @@ -534,7 +534,7 @@ void satanhsTest() { for (i=0;i<200;i++){ out=satanhs(in[i]); if (sisnans(out)) assert(1); - else assert( ( (fabs(out-res[i])) / (fabs(out)) ) <1e-5); + else assert( ( (fabs(out-res[i])) / (fabs(out)) ) <3e-6); } } @@ -563,7 +563,7 @@ void satanhaTest(void) { satanha(in,200,out); for (i=0;i<200;i++){ if (sisnans(out[i])) assert(1); - else assert( ( (fabs(out[i]-res[i])) / (fabs(out[i])) ) <1e-5); + else assert( ( (fabs(out[i]-res[i])) / (fabs(out[i])) ) <3e-6); } } diff --git a/src/elementaryFunctions/ceil/testDoubleCeil.c b/src/elementaryFunctions/ceil/testDoubleCeil.c index dee3d356..29b42c42 100644 --- a/src/elementaryFunctions/ceil/testDoubleCeil.c +++ b/src/elementaryFunctions/ceil/testDoubleCeil.c @@ -21,21 +21,21 @@ static void dceilsTest(void) { assert ((fabs( dceils(-2) - (-2))/fabs(dceils(-2)))<1e-16); assert ((fabs( dceils(-1.9) - (-1))/fabs(dceils(-1.9)))<1e-16); - assert ((fabs( dceils(-1.8) - (-1))/fabs(dceils(-1.9)))<1e-16); - assert ((fabs( dceils(-1.7) - (-1))/fabs(dceils(-1.9)))<1e-16); - assert ((fabs( dceils(-1.6) - (-1))/fabs(dceils(-1.9)))<1e-16); - assert ((fabs( dceils(-1.5) - (-1))/fabs(dceils(-1.9)))<1e-16); - assert ((fabs( dceils(-1.4) - (-1))/fabs(dceils(-1.9)))<1e-16); - assert ((fabs( dceils(-1.3) - (-1))/fabs(dceils(-1.9)))<1e-16); - assert ((fabs( dceils(-1.2) - (-1))/fabs(dceils(-1.9)))<1e-16); - assert ((fabs( dceils(-1.1) - (-1))/fabs(dceils(-1.9)))<1e-16); - assert ((fabs( dceils(-1.0) - (-1))/fabs(dceils(-1.9)))<1e-16); + assert ((fabs( dceils(-1.8) - (-1))/fabs(dceils(-1.8)))<1e-16); + assert ((fabs( dceils(-1.7) - (-1))/fabs(dceils(-1.7)))<1e-16); + assert ((fabs( dceils(-1.6) - (-1))/fabs(dceils(-1.6)))<1e-16); + assert ((fabs( dceils(-1.5) - (-1))/fabs(dceils(-1.5)))<1e-16); + assert ((fabs( dceils(-1.4) - (-1))/fabs(dceils(-1.4)))<1e-16); + assert ((fabs( dceils(-1.3) - (-1))/fabs(dceils(-1.3)))<1e-16); + assert ((fabs( dceils(-1.2) - (-1))/fabs(dceils(-1.2)))<1e-16); + assert ((fabs( dceils(-1.1) - (-1))/fabs(dceils(-1.1)))<1e-16); + assert ((fabs( dceils(-1.0) - (-1))/fabs(dceils(-1.0)))<1e-16); assert (fabs( dceils(-.9))<1e-16); - assert ((fabs( dceils(1.0) - (1))/fabs(dceils(1.9)))<1e-16); - assert ((fabs( dceils(1.1) - (2))/fabs(dceils(1.9)))<1e-16); - assert ((fabs( dceils(1.2) - (2))/fabs(dceils(1.9)))<1e-16); - assert ((fabs( dceils(1.3) - (2))/fabs(dceils(1.9)))<1e-16); - assert ((fabs( dceils(1.4) - (2))/fabs(dceils(1.9)))<1e-16); + assert ((fabs( dceils(1.0) - (1))/fabs(dceils(1.0)))<1e-16); + assert ((fabs( dceils(1.1) - (2))/fabs(dceils(1.1)))<1e-16); + assert ((fabs( dceils(1.2) - (2))/fabs(dceils(1.2)))<1e-16); + assert ((fabs( dceils(1.3) - (2))/fabs(dceils(1.3)))<1e-16); + assert ((fabs( dceils(1.4) - (2))/fabs(dceils(1.4)))<1e-16); assert ((fabs( dceils(1.5) - (2))/fabs(dceils(1.9)))<1e-16); assert ((fabs( dceils(1.6) - (2))/fabs(dceils(1.9)))<1e-16); assert ((fabs( dceils(1.7) - (2))/fabs(dceils(1.9)))<1e-16); @@ -111,10 +111,9 @@ static void dceilaTest(void) { dceila(in,10,out); - for (i=0;i<10;i++) assert(fabs(out[i]-res[i]) <1e-16); - - - + for (i=0;i<10;i++) + if (out[i]!=0) assert(fabs(out[i]-res[i])/fabs(out[i]) <1e-16); + else assert (fabs(out[i]-res[i])==0); } static void zceilaTest(void) { @@ -129,8 +128,10 @@ static void zceilaTest(void) { zceila(in,10,out); for (i=0;i<10;i++){ - assert(fabs(zreals(out[i])-resR[i]) <1e-16); - assert(fabs(zimags(out[i])-resI[i]) <1e-16); + if (zreals(out[i])!=0) assert(fabs(zreals(out[i])-resR[i])/fabs(zreals(out[i]))<1e-16); + else assert(fabs(zreals(out[i])-resR[i]) <1e-16); + if (zimags(out[i])!=0) assert(fabs(zimags(out[i])-resI[i])/fabs(zimags(out[i]))<1e-16); + else assert(fabs(zimags(out[i])-resI[i]) <1e-16); } } diff --git a/src/elementaryFunctions/ceil/testFloatCeil.c b/src/elementaryFunctions/ceil/testFloatCeil.c index cd6b3396..f3ded89b 100644 --- a/src/elementaryFunctions/ceil/testFloatCeil.c +++ b/src/elementaryFunctions/ceil/testFloatCeil.c @@ -21,25 +21,25 @@ static void sceilsTest(void) { assert ((fabs( sceils(-2) - (-2))/fabs(sceils(-2)))<1e-16); assert ((fabs( sceils(-1.9f) - (-1))/fabs(sceils(-1.9f)))<1e-16); - assert ((fabs( sceils(-1.8f) - (-1))/fabs(sceils(-1.9f)))<1e-16); - assert ((fabs( sceils(-1.7f) - (-1))/fabs(sceils(-1.9f)))<1e-16); - assert ((fabs( sceils(-1.6f) - (-1))/fabs(sceils(-1.9f)))<1e-16); - assert ((fabs( sceils(-1.5f) - (-1))/fabs(sceils(-1.9f)))<1e-16); - assert ((fabs( sceils(-1.4f) - (-1))/fabs(sceils(-1.9f)))<1e-16); - assert ((fabs( sceils(-1.3f) - (-1))/fabs(sceils(-1.9f)))<1e-16); - assert ((fabs( sceils(-1.2f) - (-1))/fabs(sceils(-1.9f)))<1e-16); - assert ((fabs( sceils(-1.1f) - (-1))/fabs(sceils(-1.9f)))<1e-16); - assert ((fabs( sceils(-1.0f) - (-1))/fabs(sceils(-1.9f)))<1e-16); + assert ((fabs( sceils(-1.8f) - (-1))/fabs(sceils(-1.8f)))<1e-16); + assert ((fabs( sceils(-1.7f) - (-1))/fabs(sceils(-1.7f)))<1e-16); + assert ((fabs( sceils(-1.6f) - (-1))/fabs(sceils(-1.6f)))<1e-16); + assert ((fabs( sceils(-1.5f) - (-1))/fabs(sceils(-1.5f)))<1e-16); + assert ((fabs( sceils(-1.4f) - (-1))/fabs(sceils(-1.4f)))<1e-16); + assert ((fabs( sceils(-1.3f) - (-1))/fabs(sceils(-1.3f)))<1e-16); + assert ((fabs( sceils(-1.2f) - (-1))/fabs(sceils(-1.2f)))<1e-16); + assert ((fabs( sceils(-1.1f) - (-1))/fabs(sceils(-1.1f)))<1e-16); + assert ((fabs( sceils(-1.0f) - (-1))/fabs(sceils(-1.0f)))<1e-16); assert (fabs( sceils(-.9f))<1e-16); - assert ((fabs( sceils(1.0f) - (1))/fabs(sceils(1.9f)))<1e-16); - assert ((fabs( sceils(1.1f) - (2))/fabs(sceils(1.9f)))<1e-16); - assert ((fabs( sceils(1.2f) - (2))/fabs(sceils(1.9f)))<1e-16); - assert ((fabs( sceils(1.3f) - (2))/fabs(sceils(1.9f)))<1e-16); - assert ((fabs( sceils(1.4f) - (2))/fabs(sceils(1.9f)))<1e-16); - assert ((fabs( sceils(1.5f) - (2))/fabs(sceils(1.9f)))<1e-16); - assert ((fabs( sceils(1.6f) - (2))/fabs(sceils(1.9f)))<1e-16); - assert ((fabs( sceils(1.7f) - (2))/fabs(sceils(1.9f)))<1e-16); - assert ((fabs( sceils(1.8f) - (2))/fabs(sceils(1.9f)))<1e-16); + assert ((fabs( sceils(1.0f) - (1))/fabs(sceils(1.0f)))<1e-16); + assert ((fabs( sceils(1.1f) - (2))/fabs(sceils(1.1f)))<1e-16); + assert ((fabs( sceils(1.2f) - (2))/fabs(sceils(1.2f)))<1e-16); + assert ((fabs( sceils(1.3f) - (2))/fabs(sceils(1.3f)))<1e-16); + assert ((fabs( sceils(1.4f) - (2))/fabs(sceils(1.4f)))<1e-16); + assert ((fabs( sceils(1.5f) - (2))/fabs(sceils(1.5f)))<1e-16); + assert ((fabs( sceils(1.6f) - (2))/fabs(sceils(1.6f)))<1e-16); + assert ((fabs( sceils(1.7f) - (2))/fabs(sceils(1.7f)))<1e-16); + assert ((fabs( sceils(1.8f) - (2))/fabs(sceils(1.8f)))<1e-16); assert ((fabs( sceils(1.9f) - (2))/fabs(sceils(1.9f)))<1e-16); assert ((fabs( sceils(2.0f) - (2))/fabs(sceils(2.0f)))<1e-16); } @@ -109,7 +109,9 @@ static void sceilaTest(void) { sceila(in,10,out); - for (i=0;i<10;i++) assert(fabs(out[i]-res[i]) <1e-16); + for (i=0;i<10;i++) + if (out[i]!=0) assert(fabs(out[i]-res[i])/fabs(out[i])<1e-16); + else assert(fabs(out[i]-res[i]) <1e-16); } static void cceilaTest(void) { @@ -124,8 +126,10 @@ static void cceilaTest(void) { cceila(in,10,out); for (i=0;i<10;i++){ - assert(fabs(creals(out[i])-resR[i]) <1e-16); - assert(fabs(cimags(out[i])-resI[i]) <1e-16); + if(creals(out[i])!=0) assert(fabs(creals(out[i])-resR[i])/fabs(creals(out[i]))<1e-16); + else assert(fabs(creals(out[i])-resR[i]) <1e-16); + if(cimags(out[i])!=0) assert(fabs(cimags(out[i])-resI[i])/fabs(cimags(out[i]))<1e-16); + else assert(fabs(cimags(out[i])-resI[i]) <1e-16); } } diff --git a/src/elementaryFunctions/cos/testDoubleCos.c b/src/elementaryFunctions/cos/testDoubleCos.c index 6db387e0..d7ace4c3 100644 --- a/src/elementaryFunctions/cos/testDoubleCos.c +++ b/src/elementaryFunctions/cos/testDoubleCos.c @@ -429,7 +429,7 @@ void dcossTest(void) { for (i=0;i<200;i++){ out=dcoss(in[i]); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-15); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-16); } } @@ -444,8 +444,8 @@ void zcossTest(void) { for (i=0;i<200;i++){ in=DoubleComplex(inR[i],inI[i]); out=zcoss(in); - assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<1e-15); - assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<1e-15); + assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<3e-16); + assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<3e-16); } } @@ -457,7 +457,7 @@ void dcosaTest(void) { dcosa(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-15); + assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<3e-16); } } @@ -474,8 +474,8 @@ void zcosaTest(void) { } zcosa(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<1e-15); - assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<1e-15); + assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<3e-16); + assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<3e-16); } } diff --git a/src/elementaryFunctions/cos/testFloatCos.c b/src/elementaryFunctions/cos/testFloatCos.c index 4e19826c..98353b3d 100644 --- a/src/elementaryFunctions/cos/testFloatCos.c +++ b/src/elementaryFunctions/cos/testFloatCos.c @@ -429,7 +429,7 @@ void scossTest(void) { for (i=0;i<200;i++){ out=scoss(in[i]); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-5); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-6); } } @@ -444,7 +444,7 @@ void ccossTest(void) { for (i=0;i<200;i++){ in=FloatComplex(inR[i],inI[i]); out=ccoss(in); - assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<1e-5); + assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<3e-6); assert(( (fabs(cimags(out)-resI[i]))/(fabs(cimags(out))) )<1e-6); } } @@ -457,7 +457,7 @@ void scosaTest(void) { scosa(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-5); + assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<3e-6); } } @@ -474,7 +474,7 @@ void ccosaTest(void) { } ccosa(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(creals(out[i])-resR[i]))/(fabs(creals(out[i]))) )<1e-5); + assert(( (fabs(creals(out[i])-resR[i]))/(fabs(creals(out[i]))) )<3e-6); assert(( (fabs(cimags(out[i])-resI[i]))/(fabs(cimags(out[i]))) )<1e-6); } } diff --git a/src/elementaryFunctions/cosh/testDoubleCosh.c b/src/elementaryFunctions/cosh/testDoubleCosh.c index 72ab788f..f2a326a7 100644 --- a/src/elementaryFunctions/cosh/testDoubleCosh.c +++ b/src/elementaryFunctions/cosh/testDoubleCosh.c @@ -431,7 +431,7 @@ void dcoshsTest(void) { for (i=0;i<200;i++){ out=dcoshs(in[i]); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-15); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-16); } } @@ -446,8 +446,8 @@ void zcoshsTest(void) { for (i=0;i<200;i++){ in=DoubleComplex(inR[i],inI[i]); out=zcoshs(in); - assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<1e-15); - assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<1e-15); + assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<3e-16); + assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<3e-16); } } @@ -466,11 +466,11 @@ void dcoshaTest(void) { dcosha(mon_test,9,mon_out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-15); + assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<3e-16); } for (i=0;i<9;i++){ - assert(( (fabs(mon_out[i]-mon_res[i]))/(fabs(mon_out[i])) )<1e-15); + assert(( (fabs(mon_out[i]-mon_res[i]))/(fabs(mon_out[i])) )<3e-16); } } @@ -487,8 +487,8 @@ void zcoshaTest(void) { } zcosha(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<1e-15); - assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<1e-15); + assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<3e-16); + assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<3e-16); } } diff --git a/src/elementaryFunctions/cosh/testFloatCosh.c b/src/elementaryFunctions/cosh/testFloatCosh.c index 78cb8773..3f4c15be 100644 --- a/src/elementaryFunctions/cosh/testFloatCosh.c +++ b/src/elementaryFunctions/cosh/testFloatCosh.c @@ -446,8 +446,8 @@ void ccoshsTest(void) { for (i=0;i<200;i++){ in=FloatComplex(inR[i],inI[i]); out=ccoshs(in); - assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<1e-5); - assert(( (fabs(cimags(out)-resI[i]))/(fabs(cimags(out))) )<1e-5); + assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<3e-6); + assert(( (fabs(cimags(out)-resI[i]))/(fabs(cimags(out))) )<3e-6); } } @@ -476,8 +476,8 @@ void ccoshaTest(void) { } ccosha(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(creals(out[i])-resR[i]))/(fabs(creals(out[i]))) )<1e-5); - assert(( (fabs(cimags(out[i])-resI[i]))/(fabs(cimags(out[i]))) )<1e-5); + assert(( (fabs(creals(out[i])-resR[i]))/(fabs(creals(out[i]))) )<3e-6); + assert(( (fabs(cimags(out[i])-resI[i]))/(fabs(cimags(out[i]))) )<3e-6); } } diff --git a/src/elementaryFunctions/exp/testDoubleExp.c b/src/elementaryFunctions/exp/testDoubleExp.c index 2daeae06..d5d9f5c4 100644 --- a/src/elementaryFunctions/exp/testDoubleExp.c +++ b/src/elementaryFunctions/exp/testDoubleExp.c @@ -431,10 +431,10 @@ void dexpsTest(void) { for (i=0;i<200;i++){ out=dexps(in[i]); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-15); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-16); } - assert(( (fabs(exp(3)-20.085536923187671476398))/(exp(3)) )<1e-15); + assert(( (fabs(exp(3)-20.085536923187671476398))/(exp(3)) )<3e-16); } @@ -449,8 +449,8 @@ void zexpsTest(void) { for (i=0;i<200;i++){ in=DoubleComplex(inR[i],inI[i]); out=zexps(in); - assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<1e-15); - assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<1e-15); + assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<3e-16); + assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<3e-16); } } @@ -462,7 +462,7 @@ void dexpaTest(void) { dexpa(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-15); + assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<3e-16); } } @@ -479,8 +479,8 @@ void zexpaTest(void) { } zexpa(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<1e-15); - assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<1e-15); + assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<3e-16); + assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<3e-16); } } diff --git a/src/elementaryFunctions/exp/testFloatExp.c b/src/elementaryFunctions/exp/testFloatExp.c index d490e3a0..6ba0ad6c 100644 --- a/src/elementaryFunctions/exp/testFloatExp.c +++ b/src/elementaryFunctions/exp/testFloatExp.c @@ -455,7 +455,7 @@ void cexpsTest(void) { for (i=0;i<200;i++){ in=FloatComplex(inR[i],inI[i]); out=cexps(in); - assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<1e-5); + assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<3e-6); assert(( (fabs(cimags(out)-resI[i]))/(fabs(cimags(out))) )<1e-6); } } @@ -493,7 +493,7 @@ void cexpaTest(void) { } cexpa(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(creals(out[i])-resR[i]))/(fabs(creals(out[i]))) )<1e-5); + assert(( (fabs(creals(out[i])-resR[i]))/(fabs(creals(out[i]))) )<3e-6); assert(( (fabs(cimags(out[i])-resI[i]))/(fabs(cimags(out[i]))) )<1e-6); } } diff --git a/src/elementaryFunctions/exp10/testDoubleExp10.c b/src/elementaryFunctions/exp10/testDoubleExp10.c index 6c0286d2..4818113d 100644 --- a/src/elementaryFunctions/exp10/testDoubleExp10.c +++ b/src/elementaryFunctions/exp10/testDoubleExp10.c @@ -431,7 +431,7 @@ void dexp10sTest(void) { for (i=0;i<200;i++){ out=dexp10s(in[i]); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-15); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-16); } } @@ -446,8 +446,8 @@ void zexp10sTest(void) { for (i=0;i<200;i++){ in=DoubleComplex(inR[i],inI[i]); out=zexp10s(in); - assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<1e-15); - assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<1e-15); + assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<3e-16); + assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<3e-16); } } @@ -459,7 +459,7 @@ void dexp10aTest(void) { dexp10a(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-15); + assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<3e-16); } } @@ -476,8 +476,8 @@ void zexp10aTest(void) { zexp10a(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<1e-15); - assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<1e-15); + assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<3e-16); + assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<3e-16); } } diff --git a/src/elementaryFunctions/exp10/testFloatExp10.c b/src/elementaryFunctions/exp10/testFloatExp10.c index 1b52f7c4..133becc2 100644 --- a/src/elementaryFunctions/exp10/testFloatExp10.c +++ b/src/elementaryFunctions/exp10/testFloatExp10.c @@ -446,7 +446,7 @@ void cexp10sTest(void) { for (i=0;i<200;i++){ in=FloatComplex(inR[i],inI[i]); out=cexp10s(in); - assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<1e-5); + assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<3e-6); assert(( (fabs(cimags(out)-resI[i]))/(fabs(cimags(out))) )<1e-6); } } @@ -475,7 +475,7 @@ void cexp10aTest(void) { cexp10a(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(creals(out[i])-resR[i]))/(fabs(creals(out[i]))) )<1e-5); + assert(( (fabs(creals(out[i])-resR[i]))/(fabs(creals(out[i]))) )<3e-6); assert(( (fabs(cimags(out[i])-resI[i]))/(fabs(cimags(out[i]))) )<1e-6); } } diff --git a/src/elementaryFunctions/fix/testDoubleFix.c b/src/elementaryFunctions/fix/testDoubleFix.c index 95c2e0b3..2d7c6cb5 100644 --- a/src/elementaryFunctions/fix/testDoubleFix.c +++ b/src/elementaryFunctions/fix/testDoubleFix.c @@ -18,25 +18,25 @@ static void dfixsTest(void) { assert ((fabs( dfixs(-2) - (-2))/fabs(dfixs(-2)))<1e-16); assert ((fabs( dfixs(-1.9) - (-1))/fabs(dfixs(-1.9)))<1e-16); - assert ((fabs( dfixs(-1.8) - (-1))/fabs(dfixs(-1.9)))<1e-16); - assert ((fabs( dfixs(-1.7) - (-1))/fabs(dfixs(-1.9)))<1e-16); - assert ((fabs( dfixs(-1.6) - (-1))/fabs(dfixs(-1.9)))<1e-16); - assert ((fabs( dfixs(-1.5) - (-1))/fabs(dfixs(-1.9)))<1e-16); - assert ((fabs( dfixs(-1.4) - (-1))/fabs(dfixs(-1.9)))<1e-16); - assert ((fabs( dfixs(-1.3) - (-1))/fabs(dfixs(-1.9)))<1e-16); - assert ((fabs( dfixs(-1.2) - (-1))/fabs(dfixs(-1.9)))<1e-16); - assert ((fabs( dfixs(-1.1) - (-1))/fabs(dfixs(-1.9)))<1e-16); - assert ((fabs( dfixs(-1.0) - (-1))/fabs(dfixs(-1.9)))<1e-16); + assert ((fabs( dfixs(-1.8) - (-1))/fabs(dfixs(-1.8)))<1e-16); + assert ((fabs( dfixs(-1.7) - (-1))/fabs(dfixs(-1.7)))<1e-16); + assert ((fabs( dfixs(-1.6) - (-1))/fabs(dfixs(-1.6)))<1e-16); + assert ((fabs( dfixs(-1.5) - (-1))/fabs(dfixs(-1.5)))<1e-16); + assert ((fabs( dfixs(-1.4) - (-1))/fabs(dfixs(-1.4)))<1e-16); + assert ((fabs( dfixs(-1.3) - (-1))/fabs(dfixs(-1.3)))<1e-16); + assert ((fabs( dfixs(-1.2) - (-1))/fabs(dfixs(-1.2)))<1e-16); + assert ((fabs( dfixs(-1.1) - (-1))/fabs(dfixs(-1.1)))<1e-16); + assert ((fabs( dfixs(-1.0) - (-1))/fabs(dfixs(-1.0)))<1e-16); assert (fabs( dfixs(-.9))<1e-16); - assert ((fabs( dfixs(1.0) - (1))/fabs(dfixs(1.9)))<1e-16); - assert ((fabs( dfixs(1.1) - (1))/fabs(dfixs(1.9)))<1e-16); - assert ((fabs( dfixs(1.2) - (1))/fabs(dfixs(1.9)))<1e-16); - assert ((fabs( dfixs(1.3) - (1))/fabs(dfixs(1.9)))<1e-16); - assert ((fabs( dfixs(1.4) - (1))/fabs(dfixs(1.9)))<1e-16); - assert ((fabs( dfixs(1.5) - (1))/fabs(dfixs(1.9)))<1e-16); - assert ((fabs( dfixs(1.6) - (1))/fabs(dfixs(1.9)))<1e-16); - assert ((fabs( dfixs(1.7) - (1))/fabs(dfixs(1.9)))<1e-16); - assert ((fabs( dfixs(1.8) - (1))/fabs(dfixs(1.9)))<1e-16); + assert ((fabs( dfixs(1.0) - (1))/fabs(dfixs(1.0)))<1e-16); + assert ((fabs( dfixs(1.1) - (1))/fabs(dfixs(1.1)))<1e-16); + assert ((fabs( dfixs(1.2) - (1))/fabs(dfixs(1.2)))<1e-16); + assert ((fabs( dfixs(1.3) - (1))/fabs(dfixs(1.3)))<1e-16); + assert ((fabs( dfixs(1.4) - (1))/fabs(dfixs(1.4)))<1e-16); + assert ((fabs( dfixs(1.5) - (1))/fabs(dfixs(1.5)))<1e-16); + assert ((fabs( dfixs(1.6) - (1))/fabs(dfixs(1.6)))<1e-16); + assert ((fabs( dfixs(1.7) - (1))/fabs(dfixs(1.7)))<1e-16); + assert ((fabs( dfixs(1.8) - (1))/fabs(dfixs(1.8)))<1e-16); assert ((fabs( dfixs(1.9) - (1))/fabs(dfixs(1.9)))<1e-16); assert ((fabs( dfixs(2.0) - (2))/fabs(dfixs(2.0)))<1e-16); @@ -107,7 +107,9 @@ static void dfixaTest(void) { dfixa(in,10,out); - for (i=0;i<10;i++) assert(fabs(out[i]-res[i]) <1e-16); + for (i=0;i<10;i++) + if (out[i]!=0) assert (fabs(out[i]-res[i])/fabs(out[i]) <1e-16); + else assert(fabs(out[i]-res[i]) <1e-16); } @@ -123,8 +125,10 @@ static void zfixaTest(void) { zfixa(in,10,out); for (i=0;i<10;i++){ - assert(fabs(zreals(out[i])-resR[i]) <1e-16); - assert(fabs(zimags(out[i])-resI[i]) <1e-16); + if (zreals(out[i])!=0) assert(fabs(zreals(out[i])-resR[i])/fabs(zreals(out[i])) <1e-16); + else assert(fabs(zreals(out[i])-resR[i]) <1e-16); + if (zimags(out[i])!=0) assert(fabs(zimags(out[i])-resI[i])/fabs(zimags(out[i])) <1e-16); + else assert(fabs(zimags(out[i])-resI[i]) <1e-16); } } diff --git a/src/elementaryFunctions/fix/testFloatFix.c b/src/elementaryFunctions/fix/testFloatFix.c index ca57c6e6..44d5596c 100644 --- a/src/elementaryFunctions/fix/testFloatFix.c +++ b/src/elementaryFunctions/fix/testFloatFix.c @@ -19,25 +19,25 @@ static void sfixsTest(void) { assert ((fabs( sfixs(-2) - (-2))/fabs(sfixs(-2)))<1e-16); assert ((fabs( sfixs(-1.9f) - (-1))/fabs(sfixs(-1.9f)))<1e-16); - assert ((fabs( sfixs(-1.8f) - (-1))/fabs(sfixs(-1.9f)))<1e-16); - assert ((fabs( sfixs(-1.7f) - (-1))/fabs(sfixs(-1.9f)))<1e-16); - assert ((fabs( sfixs(-1.6f) - (-1))/fabs(sfixs(-1.9f)))<1e-16); - assert ((fabs( sfixs(-1.5f) - (-1))/fabs(sfixs(-1.9f)))<1e-16); - assert ((fabs( sfixs(-1.4f) - (-1))/fabs(sfixs(-1.9f)))<1e-16); - assert ((fabs( sfixs(-1.3f) - (-1))/fabs(sfixs(-1.9f)))<1e-16); - assert ((fabs( sfixs(-1.2f) - (-1))/fabs(sfixs(-1.9f)))<1e-16); - assert ((fabs( sfixs(-1.1f) - (-1))/fabs(sfixs(-1.9f)))<1e-16); - assert ((fabs( sfixs(-1.0f) - (-1))/fabs(sfixs(-1.9f)))<1e-16); + assert ((fabs( sfixs(-1.8f) - (-1))/fabs(sfixs(-1.8f)))<1e-16); + assert ((fabs( sfixs(-1.7f) - (-1))/fabs(sfixs(-1.7f)))<1e-16); + assert ((fabs( sfixs(-1.6f) - (-1))/fabs(sfixs(-1.6f)))<1e-16); + assert ((fabs( sfixs(-1.5f) - (-1))/fabs(sfixs(-1.5f)))<1e-16); + assert ((fabs( sfixs(-1.4f) - (-1))/fabs(sfixs(-1.4f)))<1e-16); + assert ((fabs( sfixs(-1.3f) - (-1))/fabs(sfixs(-1.3f)))<1e-16); + assert ((fabs( sfixs(-1.2f) - (-1))/fabs(sfixs(-1.2f)))<1e-16); + assert ((fabs( sfixs(-1.1f) - (-1))/fabs(sfixs(-1.1f)))<1e-16); + assert ((fabs( sfixs(-1.0f) - (-1))/fabs(sfixs(-1.0f)))<1e-16); assert (fabs( sfixs(-.9f))<1e-16); - assert ((fabs( sfixs(1.0f) - (1))/fabs(sfixs(1.9f)))<1e-16); - assert ((fabs( sfixs(1.1f) - (1))/fabs(sfixs(1.9f)))<1e-16); - assert ((fabs( sfixs(1.2f) - (1))/fabs(sfixs(1.9f)))<1e-16); - assert ((fabs( sfixs(1.3f) - (1))/fabs(sfixs(1.9f)))<1e-16); - assert ((fabs( sfixs(1.4f) - (1))/fabs(sfixs(1.9f)))<1e-16); - assert ((fabs( sfixs(1.5f) - (1))/fabs(sfixs(1.9f)))<1e-16); - assert ((fabs( sfixs(1.6f) - (1))/fabs(sfixs(1.9f)))<1e-16); - assert ((fabs( sfixs(1.7f) - (1))/fabs(sfixs(1.9f)))<1e-16); - assert ((fabs( sfixs(1.8f) - (1))/fabs(sfixs(1.9f)))<1e-16); + assert ((fabs( sfixs(1.0f) - (1))/fabs(sfixs(1.0f)))<1e-16); + assert ((fabs( sfixs(1.1f) - (1))/fabs(sfixs(1.1f)))<1e-16); + assert ((fabs( sfixs(1.2f) - (1))/fabs(sfixs(1.2f)))<1e-16); + assert ((fabs( sfixs(1.3f) - (1))/fabs(sfixs(1.3f)))<1e-16); + assert ((fabs( sfixs(1.4f) - (1))/fabs(sfixs(1.4f)))<1e-16); + assert ((fabs( sfixs(1.5f) - (1))/fabs(sfixs(1.5f)))<1e-16); + assert ((fabs( sfixs(1.6f) - (1))/fabs(sfixs(1.6f)))<1e-16); + assert ((fabs( sfixs(1.7f) - (1))/fabs(sfixs(1.7f)))<1e-16); + assert ((fabs( sfixs(1.8f) - (1))/fabs(sfixs(1.8f)))<1e-16); assert ((fabs( sfixs(1.9f) - (1))/fabs(sfixs(1.9f)))<1e-16); assert ((fabs( sfixs(2.0f) - (2))/fabs(sfixs(2.0f)))<1e-16); } @@ -107,7 +107,9 @@ static void sfixaTest(void) { sfixa(in,10,out); - for (i=0;i<10;i++) assert(fabs(out[i]-res[i]) <1e-16); + for (i=0;i<10;i++) + if (out[i]!=0) assert(fabs(out[i]-res[i])/fabs(out[i]) <1e-16); + else assert(fabs(out[i]-res[i]) <1e-16); } static void cfixaTest(void) { @@ -122,8 +124,10 @@ static void cfixaTest(void) { cfixa(in,10,out); for (i=0;i<10;i++){ - assert(fabs(creals(out[i])-resR[i]) <1e-16); - assert(fabs(cimags(out[i])-resI[i]) <1e-16); + if (creals(out[i])!=0) assert(fabs(creals(out[i])-resR[i])/fabs(creals(out[i])) <1e-16); + else assert(fabs(creals(out[i])-resR[i]) <1e-16); + if (cimags(out[i])!=0) assert(fabs(cimags(out[i])-resI[i])/fabs(cimags(out[i])) <1e-16); + else assert(fabs(cimags(out[i])-resI[i]) <1e-16); } } diff --git a/src/elementaryFunctions/floor/testDoubleFloor.c b/src/elementaryFunctions/floor/testDoubleFloor.c index 186aba95..71e0b36f 100644 --- a/src/elementaryFunctions/floor/testDoubleFloor.c +++ b/src/elementaryFunctions/floor/testDoubleFloor.c @@ -20,25 +20,25 @@ static void dfloorsTest(void) { assert ((fabs( dfloors(-2) - (-2))/fabs(dfloors(-2)))<1e-16); assert ((fabs( dfloors(-1.9) - (-2))/fabs(dfloors(-1.9)))<1e-16); - assert ((fabs( dfloors(-1.8) - (-2))/fabs(dfloors(-1.9)))<1e-16); - assert ((fabs( dfloors(-1.7) - (-2))/fabs(dfloors(-1.9)))<1e-16); - assert ((fabs( dfloors(-1.6) - (-2))/fabs(dfloors(-1.9)))<1e-16); - assert ((fabs( dfloors(-1.5) - (-2))/fabs(dfloors(-1.9)))<1e-16); - assert ((fabs( dfloors(-1.4) - (-2))/fabs(dfloors(-1.9)))<1e-16); - assert ((fabs( dfloors(-1.3) - (-2))/fabs(dfloors(-1.9)))<1e-16); - assert ((fabs( dfloors(-1.2) - (-2))/fabs(dfloors(-1.9)))<1e-16); - assert ((fabs( dfloors(-1.1) - (-2))/fabs(dfloors(-1.9)))<1e-16); - assert ((fabs( dfloors(-1.0) - (-1))/fabs(dfloors(-1.9)))<1e-16); - assert ((fabs( dfloors(-0.9) - (-1))/fabs(dfloors(-1.9)))<1e-16); - assert ((fabs( dfloors(1.0) - (1))/fabs(dfloors(1.9)))<1e-16); - assert ((fabs( dfloors(1.1) - (1))/fabs(dfloors(1.9)))<1e-16); - assert ((fabs( dfloors(1.2) - (1))/fabs(dfloors(1.9)))<1e-16); - assert ((fabs( dfloors(1.3) - (1))/fabs(dfloors(1.9)))<1e-16); - assert ((fabs( dfloors(1.4) - (1))/fabs(dfloors(1.9)))<1e-16); - assert ((fabs( dfloors(1.5) - (1))/fabs(dfloors(1.9)))<1e-16); - assert ((fabs( dfloors(1.6) - (1))/fabs(dfloors(1.9)))<1e-16); - assert ((fabs( dfloors(1.7) - (1))/fabs(dfloors(1.9)))<1e-16); - assert ((fabs( dfloors(1.8) - (1))/fabs(dfloors(1.9)))<1e-16); + assert ((fabs( dfloors(-1.8) - (-2))/fabs(dfloors(-1.8)))<1e-16); + assert ((fabs( dfloors(-1.7) - (-2))/fabs(dfloors(-1.7)))<1e-16); + assert ((fabs( dfloors(-1.6) - (-2))/fabs(dfloors(-1.6)))<1e-16); + assert ((fabs( dfloors(-1.5) - (-2))/fabs(dfloors(-1.5)))<1e-16); + assert ((fabs( dfloors(-1.4) - (-2))/fabs(dfloors(-1.4)))<1e-16); + assert ((fabs( dfloors(-1.3) - (-2))/fabs(dfloors(-1.3)))<1e-16); + assert ((fabs( dfloors(-1.2) - (-2))/fabs(dfloors(-1.2)))<1e-16); + assert ((fabs( dfloors(-1.1) - (-2))/fabs(dfloors(-1.1)))<1e-16); + assert ((fabs( dfloors(-1.0) - (-1))/fabs(dfloors(-1.0)))<1e-16); + assert ((fabs( dfloors(-0.9) - (-1))/fabs(dfloors(-0.9)))<1e-16); + assert ((fabs( dfloors(1.0) - (1))/fabs(dfloors(1.0)))<1e-16); + assert ((fabs( dfloors(1.1) - (1))/fabs(dfloors(1.1)))<1e-16); + assert ((fabs( dfloors(1.2) - (1))/fabs(dfloors(1.2)))<1e-16); + assert ((fabs( dfloors(1.3) - (1))/fabs(dfloors(1.3)))<1e-16); + assert ((fabs( dfloors(1.4) - (1))/fabs(dfloors(1.4)))<1e-16); + assert ((fabs( dfloors(1.5) - (1))/fabs(dfloors(1.5)))<1e-16); + assert ((fabs( dfloors(1.6) - (1))/fabs(dfloors(1.6)))<1e-16); + assert ((fabs( dfloors(1.7) - (1))/fabs(dfloors(1.7)))<1e-16); + assert ((fabs( dfloors(1.8) - (1))/fabs(dfloors(1.8)))<1e-16); assert ((fabs( dfloors(1.9) - (1))/fabs(dfloors(1.9)))<1e-16); assert ((fabs( dfloors(2.0) - (2))/fabs(dfloors(2.0)))<1e-16); @@ -110,9 +110,9 @@ static void dflooraTest(void) { dfloora(in,10,out); - for (i=0;i<10;i++) assert(fabs(out[i]-res[i]) <1e-16); - - + for (i=0;i<10;i++) + if (out[i]!=0) assert(fabs(out[i]-res[i])/fabs(out[i]) < 1e-16); + else assert(fabs(out[i]-res[i]) <1e-16); } static void zflooraTest(void) { @@ -127,8 +127,10 @@ static void zflooraTest(void) { zfloora(in,10,out); for (i=0;i<10;i++){ - assert(fabs(zreals(out[i])-resR[i]) <1e-16); - assert(fabs(zimags(out[i])-resI[i]) <1e-16); + if (zreals(out[i])!=0) assert( fabs(zreals(out[i])-resR[i])/fabs(zreals(out[i])) < 1e-16); + else assert(fabs(zreals(out[i])-resR[i]) <1e-16); + if (zimags(out[i])!=0) assert( fabs(zimags(out[i])-resI[i])/fabs(zimags(out[i])) < 1e-16); + else assert(fabs(zimags(out[i])-resI[i]) <1e-16); } } diff --git a/src/elementaryFunctions/floor/testFloatFloor.c b/src/elementaryFunctions/floor/testFloatFloor.c index 1b171893..df49ee0d 100644 --- a/src/elementaryFunctions/floor/testFloatFloor.c +++ b/src/elementaryFunctions/floor/testFloatFloor.c @@ -18,25 +18,25 @@ static void sfloorsTest(void) { assert ((fabs( sfloors(-2) - (-2))/fabs(sfloors(-2)))<1e-16); assert ((fabs( sfloors(-1.9f) - (-2))/fabs(sfloors(-1.9f)))<1e-16); - assert ((fabs( sfloors(-1.8f) - (-2))/fabs(sfloors(-1.9f)))<1e-16); - assert ((fabs( sfloors(-1.7f) - (-2))/fabs(sfloors(-1.9f)))<1e-16); - assert ((fabs( sfloors(-1.6f) - (-2))/fabs(sfloors(-1.9f)))<1e-16); - assert ((fabs( sfloors(-1.5f) - (-2))/fabs(sfloors(-1.9f)))<1e-16); - assert ((fabs( sfloors(-1.4f) - (-2))/fabs(sfloors(-1.9f)))<1e-16); - assert ((fabs( sfloors(-1.3f) - (-2))/fabs(sfloors(-1.9f)))<1e-16); - assert ((fabs( sfloors(-1.2f) - (-2))/fabs(sfloors(-1.9f)))<1e-16); - assert ((fabs( sfloors(-1.1f) - (-2))/fabs(sfloors(-1.9f)))<1e-16); - assert ((fabs( sfloors(-1.0f) - (-1))/fabs(sfloors(-1.9f)))<1e-16); - assert ((fabs( sfloors(-0.9f) - (-1))/fabs(sfloors(-1.9f)))<1e-16); - assert ((fabs( sfloors(1.0f) - (1))/fabs(sfloors(1.9f)))<1e-16); - assert ((fabs( sfloors(1.1f) - (1))/fabs(sfloors(1.9f)))<1e-16); - assert ((fabs( sfloors(1.2f) - (1))/fabs(sfloors(1.9f)))<1e-16); - assert ((fabs( sfloors(1.3f) - (1))/fabs(sfloors(1.9f)))<1e-16); - assert ((fabs( sfloors(1.4f) - (1))/fabs(sfloors(1.9f)))<1e-16); - assert ((fabs( sfloors(1.5f) - (1))/fabs(sfloors(1.9f)))<1e-16); - assert ((fabs( sfloors(1.6f) - (1))/fabs(sfloors(1.9f)))<1e-16); - assert ((fabs( sfloors(1.7f) - (1))/fabs(sfloors(1.9f)))<1e-16); - assert ((fabs( sfloors(1.8f) - (1))/fabs(sfloors(1.9f)))<1e-16); + assert ((fabs( sfloors(-1.8f) - (-2))/fabs(sfloors(-1.8f)))<1e-16); + assert ((fabs( sfloors(-1.7f) - (-2))/fabs(sfloors(-1.7f)))<1e-16); + assert ((fabs( sfloors(-1.6f) - (-2))/fabs(sfloors(-1.6f)))<1e-16); + assert ((fabs( sfloors(-1.5f) - (-2))/fabs(sfloors(-1.5f)))<1e-16); + assert ((fabs( sfloors(-1.4f) - (-2))/fabs(sfloors(-1.4f)))<1e-16); + assert ((fabs( sfloors(-1.3f) - (-2))/fabs(sfloors(-1.3f)))<1e-16); + assert ((fabs( sfloors(-1.2f) - (-2))/fabs(sfloors(-1.2f)))<1e-16); + assert ((fabs( sfloors(-1.1f) - (-2))/fabs(sfloors(-1.1f)))<1e-16); + assert ((fabs( sfloors(-1.0f) - (-1))/fabs(sfloors(-1.0f)))<1e-16); + assert ((fabs( sfloors(-0.9f) - (-1))/fabs(sfloors(-0.9f)))<1e-16); + assert ((fabs( sfloors(1.0f) - (1))/fabs(sfloors(1.0f)))<1e-16); + assert ((fabs( sfloors(1.1f) - (1))/fabs(sfloors(1.1f)))<1e-16); + assert ((fabs( sfloors(1.2f) - (1))/fabs(sfloors(1.2f)))<1e-16); + assert ((fabs( sfloors(1.3f) - (1))/fabs(sfloors(1.3f)))<1e-16); + assert ((fabs( sfloors(1.4f) - (1))/fabs(sfloors(1.4f)))<1e-16); + assert ((fabs( sfloors(1.5f) - (1))/fabs(sfloors(1.5f)))<1e-16); + assert ((fabs( sfloors(1.6f) - (1))/fabs(sfloors(1.6f)))<1e-16); + assert ((fabs( sfloors(1.7f) - (1))/fabs(sfloors(1.7f)))<1e-16); + assert ((fabs( sfloors(1.8f) - (1))/fabs(sfloors(1.8f)))<1e-16); assert ((fabs( sfloors(1.9f) - (1))/fabs(sfloors(1.9f)))<1e-16); assert ((fabs( sfloors(2.0f) - (2))/fabs(sfloors(2.0f)))<1e-16); } @@ -107,7 +107,9 @@ static void sflooraTest(void) { sfloora(in,10,out); - for (i=0;i<10;i++) assert(fabs(out[i]-res[i]) <1e-16); + for (i=0;i<10;i++) + if (out[i]!=0) assert(fabs(out[i]-res[i])/fabs(out[i]) <1e-16); + else assert(fabs(out[i]-res[i]) <1e-16); } static void cflooraTest(void) { @@ -122,8 +124,10 @@ static void cflooraTest(void) { cfloora(in,10,out); for (i=0;i<10;i++){ - assert(fabs(creals(out[i])-resR[i]) <1e-16); - assert(fabs(cimags(out[i])-resI[i]) <1e-16); + if (creals(out[i])!=0) assert(fabs(creals(out[i])-resR[i])/fabs(creals(out[i])) <1e-16); + else assert(fabs(creals(out[i])-resR[i]) <1e-16); + if (cimags(out[i])!=0) assert(fabs(cimags(out[i])-resI[i])/fabs(cimags(out[i])) <1e-16); + else assert(fabs(cimags(out[i])-resI[i]) <1e-16); } } diff --git a/src/elementaryFunctions/int/testDoubleInt.c b/src/elementaryFunctions/int/testDoubleInt.c index 4dfad2b6..f5bf78b8 100644 --- a/src/elementaryFunctions/int/testDoubleInt.c +++ b/src/elementaryFunctions/int/testDoubleInt.c @@ -27,25 +27,25 @@ static void dintsTest(void) { */ assert ((fabs( dints(-2) - (-2))/fabs(dints(-2)))<1e-16); assert ((fabs( dints(-1.9) - (-1))/fabs(dints(-1.9)))<1e-16); - assert ((fabs( dints(-1.8) - (-1))/fabs(dints(-1.9)))<1e-16); - assert ((fabs( dints(-1.7) - (-1))/fabs(dints(-1.9)))<1e-16); - assert ((fabs( dints(-1.6) - (-1))/fabs(dints(-1.9)))<1e-16); - assert ((fabs( dints(-1.5) - (-1))/fabs(dints(-1.9)))<1e-16); - assert ((fabs( dints(-1.4) - (-1))/fabs(dints(-1.9)))<1e-16); - assert ((fabs( dints(-1.3) - (-1))/fabs(dints(-1.9)))<1e-16); - assert ((fabs( dints(-1.2) - (-1))/fabs(dints(-1.9)))<1e-16); - assert ((fabs( dints(-1.1) - (-1))/fabs(dints(-1.9)))<1e-16); - assert ((fabs( dints(-1.0) - (-1))/fabs(dints(-1.9)))<1e-16); + assert ((fabs( dints(-1.8) - (-1))/fabs(dints(-1.8)))<1e-16); + assert ((fabs( dints(-1.7) - (-1))/fabs(dints(-1.7)))<1e-16); + assert ((fabs( dints(-1.6) - (-1))/fabs(dints(-1.6)))<1e-16); + assert ((fabs( dints(-1.5) - (-1))/fabs(dints(-1.5)))<1e-16); + assert ((fabs( dints(-1.4) - (-1))/fabs(dints(-1.4)))<1e-16); + assert ((fabs( dints(-1.3) - (-1))/fabs(dints(-1.3)))<1e-16); + assert ((fabs( dints(-1.2) - (-1))/fabs(dints(-1.2)))<1e-16); + assert ((fabs( dints(-1.1) - (-1))/fabs(dints(-1.1)))<1e-16); + assert ((fabs( dints(-1.0) - (-1))/fabs(dints(-1.0)))<1e-16); assert (fabs( dints(-.9))<1e-16); - assert ((fabs( dints(1.0) - (1))/fabs(dints(1.9)))<1e-16); - assert ((fabs( dints(1.1) - (1))/fabs(dints(1.9)))<1e-16); - assert ((fabs( dints(1.2) - (1))/fabs(dints(1.9)))<1e-16); - assert ((fabs( dints(1.3) - (1))/fabs(dints(1.9)))<1e-16); - assert ((fabs( dints(1.4) - (1))/fabs(dints(1.9)))<1e-16); - assert ((fabs( dints(1.5) - (1))/fabs(dints(1.9)))<1e-16); - assert ((fabs( dints(1.6) - (1))/fabs(dints(1.9)))<1e-16); - assert ((fabs( dints(1.7) - (1))/fabs(dints(1.9)))<1e-16); - assert ((fabs( dints(1.8) - (1))/fabs(dints(1.9)))<1e-16); + assert ((fabs( dints(1.0) - (1))/fabs(dints(1.0)))<1e-16); + assert ((fabs( dints(1.1) - (1))/fabs(dints(1.1)))<1e-16); + assert ((fabs( dints(1.2) - (1))/fabs(dints(1.2)))<1e-16); + assert ((fabs( dints(1.3) - (1))/fabs(dints(1.3)))<1e-16); + assert ((fabs( dints(1.4) - (1))/fabs(dints(1.4)))<1e-16); + assert ((fabs( dints(1.5) - (1))/fabs(dints(1.5)))<1e-16); + assert ((fabs( dints(1.6) - (1))/fabs(dints(1.6)))<1e-16); + assert ((fabs( dints(1.7) - (1))/fabs(dints(1.7)))<1e-16); + assert ((fabs( dints(1.8) - (1))/fabs(dints(1.8)))<1e-16); assert ((fabs( dints(1.9) - (1))/fabs(dints(1.9)))<1e-16); assert ((fabs( dints(2.0) - (2))/fabs(dints(2.0)))<1e-16); @@ -116,7 +116,9 @@ static void dintaTest(void) { dinta(in,10,out); - for (i=0;i<10;i++) assert(fabs(out[i]-res[i]) <1e-16); + for (i=0;i<10;i++) + if (out[i]!=0) assert(fabs(out[i]-res[i])/fabs(out[i]) <1e-16); + else assert(fabs(out[i]-res[i]) <1e-16); @@ -134,7 +136,9 @@ static void zintaTest(void) { zinta(in,10,out); for (i=0;i<10;i++){ + if(zreals(out[i])!=0) assert(fabs(zreals(out[i])-resR[i])/ fabs(zreals(out[i]))<1e-16); assert(fabs(zreals(out[i])-resR[i]) <1e-16); + if(zimags(out[i])!=0) assert(fabs(zimags(out[i])-resI[i])/ fabs(zimags(out[i]))<1e-16); assert(fabs(zimags(out[i])-resI[i]) <1e-16); } } diff --git a/src/elementaryFunctions/int/testFloatInt.c b/src/elementaryFunctions/int/testFloatInt.c index 6ea781ff..923ebf5b 100644 --- a/src/elementaryFunctions/int/testFloatInt.c +++ b/src/elementaryFunctions/int/testFloatInt.c @@ -20,25 +20,25 @@ static void sintsTest(void) { assert ((fabs( sints(-2) - (-2))/fabs(sints(-2)))<1e-16); assert ((fabs( sints(-1.9f) - (-1))/fabs(sints(-1.9f)))<1e-16); - assert ((fabs( sints(-1.8f) - (-1))/fabs(sints(-1.9f)))<1e-16); - assert ((fabs( sints(-1.7f) - (-1))/fabs(sints(-1.9f)))<1e-16); - assert ((fabs( sints(-1.6f) - (-1))/fabs(sints(-1.9f)))<1e-16); - assert ((fabs( sints(-1.5f) - (-1))/fabs(sints(-1.9f)))<1e-16); - assert ((fabs( sints(-1.4f) - (-1))/fabs(sints(-1.9f)))<1e-16); - assert ((fabs( sints(-1.3f) - (-1))/fabs(sints(-1.9f)))<1e-16); - assert ((fabs( sints(-1.2f) - (-1))/fabs(sints(-1.9f)))<1e-16); - assert ((fabs( sints(-1.1f) - (-1))/fabs(sints(-1.9f)))<1e-16); - assert ((fabs( sints(-1.0f) - (-1))/fabs(sints(-1.9f)))<1e-16); + assert ((fabs( sints(-1.8f) - (-1))/fabs(sints(-1.8f)))<1e-16); + assert ((fabs( sints(-1.7f) - (-1))/fabs(sints(-1.7f)))<1e-16); + assert ((fabs( sints(-1.6f) - (-1))/fabs(sints(-1.6f)))<1e-16); + assert ((fabs( sints(-1.5f) - (-1))/fabs(sints(-1.5f)))<1e-16); + assert ((fabs( sints(-1.4f) - (-1))/fabs(sints(-1.4f)))<1e-16); + assert ((fabs( sints(-1.3f) - (-1))/fabs(sints(-1.3f)))<1e-16); + assert ((fabs( sints(-1.2f) - (-1))/fabs(sints(-1.2f)))<1e-16); + assert ((fabs( sints(-1.1f) - (-1))/fabs(sints(-1.1f)))<1e-16); + assert ((fabs( sints(-1.0f) - (-1))/fabs(sints(-1.0f)))<1e-16); assert (fabs( sints(-.9f))<1e-16); - assert ((fabs( sints(1.0f) - (1))/fabs(sints(1.9f)))<1e-16); - assert ((fabs( sints(1.1f) - (1))/fabs(sints(1.9f)))<1e-16); - assert ((fabs( sints(1.2f) - (1))/fabs(sints(1.9f)))<1e-16); - assert ((fabs( sints(1.3f) - (1))/fabs(sints(1.9f)))<1e-16); - assert ((fabs( sints(1.4f) - (1))/fabs(sints(1.9f)))<1e-16); - assert ((fabs( sints(1.5f) - (1))/fabs(sints(1.9f)))<1e-16); - assert ((fabs( sints(1.6f) - (1))/fabs(sints(1.9f)))<1e-16); - assert ((fabs( sints(1.7f) - (1))/fabs(sints(1.9f)))<1e-16); - assert ((fabs( sints(1.8f) - (1))/fabs(sints(1.9f)))<1e-16); + assert ((fabs( sints(1.0f) - (1))/fabs(sints(1.0f)))<1e-16); + assert ((fabs( sints(1.1f) - (1))/fabs(sints(1.1f)))<1e-16); + assert ((fabs( sints(1.2f) - (1))/fabs(sints(1.2f)))<1e-16); + assert ((fabs( sints(1.3f) - (1))/fabs(sints(1.3f)))<1e-16); + assert ((fabs( sints(1.4f) - (1))/fabs(sints(1.4f)))<1e-16); + assert ((fabs( sints(1.5f) - (1))/fabs(sints(1.5f)))<1e-16); + assert ((fabs( sints(1.6f) - (1))/fabs(sints(1.6f)))<1e-16); + assert ((fabs( sints(1.7f) - (1))/fabs(sints(1.7f)))<1e-16); + assert ((fabs( sints(1.8f) - (1))/fabs(sints(1.8f)))<1e-16); assert ((fabs( sints(1.9f) - (1))/fabs(sints(1.9f)))<1e-16); assert ((fabs( sints(2.0f) - (2))/fabs(sints(2.0f)))<1e-16); } @@ -108,7 +108,9 @@ static void sintaTest(void) { sinta(in,10,out); - for (i=0;i<10;i++) assert(fabs(out[i]-res[i]) <1e-16); + for (i=0;i<10;i++) + if (out[i]!=0) assert(fabs(out[i]-res[i])/fabs(out[i]) <1e-16); + else assert(fabs(out[i]-res[i]) <1e-16); } @@ -124,8 +126,10 @@ static void cintaTest(void) { cinta(in,10,out); for (i=0;i<10;i++){ - assert(fabs(creals(out[i])-resR[i]) <1e-16); - assert(fabs(cimags(out[i])-resI[i]) <1e-16); + if (creals(out[i])!=0) assert(fabs(creals(out[i])-resR[i])/fabs(creals(out[i])) <1e-16); + else assert(fabs(creals(out[i])-resR[i]) <1e-16); + if (cimags(out[i])!=0) assert(fabs(cimags(out[i])-resI[i])/fabs(cimags(out[i])) <1e-16); + else assert(fabs(cimags(out[i])-resI[i]) <1e-16); } } diff --git a/src/elementaryFunctions/log/testDoubleLog.c b/src/elementaryFunctions/log/testDoubleLog.c index 94f8357f..424b9db2 100644 --- a/src/elementaryFunctions/log/testDoubleLog.c +++ b/src/elementaryFunctions/log/testDoubleLog.c @@ -852,7 +852,7 @@ void dlogsTest(void) { for (i=0;i<200;i++){ out=dlogs(in[i]); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-15); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-16); } for (i=0;i<200;i++){ @@ -878,15 +878,15 @@ void zlogsTest(void) { for (i=0;i<200;i++){ in=DoubleComplex(inR[i],inI[i]); out=zlogs(in); - assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<1e-14); - assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<1e-15); + assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<3e-16); + assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<3e-16); } for (i=0;i<200;i++){ in2=DoubleComplex(in2R[i],in2I[i]); out=zlogs(in2); - assert(( (fabs(zreals(out)-res2R[i]))/(fabs(zreals(out))) )<1e-15); + assert(( (fabs(zreals(out)-res2R[i]))/(fabs(zreals(out))) )<3e-16); assert(( (fabs(zimags(out)-res2I[i]))/(fabs(zimags(out))) )<1e-16); } } @@ -901,7 +901,7 @@ void dlogaTest(void) { dloga(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-15); + assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<3e-16); } dloga(in2,200,out); @@ -927,15 +927,15 @@ void zlogaTest(void) { zloga(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<1e-14); - assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<1e-15); + assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<3e-16); + assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<3e-16); } in2=DoubleComplexMatrix(in2R,in2I,200); zloga(in2,200,out); for (i=0;i<200;i++){ - assert(( (fabs(zreals(out[i])-res2R[i]))/(fabs(zreals(out[i]))) )<1e-15); + assert(( (fabs(zreals(out[i])-res2R[i]))/(fabs(zreals(out[i]))) )<3e-16); assert(( (fabs(zimags(out[i])-res2I[i]))/(fabs(zimags(out[i]))) )<1e-16); } diff --git a/src/elementaryFunctions/log/testFloatLog.c b/src/elementaryFunctions/log/testFloatLog.c index 34b12d89..d2a85cc0 100644 --- a/src/elementaryFunctions/log/testFloatLog.c +++ b/src/elementaryFunctions/log/testFloatLog.c @@ -857,12 +857,12 @@ void slogsTest(void) { for (i=0;i<200;i++){ out=slogs(in[i]); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-5); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-6); } for (i=0;i<200;i++){ out=slogs(in2[i]); - assert(( (fabs(out-res2[i]))/(fabs(out)) )<1e-4); + assert(( (fabs(out-res2[i]))/(fabs(out)) )<3e-6); } } @@ -881,7 +881,7 @@ void clogsTest(void) { for (i=0;i<200;i++){ in=FloatComplex(inR[i],inI[i]); out=clogs(in); - assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<1e-5); + assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<3e-6); assert(( (fabs(cimags(out)-resI[i]))/(fabs(cimags(out))) )<1e-6); } @@ -903,12 +903,12 @@ void slogaTest(void) { sloga(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-5); + assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<3e-6); } sloga(in2,200,out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res2[i]))/(fabs(out[i])) )<1e-4); + assert(( (fabs(out[i]-res2[i]))/(fabs(out[i])) )<3e-6); } } @@ -928,7 +928,7 @@ void clogaTest(void) { cloga(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(creals(out[i])-resR[i]))/(fabs(creals(out[i]))) )<1e-5); + assert(( (fabs(creals(out[i])-resR[i]))/(fabs(creals(out[i]))) )<3e-6); assert(( (fabs(cimags(out[i])-resI[i]))/(fabs(cimags(out[i]))) )<1e-6); } diff --git a/src/elementaryFunctions/log10/testDoubleLog10.c b/src/elementaryFunctions/log10/testDoubleLog10.c index 55c764d4..5f67225c 100644 --- a/src/elementaryFunctions/log10/testDoubleLog10.c +++ b/src/elementaryFunctions/log10/testDoubleLog10.c @@ -430,7 +430,7 @@ void dlog10sTest(void) { for (i=0;i<200;i++){ out=dlog10s(in[i]); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-15); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-16); } } @@ -445,8 +445,8 @@ void zlog10sTest(void) { for (i=0;i<200;i++){ in=DoubleComplex(inR[i],inI[i]); out=zlog10s(in); - assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<1e-14); - assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<1e-15); + assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<3e-16); + assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<3e-16); } } @@ -458,7 +458,7 @@ void dlog10aTest(void) { dlog10a(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-15); + assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<3e-16); } } @@ -475,8 +475,8 @@ void zlog10aTest(void) { zlog10a(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<1e-14); - assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<1e-15); + assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<3e-16); + assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<3e-16); } } diff --git a/src/elementaryFunctions/log10/testFloatLog10.c b/src/elementaryFunctions/log10/testFloatLog10.c index bfddf6a8..f2418246 100644 --- a/src/elementaryFunctions/log10/testFloatLog10.c +++ b/src/elementaryFunctions/log10/testFloatLog10.c @@ -431,7 +431,7 @@ void slog10sTest(void) { for (i=0;i<200;i++){ out=slog10s(in[i]); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-5); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-6); } } @@ -446,7 +446,7 @@ void clog10sTest(void) { for (i=0;i<200;i++){ in=FloatComplex(inR[i],inI[i]); out=clog10s(in); - assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<1e-5); + assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<3e-6); assert(( (fabs(cimags(out)-resI[i]))/(fabs(cimags(out))) )<1e-6); } } @@ -459,7 +459,7 @@ void slog10aTest(void) { j=1; slog10a(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-5); + assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<3e-6); } } @@ -475,7 +475,7 @@ void clog10aTest(void) { clog10a(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(creals(out[i])-resR[i]))/(fabs(creals(out[i]))) )<1e-5); + assert(( (fabs(creals(out[i])-resR[i]))/(fabs(creals(out[i]))) )<3e-6); assert(( (fabs(cimags(out[i])-resI[i]))/(fabs(cimags(out[i]))) )<1e-6); } } diff --git a/src/elementaryFunctions/log1p/testDoubleLog1p.c b/src/elementaryFunctions/log1p/testDoubleLog1p.c index 61a0d688..1499b296 100644 --- a/src/elementaryFunctions/log1p/testDoubleLog1p.c +++ b/src/elementaryFunctions/log1p/testDoubleLog1p.c @@ -1135,13 +1135,13 @@ void dlog1psTest(void) { for (i=0;i<200;i++){ out=dlog1ps(in[i]); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-15); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-16); } for (i=0;i<200;i++){ out=dlog1ps(in2[i]); - assert(( (fabs(out-res2[i]))/(fabs(out)) )<1e-15); + assert(( (fabs(out-res2[i]))/(fabs(out)) )<3e-16); } } @@ -1162,14 +1162,14 @@ void zlog1psTest(void) { for (i=0;i<200;i++){ in=DoubleComplex(inR[i]-1,inI[i]); out=zlog1ps(in); - assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<1e-14); - assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<1e-15); + assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<3e-16); + assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<3e-16); } for (i=0;i<200;i++){ in2=DoubleComplex(in2R[i]-1,in2I[i]); out=zlog1ps(in2); - assert(( (fabs(zreals(out)-res2R[i]))/(fabs(zreals(out))) )<1e-15); + assert(( (fabs(zreals(out)-res2R[i]))/(fabs(zreals(out))) )<3e-16); assert(( (fabs(zimags(out)-res2I[i]))/(fabs(zimags(out))) )<1e-16); } @@ -1190,12 +1190,12 @@ void dlog1paTest(void) { dlog1pa(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-15); + assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<3e-16); } dlog1pa(in2,200,out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res2[i]))/(fabs(out[i])) )<1e-15); + assert(( (fabs(out[i]-res2[i]))/(fabs(out[i])) )<3e-16); } } @@ -1221,15 +1221,15 @@ void zlog1paTest(void) { zlog1pa(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<1e-14); - assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<1e-15); + assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<3e-16); + assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<3e-16); } in2=DoubleComplexMatrix(in2R,in2I,200); zlog1pa(in2,200,out); for (i=0;i<200;i++){ - assert(( (fabs(zreals(out[i])-res2R[i]))/(fabs(zreals(out[i]))) )<1e-15); + assert(( (fabs(zreals(out[i])-res2R[i]))/(fabs(zreals(out[i]))) )<3e-16); assert(( (fabs(zimags(out[i])-res2I[i]))/(fabs(zimags(out[i]))) )<1e-16); } diff --git a/src/elementaryFunctions/log1p/testFloatLog1p.c b/src/elementaryFunctions/log1p/testFloatLog1p.c index 316327e6..dc9f24ac 100644 --- a/src/elementaryFunctions/log1p/testFloatLog1p.c +++ b/src/elementaryFunctions/log1p/testFloatLog1p.c @@ -855,12 +855,12 @@ void slog1psTest(void) { for (i=0;i<200;i++){ out=slog1ps(in[i]-1); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-5); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-6); } for (i=0;i<200;i++){ out=slog1ps(in2[i]-1); - assert(( (fabs(out-res2[i]))/(fabs(out)) )<1e-4); + assert(( (fabs(out-res2[i]))/(fabs(out)) )<3e-6); } } @@ -879,7 +879,7 @@ void clog1psTest(void) { for (i=0;i<200;i++){ in=FloatComplex(inR[i]-1,inI[i]); out=clog1ps(in); - assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<1e-5); + assert(( (fabs(creals(out)-resR[i]))/(fabs(creals(out))) )<3e-6); assert(( (fabs(cimags(out)-resI[i]))/(fabs(cimags(out))) )<1e-6); } @@ -906,12 +906,12 @@ void slog1paTest(void) { slog1pa(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-5); + assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<3e-6); } slog1pa(in2,200,out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res2[i]))/(fabs(out[i])) )<1e-4); + assert(( (fabs(out[i]-res2[i]))/(fabs(out[i])) )<3e-6); } } @@ -936,7 +936,7 @@ void clog1paTest(void) { clog1pa(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(creals(out[i])-resR[i]))/(fabs(creals(out[i]))) )<1e-5); + assert(( (fabs(creals(out[i])-resR[i]))/(fabs(creals(out[i]))) )<3e-6); assert(( (fabs(cimags(out[i])-resI[i]))/(fabs(cimags(out[i]))) )<1e-6); } diff --git a/src/elementaryFunctions/pow/testDoublePow.c b/src/elementaryFunctions/pow/testDoublePow.c index 57707f2a..0bde4acd 100644 --- a/src/elementaryFunctions/pow/testDoublePow.c +++ b/src/elementaryFunctions/pow/testDoublePow.c @@ -438,7 +438,7 @@ void dpowsTest(void) { out2=dpows(in1[i],0); out3=dpows(in1[i],1); - assert(( (fabs(out1-res[i]))/(fabs(out1)) )<1e-15); + assert(( (fabs(out1-res[i]))/(fabs(out1)) )<3e-16); assert(( (fabs(out2-1))/(fabs(out2)) )<1e-16); assert(( (fabs(out3-in1[i]))/(fabs(out3)) )<1e-16); } @@ -456,8 +456,8 @@ void zpowsTest(void) { for (i=0;i<200;i++){ in1=DoubleComplex(in1R[i],in1I[i]); out=zpows(in1,in2); - assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<1e-15); - assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<1e-15); + assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<3e-16); + assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<3e-16); } } @@ -478,7 +478,7 @@ void dpowaTest(void) { dpowa(in1,200,ZERO,out2); dpowa(in1,200,ONE,out3); for (i=0;i<200;i++){ - assert(( (fabs(out1[i]-res[i]))/(fabs(out1[i])) )<1e-15); + assert(( (fabs(out1[i]-res[i]))/(fabs(out1[i])) )<3e-16); assert(( (fabs(out2[i]-1))/(fabs(out2[i])) )<1e-16); assert(( (fabs(out3[i]-in1[i]))/(fabs(out3[i])) )<1e-16); } @@ -498,8 +498,8 @@ void zpowaTest(void) { zpowa(in1,200,in2,out); for (i=0;i<200;i++){ - assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<1e-15); - assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<1e-15); + assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<3e-16); + assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<3e-16); } } diff --git a/src/elementaryFunctions/round/testDoubleRound.c b/src/elementaryFunctions/round/testDoubleRound.c index e38438d2..5844a39b 100644 --- a/src/elementaryFunctions/round/testDoubleRound.c +++ b/src/elementaryFunctions/round/testDoubleRound.c @@ -19,25 +19,25 @@ static void droundsTest(void) { assert ((fabs( drounds(-2) - (-2))/fabs(drounds(-2)))<1e-16); assert ((fabs( drounds(-1.9) - (-2))/fabs(drounds(-1.9)))<1e-16); - assert ((fabs( drounds(-1.8) - (-2))/fabs(drounds(-1.9)))<1e-16); - assert ((fabs( drounds(-1.7) - (-2))/fabs(drounds(-1.9)))<1e-16); - assert ((fabs( drounds(-1.6) - (-2))/fabs(drounds(-1.9)))<1e-16); - assert ((fabs( drounds(-1.5) - (-2))/fabs(drounds(-1.9)))<1e-16); - assert ((fabs( drounds(-1.4) - (-1))/fabs(drounds(-1.9)))<1e-16); - assert ((fabs( drounds(-1.3) - (-1))/fabs(drounds(-1.9)))<1e-16); - assert ((fabs( drounds(-1.2) - (-1))/fabs(drounds(-1.9)))<1e-16); - assert ((fabs( drounds(-1.1) - (-1))/fabs(drounds(-1.9)))<1e-16); - assert ((fabs( drounds(-1.0) - (-1))/fabs(drounds(-1.9)))<1e-16); - assert ((fabs( drounds(-0.9) - (-1))/fabs(drounds(-1.9)))<1e-16); - assert ((fabs( drounds(1.0) - (1))/fabs(drounds(1.9)))<1e-16); - assert ((fabs( drounds(1.1) - (1))/fabs(drounds(1.9)))<1e-16); - assert ((fabs( drounds(1.2) - (1))/fabs(drounds(1.9)))<1e-16); - assert ((fabs( drounds(1.3) - (1))/fabs(drounds(1.9)))<1e-16); - assert ((fabs( drounds(1.4) - (1))/fabs(drounds(1.9)))<1e-16); - assert ((fabs( drounds(1.5) - (2))/fabs(drounds(1.9)))<1e-16); - assert ((fabs( drounds(1.6) - (2))/fabs(drounds(1.9)))<1e-16); - assert ((fabs( drounds(1.7) - (2))/fabs(drounds(1.9)))<1e-16); - assert ((fabs( drounds(1.8) - (2))/fabs(drounds(1.9)))<1e-16); + assert ((fabs( drounds(-1.8) - (-2))/fabs(drounds(-1.8)))<1e-16); + assert ((fabs( drounds(-1.7) - (-2))/fabs(drounds(-1.7)))<1e-16); + assert ((fabs( drounds(-1.6) - (-2))/fabs(drounds(-1.6)))<1e-16); + assert ((fabs( drounds(-1.5) - (-2))/fabs(drounds(-1.5)))<1e-16); + assert ((fabs( drounds(-1.4) - (-1))/fabs(drounds(-1.4)))<1e-16); + assert ((fabs( drounds(-1.3) - (-1))/fabs(drounds(-1.3)))<1e-16); + assert ((fabs( drounds(-1.2) - (-1))/fabs(drounds(-1.2)))<1e-16); + assert ((fabs( drounds(-1.1) - (-1))/fabs(drounds(-1.1)))<1e-16); + assert ((fabs( drounds(-1.0) - (-1))/fabs(drounds(-1.0)))<1e-16); + assert ((fabs( drounds(-0.9) - (-1))/fabs(drounds(-0.9)))<1e-16); + assert ((fabs( drounds(1.0) - (1))/fabs(drounds(1.0)))<1e-16); + assert ((fabs( drounds(1.1) - (1))/fabs(drounds(1.1)))<1e-16); + assert ((fabs( drounds(1.2) - (1))/fabs(drounds(1.2)))<1e-16); + assert ((fabs( drounds(1.3) - (1))/fabs(drounds(1.3)))<1e-16); + assert ((fabs( drounds(1.4) - (1))/fabs(drounds(1.4)))<1e-16); + assert ((fabs( drounds(1.5) - (2))/fabs(drounds(1.5)))<1e-16); + assert ((fabs( drounds(1.6) - (2))/fabs(drounds(1.6)))<1e-16); + assert ((fabs( drounds(1.7) - (2))/fabs(drounds(1.7)))<1e-16); + assert ((fabs( drounds(1.8) - (2))/fabs(drounds(1.8)))<1e-16); assert ((fabs( drounds(1.9) - (2))/fabs(drounds(1.9)))<1e-16); assert ((fabs( drounds(2.0) - (2))/fabs(drounds(2.0)))<1e-16); @@ -109,7 +109,9 @@ static void droundaTest(void) { drounda(in,10,out); - for (i=0;i<10;i++) assert(fabs(out[i]-res[i]) <1e-16); + for (i=0;i<10;i++) + if (out[i]!=0) assert(fabs(out[i]-res[i])/fabs(out[i]) <1e-16); + else assert(fabs(out[i]-res[i]) <1e-16); } @@ -125,8 +127,10 @@ static void zroundaTest(void) { zrounda(in,10,out); for (i=0;i<10;i++){ - assert(fabs(zreals(out[i])-resR[i]) <1e-16); - assert(fabs(zimags(out[i])-resI[i]) <1e-16); + if (zreals(out[i])!=0) assert(fabs(zreals(out[i])-resR[i])/fabs(zreals(out[i])) <1e-16); + else assert(fabs(zreals(out[i])-resR[i]) <1e-16); + if (zimags(out[i])!=0) assert(fabs(zimags(out[i])-resI[i])/fabs(zimags(out[i])) <1e-16); + else assert(fabs(zimags(out[i])-resI[i]) <1e-16); } } diff --git a/src/elementaryFunctions/round/testFloatRound.c b/src/elementaryFunctions/round/testFloatRound.c index 08054fd2..faac7665 100644 --- a/src/elementaryFunctions/round/testFloatRound.c +++ b/src/elementaryFunctions/round/testFloatRound.c @@ -20,25 +20,25 @@ static void sroundsTest(void) { assert ((fabs( srounds(-2) - (-2))/fabs(srounds(-2)))<1e-16); assert ((fabs( srounds(-1.9f) - (-2))/fabs(srounds(-1.9f)))<1e-16); - assert ((fabs( srounds(-1.8f) - (-2))/fabs(srounds(-1.9f)))<1e-16); - assert ((fabs( srounds(-1.7f) - (-2))/fabs(srounds(-1.9f)))<1e-16); - assert ((fabs( srounds(-1.6f) - (-2))/fabs(srounds(-1.9f)))<1e-16); - assert ((fabs( srounds(-1.5f) - (-2))/fabs(srounds(-1.9f)))<1e-16); - assert ((fabs( srounds(-1.4f) - (-1))/fabs(srounds(-1.9f)))<1e-16); - assert ((fabs( srounds(-1.3f) - (-1))/fabs(srounds(-1.9f)))<1e-16); - assert ((fabs( srounds(-1.2f) - (-1))/fabs(srounds(-1.9f)))<1e-16); - assert ((fabs( srounds(-1.1f) - (-1))/fabs(srounds(-1.9f)))<1e-16); - assert ((fabs( srounds(-1.0f) - (-1))/fabs(srounds(-1.9f)))<1e-16); - assert ((fabs( srounds(-0.9f) - (-1))/fabs(srounds(-1.9f)))<1e-16); - assert ((fabs( srounds(1.0f) - (1))/fabs(srounds(1.9f)))<1e-16); - assert ((fabs( srounds(1.1f) - (1))/fabs(srounds(1.9f)))<1e-16); - assert ((fabs( srounds(1.2f) - (1))/fabs(srounds(1.9f)))<1e-16); - assert ((fabs( srounds(1.3f) - (1))/fabs(srounds(1.9f)))<1e-16); - assert ((fabs( srounds(1.4f) - (1))/fabs(srounds(1.9f)))<1e-16); - assert ((fabs( srounds(1.5f) - (2))/fabs(srounds(1.9f)))<1e-16); - assert ((fabs( srounds(1.6f) - (2))/fabs(srounds(1.9f)))<1e-16); - assert ((fabs( srounds(1.7f) - (2))/fabs(srounds(1.9f)))<1e-16); - assert ((fabs( srounds(1.8f) - (2))/fabs(srounds(1.9f)))<1e-16); + assert ((fabs( srounds(-1.8f) - (-2))/fabs(srounds(-1.8f)))<1e-16); + assert ((fabs( srounds(-1.7f) - (-2))/fabs(srounds(-1.7f)))<1e-16); + assert ((fabs( srounds(-1.6f) - (-2))/fabs(srounds(-1.6f)))<1e-16); + assert ((fabs( srounds(-1.5f) - (-2))/fabs(srounds(-1.5f)))<1e-16); + assert ((fabs( srounds(-1.4f) - (-1))/fabs(srounds(-1.4f)))<1e-16); + assert ((fabs( srounds(-1.3f) - (-1))/fabs(srounds(-1.3f)))<1e-16); + assert ((fabs( srounds(-1.2f) - (-1))/fabs(srounds(-1.2f)))<1e-16); + assert ((fabs( srounds(-1.1f) - (-1))/fabs(srounds(-1.1f)))<1e-16); + assert ((fabs( srounds(-1.0f) - (-1))/fabs(srounds(-1.0f)))<1e-16); + assert ((fabs( srounds(-0.9f) - (-1))/fabs(srounds(-0.9f)))<1e-16); + assert ((fabs( srounds(1.0f) - (1))/fabs(srounds(1.0f)))<1e-16); + assert ((fabs( srounds(1.1f) - (1))/fabs(srounds(1.1f)))<1e-16); + assert ((fabs( srounds(1.2f) - (1))/fabs(srounds(1.2f)))<1e-16); + assert ((fabs( srounds(1.3f) - (1))/fabs(srounds(1.3f)))<1e-16); + assert ((fabs( srounds(1.4f) - (1))/fabs(srounds(1.4f)))<1e-16); + assert ((fabs( srounds(1.5f) - (2))/fabs(srounds(1.5f)))<1e-16); + assert ((fabs( srounds(1.6f) - (2))/fabs(srounds(1.6f)))<1e-16); + assert ((fabs( srounds(1.7f) - (2))/fabs(srounds(1.7f)))<1e-16); + assert ((fabs( srounds(1.8f) - (2))/fabs(srounds(1.8f)))<1e-16); assert ((fabs( srounds(1.9f) - (2))/fabs(srounds(1.9f)))<1e-16); assert ((fabs( srounds(2.0f) - (2))/fabs(srounds(2.0f)))<1e-16); } @@ -108,7 +108,9 @@ static void sroundaTest(void) { srounda(in,10,out); - for (i=0;i<10;i++) assert(fabs(out[i]-res[i]) <1e-16); + for (i=0;i<10;i++) + if (out[i]!=0) assert(fabs(out[i]-res[i])/fabs(out[i]) <1e-16); + else assert(fabs(out[i]-res[i]) <1e-16); } static void croundaTest(void) { @@ -123,8 +125,10 @@ static void croundaTest(void) { crounda(in,10,out); for (i=0;i<10;i++){ - assert(fabs(creals(out[i])-resR[i]) <1e-16); - assert(fabs(cimags(out[i])-resI[i]) <1e-16); + if (creals(out[i])!=0) assert(fabs(creals(out[i])-resR[i])/fabs(creals(out[i])) <1e-16); + else assert(fabs(creals(out[i])-resR[i]) <1e-16); + if (cimags(out[i])!=0) assert(fabs(cimags(out[i])-resI[i])/fabs(cimags(out[i])) <1e-16); + else assert(fabs(cimags(out[i])-resI[i]) <1e-16); } } diff --git a/src/elementaryFunctions/sin/testDoubleSin.c b/src/elementaryFunctions/sin/testDoubleSin.c index a485b8a1..e8dce216 100644 --- a/src/elementaryFunctions/sin/testDoubleSin.c +++ b/src/elementaryFunctions/sin/testDoubleSin.c @@ -433,7 +433,7 @@ void dsinsTest() { for (i=0;i<200;i++){ out=dsins(in[i]); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-15); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-16); } } @@ -448,8 +448,8 @@ void zsinsTest(void) { for (i=0;i<200;i++){ in=DoubleComplex(inR[i],inI[i]); out=zsins(in); - assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<1e-15); - assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<1e-15); + assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<3e-16); + assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<3e-16); } } @@ -478,8 +478,8 @@ void zsinaTest(void) { zsina(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<1e-15); - assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<1e-15); + assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<3e-16); + assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<3e-16); } } diff --git a/src/elementaryFunctions/sinh/testDoubleSinh.c b/src/elementaryFunctions/sinh/testDoubleSinh.c index 4848e225..6509d1c2 100644 --- a/src/elementaryFunctions/sinh/testDoubleSinh.c +++ b/src/elementaryFunctions/sinh/testDoubleSinh.c @@ -430,7 +430,7 @@ void dsinhsTest(void) { for (i=0;i<200;i++){ out=dsinhs(in[i]); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-15); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-16); } } @@ -445,8 +445,8 @@ void zsinhsTest(void) { for (i=0;i<200;i++){ in=DoubleComplex(inR[i],inI[i]); out=zsinhs(in); - assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<1e-15); - assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<1e-15); + assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<3e-16); + assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<3e-16); } } @@ -458,7 +458,7 @@ void dsinhaTest(void) { dsinha(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-15); + assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<3e-16); } } @@ -485,14 +485,14 @@ mon_test=DoubleComplexMatrix(mon_testR,mon_testI,9); zsinha(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<1e-15); - assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<1e-15); + assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<3e-16); + assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<3e-16); } zsinha(mon_test,9,mon_out); for (i=0;i<9;i++){ printf("%f + %f*i\n",zreals(mon_out[i]),zimags(mon_out[i])); - assert(( (fabs(zreals(mon_out[i])-mon_resR[i]))/(fabs(zreals(mon_out[i]))) )<1e-15); - if (zimags(mon_out[i])!=0) assert(( (fabs(zimags(mon_out[i])-mon_resI[i]))/(fabs(zimags(mon_out[i]))) )<1e-15); + assert(( (fabs(zreals(mon_out[i])-mon_resR[i]))/(fabs(zreals(mon_out[i]))) )<3e-16); + if (zimags(mon_out[i])!=0) assert(( (fabs(zimags(mon_out[i])-mon_resI[i]))/(fabs(zimags(mon_out[i]))) )<3e-16); } } diff --git a/src/elementaryFunctions/sqrt/testDoubleSqrt.c b/src/elementaryFunctions/sqrt/testDoubleSqrt.c index 5a654cb2..08b74137 100644 --- a/src/elementaryFunctions/sqrt/testDoubleSqrt.c +++ b/src/elementaryFunctions/sqrt/testDoubleSqrt.c @@ -430,7 +430,7 @@ void dsqrtsTest(void) { for (i=0;i<200;i++){ out=dsqrts(in[i]); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-15); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-16); } } @@ -445,8 +445,8 @@ void zsqrtsTest(void) { for (i=0;i<200;i++){ in=DoubleComplex(inR[i],inI[i]); out=zsqrts(in); - assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<1e-15); - assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<1e-15); + assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<3e-16); + assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<3e-16); } } @@ -475,8 +475,8 @@ void zsqrtaTest(void) { zsqrta(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<1e-15); - assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<1e-15); + assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<3e-16); + assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<3e-16); } } diff --git a/src/elementaryFunctions/tan/testDoubleTan.c b/src/elementaryFunctions/tan/testDoubleTan.c index 66941024..b4c8a3fa 100644 --- a/src/elementaryFunctions/tan/testDoubleTan.c +++ b/src/elementaryFunctions/tan/testDoubleTan.c @@ -431,7 +431,7 @@ void dtansTest(void) { for (i=0;i<200;i++){ out=dtans(in[i]); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-15); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-16); } } @@ -446,8 +446,8 @@ void ztansTest(void) { for (i=0;i<200;i++){ in=DoubleComplex(inR[i],inI[i]); out=ztans(in); - assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<1e-15); - assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<1e-15); + assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<3e-16); + assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<3e-16); } } @@ -476,8 +476,8 @@ void ztanaTest(void) { ztana(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<1e-15); - assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<1e-15); + assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<3e-16); + assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<3e-16); } } diff --git a/src/elementaryFunctions/tanh/testDoubleTanh.c b/src/elementaryFunctions/tanh/testDoubleTanh.c index 975d0a68..bd76c92e 100644 --- a/src/elementaryFunctions/tanh/testDoubleTanh.c +++ b/src/elementaryFunctions/tanh/testDoubleTanh.c @@ -430,7 +430,7 @@ void dtanhsTest(void) { for (i=0;i<200;i++){ out=dtanhs(in[i]); - assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-15); + assert(( (fabs(out-res[i]))/(fabs(out)) )<3e-16); } } @@ -445,8 +445,8 @@ void ztanhsTest(void) { for (i=0;i<200;i++){ in=DoubleComplex(inR[i],inI[i]); out=ztanhs(in); - assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<1e-15); - assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<1e-15); + assert(( (fabs(zreals(out)-resR[i]))/(fabs(zreals(out))) )<3e-16); + assert(( (fabs(zimags(out)-resI[i]))/(fabs(zimags(out))) )<3e-16); } } @@ -458,7 +458,7 @@ void dtanhaTest(void) { dtanha(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-15); + assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<3e-16); } } @@ -475,8 +475,8 @@ void ztanhaTest(void) { ztanha(in,200,out); for (i=0;i<200;i++){ - assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<1e-15); - assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<1e-15); + assert(( (fabs(zreals(out[i])-resR[i]))/(fabs(zreals(out[i]))) )<3e-16); + assert(( (fabs(zimags(out[i])-resI[i]))/(fabs(zimags(out[i]))) )<3e-16); } } |