Mathc complexes/a134
Installer ce fichier dans votre répertoire de travail.
wrm_com4.h |
---|
/* ------------------------------------ */
/* ------------------------------------ */
/* Save as : wrm_com4.h */
/* ------------------------------------ */
/* ------------------------------------ */
void r_commute4_mZ(
double **A,
double **B,
double **C,
double **E,
int n
)
{
double **P;
double **Pinv;
double **D;
double **T;
double **Dt;
int r=rsize_Z(A);
P = i_mZ(r,r);
Pinv = i_mZ(r,r);
D = i_mZ(r,r);
T = i_mZ(r,r);
Dt = i_mZ(r,r);
r_mZ(P,n);
rdiag_mZ(D,n);
inv_mZ(P,Pinv);
mul_mZ(P,Diag_sin_mZ(D,Dt),T);
mul_mZ(T,Pinv,A);
mul_mZ(P,Diag_cos_mZ(D,Dt),T);
mul_mZ(T,Pinv,B);
mul_mZ(P,Diag_sinh_mZ(D,Dt),T);
mul_mZ(T,Pinv,C);
mul_mZ(P,Diag_cosh_mZ(D,Dt),T);
mul_mZ(T,Pinv,E);
f_mZ(P);
f_mZ(Pinv);
f_mZ(D);
f_mZ(T);
f_mZ(Dt);
}
/* ------------------------------------ */
/* ------------------------------------ */
void rE_commute4_mZ(
double **A,
double **B,
double **C,
double **E,
int n,
double F /* 1E-1 1E-0 1E+1 */
)
{
double **P;
double **Pinv;
double **D;
double **T;
double **Dt;
int r=rsize_Z(A);
P = i_mZ(r,r);
Pinv = i_mZ(r,r);
D = i_mZ(r,r);
T = i_mZ(r,r);
Dt = i_mZ(r,r);
rE_mZ(P,n,F);
rdiag_mZ(D,n);
inv_mZ(P,Pinv);
mul_mZ(P,Diag_sin_mZ(D,Dt),T);
mul_mZ(T,Pinv,A);
mul_mZ(P,Diag_cos_mZ(D,Dt),T);
mul_mZ(T,Pinv,B);
mul_mZ(P,Diag_sinh_mZ(D,Dt),T);
mul_mZ(T,Pinv,C);
smul_mZ(1./(C[R1][C1]),C,T);
c_mZ(T,C);
mul_mZ(P,Diag_cosh_mZ(D,Dt),T);
mul_mZ(T,Pinv,E);
smul_mZ(1./(E[R2][C1]),E,T);
c_mZ(T,E);
f_mZ(P);
f_mZ(Pinv);
f_mZ(D);
f_mZ(T);
f_mZ(Dt);
}
/* ------------------------------------ */
/* ------------------------------------ */
Déclaration des fichiers h.