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

#include <QCSimExtendedStabilizer.h>

Collaboration diagram for Simulators::QCSimExtendedStabilizer:

Public Member Functions

 QCSimExtendedStabilizer (size_t nrQubits)
 QCSimExtendedStabilizer (size_t nrQubits, const QC::ExtendedStabilizerApproximationPolicy &policy)
void ApplyCCX (size_t controlQubit1, size_t controlQubit2, size_t targetQubit)
void ApplyCH (size_t controlQubit, size_t targetQubit)
void ApplyCP (size_t controlQubit, size_t targetQubit, double lambda)
void ApplyCRX (size_t controlQubit, size_t targetQubit, double angle)
void ApplyCRY (size_t controlQubit, size_t targetQubit, double angle)
void ApplyCRZ (size_t controlQubit, size_t targetQubit, double angle)
void ApplyCS (size_t controlQubit, size_t targetQubit)
void ApplyCSDAG (size_t controlQubit, size_t targetQubit)
void ApplyCSwap (size_t controlQubit, size_t targetQubit1, size_t targetQubit2)
void ApplyCSX (size_t controlQubit, size_t targetQubit)
void ApplyCSXDAG (size_t controlQubit, size_t targetQubit)
void ApplyCU (size_t controlQubit, size_t targetQubit, double theta, double phi, double lambda, double gamma=0.0)
void ApplyCX (size_t controlQubit, size_t targetQubit)
void ApplyCY (size_t controlQubit, size_t targetQubit)
void ApplyCZ (size_t controlQubit, size_t targetQubit)
void ApplyH (size_t qubit)
void ApplyISWAP (size_t qubit1, size_t qubit2)
void ApplyISWAPDG (size_t qubit1, size_t qubit2)
void ApplyK (size_t qubit)
void ApplyP (size_t qubit, double lambda)
void ApplyRX (size_t qubit, double angle)
void ApplyRY (size_t qubit, double angle)
void ApplyRZ (size_t qubit, double angle)
void ApplyS (size_t qubit)
void ApplySDG (size_t qubit)
void ApplySWAP (size_t qubit1, size_t qubit2)
void ApplySX (size_t qubit)
void ApplySXDG (size_t qubit)
void ApplyT (size_t qubit)
void ApplyTDG (size_t qubit)
void ApplyU (size_t qubit, double theta, double phi, double lambda, double gamma=0.0)
void ApplyX (size_t qubit)
void ApplyY (size_t qubit)
void ApplyZ (size_t qubit)
std::unique_ptr< QCSimExtendedStabilizer > Clone () const
std::unique_ptr< QCSimExtendedStabilizer > CloneWithSeed (uint64_t seed) const
double ExpectationValue (const std::string &pauliString) const
double GetApproximationErrorBound () const noexcept
const QC::ExtendedStabilizerApproximationPolicy & GetApproximationPolicy () const noexcept
const QC::ExtendedStabilizerApproximationStatistics & GetApproximationStatistics () const noexcept
const std::vector< QC::ExtendedFrame > & GetFrames () const noexcept
bool GetMultithreading () const
size_t GetNrQubits () const
double GetQubitProbability (size_t qubit) const
bool Measure (size_t qubit)
void Reset (size_t nrQubits)
void RestoreState ()
std::unordered_map< size_t, size_t > SampleCounts (const std::vector< size_t > &qubits, size_t shots)
std::unordered_map< std::vector< bool >, size_t > SampleCountsMany (const std::vector< size_t > &qubits, size_t shots)
void SaveState ()
void SetApproximationPolicy (const QC::ExtendedStabilizerApproximationPolicy &policy)
void SetMultithreading (bool enable=true)
void SetRandomSeed (std::mt19937::result_type seed)
void SetSeed (uint64_t seed)

Detailed Description

Definition at line 31 of file QCSimExtendedStabilizer.h.

Constructor & Destructor Documentation

◆ QCSimExtendedStabilizer() [1/2]

Simulators::QCSimExtendedStabilizer::QCSimExtendedStabilizer ( size_t nrQubits)
inlineexplicit

Definition at line 34 of file QCSimExtendedStabilizer.h.

Referenced by Clone(), and CloneWithSeed().

◆ QCSimExtendedStabilizer() [2/2]

Simulators::QCSimExtendedStabilizer::QCSimExtendedStabilizer ( size_t nrQubits,
const QC::ExtendedStabilizerApproximationPolicy & policy )
inline

Definition at line 38 of file QCSimExtendedStabilizer.h.

Member Function Documentation

◆ ApplyCCX()

void Simulators::QCSimExtendedStabilizer::ApplyCCX ( size_t controlQubit1,
size_t controlQubit2,
size_t targetQubit )
inline

Definition at line 321 of file QCSimExtendedStabilizer.h.

◆ ApplyCH()

void Simulators::QCSimExtendedStabilizer::ApplyCH ( size_t controlQubit,
size_t targetQubit )
inline

Definition at line 266 of file QCSimExtendedStabilizer.h.

◆ ApplyCP()

void Simulators::QCSimExtendedStabilizer::ApplyCP ( size_t controlQubit,
size_t targetQubit,
double lambda )
inline

Definition at line 291 of file QCSimExtendedStabilizer.h.

◆ ApplyCRX()

void Simulators::QCSimExtendedStabilizer::ApplyCRX ( size_t controlQubit,
size_t targetQubit,
double angle )
inline

Definition at line 276 of file QCSimExtendedStabilizer.h.

◆ ApplyCRY()

void Simulators::QCSimExtendedStabilizer::ApplyCRY ( size_t controlQubit,
size_t targetQubit,
double angle )
inline

Definition at line 281 of file QCSimExtendedStabilizer.h.

◆ ApplyCRZ()

void Simulators::QCSimExtendedStabilizer::ApplyCRZ ( size_t controlQubit,
size_t targetQubit,
double angle )
inline

Definition at line 286 of file QCSimExtendedStabilizer.h.

◆ ApplyCS()

void Simulators::QCSimExtendedStabilizer::ApplyCS ( size_t controlQubit,
size_t targetQubit )
inline

Definition at line 296 of file QCSimExtendedStabilizer.h.

◆ ApplyCSDAG()

void Simulators::QCSimExtendedStabilizer::ApplyCSDAG ( size_t controlQubit,
size_t targetQubit )
inline

Definition at line 301 of file QCSimExtendedStabilizer.h.

◆ ApplyCSwap()

void Simulators::QCSimExtendedStabilizer::ApplyCSwap ( size_t controlQubit,
size_t targetQubit1,
size_t targetQubit2 )
inline

Definition at line 316 of file QCSimExtendedStabilizer.h.

◆ ApplyCSX()

void Simulators::QCSimExtendedStabilizer::ApplyCSX ( size_t controlQubit,
size_t targetQubit )
inline

Definition at line 306 of file QCSimExtendedStabilizer.h.

◆ ApplyCSXDAG()

void Simulators::QCSimExtendedStabilizer::ApplyCSXDAG ( size_t controlQubit,
size_t targetQubit )
inline

Definition at line 311 of file QCSimExtendedStabilizer.h.

◆ ApplyCU()

void Simulators::QCSimExtendedStabilizer::ApplyCU ( size_t controlQubit,
size_t targetQubit,
double theta,
double phi,
double lambda,
double gamma = 0.0 )
inline

Definition at line 271 of file QCSimExtendedStabilizer.h.

◆ ApplyCX()

void Simulators::QCSimExtendedStabilizer::ApplyCX ( size_t controlQubit,
size_t targetQubit )
inline

Definition at line 197 of file QCSimExtendedStabilizer.h.

◆ ApplyCY()

void Simulators::QCSimExtendedStabilizer::ApplyCY ( size_t controlQubit,
size_t targetQubit )
inline

Definition at line 202 of file QCSimExtendedStabilizer.h.

◆ ApplyCZ()

void Simulators::QCSimExtendedStabilizer::ApplyCZ ( size_t controlQubit,
size_t targetQubit )
inline

Definition at line 207 of file QCSimExtendedStabilizer.h.

◆ ApplyH()

void Simulators::QCSimExtendedStabilizer::ApplyH ( size_t qubit)
inline

Definition at line 74 of file QCSimExtendedStabilizer.h.

◆ ApplyISWAP()

void Simulators::QCSimExtendedStabilizer::ApplyISWAP ( size_t qubit1,
size_t qubit2 )
inline

Definition at line 217 of file QCSimExtendedStabilizer.h.

◆ ApplyISWAPDG()

void Simulators::QCSimExtendedStabilizer::ApplyISWAPDG ( size_t qubit1,
size_t qubit2 )
inline

Definition at line 222 of file QCSimExtendedStabilizer.h.

◆ ApplyK()

void Simulators::QCSimExtendedStabilizer::ApplyK ( size_t qubit)
inline

Definition at line 99 of file QCSimExtendedStabilizer.h.

◆ ApplyP()

void Simulators::QCSimExtendedStabilizer::ApplyP ( size_t qubit,
double lambda )
inline

Definition at line 242 of file QCSimExtendedStabilizer.h.

References ApplyRZ().

◆ ApplyRX()

void Simulators::QCSimExtendedStabilizer::ApplyRX ( size_t qubit,
double angle )
inline

Definition at line 227 of file QCSimExtendedStabilizer.h.

◆ ApplyRY()

void Simulators::QCSimExtendedStabilizer::ApplyRY ( size_t qubit,
double angle )
inline

Definition at line 232 of file QCSimExtendedStabilizer.h.

◆ ApplyRZ()

void Simulators::QCSimExtendedStabilizer::ApplyRZ ( size_t qubit,
double angle )
inline

Definition at line 237 of file QCSimExtendedStabilizer.h.

Referenced by ApplyP(), ApplyT(), and ApplyTDG().

◆ ApplyS()

void Simulators::QCSimExtendedStabilizer::ApplyS ( size_t qubit)
inline

Definition at line 79 of file QCSimExtendedStabilizer.h.

◆ ApplySDG()

void Simulators::QCSimExtendedStabilizer::ApplySDG ( size_t qubit)
inline

Definition at line 182 of file QCSimExtendedStabilizer.h.

◆ ApplySWAP()

void Simulators::QCSimExtendedStabilizer::ApplySWAP ( size_t qubit1,
size_t qubit2 )
inline

Definition at line 212 of file QCSimExtendedStabilizer.h.

◆ ApplySX()

void Simulators::QCSimExtendedStabilizer::ApplySX ( size_t qubit)
inline

Definition at line 187 of file QCSimExtendedStabilizer.h.

◆ ApplySXDG()

void Simulators::QCSimExtendedStabilizer::ApplySXDG ( size_t qubit)
inline

Definition at line 192 of file QCSimExtendedStabilizer.h.

◆ ApplyT()

void Simulators::QCSimExtendedStabilizer::ApplyT ( size_t qubit)
inline

Definition at line 247 of file QCSimExtendedStabilizer.h.

References ApplyRZ().

◆ ApplyTDG()

void Simulators::QCSimExtendedStabilizer::ApplyTDG ( size_t qubit)
inline

Definition at line 252 of file QCSimExtendedStabilizer.h.

References ApplyRZ().

◆ ApplyU()

void Simulators::QCSimExtendedStabilizer::ApplyU ( size_t qubit,
double theta,
double phi,
double lambda,
double gamma = 0.0 )
inline

Definition at line 259 of file QCSimExtendedStabilizer.h.

◆ ApplyX()

void Simulators::QCSimExtendedStabilizer::ApplyX ( size_t qubit)
inline

Definition at line 84 of file QCSimExtendedStabilizer.h.

◆ ApplyY()

void Simulators::QCSimExtendedStabilizer::ApplyY ( size_t qubit)
inline

Definition at line 89 of file QCSimExtendedStabilizer.h.

◆ ApplyZ()

void Simulators::QCSimExtendedStabilizer::ApplyZ ( size_t qubit)
inline

Definition at line 94 of file QCSimExtendedStabilizer.h.

◆ Clone()

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

Definition at line 141 of file QCSimExtendedStabilizer.h.

References QCSimExtendedStabilizer().

◆ CloneWithSeed()

std::unique_ptr< QCSimExtendedStabilizer > Simulators::QCSimExtendedStabilizer::CloneWithSeed ( uint64_t seed) const
inline

Definition at line 148 of file QCSimExtendedStabilizer.h.

References QCSimExtendedStabilizer().

◆ ExpectationValue()

double Simulators::QCSimExtendedStabilizer::ExpectationValue ( const std::string & pauliString) const
inline

Definition at line 114 of file QCSimExtendedStabilizer.h.

◆ GetApproximationErrorBound()

double Simulators::QCSimExtendedStabilizer::GetApproximationErrorBound ( ) const
inlinenoexcept

Definition at line 170 of file QCSimExtendedStabilizer.h.

◆ GetApproximationPolicy()

const QC::ExtendedStabilizerApproximationPolicy & Simulators::QCSimExtendedStabilizer::GetApproximationPolicy ( ) const
inlinenoexcept

Definition at line 160 of file QCSimExtendedStabilizer.h.

◆ GetApproximationStatistics()

const QC::ExtendedStabilizerApproximationStatistics & Simulators::QCSimExtendedStabilizer::GetApproximationStatistics ( ) const
inlinenoexcept

Definition at line 165 of file QCSimExtendedStabilizer.h.

◆ GetFrames()

const std::vector< QC::ExtendedFrame > & Simulators::QCSimExtendedStabilizer::GetFrames ( ) const
inlinenoexcept

Definition at line 155 of file QCSimExtendedStabilizer.h.

◆ GetMultithreading()

bool Simulators::QCSimExtendedStabilizer::GetMultithreading ( ) const
inline

Definition at line 69 of file QCSimExtendedStabilizer.h.

◆ GetNrQubits()

size_t Simulators::QCSimExtendedStabilizer::GetNrQubits ( ) const
inline

Definition at line 43 of file QCSimExtendedStabilizer.h.

◆ GetQubitProbability()

double Simulators::QCSimExtendedStabilizer::GetQubitProbability ( size_t qubit) const
inline

Definition at line 109 of file QCSimExtendedStabilizer.h.

◆ Measure()

bool Simulators::QCSimExtendedStabilizer::Measure ( size_t qubit)
inline

Definition at line 104 of file QCSimExtendedStabilizer.h.

◆ Reset()

void Simulators::QCSimExtendedStabilizer::Reset ( size_t nrQubits)
inline

Definition at line 48 of file QCSimExtendedStabilizer.h.

◆ RestoreState()

void Simulators::QCSimExtendedStabilizer::RestoreState ( )
inline

Definition at line 136 of file QCSimExtendedStabilizer.h.

◆ SampleCounts()

std::unordered_map< size_t, size_t > Simulators::QCSimExtendedStabilizer::SampleCounts ( const std::vector< size_t > & qubits,
size_t shots )
inline

Definition at line 121 of file QCSimExtendedStabilizer.h.

◆ SampleCountsMany()

std::unordered_map< std::vector< bool >, size_t > Simulators::QCSimExtendedStabilizer::SampleCountsMany ( const std::vector< size_t > & qubits,
size_t shots )
inline

Definition at line 126 of file QCSimExtendedStabilizer.h.

◆ SaveState()

void Simulators::QCSimExtendedStabilizer::SaveState ( )
inline

Definition at line 131 of file QCSimExtendedStabilizer.h.

◆ SetApproximationPolicy()

void Simulators::QCSimExtendedStabilizer::SetApproximationPolicy ( const QC::ExtendedStabilizerApproximationPolicy & policy)
inline

Definition at line 175 of file QCSimExtendedStabilizer.h.

◆ SetMultithreading()

void Simulators::QCSimExtendedStabilizer::SetMultithreading ( bool enable = true)
inline

Definition at line 64 of file QCSimExtendedStabilizer.h.

◆ SetRandomSeed()

void Simulators::QCSimExtendedStabilizer::SetRandomSeed ( std::mt19937::result_type seed)
inline

Definition at line 53 of file QCSimExtendedStabilizer.h.

◆ SetSeed()

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

Definition at line 59 of file QCSimExtendedStabilizer.h.


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