summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortorset2009-01-30 11:19:15 +0000
committertorset2009-01-30 11:19:15 +0000
commit47b131bb61f0fe67ecfc9b0da935bf87762f7cbd (patch)
tree623ea3282e9f01416a6f96824dcdff8d964046f7 /src
parent50b9f61a418109ad93a125ed45646fa5c765dc93 (diff)
downloadscilab2c-47b131bb61f0fe67ecfc9b0da935bf87762f7cbd.tar.gz
scilab2c-47b131bb61f0fe67ecfc9b0da935bf87762f7cbd.tar.bz2
scilab2c-47b131bb61f0fe67ecfc9b0da935bf87762f7cbd.zip
Update
Diffstat (limited to 'src')
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode/mainfunction.sci26
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.rc8
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sci2clib.h3
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/INIT_FillSCI2LibCDirs.sci4
-rw-r--r--src/elementaryFunctions/exp/testDoubleExp.c3
-rw-r--r--src/elementaryFunctions/exp/testFloatExp.c19
-rw-r--r--src/matrixOperations/expm/testMatrixExponential.c14
-rw-r--r--src/matrixOperations/interfaces/int_det.h8
-rw-r--r--src/matrixOperations/interfaces/int_invert.h22
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__ */