Linear Algebra and the C Language/a07z


Install and compile this file in your working directory.

/* ------------------------------------ */
/*  Save as:   c00a.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));

  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_PP_mR(Ab,YES):");
  p_mR(gj_PP_mR(Ab,YES), S10,P4,C7);

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

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

Screen output example:

 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_PP_mR(Ab,YES):
   +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.