Mathc complexes/Fichiers h : vc m
Installer ce fichier dans votre répertoire de travail.
wcm.h |
---|
/* ------------------------------------ */
/* Save as : wcm.h */
/* ------------------------------------ */
double **ca_A_mZ(
double a[],
double **A
)
{
int r;
int c;
int i=0;
for (r=R1; r<A[R_SIZE][C0]; r++)
for (c=R1; c<A[C_SIZE][C0]; c++)
A[r][c] = a[i++];
return(A);
}
/* ------------------------------------ */
double **c_mZ(
double **A,
double **B
)
{
int c;
int r;
for (r=R1; r<A[R_SIZE][C0]; r++)
for (c=R1; c<A[C_SIZE][C0]; c++)
B[r][c] = A[r][c];
return(B);
}
/* ------------------------------------ */
double **c_withR0_mZ(
double **A,
double **B
)
{
int c;
int r;
for (r=R0; r<A[R_SIZE][C0]; r++)
for (c=C1; c<A[C_SIZE][C0]; c++)
B[r][c] = A[r][c];
return(B);
}
/* ------------------------------------ */
void c_s_mZ(
double s,
double **A,
int r,
int c
)
{
A[r][c] = s;
}
/* ------------------------------------ */
/* ------------------------------------ */
void c_z_mZ(
nb_Z z,
double **A,
int r,
int c
)
{
if(c!=C1) c= (c-C1)*C2+C1;
A[r][c] = z.r;
A[r][c+C1] = z.i;
}
/* ------------------------------------ */
/* Copy a diagonal matrix into a vector */
/* column */
/* ------------------------------------ */
double **c_D_U_mZ(
double **D,
double **U
)
{
int r;
int c;
for ( r=R1; r<D[R_SIZE][C0]; r++)
for ( c=C1; c<D[C_SIZE][C0]; c+=C2)
if(((r-R1)*C2)==c-C1)
{
U[r][C1] = D[r][c ];
U[r][C2] = D[r][c+C1];
}
return(U);
}
/* ------------------------------------ */
/* ------------------------------------ */
La fonction c_mZ(); permet de copier la matrice A dans la matrice B. Elle ne vérifie pas la taille des matrices. Le fait d'avoir conservé cette possibilité m'a rendu de grand service.