Aller au contenu

Mathc matrices/Fichiers h : vrm sy1

Un livre de Wikilivres.


Bibliothèque


Installer ce fichier dans votre répertoire de travail.

vrm_com2.h
/* ------------------------------------ */
/*  Save as :   vrm_com2.h              */
/* ------------------------------------ */

/* ------------------------------------ */
double **Diag_sin_mR(
double **A,
double **sinA)
{
int r;
int c;

  m0_mR(sinA);
  
  for     (r=R1; r<A[R_SIZE][C0]; r++)
 	  for (c=C1; c<A[C_SIZE][C0]; c++)

             if(r==c) sinA[r][c] = sin(A[r][c]);

 return(sinA);
}
/* ------------------------------------ */
double **Diag_cos_mR(
double **A,
double **cosA)
{
int r;
int c;

  m0_mR(cosA);
  
  for     (r=R1; r<A[R_SIZE][C0]; r++)
 	  for (c=C1; c<A[C_SIZE][C0]; c++)

             if(r==c) cosA[r][c]=cos(A[r][c]);
             
 return(cosA);
}
/* ------------------------------------ */
void r_commute2_mR(
double **A,
double **B,
int      n
)
{
double **P; 
double **Pinv; 
double **D;
double **T;
double **Dt;

int r=rsize_R(A);

 P    = i_mR(r,r);
 Pinv = i_mR(r,r);
 D    = i_mR(r,r);
 T    = i_mR(r,r);
 Dt   = i_mR(r,r);
 
 while(!det_R(r_mR(P,n)));
 rdiag_mR(D,n);
 
 inv_mR(P,Pinv);
 mul_mR(P,Diag_sin_mR(D,Dt),T);
 mul_mR(T,Pinv,A);

 mul_mR(P,Diag_cos_mR(D,Dt),T);
 mul_mR(T,Pinv,B);
 
 f_mR(P);
 f_mR(Pinv);
 f_mR(D);
 f_mR(T);
 f_mR(Dt);
}
/* ------------------------------------ */
/* ------------------------------------ */

Deux matrices commutatives