summaryrefslogtreecommitdiff
path: root/src/matrixOperations/powm/testDoublePowm.c
diff options
context:
space:
mode:
authortorset2009-02-16 15:32:57 +0000
committertorset2009-02-16 15:32:57 +0000
commit44675bc998c786d1304968fcf9c51dfc12aa0455 (patch)
treeb51696d03d52e47ce1651388a449915de857b51e /src/matrixOperations/powm/testDoublePowm.c
parentd092358c2165ef2bfe3bf1c8fae8487b6d694683 (diff)
downloadscilab2c-44675bc998c786d1304968fcf9c51dfc12aa0455.tar.gz
scilab2c-44675bc998c786d1304968fcf9c51dfc12aa0455.tar.bz2
scilab2c-44675bc998c786d1304968fcf9c51dfc12aa0455.zip
Update Matrix Pow
Diffstat (limited to 'src/matrixOperations/powm/testDoublePowm.c')
-rw-r--r--src/matrixOperations/powm/testDoublePowm.c30
1 files changed, 21 insertions, 9 deletions
diff --git a/src/matrixOperations/powm/testDoublePowm.c b/src/matrixOperations/powm/testDoublePowm.c
index f985145a..6fdbec10 100644
--- a/src/matrixOperations/powm/testDoublePowm.c
+++ b/src/matrixOperations/powm/testDoublePowm.c
@@ -12,6 +12,8 @@
#include "matrixPow.h"
#include <stdio.h>
+#include <assert.h>
+#include <math.h>
static void dpowmaTest(void){
@@ -25,26 +27,36 @@ static void dpowmaTest(void){
}
-/*
-FIXME
+/* FIXME : assert à10^-12 */
static void zpowmaTest(void){
- double inR[4]={1,5,4,2};
- double inI[4]={2,1,-1,3};
- doubleComplex *in,out[4];
+ double inR[9]={1,2,3,4,5,6,7,8,9};
+ double inI[9]={1,2,3,4,5,6,7,8,9};
+ double resultR[9]={- 4.7115011361608578610571,- 2.0782061409646632732517,0.5550888542315330909105,
+ - 2.3202132490900626571317,- 2.4412168031527574640904,- 2.5622203572154611528333,
+ 0.0710746379807356554181,- 2.80422746534086453352,- 5.6795295686624518438634};
+ double resultI[9]={- 12.188702380084603049681,- 4.0827818504168584823333,4.0231386792508754268738,
+ - 3.0919079733956360556135,- 2.5964710348850239540752,- 2.1010340963744131848046,
+ 6.0048864332933264975622,- 1.1101602193531934226201,- 8.2252068719997026846613};
+ doubleComplex *in,out[9];
int i;
- in=DoubleComplexMatrix(inR,inI,4);
+ in=DoubleComplexMatrix(inR,inI,9);
+
+ zpowma(in, 3, DoubleComplex(1,1), out);
- zpowma(in, 2, DoubleComplex(2,0), out);
+ for (i=0;i<9;i++) printf("out[%d] = %f+%f*i\n",i,zreals(out[i]),zimags(out[i]));
- for (i=0;i<4;i++) printf("out[%d] = %f+%f*i\n",i,zreals(out[i]),zimags(out[i]));
+ for (i=0;i<9;i++){
+ assert( (fabs(zreals(out[i])-resultR[i])/ fabs(zreals(out[i])) ) <1e-12);
+ assert( (fabs(zimags(out[i])-resultI[i])/ fabs(zimags(out[i])) ) <1e-13);
+ }
}
-*/
int main(void){
dpowmaTest();
+ zpowmaTest();
return 0;
}