CPP   16

xbalanc

Guest on 20th July 2022 04:20:06 PM

  1. #include <iostream>
  2. #include <iomanip>
  3. #include <cmath>
  4. #include "nr.h"
  5. using namespace std;
  6.  
  7. // Driver for routine balanc
  8.  
  9. int main(void)
  10. {
  11.         const int NP=5;
  12.         int i,j;
  13.         Vec_DP c(NP),r(NP);
  14.         Mat_DP a(NP,NP);
  15.  
  16.         for (i=0;i<NP;i++)
  17.           for (j=0;j<NP;j++)
  18.             a[i][j] = (!(i & 1) && (j & 1) ? 100.0 : 1.0);
  19.         // Write norms
  20.         for (i=0;i<NP;i++) {
  21.           r[i]=c[i]=0.0;
  22.           for (j=0;j<NP;j++) {
  23.             r[i] += fabs(a[i][j]);
  24.             c[i] += fabs(a[j][i]);
  25.           }
  26.         }
  27.         cout << "rows:" << endl;
  28.         cout << fixed << setprecision(2);
  29.         for (i=0;i<NP;i++) cout << setw(12) << r[i];
  30.         cout << endl << "columns:" << endl;
  31.         for (i=0;i<NP;i++) cout << setw(12) << c[i];
  32.         cout << endl << endl << "***** Balancing matrix *****" << endl;
  33.         NR::balanc(a);
  34.         // Write norms
  35.         for (i=0;i<NP;i++) {
  36.           r[i]=c[i]=0.0;
  37.           for (j=0;j<NP;j++) {
  38.             r[i] += fabs(a[i][j]);
  39.             c[i] += fabs(a[j][i]);
  40.           }
  41.         }
  42.         cout << "rows:" << endl;
  43.         for (i=0;i<NP;i++) cout << setw(12) << r[i];
  44.         cout << endl << "columns:" << endl;
  45.         for (i=0;i<NP;i++) cout << setw(12) << c[i];
  46.         cout << endl;
  47.         return 0;
  48. }

Raw Paste


Login or Register to edit or fork this paste. It's free.