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

#include <PathIntegralSimulator.h>

Collaboration diagram for Simulators::PathIntegralSimulator:

Public Types

using AmplitudeMap = std::remove_reference_t<decltype(std::declval<QC::PathIntegral::PathIntegralSimulator &>().GetAmplitudes())>

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)
AmplitudeMap & Amplitudes ()
void ApplyGate (const QC::Gates::AppliedGate<> &gate)
std::unique_ptr< PathIntegralSimulator > Clone () 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, AmplitudeMap &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 SetSeed (uint64_t seed)
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 25 of file PathIntegralSimulator.h.

Member Typedef Documentation

◆ AmplitudeMap

using Simulators::PathIntegralSimulator::AmplitudeMap = std::remove_reference_t<decltype(std::declval<QC::PathIntegral::PathIntegralSimulator &>().GetAmplitudes())>

Definition at line 28 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 74 of file PathIntegralSimulator.h.

◆ AmplitudeForOutcome()

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

Definition at line 253 of file PathIntegralSimulator.h.

Referenced by Probability().

◆ AmplitudeFromZero()

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

Definition at line 69 of file PathIntegralSimulator.h.

◆ Amplitudes()

AmplitudeMap & Simulators::PathIntegralSimulator::Amplitudes ( )
inline

Definition at line 289 of file PathIntegralSimulator.h.

◆ ApplyGate()

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

Definition at line 350 of file PathIntegralSimulator.h.

◆ Clone()

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

Definition at line 282 of file PathIntegralSimulator.h.

◆ ConvertCircuit()

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

Definition at line 187 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 303 of file PathIntegralSimulator.h.

References PropagateStep().

◆ GetBranchingForMaestroCircuit()

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

Definition at line 224 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 234 of file PathIntegralSimulator.h.

Referenced by GetBranchingForMaestroCircuit().

◆ GetBranchingForQcsimCircuit()

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

Definition at line 214 of file PathIntegralSimulator.h.

◆ GetMaxDoublingsForBackwardPaths()

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

Definition at line 50 of file PathIntegralSimulator.h.

◆ GetTrimValue()

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

Definition at line 40 of file PathIntegralSimulator.h.

◆ MeasureNoCollapse()

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

Definition at line 272 of file PathIntegralSimulator.h.

◆ MeasureQubit()

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

Definition at line 277 of file PathIntegralSimulator.h.

◆ Probability()

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

Definition at line 267 of file PathIntegralSimulator.h.

References AmplitudeForOutcome().

◆ PropagateStep()

void Simulators::PathIntegralSimulator::PropagateStep ( const QC::Gates::AppliedGate<> & gate,
AmplitudeMap & currentAmplitudes )
inline

Definition at line 209 of file PathIntegralSimulator.h.

Referenced by ExpectationValue().

◆ QubitProbability()

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

Definition at line 248 of file PathIntegralSimulator.h.

◆ Reset()

void Simulators::PathIntegralSimulator::Reset ( )
inline

Definition at line 55 of file PathIntegralSimulator.h.

◆ RestoreState()

void Simulators::PathIntegralSimulator::RestoreState ( )
inline

Definition at line 360 of file PathIntegralSimulator.h.

◆ SaveState()

void Simulators::PathIntegralSimulator::SaveState ( )
inline

Definition at line 355 of file PathIntegralSimulator.h.

◆ SetCircuit()

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

Definition at line 60 of file PathIntegralSimulator.h.

References ConvertCircuit().

◆ SetMaxDoublingsForBackwardPaths()

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

Definition at line 45 of file PathIntegralSimulator.h.

◆ SetSeed()

void Simulators::PathIntegralSimulator::SetSeed ( uint64_t seed)
inline

Definition at line 30 of file PathIntegralSimulator.h.

◆ SetStartZeroState()

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

Definition at line 294 of file PathIntegralSimulator.h.

◆ SetTrimValue()

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

Definition at line 35 of file PathIntegralSimulator.h.


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