Mathc complexes/Fichiers c : ctranspose
Apparence
Installer et compiler ce fichier dans votre répertoire de travail.
ctranspose.c |
|---|
/* ------------------------------------ */
/* Save as : ctranspose.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
double **xctranspose_mZ(
double **A,
double **cA_t
)
{
int r,m;
int c,n;
canItranspose_mZ(A,cA_t,"ctranspose_mZ();","(A or cA_t)");
for ( r=R1, m=C1; r<A[R_SIZE][C0]; r++, m+=C2)
for ( c=C1, n=R1; c<A[C_SIZE][C0]; c+=C2 ,n++)
{
cA_t[n][m] = A[r][c];;
cA_t[n][m+C1] = -A[r][c+C1];;
}
return(cA_t);
}
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int r,int c)
{
double **A = r_mZ( i_mZ(r,c),9);
double **A_t = ctranspose_mZ(A, i_mZ(c,r));
clrscrn();
printf(" A \n");
p_mZ(A, S5,P0, S4,P0,C6);
printf("\n A^t (ctranspose_mZ)\n");
p_mZ(A_t, S5,P0, S4,P0,C6);
f_mZ(A);
f_mZ(A_t);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
fun(rp_I(R6),rp_I(C6));
while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
La fonction ctranspose_mZ(); échange les lignes et les colonnes et prend le conjuguer.
Exemple de sortie écran :
A
+6 +6i +8 -7i +4 +2i -7 +6i +2 +2i
+2 +4i +8 +8i -9 +6i -9 -9i -5 -9i
-1 +6i -1 +6i +4 -7i -9 -3i +2 +4i
A^t (ctranspose_mZ)
+6 -6i +2 -4i -1 -6i
+8 +7i +8 -8i -1 -6i
+4 -2i -9 -6i +4 +7i
-7 -6i -9 +9i -9 +3i
+2 -2i -5 +9i +2 -4i
Press return to continue
Press X to stop