Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
GenericCopula.h
Go to the documentation of this file.
1#ifndef GENERICCOPULA_H
2#define GENERICCOPULA_H
3
4#include <random>
5#include <gsl/gsl_rng.h>
6#include <gsl/gsl_randist.h>
7#include <gsl/gsl_cdf.h>
8#include <memory>
9
10#include "ICopula.h"
11
12using gsl_rng_sptr = std::unique_ptr<gsl_rng, decltype(&gsl_rng_free)>;
13
30constexpr double CLIP_U {1e-15};
31
44class GenericCopula: public ICopula {
45public:
51 explicit GenericCopula(unsigned int seed = std::random_device{}());
52
53protected:
54 const gsl_rng_type* rng_tp {gsl_rng_mt19937};
55 gsl_rng_sptr eng_{nullptr, &gsl_rng_free};
56};
57
58#endif // GENERICCOPULA_H
std::unique_ptr< gsl_rng, decltype(&gsl_rng_free)> gsl_rng_sptr
constexpr double CLIP_U
Small clipping threshold used to avoid exact 0 or 1 uniforms.
Abstract interface for multivariate copulas.
Partial base implementation of a copula with RNG support.
const gsl_rng_type * rng_tp
gsl_rng_sptr eng_
GSL RNG type used by the copula.