Linear Algebra and the C Language/a05q


Install and compile this file in your working directory.

/* ------------------------------------ */
/*  Save as :   c00b.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
int main(void)
{ 
double u_T[R1*C3] = {    4,   2,   5};                                             
double v_T[R1*C3] = {    3,   4,   1};
double w_T[R1*C3] = {    5,   1,   3};

double **U_T         = ca_A_mR(u_T,       i_mR(R1,C3));
double **V_T         = ca_A_mR(v_T,       i_mR(R1,C3));
double **W_T         = ca_A_mR(w_T,       i_mR(R1,C3));
 
double **UxV         = UxV_mR(U_T,V_T,    i_mR(R1,C3));
double **UxW         = UxV_mR(U_T,W_T,    i_mR(R1,C3));
double **UxV_pls_UxW = add_mR(UxV,UxW,    i_mR(R1,C3));

double **VplusW      = add_mR(V_T,W_T,    i_mR(R1,C3));
double **Ux_VplusW   = UxV_mR(U_T,VplusW, i_mR(R1,C3));

    
  clrscrn();       
  printf("  u_T:");
  p_mR(U_T, S4, P0, C6);
  printf("  v_T:");
  p_mR(V_T, S4, P0, C6);
  printf("  w_T:");
  p_mR(W_T, S4, P0, C6);

  printf("\n\n\n");
  printf("    u  x (v+w):");    
  p_mR(Ux_VplusW, S5, P0, C6);                       
  printf(" (uxv) + (uxw):");
  p_mR(UxV_pls_UxW, S5, P0, C6);
  
  stop();
  
  f_mR(U_T); 
  f_mR(V_T);
  f_mR(W_T);  

  f_mR(UxV); 
  f_mR(UxW);
  f_mR(UxV_pls_UxW); 

  f_mR(VplusW);
  f_mR(Ux_VplusW);  

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
u x (v+w) == (uxv) + (uxw):.

Screen output example:

  u_T  :
  +4   +2   +5 

  v_T  :
  +3   +4   +1 

  w_T  :
  +5   +1   +3 




    u  x (v+w) :
  -17   +24    +4 

 (uxv) + (uxw) :
  -17   +24    +4 

 Press return to continue. 
 Press X return to stop