snowstorm C++ API Reference

class Composite : public snowstorm::Distribution
#include <Composite.h>

Public Functions

Composite()
virtual ~Composite()
void add(const DistributionPtr &element)
virtual std::vector<double> Sample(I3RandomService&) const override

Draw a sample from the distribution.

virtual double LogPDF(const std::vector<double>&) const override

Compute the log density at x.

virtual size_t size() const override

Get the number of dimensions.

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

std::vector<DistributionConstPtr> elements_

Friends

friend class icecube::serialization::access
class DeltaDistribution : public snowstorm::Distribution

Public Functions

inline DeltaDistribution(const std::vector<double> &x0)
virtual ~DeltaDistribution()
virtual std::vector<double> Sample(I3RandomService&) const override

Draw a sample from the distribution.

virtual double LogPDF(const std::vector<double>&) const override

Compute the log density at x.

inline virtual size_t size() const override

Get the number of dimensions.

Private Functions

DeltaDistribution()
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

std::vector<double> x0_

Friends

friend class icecube::serialization::access
class Distribution : public I3FrameObject
#include <Distribution.h>

Subclassed by snowstorm::Composite, snowstorm::DeltaDistribution, snowstorm::MultivariateNormal, snowstorm::UniformDistribution

Public Functions

virtual ~Distribution()
virtual std::vector<double> Sample(I3RandomService&) const = 0

Draw a sample from the distribution.

virtual double LogPDF(const std::vector<double>&) const = 0

Compute the log density at x.

virtual size_t size() const = 0

Get the number of dimensions.

Private Functions

template<class Archive>
void serialize(Archive &ar, unsigned version)

Friends

friend class icecube::serialization::access
class MultivariateNormal : public snowstorm::Distribution

Public Functions

MultivariateNormal(const I3Matrix &covariance, const std::vector<double> &mean)
virtual ~MultivariateNormal()
virtual std::vector<double> Sample(I3RandomService&) const override

Draw a sample from the distribution.

virtual double LogPDF(const std::vector<double>&) const override

Compute the log density at x.

inline virtual size_t size() const override

Get the number of dimensions.

Private Functions

MultivariateNormal()
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

I3Matrix covarianceL_
std::vector<double> mean_

Friends

friend class icecube::serialization::access
class UniformDistribution : public snowstorm::Distribution

Public Functions

inline UniformDistribution(const std::vector<std::pair<double, double>> &limits)
virtual ~UniformDistribution()
virtual std::vector<double> Sample(I3RandomService&) const override

Draw a sample from the distribution.

virtual double LogPDF(const std::vector<double>&) const override

Compute the log density at x.

inline virtual size_t size() const override

Get the number of dimensions.

Private Functions

UniformDistribution()
template<class Archive>
void serialize(Archive &ar, unsigned version)

Private Members

std::vector<std::pair<double, double>> limits_

Friends

friend class icecube::serialization::access
namespace [anonymous]
namespace snowstorm

Functions

I3_POINTER_TYPEDEFS(Composite)
I3_POINTER_TYPEDEFS(DeltaDistribution)
I3_POINTER_TYPEDEFS(Distribution)
I3_POINTER_TYPEDEFS(MultivariateNormal)
I3_POINTER_TYPEDEFS(UniformDistribution)
namespace std

STL namespace.

file Composite.cxx
#include <icetray/I3Logging.h>
#include “snowstorm/Composite.h

Functions

I3_SERIALIZABLE(snowstorm::Composite)
file Composite.h
#include <vector>
#include “snowstorm/Distribution.h

Functions

I3_CLASS_VERSION (snowstorm::Composite, 0)
file DeltaDistribution.cxx
#include <icetray/I3Logging.h>

Functions

I3_SERIALIZABLE(snowstorm::DeltaDistribution)
file DeltaDistribution.h
#include <vector>
#include <boost/numeric/ublas/triangular.hpp>
#include <dataclasses/I3Matrix.h>
#include “snowstorm/Distribution.h

Functions

I3_CLASS_VERSION (snowstorm::DeltaDistribution, 0)
file Distribution.cxx
#include <icetray/I3Logging.h>
#include <dataclasses/I3Vector.h>
#include “snowstorm/Distribution.h

Functions

I3_SERIALIZABLE(snowstorm::Distribution)
file Distribution.h
#include <vector>
#include <icetray/serialization.h>
#include <icetray/I3PointerTypedefs.h>
#include <icetray/I3FrameObject.h>

Functions

I3_FORWARD_DECLARATION(I3RandomService)
I3_CLASS_VERSION (snowstorm::Distribution, 0)
file MultivariateNormal.cxx
#include <gsl/gsl_linalg.h>
#include <gsl/gsl_blas.h>
#include <icetray/I3Logging.h>
#include <phys-services/I3RandomService.h>

Functions

I3_SERIALIZABLE(snowstorm::MultivariateNormal)
file MultivariateNormal.h
#include <vector>
#include <boost/numeric/ublas/triangular.hpp>
#include <dataclasses/I3Matrix.h>
#include “snowstorm/Distribution.h

Functions

I3_CLASS_VERSION (snowstorm::MultivariateNormal, 0)
file UniformDistribution.cxx
#include <icetray/I3Logging.h>
#include <phys-services/I3RandomService.h>

Functions

I3_SERIALIZABLE(snowstorm::UniformDistribution)
file UniformDistribution.h
#include <vector>
#include <boost/numeric/ublas/triangular.hpp>
#include <dataclasses/I3Matrix.h>
#include “snowstorm/Distribution.h

Functions

I3_CLASS_VERSION (snowstorm::UniformDistribution, 0)
dir icetray
dir private
dir public
dir snowstorm
dir snowstorm
dir snowstorm