Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <math.h>
- #include <vector>
- #include "cavlib/constants.hh"
- #include "gsl/gsl_rng.h"
- using namespace std;
- double evaluate_integral (int N)
- {
- gsl_rng *rng = gsl_rng_alloc(gsl_rng_default);
- gsl_rng_set(rng, time(NULL));
- const int num_variables = 8;
- std::vector<double> x(num_variables);
- for (int i = 0; i < num_variables; i++)
- {
- x[i] = gsl_rng_unform(rng) * C::pi / 8 ;
- }
- double integral = sin (x[0] + x[1] + x[2] + x[3] + x[4] + x[5] + x[6] + x[7]);
- double integral_sum;
- int j = 0;
- while (j < N)
- {
- j++;
- integral_sum = integral_sum + integral;
- }
- return integral_sum;
- }
- int main ()
- {
- int N;
- cin >> N;
- double final_result;
- final_result = evaluate_integral (N) / N * pow(10,6) * pow(C::pi / 8,8);
- cout << "This integral evaluates to " << final_result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement