Aller au contenu

Mathc matrices/h11e

Un livre de Wikilivres.


Bibliothèque



Installer ce fichier dans votre répertoire de travail.

vgj2piv.h
/* ------------------------------------ */
/*  Save as :   vgj2piv.h               */
/* ------------------------------------ */
double pivotbest_gj2Ab_mR(
double **Ab,
int pivot_r,
int pivot_c
)
{
double pivotbest = fabs(Ab[pivot_r][pivot_c]);
int best_r = pivot_r;
int best_c = pivot_c;
int r;
int c;

  for   ( r=pivot_r; r<Ab[R_SIZE  ][C0]; r++)
    for ( c=pivot_c; c<Ab[C_SIZE_A][C0]; c++) 

            if(fabs(Ab[r][c])>pivotbest)
             {
               pivotbest = fabs(Ab[r][c]);
                  best_r = r;
                  best_c = c;
             }

 if(best_r!=pivot_r)   swapR_mR(Ab,pivot_r,best_r);
 if(best_c!=pivot_c) swapC_withR0_mR(Ab,pivot_c,best_c);

 return(pivotbest);
}
/* ------------------------------------ */
void zero_under_pivot_gj2Ab_mR(
double **Ab,
int pivot_r,
int pivot_c
)
{
double pivot = Ab[pivot_r][pivot_c];
int r;

  if(fabs(pivot)>ERROR_E)
    {
     mulR_mR( Ab,(1./pivot),pivot_r);

     for( r=(pivot_r+C1); r<Ab[R_SIZE][C0]; r++) 

         addR_mR( Ab,(-Ab[r][pivot_c]),pivot_r,r);
    }
}
/* ------------------------------------ */
double **zero_below_pivot_gj2Ab_mR(
double **Ab,
int pivot_r,
int pivot_c
)
{
int r;

  if(fabs(Ab[pivot_r][pivot_c])>ERROR_E)

     for( r=(pivot_r-C1); r>=R1; r--) 

        addR_mR( Ab,(-Ab[r][pivot_c]),pivot_r,r);
        
return(Ab);
}
/* ------------------------------------ */
/* ------------------------------------ */
void zero4_under_all_pivot_mR(
double **Ab
)
{
int r= R1;
int c= C1;

    while((r<Ab[R_SIZE][C0]) &&
          (c<Ab[C_SIZE_A][C0])
         )
       {
        if(fabs(pivotbest_gj2Ab_mR(Ab,r,r))>ERROR_E)  
                zero_under_pivot_gj2Ab_mR(Ab,r,r);
        r++;
       }
}
/* ------------------------------------ */
/* ------------------------------------ */