diff options
author | torset | 2009-01-30 11:19:15 +0000 |
---|---|---|
committer | torset | 2009-01-30 11:19:15 +0000 |
commit | 47b131bb61f0fe67ecfc9b0da935bf87762f7cbd (patch) | |
tree | 623ea3282e9f01416a6f96824dcdff8d964046f7 /src | |
parent | 50b9f61a418109ad93a125ed45646fa5c765dc93 (diff) | |
download | scilab2c-47b131bb61f0fe67ecfc9b0da935bf87762f7cbd.tar.gz scilab2c-47b131bb61f0fe67ecfc9b0da935bf87762f7cbd.tar.bz2 scilab2c-47b131bb61f0fe67ecfc9b0da935bf87762f7cbd.zip |
Update
Diffstat (limited to 'src')
9 files changed, 70 insertions, 37 deletions
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode/mainfunction.sci b/src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode/mainfunction.sci index d56328d1..716d61e3 100644 --- a/src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode/mainfunction.sci +++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode/mainfunction.sci @@ -1,30 +1,20 @@ //SCI2C: DEFAULT_PRECISION= DOUBLE -function mainfunction()
- -//test exp and expm -//d0 -disp (exp(3)) +function mainfunction()
-//z0 -disp (exp(3+%i*4)) +//test variance -a=[1 2 3; 5 5 6] c=[4 2 3 ;8 8 4; 3 4 5] -b=[1+%i,2+4*%i 3+1*%i; 4 5 6+2*%i] d=[4 2 3 ;8 8-1*%i 4; 3+4*%i 4 5] -//d2 -disp (exp(a)) -disp (exp(c)) -disp (expm(c)) - -//z2 -disp (exp(b)) -disp (exp(d)) -disp (expm(d)) +disp (variance(c)) +disp (variance(c,1)) +disp (variance(c,2)) +disp (variance(d)) +disp (variance(d,1)) +disp (variance(d,2)) endfunction diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.rc b/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.rc index d813edaa..44d9364b 100644 --- a/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.rc +++ b/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.rc @@ -259,7 +259,7 @@ SWSRCS = \ $(CSRCDIR)/zinverma.c \ $(CSRCDIR)/cexps.c \ $(CSRCDIR)/dexps.c \ - $(CSRCDIR)/cexps.c \ + $(CSRCDIR)/sexps.c \ $(CSRCDIR)/zexps.c \ $(CSRCDIR)/cexpa.c \ $(CSRCDIR)/dexpa.c \ @@ -282,7 +282,11 @@ SWSRCS = \ $(CSRCDIR)/ssigns.c \ $(CSRCDIR)/ssigna.c \ $(CSRCDIR)/zsigns.c \ - $(CSRCDIR)/zsigna.c + $(CSRCDIR)/zsigna.c \ + $(CSRCDIR)/cdeterma.c \ + $(CSRCDIR)/ddeterma.c \ + $(CSRCDIR)/sdeterma.c \ + $(CSRCDIR)/zdeterma.c diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sci2clib.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sci2clib.h index d496fe04..e7d68fbd 100644 --- a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sci2clib.h +++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sci2clib.h @@ -141,6 +141,9 @@ #include "int_expm.h" /* interefacing infinite norm */ #include "infiniteNorm.h" +/* interefacing determinant */ +#include "determ.h" +#include "int_det.h" /* STATISTICS FUNCTIONS */ diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_FillSCI2LibCDirs.sci b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_FillSCI2LibCDirs.sci index c86cb806..930f110c 100644 --- a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_FillSCI2LibCDirs.sci +++ b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_FillSCI2LibCDirs.sci @@ -430,6 +430,10 @@ PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('s2'+ArgSeparator+'d2',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'s2',ClassFileName,'file','y'); PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y'); +PrintStringInfo('c2'+ArgSeparator+'s2',ClassFileName,'file','y'); +PrintStringInfo('c2'+ArgSeparator+'d2',ClassFileName,'file','y'); +PrintStringInfo('z2'+ArgSeparator+'s2',ClassFileName,'file','y'); +PrintStringInfo('z2'+ArgSeparator+'d2',ClassFileName,'file','y'); //NUT: no mixed input types are allowed. PrintStringInfo('s0s0'+ArgSeparator+'s0',ClassFileName,'file','y'); diff --git a/src/elementaryFunctions/exp/testDoubleExp.c b/src/elementaryFunctions/exp/testDoubleExp.c index 200b6235..2daeae06 100644 --- a/src/elementaryFunctions/exp/testDoubleExp.c +++ b/src/elementaryFunctions/exp/testDoubleExp.c @@ -433,6 +433,9 @@ void dexpsTest(void) { out=dexps(in[i]); assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-15); } + + assert(( (fabs(exp(3)-20.085536923187671476398))/(exp(3)) )<1e-15); + } void zexpsTest(void) { diff --git a/src/elementaryFunctions/exp/testFloatExp.c b/src/elementaryFunctions/exp/testFloatExp.c index 7f9774a6..d490e3a0 100644 --- a/src/elementaryFunctions/exp/testFloatExp.c +++ b/src/elementaryFunctions/exp/testFloatExp.c @@ -433,6 +433,15 @@ void sexpsTest(void) { out=sexps(in[i]); assert(( (fabs(out-res[i]))/(fabs(out)) )<1e-6); } + + assert(( (fabs(sexps(0)-1))/(fabs(sexps(0))) )<1e-6); + assert(( (fabs(sexps(1)-2.7182818284590450907956))/(fabs(sexps(1))) )<1e-6); + assert(( (fabs(sexps(2)-7.3890560989306504069418))/(fabs(sexps(2))) )<1e-6); + assert(( (fabs(sexps(3)-20.085536923187671476398))/(fabs(sexps(3))) )<1e-6); + assert(( (fabs(sexps(4)-54.598150033144236203952))/(fabs(sexps(4))) )<1e-6); + assert(( (fabs(sexps(5)-148.41315910257662835647))/(fabs(sexps(5))) )<1e-6); + assert(( (fabs(sexps(6)-403.42879349273533762243))/(fabs(sexps(6))) )<1e-6); + assert(( (fabs(sexps(7)-1096.6331584284580458188))/(fabs(sexps(7))) )<1e-6); } void cexpsTest(void) { @@ -456,11 +465,19 @@ void sexpaTest(void) { float res[]=RESULT; float out[200]; int i,j; + float mon_test[6]={1.0f,4.0f,2.0f,5.0f,3.0f,6.0f}; + float result_mon_test[6]={2.7182818284590450907956f,54.598150033144236203952f,7.3890560989306504069418f, + 148.41315910257662835647f,20.085536923187671476398f,403.42879349273533762243f}; + float out_mon_test[6]; j=1; sexpa(in,200,out); for (i=0;i<200;i++){ assert(( (fabs(out[i]-res[i]))/(fabs(out[i])) )<1e-6); } + sexpa(mon_test,6,out_mon_test); + for (i=0;i<6;i++){ + assert(( (fabs(out_mon_test[i]-result_mon_test[i]))/(fabs(out_mon_test[i])) )<1e-6); + } } void cexpaTest(void) { @@ -483,7 +500,7 @@ void cexpaTest(void) { int testExp(void) { - printf("\n>>>> Hyperbolic Cosine Tests\n"); + printf("\n>>>> Float Exp Tests\n"); sexpsTest(); cexpsTest(); sexpaTest(); diff --git a/src/matrixOperations/expm/testMatrixExponential.c b/src/matrixOperations/expm/testMatrixExponential.c index 361ec9b7..13bf82d5 100644 --- a/src/matrixOperations/expm/testMatrixExponential.c +++ b/src/matrixOperations/expm/testMatrixExponential.c @@ -399,7 +399,7 @@ -18.7135188739136353f,-17.6467699531147559f,-16.5820479292089722f,-17.0861611432949942f,\ -19.7638794191151916f,-21.2748129090505991f} - +/* FIXME: assert are 1e04 and 1e14 */ static void sexpmaTest (void ) { int i = 0 ; @@ -410,6 +410,11 @@ static void sexpmaTest (void ) { float out[LEADDIM*LEADDIM] ; + float mon_test[9]={4,8,3,2,8,4,3,4,5}; + float result_mon_test[9]={179660.90104359941324219f,452187.79172967246267945f,273148.88425553269917145f, + 163436.47016010177321732f,411353.63271151197841391f,248489.23907714022789150f, + 138776.82498170930193737f,349268.28353250800864771f,210989.61389596699154936f}; + float out_mon_test[9] ; sexpma ( in, out, LEADDIM) ; @@ -417,6 +422,13 @@ static void sexpmaTest (void ) { { printf ( "\t\t %d out : %e\tresult : %e\tassert : %e \n" , i , out[i] , result[i] , fabs ( out[i] - result[i] ) / fabs( out[i]) ) ; assert ( fabs ( out[i] - result[i] ) / fabs( out[i]) < 1e-5 ) ; + } + + sexpma(mon_test,out_mon_test,3); + for ( i = 0 ; i < 9 ; i++ ) + { + printf ( "\t\t %d out : %e\tresult : %e\tassert : %e \n" , i , out[i] , result[i] , fabs ( out[i] - result[i] ) / fabs( out[i]) ) ; + assert ( fabs ( out_mon_test[i] - result_mon_test[i] ) / fabs( out_mon_test[i]) < 1e-5 ) ; } } diff --git a/src/matrixOperations/interfaces/int_det.h b/src/matrixOperations/interfaces/int_det.h index 3c622929..f7760b16 100644 --- a/src/matrixOperations/interfaces/int_det.h +++ b/src/matrixOperations/interfaces/int_det.h @@ -23,12 +23,12 @@ #define z0detz0(in) in -#define s2dets0(in,size,out) sdeterma(in, size[0]) +#define s2dets0(in,size) sdeterma(in, size[0]) -#define d2detd0(in,size,out) ddeterma(in, size[0]) +#define d2detd0(in,size) ddeterma(in, size[0]) -#define c2detc0(in,size,out) cdeterma(in, size[0]) +#define c2detc0(in,size) cdeterma(in, size[0]) -#define z2detz0(in,size,out) zdeterma(in, size[0]) +#define z2detz0(in,size) zdeterma(in, size[0]) #endif /* !__INT_DETERM_H__ */ diff --git a/src/matrixOperations/interfaces/int_invert.h b/src/matrixOperations/interfaces/int_invert.h index 6e3b895b..d31481b6 100644 --- a/src/matrixOperations/interfaces/int_invert.h +++ b/src/matrixOperations/interfaces/int_invert.h @@ -12,23 +12,23 @@ /* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */ -#ifndef __INT_INVERT_H__ -#define __INT_INVERT_H__ +#ifndef __INT_INV_H__ +#define __INT_INV_H__ -#define s0inverts0(in) 1/in +#define s0invs0(in) 1.0f/in -#define d0invertd0(in) 1/in +#define d0invd0(in) 1.0/in -#define c0invertc0(in) crdivs(FloatComplex(1,0),in) +#define c0invc0(in) crdivs(FloatComplex(1,0),in) -#define z0invertz0(in) zrdivs(DoubleComplex(1,0),in) +#define z0invz0(in) zrdivs(DoubleComplex(1,0),in) -#define s2inverts2(in,size,out) sinverma(in, out, size[0]) +#define s2invs2(in,size,out) sinverma(in, out, size[0]) -#define d2invertd2(in,size,out) dinverma(in, out, size[0]) +#define d2invd2(in,size,out) dinverma(in, out, size[0]) -#define c2invertc2(in,size,out) cinverma(in, out, size[0]) +#define c2invc2(in,size,out) cinverma(in, out, size[0]) -#define z2invertz2(in,size,out) zinverma(in, out, size[0]) +#define z2invz2(in,size,out) zinverma(in, out, size[0]) -#endif /* !__INT_INVERT_H__ */ +#endif /* !__INT_INV_H__ */ |