www.pudn.com > CRGAB.zip > MTXIO.C


/*----------------------------------------------------------------------- 
   Main File : mtx.exe 
   File Name : mtxio.c 
 
   Purpose - Allocation, initialization and output routines 
-----------------------------------------------------------------------*/ 
#include "mtx.h" 
#include "mtxcle.h" 
#include "mtxio.h" 
 
 
  /* Remove trailing '_' for operations timing */ 
#define TIME_ 
 
#ifdef TIME 
#include  
#endif 
 
extern int MSize; 
extern Mtype *Aptr; 
extern Mtype *bptr; 
extern int P; 
extern int display_all; 
 
 
void read_matrix() 
/* 
  Assumes all input is correct - does no checking! 
*/ 
{ 
  int i,j; 
  char s[30]; 
  const long int n = MSize; 
 
  if((Aptr=(Mtype *)alloc(n*n,sizeof(Mtype)))==NULL) 
    error(errHISIZE); 
  if((bptr=(Mtype *)alloc(n,sizeof(Mtype)))==NULL) 
    error(errHISIZE); 
 
  for(i=0; i < n; ++i) 
  { 
    for(j=0 ; j < n; ++j)       /*get A*/ 
    { 
      fscanf(stdin,"%s",s); 
      A(i,j) = atoMtype(s); 
    } 
    fscanf(stdin,"%s",s);       /*get b*/ 
    b(i) = atoMtype(s); 
  } 
} 
 
 
void print_matrix(int d_flag) 
{ 
  int i,j; 
  const long int n = MSize; 
  static int mat_flag; 
 
  if(d_flag==NO_SHOW) 
    return; 
  if(d_flag != SOLUTION_ONLY) 
    printf("%s\n",mat_flag++ ? "\nOutput Matrix--\n" : "\nInput Matrix--\n"); 
  for(i=0; i < n; ++i) 
  { 
    if(d_flag==SHOW_MATRIX) 
      for(j=0 ; j < n; ++j) 
        printf("  %*.*G",4+P,P,A(i,j)); 
    printf("  %*.*G\n",4+P,P,b(i)); 
  } 
  printf("\n"); 
 
#ifdef TIME 
  { 
    static int flag; 
    if(flag) 
      print_time; 
    ++flag; 
  } 
#endif 
 
}