Linear Algebra and the C Language/a06g


Install and compile this file in your working directory.

/* ------------------------------------ */
/*  Save as :   c00b.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define  RCn RC3
/* ------------------------------------ */
int main(void)
{
double ta[RCn*RCn] ={ 1,2,3,
                      5,4,1,
                      7,2,5};
                        
double **A   = ca_A_mR(ta,    i_mR(RCn,RCn));
double **Inv =  inv_mR(A,     i_mR(RCn,RCn));
double **ID  =  mul_mR(Inv,A, i_mR(RCn,RCn));

  clrscrn();
  printf(" Copy/Paste into the octave window.\n\n");
  p_Octave_mR(A,"A",P0);
  printf(" inv(A)\n");
  pE_mR(Inv, S12,P4,C5);

  printf(" inv(A) A:");  
  p_mR(ID, S0,P4,C8);
  stop();

  f_mR(ID);
  f_mR(Inv);
  f_mR(A);

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */

Screen output example:

 Copy/Paste into the octave window.

 A=[
+1,+2,+3;
+5,+4,+1;
+7,+2,+5]

 inv(A)

 -2.5000e-01  +5.5556e-02  +1.3889e-01 
 +2.5000e-01  +2.2222e-01  -1.9444e-01 
 +2.5000e-01  -1.6667e-01  +8.3333e-02 

 Press return to continue. 


 inv(A)*A

 +1.0000  -0.0000  +0.0000 
 +0.0000  +1.0000  +0.0000 
 -0.0000  +0.0000  +1.0000 

 Press return to continue.