Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

mdp_matrix_test.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00014 bool mdp_matrix_test() {
00015   mdp_matrix a(3,3), b, c;
00016 
00017   b=a;
00018   a=a+b; //Random.SU(3);
00019 
00020   assert(max(a*inv(a)-1)<mdp_precision);
00021   printf("inversion                   ...test passed\n");
00022   
00023   assert(max(2*a-mdp_complex(0,-1)*mdp_complex(0,2)*a)<mdp_precision);
00024   printf("operator*                   ...test passed\n");
00025 
00026   assert(max(a+3*a-4*a)<mdp_precision);
00027   assert(max(a+mdp_complex(3,2)*a-mdp_complex(4,2)*a)<mdp_precision);
00028   printf("operator+ and operator-     ...test passed\n");
00029 
00030   assert(max(exp(mdp_complex(0,1)*a)-cos(a)-mdp_complex(0,1)*sin(a))<mdp_precision);
00031   printf("exp, sin and cos            ...test passed\n");
00032 
00033   assert(max(a-log(exp(a)))<mdp_precision);
00034   printf("exp, log                    ...test passed\n");
00035 
00036   b=a;
00037   b*=mdp_complex(0,2);
00038   b/=mdp_complex(0,2);
00039   b+=mdp_complex(2,4);
00040   b-=mdp_complex(2,4);
00041   assert(max(a-b)<mdp_precision);
00042   printf("*=, /=, +=, -= (mdp_complex)    ...test passed\n");
00043 
00044   b=a;
00045   b*=2;
00046   b/=2;
00047   b+=3;
00048   b-=3;
00049   assert(max(a-b)<mdp_precision);
00050   printf("*=, /=, +=, -= (Real)       ...test passed\n");
00051 
00052   b=a;
00053   b*=a;
00054   b/=a;
00055   b+=a;
00056   b-=a;
00057   assert(max(a-b)<10.0*mdp_precision);
00058   printf("*=, /=, +=, -= (mdp_matrix)     ...test passed\n");
00059 
00060   return 1;
00061 }

Generated on Sun Feb 27 15:12:21 2005 by  doxygen 1.4.1