35 noiseModel::Diagonal::shared_ptr
model_;
44 typedef std::shared_ptr<Sampler> shared_ptr;
59 explicit Sampler(
const noiseModel::Diagonal::shared_ptr& model,
60 uint_fast64_t seed = 42u);
67 explicit Sampler(
const noiseModel::Diagonal::shared_ptr& model,
68 std::mt19937_64& rng);
80 explicit Sampler(
const Vector& sigmas, uint_fast64_t seed = 42u);
88 explicit Sampler(
const Vector& sigmas, std::mt19937_64& rng);
94 size_t dim()
const {
return model_->dim(); }
96 Vector sigmas()
const {
return model_->sigmas(); }
98 const noiseModel::Diagonal::shared_ptr& model()
const {
return model_; }
105 Vector sample()
const;
112 template <
typename T>
118 static Vector sampleDiagonal(
const Vector& sigmas, std::mt19937_64* rng);
126 Vector sampleDiagonal(
const Vector& sigmas)
const;
Base class and basic functions for Manifold types.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
A manifold defines a space in which there is a notion of a linear tangent space that can be centered ...
Definition Group.h:37
Sampler(const noiseModel::Diagonal::shared_ptr &model, uint_fast64_t seed=42u)
Create a sampler for the distribution specified by a diagonal NoiseModel with a manually specified se...
Definition Sampler.cpp:26
std::mt19937_64 * externalGenerator_
Non-owning optional external generator. If non-null, sampling uses this.
Definition Sampler.h:41
Vector sample() const
sample from distribution
Definition Sampler.cpp:80
noiseModel::Diagonal::shared_ptr model_
noiseModel created at generation
Definition Sampler.h:35
T perturb(const T &value) const
Perturb a value by sampling in its tangent space and applying retract.
Definition Sampler.h:113
std::mt19937_64 generator_
generator
Definition Sampler.h:38