1#ifndef JOINTDISTRIBUTION_H
2#define JOINTDISTRIBUTION_H
15#include <gsl/gsl_matrix.h>
16#include <gsl/gsl_linalg.h>
57 std::unique_ptr<ICopula> copula);
65 std::vector<std::vector<double>>
sample(std::size_t n)
const;
72 std::vector<double>
sample()
const;
88 double logpdf(std::vector<double> x)
const;
120 std::vector<std::unique_ptr<IMarginalDistribution>> marginals_;
121 std::unique_ptr<ICopula> copula_;
Abstract interface for multivariate copulas.
Interface for one-dimensional marginal probability distributions.
std::vector< double > get_stds()
Returns the standard deviations of all marginals.
RealMatrix curvature(std::vector< double > x) const
Computes the negative Hessian of the joint log-density.
std::size_t dim()
Returns the dimension of the random vector.
double logpdf(std::vector< double > x) const
Evaluates the joint log-density at a given point.
std::vector< std::vector< double > > sample(std::size_t n) const
Draws multiple samples from the joint distribution.