Linear Algebra and the C Language/a0ki


Install and compile this file in your working directory.

/* ------------------------------------ */
/*  Save as :   c00g.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
double **X_gj1_T_mR(
double **Ab
)
{
int r= R1;

    while(r<Ab[R_SIZE][C0])
       {
		printf(" Ab :");
        p_mR(Ab, S12,P4,C8);	
        	   
        if(fabs(pivotbest_gj1Ab_mR(Ab,r))>ERROR_E)  
        
		printf(" Ab : pivot[%d][[%d]  "
		       " pivotbest_gj1Ab_mR(Ab,r);\n",r,r); 
        p_mR(Ab, S12,P4,C8);	
         
          zero_under_pivot_gj1Ab_mR(Ab,r);
          
        printf(" Ab : pivot[%d][[%d]  "
               " zero_under_pivot_gj1Ab_mR();\n",r,r); 
        p_mR(Ab, S12,P4,C8);	
        stop();
        clrscrn();       
           
        r++;
       } 
                
/*    while(r>R1)                                                     
    
      zero_above_pivot_gj1Ab_mR(Ab,--r);                              */
        
return(Ab);
}
/* ------------------------------------ */
/* ------------------------------------ */
double **X_gj_TP_mR(
double **Ab
)
{
  X_gj1_T_mR(Ab); 
    
/* sort_c_mR(Ab);  */
/* sort_r_mR(Ab);  */
  
return(Ab);
}
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int r)
{
double **A  = r_mR(                      i_mR(r,r ),999.);
double **b  = r_mR(                      i_mR(r,C1),999.);

double **Ab = c_A_b_Ab_mR(A,b, i_Abr_Ac_bc_mR(r,   r,  C1)); 
/*                             i_Abr_Ac_bc_mR(RAb, CA, Cb));          */

  clrscrn();
  X_gj_TP_mR(Ab);
  printf(" The result of the best pivot and zero below the pivot:\n\n"
         "   gj_TP_mR(Ab);");
  p_mR(Ab, S10,P4,C7);
 
  f_mR(Ab);
  f_mR(b);
  f_mR(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

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


} while(stop_w());

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

Screen output example:

                                                                                       
 Ab :
   +203.0000    +126.0000    -542.0000    -858.0000    -743.0000    +953.0000 
   +505.0000    -485.0000    -331.0000    -698.0000    -848.0000     +71.0000 
   +478.0000    +632.0000    -347.0000    -854.0000    -623.0000    -876.0000 
   +317.0000     +27.0000    -830.0000    +743.0000    +555.0000    +961.0000 
    -90.0000    -103.0000    +454.0000    -231.0000    -504.0000    -728.0000 

 Ab : pivot[1][[1]   pivotbest_gj1Ab_mR(Ab,r);

   -858.0000    +126.0000    -542.0000    +203.0000    -743.0000    +953.0000 
   -698.0000    -485.0000    -331.0000    +505.0000    -848.0000     +71.0000 
   -854.0000    +632.0000    -347.0000    +478.0000    -623.0000    -876.0000 
   +743.0000     +27.0000    -830.0000    +317.0000    +555.0000    +961.0000 
   -231.0000    -103.0000    +454.0000     -90.0000    -504.0000    -728.0000 

 Ab : pivot[1][[1]   zero_under_pivot_gj1Ab_mR();

     +1.0000      -0.1469      +0.6317      -0.2366      +0.8660      -1.1107 
     +0.0000    -587.5035    +109.9277    +339.8555    -243.5548    -704.2844 
     +0.0000    +506.5874    +192.4732    +275.9464    +116.5361   -1824.5571 
     +0.0000    +136.1119   -1299.3543    +492.7914     -88.4138   +1786.2669 
     +0.0000    -136.9231    +599.9231    -144.6538    -303.9615    -984.5769 

 Press return to continue. 


 Ab :
     +1.0000      -0.1469      +0.6317      -0.2366      +0.8660      -1.1107 
     +0.0000    -587.5035    +109.9277    +339.8555    -243.5548    -704.2844 
     +0.0000    +506.5874    +192.4732    +275.9464    +116.5361   -1824.5571 
     +0.0000    +136.1119   -1299.3543    +492.7914     -88.4138   +1786.2669 
     +0.0000    -136.9231    +599.9231    -144.6538    -303.9615    -984.5769 

 Ab : pivot[2][[2]   pivotbest_gj1Ab_mR(Ab,r);

     +1.0000      +0.6317      -0.1469      -0.2366      +0.8660      -1.1107 
     +0.0000   -1299.3543    +136.1119    +492.7914     -88.4138   +1786.2669 
     +0.0000    +192.4732    +506.5874    +275.9464    +116.5361   -1824.5571 
     +0.0000    +109.9277    -587.5035    +339.8555    -243.5548    -704.2844 
     +0.0000    +599.9231    -136.9231    -144.6538    -303.9615    -984.5769 

 Ab : pivot[2][[2]   zero_under_pivot_gj1Ab_mR();

     +1.0000      +0.6317      -0.1469      -0.2366      +0.8660      -1.1107 
     -0.0000      +1.0000      -0.1048      -0.3793      +0.0680      -1.3747 
     +0.0000      +0.0000    +526.7496    +348.9435    +103.4394   -1559.9576 
     +0.0000      +0.0000    -575.9882    +381.5465    -251.0347    -553.1630 
     +0.0000      +0.0000     -74.0790     +82.8722    -344.7829    -159.8421 

 Press return to continue. 


 Ab :
     +1.0000      +0.6317      -0.1469      -0.2366      +0.8660      -1.1107 
     -0.0000      +1.0000      -0.1048      -0.3793      +0.0680      -1.3747 
     +0.0000      +0.0000    +526.7496    +348.9435    +103.4394   -1559.9576 
     +0.0000      +0.0000    -575.9882    +381.5465    -251.0347    -553.1630 
     +0.0000      +0.0000     -74.0790     +82.8722    -344.7829    -159.8421 

 Ab : pivot[3][[3]   pivotbest_gj1Ab_mR(Ab,r);

     +1.0000      +0.6317      -0.1469      -0.2366      +0.8660      -1.1107 
     -0.0000      +1.0000      -0.1048      -0.3793      +0.0680      -1.3747 
     +0.0000      +0.0000    -575.9882    +381.5465    -251.0347    -553.1630 
     +0.0000      +0.0000    +526.7496    +348.9435    +103.4394   -1559.9576 
     +0.0000      +0.0000     -74.0790     +82.8722    -344.7829    -159.8421 

 Ab : pivot[3][[3]   zero_under_pivot_gj1Ab_mR();

     +1.0000      +0.6317      -0.1469      -0.2366      +0.8660      -1.1107 
     -0.0000      +1.0000      -0.1048      -0.3793      +0.0680      -1.3747 
     -0.0000      -0.0000      +1.0000      -0.6624      +0.4358      +0.9604 
     +0.0000      +0.0000      +0.0000    +697.8734    -126.1355   -2065.8333 
     +0.0000      +0.0000      +0.0000     +33.8007    -312.4968     -88.6987 

 Press return to continue. 


 Ab :
     +1.0000      +0.6317      -0.1469      -0.2366      +0.8660      -1.1107 
     -0.0000      +1.0000      -0.1048      -0.3793      +0.0680      -1.3747 
     -0.0000      -0.0000      +1.0000      -0.6624      +0.4358      +0.9604 
     +0.0000      +0.0000      +0.0000    +697.8734    -126.1355   -2065.8333 
     +0.0000      +0.0000      +0.0000     +33.8007    -312.4968     -88.6987 

 Ab : pivot[4][[4]   pivotbest_gj1Ab_mR(Ab,r);

     +1.0000      +0.6317      -0.1469      -0.2366      +0.8660      -1.1107 
     -0.0000      +1.0000      -0.1048      -0.3793      +0.0680      -1.3747 
     -0.0000      -0.0000      +1.0000      -0.6624      +0.4358      +0.9604 
     +0.0000      +0.0000      +0.0000    +697.8734    -126.1355   -2065.8333 
     +0.0000      +0.0000      +0.0000     +33.8007    -312.4968     -88.6987 

 Ab : pivot[4][[4]   zero_under_pivot_gj1Ab_mR();

     +1.0000      +0.6317      -0.1469      -0.2366      +0.8660      -1.1107 
     -0.0000      +1.0000      -0.1048      -0.3793      +0.0680      -1.3747 
     -0.0000      -0.0000      +1.0000      -0.6624      +0.4358      +0.9604 
     +0.0000      +0.0000      +0.0000      +1.0000      -0.1807      -2.9602 
     +0.0000      +0.0000      +0.0000      +0.0000    -306.3876     +11.3575 

 Press return to continue. 


 Ab :
     +1.0000      +0.6317      -0.1469      -0.2366      +0.8660      -1.1107 
     -0.0000      +1.0000      -0.1048      -0.3793      +0.0680      -1.3747 
     -0.0000      -0.0000      +1.0000      -0.6624      +0.4358      +0.9604 
     +0.0000      +0.0000      +0.0000      +1.0000      -0.1807      -2.9602 
     +0.0000      +0.0000      +0.0000      +0.0000    -306.3876     +11.3575 

 Ab : pivot[5][[5]   pivotbest_gj1Ab_mR(Ab,r);

     +1.0000      +0.6317      -0.1469      -0.2366      +0.8660      -1.1107 
     -0.0000      +1.0000      -0.1048      -0.3793      +0.0680      -1.3747 
     -0.0000      -0.0000      +1.0000      -0.6624      +0.4358      +0.9604 
     +0.0000      +0.0000      +0.0000      +1.0000      -0.1807      -2.9602 
     +0.0000      +0.0000      +0.0000      +0.0000    -306.3876     +11.3575 

 Ab : pivot[5][[5]   zero_under_pivot_gj1Ab_mR();

     +1.0000      +0.6317      -0.1469      -0.2366      +0.8660      -1.1107 
     -0.0000      +1.0000      -0.1048      -0.3793      +0.0680      -1.3747 
     -0.0000      -0.0000      +1.0000      -0.6624      +0.4358      +0.9604 
     +0.0000      +0.0000      +0.0000      +1.0000      -0.1807      -2.9602 
     -0.0000      -0.0000      -0.0000      -0.0000      +1.0000      -0.0371 

 Press return to continue. 


 The result of the best pivot and zero below the pivot:

   gj_TP_mR(Ab);
   +1.0000    +0.6317    -0.1469    -0.2366    +0.8660    -1.1107 
   -0.0000    +1.0000    -0.1048    -0.3793    +0.0680    -1.3747 
   -0.0000    -0.0000    +1.0000    -0.6624    +0.4358    +0.9604 
   +0.0000    +0.0000    +0.0000    +1.0000    -0.1807    -2.9602 
   -0.0000    -0.0000    -0.0000    -0.0000    +1.0000    -0.0371 


 Press   return to continue
 Press X return to stop