Linear Algebra and the C Language/a058


Install and compile this file in your working directory.

/* ------------------------------------ */
/*  Save as :  bestp.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **A         = r_mR(i_mR(r,r),99.);

  clrscrn();
  printf(" A :");
  p_mR(A,S5,P0,C6); 

  printf(" The coefficient with the largest absolute            \n"
         " value is chosen as the pivot (A[R1,C1]).             \n"
         " The rows and columns are swapped to get this pivot.\n\n");
  pivotbest_mR(A,RC1);
  printf(" A :");
  p_mR(A,S5,P0,C6);

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

  srand(time(&t));

do
{
  fun(rp_I(R3)+R2);

} while(stop_w());

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Select the best pivot:

Screen output example:

 A :
  +53   +79    -5   +74   -44 
  -74   +92   -17   +11   +60 
  +72    +2   -62   -74   +49 
  +78   -41   -99    +2   -85 
  +62   -15    +3   +69   -93 

 The coefficient with the largest absolute            
 value is chosen as the pivot (A[R1,C1]).             
 The rows and columns are swapped to get this pivot.

 A :
  -99   -41   +78    +2   -85 
  -17   +92   -74   +11   +60 
  -62    +2   +72   -74   +49 
   -5   +79   +53   +74   -44 
   +3   -15   +62   +69   -93 


 Press   return to continue
 Press X return to stop