File indexing completed on 2024-11-03 03:35:09
0001 #include <fstream> 0002 #include <iostream> 0003 #include <math.h> 0004 0005 #include <gsl/gsl_randist.h> 0006 #include <gsl/gsl_rng.h> 0007 0008 int main() { 0009 std::string fileName = "out_1M_5pathes.bin"; 0010 int count = 1000000; 0011 int pathes = 5; 0012 0013 double delta = 0.25; 0014 int dt = 1; 0015 double sigma = std::pow(delta, 2) * dt; 0016 double path[pathes] = {0.0}; 0017 0018 std::ofstream ostrm(fileName, std::ios::binary); 0019 0020 // create a generator chosen by the environment variable GSL_RNG_TYPE 0021 gsl_rng_env_setup(); 0022 const gsl_rng_type* T = gsl_rng_default; 0023 gsl_rng* r = gsl_rng_alloc(T); 0024 gsl_rng_set(r, 12345); 0025 0026 // data 0027 for (int i = 0; i < count; ++i) { 0028 double x = i * dt; 0029 ostrm.write(reinterpret_cast<char*>(&x), sizeof(double)); 0030 0031 for (int p = 0; p < pathes; ++p) { 0032 path[p] += gsl_ran_gaussian(r, sigma); 0033 ostrm.write(reinterpret_cast<char*>(&path[p]), sizeof(double)); 0034 } 0035 } 0036 }