CPP   23

xbeschb

Guest on 20th July 2022 04:21:39 PM

  1. #include <string>
  2. #include <iostream>
  3. #include <iomanip>
  4. #include <cmath>
  5. #include "nr.h"
  6. using namespace std;
  7.  
  8. // Driver for routine beschb
  9.  
  10. int main(void)
  11. {
  12.         string txt;
  13.         DP gam1,gam2,gampl,gammi,x,xgam1,xgam2,xgampl,xgammi;
  14.  
  15.         for (;;) {
  16.           cout << "Enter x (magnitude < 0.5):" << endl;
  17.           cin >> x;
  18.           if ((x < -0.5) || (x > 0.5) || (x == 0.0)) break;
  19.           NR::beschb(x,xgam1,xgam2,xgampl,xgammi);
  20.           cout << setw(5) << "x" << endl;
  21.           cout << setw(15) << "gam1" << setw(17) << "gam2";
  22.           cout << setw(18) << "gampl" << setw(16) << "gammi" << endl;
  23.           cout << setw(15) << "xgam1" << setw(17) << "xgam2";
  24.           cout << setw(18) << "xgampl" << setw(16) << "xgammi" << endl;
  25.           gampl=1.0/exp(NR::gammln(DP(1.0+x)));
  26.           gammi=1.0/exp(NR::gammln(DP(1.0-x)));
  27.           gam1=(gammi-gampl)/(2.0*x);
  28.           gam2=(gammi+gampl)/2.0;
  29.           cout << scientific << setprecision(2);
  30.           cout << setw(5) << x << endl;
  31.           cout << scientific << setprecision(6);
  32.           cout << setw(16) << gam1 << setw(17) << gam2;
  33.           cout << setw(17) << gampl << setw(17) << gammi << endl;
  34.           cout << setw(16) << xgam1 << setw(17) << xgam2;
  35.           cout << setw(17) << xgampl << setw(17) << xgammi << endl;
  36.           cout << endl << endl;
  37.         }
  38.         return 0;
  39. }

Raw Paste


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