Maestro 0.3.11
Unified interface for quantum circuit simulation
Loading...
Searching...
No Matches
Utils::Sampling::ProbabilityAlias Class Reference

#include <Sampling.h>

Inheritance diagram for Utils::Sampling::ProbabilityAlias:
Collaboration diagram for Utils::Sampling::ProbabilityAlias:

Public Member Functions

template<class Probability>
 ProbabilityAlias (size_t count, size_t sourceCount, double mass, const Probability &probability, size_t blockSize, const std::vector< double > &masses)
size_t Sample (double value) const
size_t SourceRow (size_t row) const

Protected Member Functions

template<class Index, class Populate>
void BuildAliasTable (std::vector< Index > &aliases, const Populate &populate)
size_t SampleIndex (double v) const
template<class Populate>
void SetAliasTable (size_t count, const Populate &populate)

Static Protected Member Functions

static constexpr bool UseCompactIndices (size_t count)

Protected Attributes

std::vector< uint32_t > compactAliases
std::vector< double > probabilities
std::vector< uint64_t > wideAliases

Static Protected Attributes

static constexpr double oneMinusEps = 1. - std::numeric_limits<double>::epsilon()

Detailed Description

Definition at line 86 of file Sampling.h.

Constructor & Destructor Documentation

◆ ProbabilityAlias()

template<class Probability>
Utils::Sampling::ProbabilityAlias::ProbabilityAlias ( size_t count,
size_t sourceCount,
double mass,
const Probability & probability,
size_t blockSize,
const std::vector< double > & masses )
inline

Definition at line 90 of file Sampling.h.

References Probability(), and Utils::AliasBase::SetAliasTable().

Member Function Documentation

◆ BuildAliasTable()

template<class Index, class Populate>
void Utils::AliasBase::BuildAliasTable ( std::vector< Index > & aliases,
const Populate & populate )
inlineprotectedinherited

Definition at line 40 of file AliasBase.h.

References probabilities.

Referenced by SetAliasTable().

◆ Sample()

size_t Utils::Sampling::ProbabilityAlias::Sample ( double value) const
inline

Definition at line 120 of file Sampling.h.

References Utils::AliasBase::SampleIndex().

◆ SampleIndex()

size_t Utils::AliasBase::SampleIndex ( double v) const
inlineprotectedinherited

◆ SetAliasTable()

template<class Populate>
void Utils::AliasBase::SetAliasTable ( size_t count,
const Populate & populate )
inlineprotectedinherited

◆ SourceRow()

size_t Utils::Sampling::ProbabilityAlias::SourceRow ( size_t row) const
inline

Definition at line 125 of file Sampling.h.

◆ UseCompactIndices()

constexpr bool Utils::AliasBase::UseCompactIndices ( size_t count)
inlinestaticconstexprprotectedinherited

Definition at line 17 of file AliasBase.h.

Referenced by SetAliasTable().

Member Data Documentation

◆ compactAliases

std::vector<uint32_t> Utils::AliasBase::compactAliases
protectedinherited

Definition at line 116 of file AliasBase.h.

Referenced by SampleIndex(), and SetAliasTable().

◆ oneMinusEps

double Utils::AliasBase::oneMinusEps = 1. - std::numeric_limits<double>::epsilon()
staticconstexprprotectedinherited

Definition at line 118 of file AliasBase.h.

Referenced by Utils::Alias::Alias(), and SampleIndex().

◆ probabilities

std::vector<double> Utils::AliasBase::probabilities
protectedinherited

Definition at line 115 of file AliasBase.h.

Referenced by BuildAliasTable(), SampleIndex(), and SetAliasTable().

◆ wideAliases

std::vector<uint64_t> Utils::AliasBase::wideAliases
protectedinherited

Definition at line 117 of file AliasBase.h.

Referenced by SampleIndex(), and SetAliasTable().


The documentation for this class was generated from the following file: