Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
MarginalFactory.h
Go to the documentation of this file.
1#ifndef DISTRIBUTION_FACTORY_H
2#define DISTRIBUTION_FACTORY_H
3
4#include <memory>
5#include <random>
6#include <algorithm>
7#include <variant>
8
9#include "MarginalType.h"
11#include "GaussianMarginal.h"
12#include "FlatMarginal.h"
13#include "LikelihoodMarginal.h"
15
40using MarginalConfig = std::variant<FlatMarginalCfg, GaussianMarginalCfg, SplitGaussianMarginalCfg, LikelihoodMarginalCfg>;
41
66public:
83 static std::unique_ptr<IMarginalDistribution> create(MarginalType name, MarginalConfig cfg, unsigned int seed = std::random_device{}());
84};
85
86#endif
Interface for one-dimensional marginal probability distributions.
Enumeration of supported one-dimensional marginal distribution types.
MarginalType
Supported marginal-distribution families.
Asymmetric split-Gaussian marginal distribution.
Static factory creating scalar marginal-distribution objects.
static std::unique_ptr< IMarginalDistribution > create(MarginalType name, MarginalConfig cfg, unsigned int seed=std::random_device{}())
Creates a concrete marginal-distribution object.