diff options
author | torset | 2009-02-26 15:36:08 +0000 |
---|---|---|
committer | torset | 2009-02-26 15:36:08 +0000 |
commit | f8241e9e6e96bed42178fe314d9e31e3920e290b (patch) | |
tree | fe5294dd0474e1fa0a557a32cd85fd5a8a8474b1 | |
parent | 1ada0172dc98847da9bf6187cad039acb3464bac (diff) | |
download | scilab2c-f8241e9e6e96bed42178fe314d9e31e3920e290b.tar.gz scilab2c-f8241e9e6e96bed42178fe314d9e31e3920e290b.tar.bz2 scilab2c-f8241e9e6e96bed42178fe314d9e31e3920e290b.zip |
Add Sci2C test for pow and matrixPow and modify interface, which were wrong
3 files changed, 69 insertions, 15 deletions
diff --git a/src/Scilab2C/SCI2CTests/Mes_tests/elementary Functions/mainfunctionPow_MatrixPow.sci b/src/Scilab2C/SCI2CTests/Mes_tests/elementary Functions/mainfunctionPow_MatrixPow.sci new file mode 100644 index 00000000..3706353b --- /dev/null +++ b/src/Scilab2C/SCI2CTests/Mes_tests/elementary Functions/mainfunctionPow_MatrixPow.sci @@ -0,0 +1,50 @@ +//SCI2C: DEFAULT_PRECISION= DOUBLE
+ +function mainfunction() + +//test Hat_DotHat + +disp(4.1^3.5); +disp(4.1.^3.5); + +disp(4.4^(3.2+%i*1.1)); +disp(4.4.^(3.2+%i*1.1)); + +disp((3.2+%i*1.1)^4.4); +disp((3.2+%i*1.1).^4.4); + +disp((3.2+%i*1.1)^(4.4+2.6*%i)); +disp((3.2+%i*1.1).^(4.4+2.6*%i)); + +a=[1.2 4.1 3.9; 3.7 2.6 8.1]; +b=a+[2.5 3.9 8.7; 2.5 0.2 3.3]*%i; + +disp(1.2^a) +disp(1.2.^a) + +disp(1.2^b) +disp(1.2.^b) + +disp((1.2+%i*1.1)^a) +disp((1.2+%i*1.1).^a) + +disp((1.2+%i*1.1)^b) +disp((1.2+%i*1.1).^b) + +disp(a.^a) +disp(a.^b) + +disp(b.^a) +disp(b.^b) + +c=[1.2 1.3; 1.4 5.1]; + +disp(c^2.1); +disp(c^(2.1+%i*4.6)); + +d=c+[4.1 2.1; 4.6 5.1]*%i; + +disp(d^2.1); +disp(d^(2.1+%i*4.6)); + +endfunction diff --git a/src/elementaryFunctions/interfaces/int_OpDotHat.h b/src/elementaryFunctions/interfaces/int_OpDotHat.h index 4c2c37a1..6e023ee1 100644 --- a/src/elementaryFunctions/interfaces/int_OpDotHat.h +++ b/src/elementaryFunctions/interfaces/int_OpDotHat.h @@ -60,7 +60,7 @@ } #define d0z2OpDotHatz2(in1, in2, size, out) {int i=0;\ - for (i=0,i<size[0]*size[1];i++) out[i]=zpows(DoubleComplex(in1,0),in2[i]);\ + for (i=0;i<size[0]*size[1];i++) out[i]=zpows(DoubleComplex(in1,0),in2[i]);\ } #define c0s2OpDotHatc2(in1, in2, size, out) {int i=0;\ @@ -75,15 +75,15 @@ /* Matrix - Scalar */ #define s2s0OpDotHats2(in1,size,in2,out) {int i=0;\ - for (i=0,i<size[0]*size[1];i++) out[i]=spows(in1[i],in2);\ + for (i=0;i<size[0]*size[1];i++) out[i]=spows(in1[i],in2);\ } #define d2d0OpDotHatd2(in1,size,in2,out) {int i=0;\ - for (i=0,i<size[0]*size[1];i++) out[i]=dpows(in1[i],in2);\ + for (i=0;i<size[0]*size[1];i++) out[i]=dpows(in1[i],in2);\ } #define c2c0OpDotHatc2(in1,size,in2,out) {int i=0;\ - for (i=0,i<size[0]*size[1];i++) out[i]=cpows(in1[i],in2);\ + for (i=0;i<size[0]*size[1];i++) out[i]=cpows(in1[i],in2);\ } #define z2z0OpDotHatz2(in1,size,in2,out) {int i=0;\ @@ -91,19 +91,19 @@ } #define s2c0OpDotHatc2(in1,size,in2,out) {int i=0;\ - for (i=0,i<size[0]*size[1];i++) out[i]=cpows(FloatComplex(in1[i],0),in2);\ + for (i=0;i<size[0]*size[1];i++) out[i]=cpows(FloatComplex(in1[i],0),in2);\ } #define d2z0OpDotHatc2(in1,size,in2,out) {int i=0;\ - for (i=0,i<size[0]*size[1];i++) out[i]=zpows(DoubleComplex(in1[i],0),in2);\ + for (i=0;i<size[0]*size[1];i++) out[i]=zpows(DoubleComplex(in1[i],0),in2);\ } #define c2s0OpDotHatc2(in1,size,in2,out) {int i=0;\ - for (i=0,i<size[0]*size[1];i++) out[i]=cpows(in1[i],FloatComplex(in2,0));\ + for (i=0;i<size[0]*size[1];i++) out[i]=cpows(in1[i],FloatComplex(in2,0));\ } #define z2d0OpDotHatz2(in1,size,in2,out) {int i=0;\ - for (i=0,i<size[0]*size[1];i++) out[i]=zpows(in1[i],DoubleComplex(in2,0));\ + for (i=0;i<size[0]*size[1];i++) out[i]=zpows(in1[i],DoubleComplex(in2,0));\ } @@ -117,19 +117,19 @@ #define z2z2OpDotHatz2(in1, size1, in2, size2, out) zpowa(in1, size1[0]*size2[1], in2, out) #define s2c2OpDotHatc2(in1, size1, in2, size2, out) {int i=0;\ - for (i=0;i<size1[0]*size2[1],i++) out[i]=cpows(FloatComplex(in1[i],0),in2[i]);\ + for (i=0;i<size1[0]*size2[1];i++) out[i]=cpows(FloatComplex(in1[i],0),in2[i]);\ } #define c2s2OpDotHatc2(in1, size1, in2, size2, out) {int i=0;\ - for (i=0;i<size1[0]*size2[1],i++) out[i]=cpows(in1[i],FloatComplex(in2[i],0));\ + for (i=0;i<size1[0]*size2[1];i++) out[i]=cpows(in1[i],FloatComplex(in2[i],0));\ } #define d2z2OpDotHatz2(in1, size1, in2, size2, out) {int i=0;\ - for (i=0;i<size1[0]*size2[1],i++) out[i]=zpows(FloatComplex(in1[i],0),in2[i]);\ + for (i=0;i<size1[0]*size2[1];i++) out[i]=zpows(DoubleComplex(in1[i],0),in2[i]);\ } #define z2d2OpDotHatz2(in1, size1, in2, size2, out) {int i=0;\ - for (i=0;i<size1[0]*size2[1],i++) out[i]=zpows(in1[i],FloatComplex(in2[i],0));\ + for (i=0;i<size1[0]*size2[1];i++) out[i]=zpows(in1[i],DoubleComplex(in2[i],0));\ } diff --git a/src/elementaryFunctions/interfaces/int_OpHat.h b/src/elementaryFunctions/interfaces/int_OpHat.h index 8858eafc..8cc8849c 100644 --- a/src/elementaryFunctions/interfaces/int_OpHat.h +++ b/src/elementaryFunctions/interfaces/int_OpHat.h @@ -61,7 +61,7 @@ } #define d0z2OpHatz2(in1, in2, size, out) {int i=0;\ - for (i=0,i<size[0]*size[1];i++) out[i]=zpows(DoubleComplex(in1,0),in2[i]);\ + for (i=0;i<size[0]*size[1];i++) out[i]=zpows(DoubleComplex(in1,0),in2[i]);\ } #define c0s2OpHatc2(in1, in2, size, out) {int i=0;\ @@ -86,18 +86,22 @@ /* FIXME : malloc here */ #define s2c0OpHatc2(in1,size,in2,out) {float* tmp;\ + tmp = malloc((uint)(size[0]*size[1])*sizeof(float));\ szerosa(tmp,size[0],size[1]);\ cpowma(FloatComplexMatrix(in1,tmp,size[0]*size[1]),size[0],in2,out);\ + free(tmp);\ } -#define d2z0OpHatc2(in1,size,in2,out) {double* tmp;\ +#define d2z0OpHatz2(in1,size,in2,out) {double* tmp;\ + tmp = malloc((uint)(size[0]*size[1])*sizeof(double));\ dzerosa(tmp,size[0],size[1]);\ zpowma(DoubleComplexMatrix(in1,tmp,size[0]*size[1]),size[0],in2,out);\ + free(tmp);\ } #define c2s0OpHatc2(in1,size,in2,out) cpowma(in1,size[0],FloatComplex(in2,0),out); -#define z2d0OpHatz2(in1,size,in2,out) zpowma(in1,size[0],DoubleCompelx(in2,0),out); +#define z2d0OpHatz2(in1,size,in2,out) zpowma(in1,size[0],DoubleComplex(in2,0),out); |