Advertisement
Guest User

Untitled

a guest
Feb 7th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <math.h>
  4. #include <vector>
  5. #include "cavlib/constants.hh"
  6. #include "gsl/gsl_rng.h"
  7. using namespace std;
  8.  
  9. double evaluate_integral (int N)
  10. {
  11.     gsl_rng *rng = gsl_rng_alloc(gsl_rng_default);
  12.     gsl_rng_set(rng, time(NULL));
  13.    
  14.     const int num_variables = 8;
  15.     std::vector<double> x(num_variables);
  16.     for (int i = 0; i < num_variables; i++)
  17.     {
  18.         x[i] = gsl_rng_unform(rng) * C::pi / 8 ;
  19.     }
  20.    
  21.     double integral = sin (x[0] + x[1] + x[2] + x[3] + x[4] + x[5] + x[6] + x[7]);
  22.     double integral_sum;
  23.     int j = 0;
  24.    
  25.     while (j < N)
  26.     {  
  27.         j++;
  28.         integral_sum = integral_sum + integral;
  29.     }
  30.     return integral_sum;
  31. }
  32.  
  33. int main ()
  34. {
  35.     int N;
  36.     cin >> N;
  37.     double final_result;
  38.     final_result = evaluate_integral (N) / N * pow(10,6) * pow(C::pi / 8,8);
  39.     cout << "This integral evaluates to " << final_result;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement