Linear Algebra and the C Language/a070


Install and compile this file in your working directory.

/* ------------------------------------ */
/*  Save as:   c00b.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define   RA R4
#define   CA C4
#define   Cb C1
/* ------------------------------------ */
int main(void)
{
double ab[RA*(CA+Cb)]={
    +964,     -689,     +474,     +948,     -159, 
    +640,     -693,     -937,     +656,     +718, 
    -981,     -337,     -287,     +420,     +812, 
    -807,     -123,     +404,     -177,     -105 
};

double **Ab =   ca_A_mR(ab, i_Abr_Ac_bc_mR(RA,CA,Cb));
double **A  = c_Ab_A_mR(Ab,           i_mR(RA,CA));
double **b  = c_Ab_b_mR(Ab,           i_mR(RA,Cb));

  clrscrn();
  printf(" A:");
  p_mR(A, S8,P0,C7);
  
  printf(" b:");
  p_mR(b, S8,P0,C7);
  stop();

  clrscrn();
  printf(" Copy/Paste into the octave window.\n\n");
  p_Octave_mR(Ab,"Ab",P0);
  printf("\n rref(Ab,.00000000001)\n\n");

  printf(" gj_TP_mR(Ab):");
  p_mR(gj_TP_mR(Ab), S10,P4,C7);
  stop();

  f_mR(Ab);
  f_mR(b);
  f_mR(A);
  
  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */


Screen output example:

 A :
    +964     -689     +474     +948 
    +640     -693     -937     +656 
    -981     -337     -287     +420 
    -807     -123     +404     -177 

 b :
    -159 
    +718 
    +812 
    -105 

 Press return to continue. 


 Copy/Paste into the octave window.

 Ab=[
+964,-689,+474,+948,-159;
+640,-693,-937,+656,+718;
-981,-337,-287,+420,+812;
-807,-123,+404,-177,-105]


 rref(Ab,.00000000001)

  gj_TP_mR(Ab) :
   +1.0000    +0.0000    +0.0000    +0.0000    -0.3916 
   -0.0000    +1.0000    -0.0000    -0.0000    +0.1846 
   +0.0000    +0.0000    +1.0000    +0.0000    -0.6777 
   +0.0000    +0.0000    +0.0000    +1.0000    +0.7036 

 Press return to continue.