int main() {
array double x[3][3]={1,2,3,
3,4,5,
6,7,8};
array double complex zx[3][3]={complex(1,1),complex(2,2),0,
3,complex(4,1),complex(2,5),
0,0,0};
array double complex zy[3][3];
array double y[3][3];
expm(y,x);
printf("x = \n%f",x);
printf("y = \n%f",y);
printf("\n");
expm(zy,zx);
printf("zx = \n%5.1f",zx);
printf("zy = \n%5.1f",zy);
}
x =
1.000000 2.000000 3.000000
3.000000 4.000000 5.000000
6.000000 7.000000 8.000000
y =
157372.953093 200034.605129 242697.257164
290995.910241 369883.552084 448769.193928
491431.845963 624654.472518 757878.099072
zx =
complex( 1.0, 1.0) complex( 2.0, 2.0) complex( 0.0, 0.0)
complex( 3.0, 0.0) complex( 4.0, 1.0) complex( 2.0, 5.0)
complex( 0.0, 0.0) complex( 0.0, 0.0) complex( 0.0, 0.0)
zy =
complex(-44.9, 56.8) complex(-87.5, 70.9) complex(-101.5,-18.9)
complex(-12.5,118.7) complex(-57.4,175.5) complex(-155.5, 67.8)
complex( 0.0, 0.0) complex( 0.0, 0.0) complex( 1.0, 0.0)