Mathc complexes/03y
Apparence
Installer et compiler ce fichier dans votre répertoire de travail.
![]() |
c00a.c |
---|
/* ------------------------------------ */
/* Save as : c00.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
#define RCA RC3
#define CX C1
/* ------------------------------------ */
/* ------------------------------------ */
int main(void)
{
double **A = eye_mZ( i_mZ(RCA,RCA));
double **b = r_mZ( i_mZ(RCA, CX),99);
double **Ab = i_Abr_Ac_bc_mZ(RCA, RCA, CX);
// Rab CA Cb
double **New_Ab = i_AbR_AbC_AC_mZ( Ab[R_SIZE ][C0], // Rab + R0
Ab[C_SIZE ][C0], // 2(CA+Cb) + C0
Ab[C_SIZE_A][C0]); // 2(CA) + C0
c_A_b_Ab_mZ(A,b,Ab);
c_A_b_Ab_mZ(A,b,New_Ab);
clrscrn();
printf(" A :");
p_mZ(A, S5,P0, S4,P0, C6);
printf(" b :");
p_mZ(b, S5,P0, S4,P0, C6);
printf(" Ab : i_Abr_Ac_bc_mZ();");
p_mZ(Ab, S5,P0, S4,P0, C6);
printf(" New_Ab : i_AbR_AbC_AC_mZ();");
p_mZ(New_Ab, S5,P0, S4,P0, C6);
stop();
clrscrn();
printf(" Ab : i_Abr_Ac_bc_mZ();");
pall_mZ(Ab, S5,P0, S4,P0 );
printf(" New_Ab : i_AbR_AbC_AC_mZ();");
pall_mZ(New_Ab, S5,P0, S4,P0 );
stop();
f_mZ(Ab);
f_mZ(New_Ab);
f_mZ(b);
f_mZ(A);
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
La taille du système est lue en mémoire.
Il faut calculer le nombre de lignes et de colonnes du système Ab avant l'appel de i_mZ().
Ab_r--;
Ab_c = ((Ab_c-C1)/C2);
New_Ab = i_mZ(Ab_r,Ab_c);
Par contre le nombre de colonne de A enregistré à l'adresse Ab[C_SIZE_A][C0], est déjà correct en langage c.
New_Ab[C_SIZE_A][C0] = A_c;
double **i_AbR_AbC_AC_mZ( int Ab_r, // nombre de lignes de Ab : Ab[R_SIZE] [C0] = ( RAb + R0) int Ab_c, // nombre de colonnes de Ab : Ab[C_SIZE] [C0] = (2*CAb + C0) int A_c // nombre de colonnes de A : Ab[C_SIZE_A][C0] = (2*CA + R0) )
Exemple de sortie écran :
A :
+1 +0i +0 +0i +0 +0i
+0 +0i +1 +0i +0 +0i
+0 +0i +0 +0i +1 +0i
b :
+29 -73i
-24 +56i
-70 -42i
Ab : i_Abr_Ac_bc_mZ();
+1 +0i +0 +0i +0 +0i +29 -73i
+0 +0i +1 +0i +0 +0i -24 +56i
+0 +0i +0 +0i +1 +0i -70 -42i
New_Ab : i_AbR_AbC_AC_mZ();
+1 +0i +0 +0i +0 +0i +29 -73i
+0 +0i +1 +0i +0 +0i -24 +56i
+0 +0i +0 +0i +1 +0i -70 -42i
Press return to continue.
Ab : i_Abr_Ac_bc_mZ();
+4 +1 0 +2 0 +3 0 +4 0
+9 +1 +0i +0 +0i +0 +0i +29 -73i
+7 +0 +0i +1 +0i +0 +0i -24 +56i
+0 +0 +0i +0 +0i +1 +0i -70 -42i
New_Ab : i_AbR_AbC_AC_mZ();
+4 +1 0 +2 0 +3 0 +4 0
+9 +1 +0i +0 +0i +0 +0i +29 -73i
+7 +0 +0i +1 +0i +0 +0i -24 +56i
+0 +0 +0i +0 +0i +1 +0i -70 -42i
Press return to continue.