C'est probablement une question stupide, mais je ne vois pas ce que je fais de mal ici. J'ai la classe:Erreur de segmentation
#include <sys/time.h>
#include <gsl/gsl_cdf.h>
#include <gsl/gsl_randist.h>
#include <cmath>
#include "randomnumbergenerator.h"
class RandomNumberGenerator
{
gsl_rng * rn;
public:
RandomNumberGenerator();
~RandomNumberGenerator();
double univariate();
void bivariateGaussian(double rho, double &x, double &y);
};
long currentMicroseconds()
{
struct timeval now;
gettimeofday(&now, NULL);
return now.tv_usec;
}
RandomNumberGenerator::RandomNumberGenerator()
{
const gsl_rng_type * T;
gsl_rng_env_setup();
//T = gsl_rng_default;
T = gsl_rng_mt19937;
rn = gsl_rng_alloc (T);
gsl_rng_set(rn,currentMicroseconds());
}
double RandomNumberGenerator::univariate()
{
return gsl_rng_uniform(rn);
}
void RandomNumberGenerator::bivariateGaussian(double rho, double &x, double &y)
{
gsl_ran_bivariate_gaussian (rn, 1.0, 1.0, rho, &x, &y);
}
RandomNumberGenerator::~RandomNumberGenerator()
{
gsl_rng_free (rn);
}
que j'appelle d'ici:
double x;
double y;
rng.bivariateGaussian(rho, x, y);
mais je reçois une erreur de segmentation sur gsl_ran_bivariate_gaussian (rn, 1.0, 1.0, rho, &x, &y);
Toute idée?
@Grzenio, Une autre suggestion est d'essayer de compiler avec '-O0' pour tourner de toute optimisation – Omnifarious
Je pense que vérifier vos erreurs valgrind sera utile –