Linear Algebra and the C Language/a0fj


Install and compile this file in your working directory.

/* ------------------------------------ */
/*  Save as :   c00c.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
double **X_rE_mR(
double **A,
int      n,
double   e         /*  1E-1  1E-0  1E+1 */
)
{
int      r;
int      c;

  for     (r=R1; r<A[R_SIZE][C0]; r++)
 	  for (c=C1; c<A[C_SIZE][C0]; c++)

                    A[r][c]  = r_E(n,e);
 return(A);
}
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int r, int c)
{
double **A   = rE_mR(i_mR(r,c), 999, 1E-0);
double **B   = rE_mR(i_mR(r,c), 999, 1E-1);
double **C   = rE_mR(i_mR(r,c), 999, 1E-2);
double **D   = rE_mR(i_mR(r,c), 999, 1E-3);

  clrscrn();
  printf("rE_mR() : Positive and negative decimal numbers\n\n");
  
  printf(" A :   xxx   rE_mR(A,999,1E-0);");
  p_mR(A,S10,P0,C6);
 
  printf(" B :  xx.x   rE_mR(B,999,0.1E-1);");
  p_mR(B,S10,P1,C6);
  stop();
  
  clrscrn(); 
  printf(" C :  x.xx   rE_mR(C,999,1E-2);");
  p_mR(C,S10,P2,C6);
  
  printf(" D : x.xxx   rE_mR(D,999,1E-3);");
  p_mR(D,S10,P3,C6);
   
  f_mR(A);
  f_mR(B);
  f_mR(C);  
  f_mR(D);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
  
  do
        fun(rp_I(R4),rp_I(C6));

  while(stop_w());       

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Positive and negative decimal numbers:

Screen output example:

                                                                                       
rE_mR() : Positive and negative decimal numbers

 A :   xxx   rE_mR(A,999,1E-0);
      +830       +116       -297       -544       +828 
      +365       -277       -894       -793       +460 
      -203       +982       +212       +183       -667 

 B :  xx.x   rE_mR(B,999,0.1E-1);
     +93.7      +90.9      +80.7      +44.0      -99.9 
     +40.1      -45.5      -84.5      -83.9      +74.3 
     -92.5      +42.2      -32.6      +45.8      -77.4 

 Press return to continue. 


 C :  x.xx   rE_mR(C,999,1E-2);
     -1.79      -3.41      +2.02      +7.31      -2.18 
     -6.27      -5.32      -0.14      -8.68      -0.15 
     +5.90      +9.94      +2.85      -3.63      +5.47 

 D : x.xxx   rE_mR(D,999,1E-3);
    +0.587     -0.566     -0.251     -0.794     +0.845 
    -0.151     -0.068     +0.991     -0.778     -0.372 
    +0.190     +0.170     +0.691     -0.222     -0.916 


 Press   return to continue
 Press X return to stop