f_mZ(V);
 f_mZ(V_T);
 f_mZ(EValue); 
 f_mZ(T);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Exp(A0) * Exp(A1) != Exp( A0 + A1 ) 
 Exemple de sortie écran :
 Copy/Past into the octave window. 
 A0=[
+1.831649+0.000000*i,+0.038822+0.121129*i,+0.319146-0.062382*i;
+0.038822-0.121129*i,+0.991619+0.000000*i,+1.154350-0.248942*i;
+0.319146+0.062382*i,+1.154350+0.248942*i,+1.480239+0.000000*i]
 expm (A0)
 Press return to continue. 
 ------------------------------------
 A[0] :
 +1.8316 +0.0000i +0.0388 +0.1211i +0.3191 -0.0624i 
 +0.0388 -0.1211i +0.9916 +0.0000i +1.1543 -0.2489i 
 +0.3191 +0.0624i +1.1543 +0.2489i +1.4802 +0.0000i 
 ExpA_EValue[0] :
 +12.9184 +0.0000i +0.0000 +0.0000i +0.0000 +0.0000i 
 +0.0000 +0.0000i +5.6774 +0.0000i +0.0000 +0.0000i 
 +0.0000 +0.0000i +0.0000 +0.0000i +1.0084 +0.0000i 
 ExpA[0]
 +6.6417 +0.0000i +1.1243 +0.6578i +2.2390 -0.0910i 
 +1.1243 -0.6578i +5.2887 -0.0000i +5.1395 -1.2042i 
 +2.2390 +0.0910i +5.1395 +1.2042i +7.6737 +0.0000i 
 Press return to continue. 
 ------------------------------------
 Copy/Past into the octave window. 
 A1=[
+2.537924+0.000000*i,+1.188052-0.486563*i,-0.216077-0.019981*i;
+1.188052+0.486563*i,+1.955302+0.000000*i,-0.701645+0.450713*i;
-0.216077+0.019981*i,-0.701645-0.450713*i,+2.592323+0.000000*i]
 expm (A1)
 Press return to continue. 
 ------------------------------------
 A[1] :
 +2.5379 +0.0000i +1.1881 -0.4866i -0.2161 -0.0200i 
 +1.1881 +0.4866i +1.9553 +0.0000i -0.7016 +0.4507i 
 -0.2161 +0.0200i -0.7016 -0.4507i +2.5923 +0.0000i 
 ExpA_EValue[1] :
 +48.9776 +0.0000i +0.0000 +0.0000i +0.0000 +0.0000i 
 +0.0000 +0.0000i +11.8151 +0.0000i +0.0000 +0.0000i 
 +0.0000 +0.0000i +0.0000 +0.0000i +2.0643 +0.0000i 
 ExpA[1]
 +24.0039 +0.0000i +17.5788 -6.0976i -7.9075 +5.3266i 
 +17.5788 +6.0976i +20.0436 +0.0000i -11.6855 +5.6408i 
 -7.9075 -5.3266i -11.6855 -5.6408i +18.8096 +0.0000i 
 Press return to continue. 
 ------------------------------------
 Copy/Past into the octave window. 
 A2=[
+4.369573+0.000000*i,+1.226874-0.365434*i,+0.103069-0.082363*i;
+1.226874+0.365434*i,+2.946921+0.000000*i,+0.452705+0.201771*i;
+0.103069+0.082363*i,+0.452705-0.201771*i,+4.072562+0.000000*i]
 expm (A2)
 Press return to continue. 
 ------------------------------------
 A[2] :
 +4.3696 +0.0000i +1.2269 -0.3654i +0.1031 -0.0824i 
 +1.2269 +0.3654i +2.9469 +0.0000i +0.4527 +0.2018i 
 +0.1031 +0.0824i +0.4527 -0.2018i +4.0726 +0.0000i 
 ExpA_EValue[2] :
 +186.3044 +0.0000i +0.0000 +0.0000i +0.0000 +0.0000i 
 +0.0000 +0.0000i +57.0973 +0.0000i +0.0000 +0.0000i 
 +0.0000 +0.0000i +0.0000 +0.0000i +8.3055 +0.0000i 
 ExpA[2] = ExpA[0+1]
 +129.7620 +0.0000i +70.0990 -22.2056i +25.9314 -4.9375i 
 +70.0990 +22.2056i +55.5771 -0.0000i +26.1629 +8.0671i 
 +25.9314 +4.9375i +26.1629 -8.0671i +66.3681 +0.0000i 
 Press return to continue. 
 ------------------------------------
 Copy/Past into the octave window. 
 expm (A0)*expm (A1) 
 expm (A0+A1) 
 ExpA[0]*ExpA[1]
 +156.9904 +7.2117i +112.6113 -38.8811i -27.2528 +32.3218i 
 +72.9020 -1.3945i +54.9077 -33.3379i +29.4837 +18.3723i 
 +76.0685 +13.8159i +53.2565 -31.2033i +59.3001 +26.1262i 
 ExpA[0+1] = ExpA[C2]
 +129.7620 +0.0000i +70.0990 -22.2056i +25.9314 -4.9375i 
 +70.0990 +22.2056i +55.5771 -0.0000i +26.1629 +8.0671i 
 +25.9314 +4.9375i +26.1629 -8.0671i +66.3681 +0.0000i 
 ExpA[0] * ExpA[1] != ExpA[0 + 1] ??? 
 Press return to continue
 Press X to stop

Mathc complexes/a123
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00a.c */
void fun(void)
int i;
double **A [C4]; 
double **LogA_EValue[C4];
double **LogA [C4];
double **V = i_mZ(RCA,RCA);
double **V_T = i_mZ(RCA,RCA);
double **EValue = i_mZ(RCA,RCA); 
double **T = i_mZ(RCA,RCA);
 for(i = C0; i < C4; i++)
 clrscrn();
 if(i < C2) 
 A[i] = rEcsymmetric_mZ(i_mZ(RCA,RCA),999,+1.E-3);
 else if(i == C2) 
 A[i] = mul_mZ(A[C0],A[C1],i_mZ(RCA,RCA));
 else if(i == C3) 
 A[i] = mul_mZ(A[C1],A[C0],i_mZ(RCA,RCA)); 
 if(i== C2) printf(" ERROR : A2 = A0 * A1 \n\n"
 " My work is not correct if the matrix\n"
 " is not csymmetric \n\n"); 
 if(i== C3) printf(" ERROR : A3 = A1 * A0 \n\n"
 " My work is not correct if the matrix\n"
 " is not csymmetric \n\n"); 
 printf(" Copy/Past into the octave window.\n\n");
 pAi_Octave_mZ(A[i],"A",i, P6, P6);
 printf(" logm (A%d)\n\n\n",i);
 stop(); 
 clrscrn();
 LogA_EValue[i] = i_mZ(RCA,RCA); 
 LogA[i] = i_mZ(RCA,RCA); 
 printf(" A[%d] :",i);
 p_mZ(A[i], S11,P4, S11,P4, C4); 
 eigs_V_uv_mZ(A[i],V,FACTOR_E);
 ctranspose_mZ(V,V_T);
/* EValue = V_T * A * V */ 
 mul_mZ(V_T,A[i],T);
 mul_mZ(T,V,EValue); 
 f_eigs_uv_mZ(log,EValue, LogA_EValue[i]);
 printf(" LogA_EValue[%d] :",i);
 p_mZ( LogA_EValue[i], S11,P4, S11,P4, C4); 
/* LogA[i] = V * LogA_EValue[i] * V_T*/ 
 mul_mZ(V,LogA_EValue[i],T);
 mul_mZ(T,V_T,LogA[i]); 
 printf(" LogA[%d]",i);
 p_mZ(LogA[i], S11,P4, S11,P4, C4); 
 stop();
 clrscrn();
 printf(" Copy/Past into the octave window. \n\n"
 " logm (A0) + logm (A1) \n"
 " logm (A0*A1) \n" 
 " logm (A1*A0) \n\n");
 printf(" logm(A0) + logm(A1) != logm(A0*A1) != logm(A1*A0)");
 p_mZ( add_mZ(LogA[C0],LogA[C1],T), S11,P4, S11,P4, C4); 
 printf(" logm(A0*A1)"); 
 p_mZ( LogA[C2], S11,P4, S11,P4, C4); 
 printf(" logm(A1*A0)"); 
 p_mZ( LogA[C3], S11,P4, S11,P4, C4); 
 for(i = C0; i < C3; i++)
 f_mZ(A[i]);
 f_mZ(LogA_EValue[i]);
 f_mZ(LogA[i]);