Maestro 0.2.11
Unified interface for quantum circuit simulation
Loading...
Searching...
No Matches
Simulators::PathIntegralSimulator Class Reference

#include <PathIntegralSimulator.h>

Collaboration diagram for Simulators::PathIntegralSimulator:

Public Member Functions

std::complex< double > Amplitude (const std::vector< bool > &startState, const std::vector< bool > &endState)
std::complex< double > AmplitudeForOutcome (size_t outcome)
std::complex< double > AmplitudeFromZero (const std::vector< bool > &endState)
std::unordered_map< QC::PathIntegral::FastVectorBool, std::complex< double >, QC::PathIntegral::FastVectorBoolHash > & Amplitudes ()
void ApplyGate (const QC::Gates::AppliedGate<> &gate)
std::unique_ptr< PathIntegralSimulatorClone () const
std::vector< QC::Gates::AppliedGate<> > ConvertCircuit (const std::shared_ptr< Circuits::Circuit<> > &circuit)
std::optional< QC::Gates::AppliedGate<> > ConvertGate (const std::shared_ptr< Circuits::IQuantumGate<> > &gate)
double ExpectationValue (const std::string &pauliStringOrig)
size_t GetBranchingForMaestroCircuit (const std::shared_ptr< Circuits::Circuit<> > &circuit)
size_t GetBranchingForMaestroCircuitFromPos (const std::shared_ptr< Circuits::Circuit<> > &circuit, size_t pos)
size_t GetMaxDoublingsForBackwardPaths () const
double GetTrimValue () const
QC::PathIntegral::FastVectorBool MeasureNoCollapse ()
bool MeasureQubit (size_t qubit)
double Probability (size_t outcome)
void PropagateStep (const QC::Gates::AppliedGate<> &gate, std::unordered_map< QC::PathIntegral::FastVectorBool, std::complex< double >, QC::PathIntegral::FastVectorBoolHash > &currentAmplitudes)
double QubitProbability (size_t qubit, bool value=true)
void Reset ()
void RestoreState ()
void SaveState ()
bool SetCircuit (const std::shared_ptr< Circuits::Circuit<> > &circuit)
void SetMaxDoublingsForBackwardPaths (size_t doublings)
void SetStartZeroState (size_t numQubits)
void SetTrimValue (double val)

Static Public Member Functions

static size_t GetBranchingForQcsimCircuit (const std::vector< QC::Gates::AppliedGate<> > &circuit)

Detailed Description

Definition at line 22 of file PathIntegralSimulator.h.

Member Function Documentation

◆ Amplitude()

std::complex< double > Simulators::PathIntegralSimulator::Amplitude ( const std::vector< bool > & startState,
const std::vector< bool > & endState )
inline

Definition at line 49 of file PathIntegralSimulator.h.

◆ AmplitudeForOutcome()

std::complex< double > Simulators::PathIntegralSimulator::AmplitudeForOutcome ( size_t outcome)
inline

Definition at line 233 of file PathIntegralSimulator.h.

Referenced by Probability().

◆ AmplitudeFromZero()

std::complex< double > Simulators::PathIntegralSimulator::AmplitudeFromZero ( const std::vector< bool > & endState)
inline

Definition at line 44 of file PathIntegralSimulator.h.

◆ Amplitudes()

std::unordered_map< QC::PathIntegral::FastVectorBool, std::complex< double >, QC::PathIntegral::FastVectorBoolHash > & Simulators::PathIntegralSimulator::Amplitudes ( )
inline

Definition at line 266 of file PathIntegralSimulator.h.

◆ ApplyGate()

void Simulators::PathIntegralSimulator::ApplyGate ( const QC::Gates::AppliedGate<> & gate)
inline

Definition at line 325 of file PathIntegralSimulator.h.

◆ Clone()

std::unique_ptr< PathIntegralSimulator > Simulators::PathIntegralSimulator::Clone ( ) const
inline

Definition at line 258 of file PathIntegralSimulator.h.

◆ ConvertCircuit()

std::vector< QC::Gates::AppliedGate<> > Simulators::PathIntegralSimulator::ConvertCircuit ( const std::shared_ptr< Circuits::Circuit<> > & circuit)
inline

Definition at line 171 of file PathIntegralSimulator.h.

References ConvertGate(), and Circuits::kGate.

Referenced by SetCircuit().

◆ ConvertGate()

◆ ExpectationValue()

double Simulators::PathIntegralSimulator::ExpectationValue ( const std::string & pauliStringOrig)
inline

Definition at line 279 of file PathIntegralSimulator.h.

References PropagateStep().

◆ GetBranchingForMaestroCircuit()

size_t Simulators::PathIntegralSimulator::GetBranchingForMaestroCircuit ( const std::shared_ptr< Circuits::Circuit<> > & circuit)
inline

Definition at line 208 of file PathIntegralSimulator.h.

References GetBranchingForMaestroCircuitFromPos().

◆ GetBranchingForMaestroCircuitFromPos()

size_t Simulators::PathIntegralSimulator::GetBranchingForMaestroCircuitFromPos ( const std::shared_ptr< Circuits::Circuit<> > & circuit,
size_t pos )
inline

Definition at line 217 of file PathIntegralSimulator.h.

Referenced by GetBranchingForMaestroCircuit().

◆ GetBranchingForQcsimCircuit()

size_t Simulators::PathIntegralSimulator::GetBranchingForQcsimCircuit ( const std::vector< QC::Gates::AppliedGate<> > & circuit)
inlinestatic

Definition at line 200 of file PathIntegralSimulator.h.

◆ GetMaxDoublingsForBackwardPaths()

size_t Simulators::PathIntegralSimulator::GetMaxDoublingsForBackwardPaths ( ) const
inline

Definition at line 32 of file PathIntegralSimulator.h.

◆ GetTrimValue()

double Simulators::PathIntegralSimulator::GetTrimValue ( ) const
inline

Definition at line 26 of file PathIntegralSimulator.h.

◆ MeasureNoCollapse()

QC::PathIntegral::FastVectorBool Simulators::PathIntegralSimulator::MeasureNoCollapse ( )
inline

Definition at line 250 of file PathIntegralSimulator.h.

◆ MeasureQubit()

bool Simulators::PathIntegralSimulator::MeasureQubit ( size_t qubit)
inline

Definition at line 254 of file PathIntegralSimulator.h.

◆ Probability()

double Simulators::PathIntegralSimulator::Probability ( size_t outcome)
inline

Definition at line 246 of file PathIntegralSimulator.h.

References AmplitudeForOutcome().

◆ PropagateStep()

void Simulators::PathIntegralSimulator::PropagateStep ( const QC::Gates::AppliedGate<> & gate,
std::unordered_map< QC::PathIntegral::FastVectorBool, std::complex< double >, QC::PathIntegral::FastVectorBoolHash > & currentAmplitudes )
inline

Definition at line 192 of file PathIntegralSimulator.h.

Referenced by ExpectationValue().

◆ QubitProbability()

double Simulators::PathIntegralSimulator::QubitProbability ( size_t qubit,
bool value = true )
inline

Definition at line 229 of file PathIntegralSimulator.h.

◆ Reset()

void Simulators::PathIntegralSimulator::Reset ( )
inline

Definition at line 34 of file PathIntegralSimulator.h.

◆ RestoreState()

void Simulators::PathIntegralSimulator::RestoreState ( )
inline

Definition at line 331 of file PathIntegralSimulator.h.

◆ SaveState()

void Simulators::PathIntegralSimulator::SaveState ( )
inline

Definition at line 329 of file PathIntegralSimulator.h.

◆ SetCircuit()

bool Simulators::PathIntegralSimulator::SetCircuit ( const std::shared_ptr< Circuits::Circuit<> > & circuit)
inline

Definition at line 36 of file PathIntegralSimulator.h.

References ConvertCircuit().

◆ SetMaxDoublingsForBackwardPaths()

void Simulators::PathIntegralSimulator::SetMaxDoublingsForBackwardPaths ( size_t doublings)
inline

Definition at line 28 of file PathIntegralSimulator.h.

◆ SetStartZeroState()

void Simulators::PathIntegralSimulator::SetStartZeroState ( size_t numQubits)
inline

Definition at line 271 of file PathIntegralSimulator.h.

◆ SetTrimValue()

void Simulators::PathIntegralSimulator::SetTrimValue ( double val)
inline

Definition at line 24 of file PathIntegralSimulator.h.


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