Changeset 812 in Sophya for trunk/SophyaProg/Tests/lpk.cc


Ignore:
Timestamp:
Apr 5, 2000, 5:43:18 PM (25 years ago)
Author:
ansari
Message:

Amelioration programmes test de TArray et Lapack - Reza 5/4/2000

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaProg/Tests/lpk.cc

    r807 r812  
    1212
    1313
     14void lpk_tarr(int n);
     15void lpk_tmtx(int n);
     16
    1417int main(int narg, char* arg[])
    1518{
     
    1922
    2023
     24
     25  if (narg < 2) {
     26    cout << " lpk - LinAlg/LapackServer test - Usage lpk t/s [size=5] [prtlev=0] [nprtmax=100]\n"
     27         << " t:  lpk_tarr() rztest_lapack with TArray<r_4> \n"
     28         << " s:  lpk_tmtx() LapackServer with TMatrix<r_8> \n" << endl;
     29    exit(0);
     30  }
    2131  int n = 5;
     32  int opt = 's';
     33  opt = *(arg[1]);
     34  if (narg > 2) n = atoi(arg[2]);
     35  int nprt = 100;
     36  int prtlev = 1;
     37  if (narg > 3) prtlev = atoi(arg[3]);
     38  if (narg > 4) nprt = atoi(arg[4]);
     39
     40  BaseArray::SetMaxPrint(nprt, prtlev);
     41  try {
     42    if (opt == 's') lpk_tmtx(n);
     43    else lpk_tarr(n);
     44  }
     45  catch (PThrowable exc) {
     46    cerr << " catched Exception (lpk.cc) " << exc.Msg() << endl;
     47  } 
     48  catch (...) {
     49    cerr << " catched unknown (...) exception (lpk.cc) " << endl;
     50  }
     51 
     52  PrtTim(" End of lpk LinAlg/Lapack test ");
     53  cout << " ---------------  END of Programme -------------- " << endl;
     54}
     55
     56
     57void lpk_tmtx(int n)
     58{
    2259  int i,j,k;
     60  BaseArray::SetDefaultMemoryMapping(BaseArray::FortranMemoryMapping);
     61  Matrix a(n,n);
     62  for(i=0; i<n; i++)
     63    for(j=0; j<n; j++)  a(j,i) = GauRnd(0., 1.);
     64  cout << " ------------ Matrix A = \n " << a << "\n" << endl;
     65 
     66  Vector x(n), b;
     67  //  Matrix  x(n,1), b;
     68  cout << " ------------ Vector X = \n " << x << "\n" << endl;
     69  for(i=0; i<n; i++) x(i) = GauRnd(2., 1.5);
     70  b = a*x;
    2371
    24   if (narg > 1) n = atoi(arg[1]);
    25   cout << ":::::::: rztest_lapack - Size=" << n << "  ::::::::: " << endl;
    26   try {
     72  //  cout << ":::::::: rztest_lapack - Size=" << n << "  ::::::::: " << endl;
     73  cout << " ------- lpk_tmtx() LapackServerTest Using TMatrix<r_8> -------- " << endl;
     74  cout << " ------------ Matrix A = \n " << a << "\n" << endl;
     75  cout << " ------------ Matrix X = \n " << x << "\n" << endl;
     76  cout << " ------------ Matrix B = \n " << b << "\n" << endl;
     77
     78  cout << "\n   Calling LapackLinSolve(a,b) .... " << endl;
     79  LapackLinSolve(a,b);
     80
     81  cout << " ------------ Result B(=X ?) = \n " << b << "\n" << endl;
     82  Vector diff = b-x;
     83  cout << " ------------ Vector diff B-X = \n " << diff << "\n" << endl;
     84
     85}
     86
     87void lpk_tarr(int n)
     88{
     89  int i,j,k;
    2790  TArray<r_4> a(n,n);
    2891  for(i=0; i<n; i++)
     
    38101  }
    39102
     103  //  cout << ":::::::: rztest_lapack - Size=" << n << "  ::::::::: " << endl;
     104  cout << " ------- lpk_tarr() LapaackTest Using TArray<r_4> -------- " << endl;
    40105  cout << " ------------ Array A = \n " << a << "\n" << endl;
    41106  cout << " ------------ Array X = \n " << x << "\n" << endl;
     
    47112
    48113  cout << " ------------ Result B(=X ?) = \n " << b << "\n" << endl;
    49 
    50   PrtTim(" End of lpk (rztest_lapack) ");
    51   }
    52   catch (PThrowable exc) {
    53     cerr << " catched Exception (rztest_lapack) " << exc.Msg() << endl;
    54   } 
    55   catch (...) {
    56     cerr << " catched unknown (...) exception (rztest_lapack) " << endl;
    57   } 
    58  
    59   cout << " ---------------  END of Programme -------------- " << endl;
    60114}
Note: See TracChangeset for help on using the changeset viewer.