Linear Algebra and the C Language/a0je


Install and compile this file in your working directory.

/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(void)
{ 
double s = r_I(9);

double **U_T     =    r_mR(            i_mR(R1, C3), 9);  
double **V_T     =    r_mR(            i_mR(R1, C3), 9);   

double **sU_T    = smul_mR(s,U_T,      i_mR(R1, C3));  
double **sV_T    = smul_mR(s,V_T,      i_mR(R1, C3)); 
 
double **UxV_T   =  UxV_mR(U_T,V_T,    i_mR(R1,C3));
double **s_UxV_T = smul_mR(s,UxV_T,    i_mR(R1, C3));

double **sUxV_T  =   UxV_mR(sU_T,V_T,  i_mR(R1,C3));
double **UxsV_T  =   UxV_mR(U_T,sV_T,  i_mR(R1,C3));
   
  clrscrn();
  printf("  s = %+.0f\n\n",s);         
  printf("  u_T:");
  p_mR(U_T, S4, P0, C6);
  printf("  v_T:");
  p_mR(V_T, S4, P0, C6);

  printf("\n"
         "                  s (uxv) == su x v == u x sv\n\n"
         "  s (uxv):" );    
  p_mR(s_UxV_T, S5, P0, C6);

  printf("  su x v:" );    
  p_mR(sUxV_T, S5, P0, C6);
  
  printf("  u x sv:" );    
  p_mR(UxsV_T, S5, P0, C6);
  
  f_mR(U_T); 
  f_mR(V_T); 
  
  f_mR(sU_T); 
  f_mR(sV_T); 
  
  f_mR(UxV_T); 
  f_mR(s_UxV_T);

  f_mR(sUxV_T); 
  f_mR(UxsV_T);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
  
do
{  
  fun();

} while(stop_w());

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
s (uxv) == su x v == u x sv:

Screen output example:

  s = -2

  u_T :
  -2   +8   -7 

  v_T :
  +4   +5   +2 


                  s (uxv) == su x v == u x sv

  s (uxv) :
 -102   +48   +84 

  su x v :
 -102   +48   +84 

  u x sv :
 -102   +48   +84 


 Press   return to continue
 Press X return to stop