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

#include <Alias.h>

Inheritance diagram for Utils::Alias:
Collaboration diagram for Utils::Alias:

Public Member Functions

 Alias ()=delete
 Alias (const PathIntegralAmplitudeMap &amplitudesMap)
template<class T = Eigen::VectorXcd>
 Alias (const T &statevector)
size_t Sample (double v) 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 47 of file Alias.h.

Constructor & Destructor Documentation

◆ Alias() [1/3]

Utils::Alias::Alias ( )
delete

◆ Alias() [2/3]

template<class T = Eigen::VectorXcd>
Utils::Alias::Alias ( const T & statevector)
inline

Definition at line 52 of file Alias.h.

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

◆ Alias() [3/3]

Utils::Alias::Alias ( const PathIntegralAmplitudeMap & amplitudesMap)
inline

Definition at line 96 of file Alias.h.

References Utils::PathIntegralMass(), 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::Alias::Sample ( double v) const
inline

Definition at line 110 of file Alias.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

◆ 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: