Mathc matrices/c23s
Installer et compiler ces fichiers dans votre répertoire de travail.
c00a.c |
---|
/* ------------------------------------ */
/* Save as : c00b.c */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define C_FREE C3
#define S_VALUE 4.
/* ------------------------------------ */
int main(void)
{
double ab[R4*C7]={
+1, 3, -2, 0, +2, +0, 0,
+2, 6, -5, -2, +4, -3, 0,
0, 0, +5, 10, 0, 15, 0,
2, 6, 0, 8, 4, 18, 0,
};
double **Ab = ca_A_mR(ab,i_Abr_Ac_bc_mR(R4,C6,C1));
double **A = c_Ab_A_mR(Ab,i_mR(R4,C6));
double **b = c_Ab_b_mR(Ab,i_mR(R4,C1));
double **Ab_free = i_Abr_Ac_bc_mR(csize_A_R(Ab),csize_A_R(Ab),C1+C3);
double **b_free = i_mR(rsize_R(Ab_free),csize_b_R(Ab_free));
double **cFree = i_mR(R6,C1);
double **s_cFree = i_mR(R6,C1);
double **A_s_cFree = i_mR(rsize_R(A),csize_R(s_cFree)) ;
int r;
clrscrn();
printf(" Verify if the scalar multiplication of a column of b_free\n"
" is orthogonal to A :\n\n");
printf(" A :");
p_mR(A,S6,P1,C10);
printf(" b :");
p_mR(b,S6,P1,C10);
printf(" Ab :");
p_mR(Ab,S6,P1,C10);
stop();
gj_PP_mR(Ab,NO);
put_zeroR_mR(Ab,Ab_free);
put_freeV_mR(Ab_free);
r = rsize_R(Ab_free);
while(r>R1)
zero_below_pivot_gj1Ab_mR(Ab_free,r--);
clrscrn();
c_Ab_b_mR(Ab_free,b_free);
printf(" b_free :");
p_mR(b_free,S10,P3,C7);
c_c_mR(b_free,C_FREE,cFree,C1);
printf(" %.2f * C%d :",S_VALUE,C_FREE);
p_mR(smul_mR(S_VALUE,cFree,s_cFree),S10,P3,C7);
printf(" A * (%.2f*C%d) :",S_VALUE,C_FREE);
p_mR(mul_mR(A,s_cFree,A_s_cFree),S10,P3,C7);
stop();
f_mR(Ab);
f_mR(Ab_free);
f_mR(b_free);
f_mR(b);
f_mR(A);
f_mR(cFree);
f_mR(s_cFree);
f_mR(A_s_cFree);
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
J'ai éliminé tous les affichages intermédiaire. On peut sélectionner la colonne de travail et la valeur du scalaire dans le code ci-dessous.
#define C_FREE C3
#define S_VALUE 4.
Exemple de sortie écran :
------------------------------------
Verify if the scalar multiplication of a column of b_free
is orthogonal to A :
A :
+1.0 +3.0 -2.0 +0.0 +2.0 +0.0
+2.0 +6.0 -5.0 -2.0 +4.0 -3.0
+0.0 +0.0 +5.0 +10.0 +0.0 +15.0
+2.0 +6.0 +0.0 +8.0 +4.0 +18.0
b :
+0.0
+0.0
+0.0
+0.0
Ab :
+1.0 +3.0 -2.0 +0.0 +2.0 +0.0 +0.0
+2.0 +6.0 -5.0 -2.0 +4.0 -3.0 +0.0
+0.0 +0.0 +5.0 +10.0 +0.0 +15.0 +0.0
+2.0 +6.0 +0.0 +8.0 +4.0 +18.0 +0.0
Press return to continue.
------------------------------------
b_free :
+0.000 -3.000 -4.000 -2.000
+0.000 +1.000 +0.000 +0.000
+0.000 +0.000 -2.000 +0.000
+0.000 +0.000 +1.000 +0.000
+0.000 +0.000 +0.000 +1.000
+0.000 +0.000 +0.000 +0.000
4.00 * C3 :
-16.000
+0.000
-8.000
+4.000
+0.000
+0.000
A * (4.00*C3) :
+0.000
+0.000
+0.000
+0.000
Press return to continue.