Maestro 0.3.1
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 ApplyCRx (size_t controlQubit, size_t targetQubit, double angle)
void ApplyCRY (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 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 ApplyCSx (size_t controlQubit, size_t targetQubit)
void ApplyCSXDAG (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 ApplySxDAG (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< QCSimExtendedStabilizerClone () 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
size_t GetNrQubits () const
double GetQubitProbability (size_t qubit) const
bool Measure (size_t qubit)
void Reset (size_t nrQubits)
void RestoreState ()
void SaveState ()
void SetApproximationPolicy (const QC::ExtendedStabilizerApproximationPolicy &policy)
void SetRandomSeed (std::mt19937::result_type seed)

Detailed Description

Definition at line 28 of file QCSimExtendedStabilizer.h.

Constructor & Destructor Documentation

◆ QCSimExtendedStabilizer() [1/2]

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

Definition at line 30 of file QCSimExtendedStabilizer.h.

Referenced by Clone().

◆ QCSimExtendedStabilizer() [2/2]

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

Definition at line 33 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 295 of file QCSimExtendedStabilizer.h.

References ApplyCSX(), ApplyCSXDAG(), and ApplyCX().

◆ ApplyCH()

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

Definition at line 161 of file QCSimExtendedStabilizer.h.

References ApplyCX(), ApplyH(), ApplyS(), ApplySDG(), ApplyT(), and ApplyX().

◆ ApplyCP()

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

Definition at line 229 of file QCSimExtendedStabilizer.h.

References ApplyCX(), and ApplyP().

◆ ApplyCRX()

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

Definition at line 189 of file QCSimExtendedStabilizer.h.

References ApplyCX(), ApplyH(), and ApplyRZ().

Referenced by ApplyCRx().

◆ ApplyCRx()

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

Definition at line 200 of file QCSimExtendedStabilizer.h.

References ApplyCRX().

◆ ApplyCRY()

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

Definition at line 204 of file QCSimExtendedStabilizer.h.

References ApplyCX(), and ApplyRY().

Referenced by ApplyCRy().

◆ ApplyCRy()

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

Definition at line 212 of file QCSimExtendedStabilizer.h.

References ApplyCRY().

◆ ApplyCRZ()

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

Definition at line 216 of file QCSimExtendedStabilizer.h.

References ApplyCX(), and ApplyRZ().

Referenced by ApplyCRz().

◆ ApplyCRz()

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

Definition at line 225 of file QCSimExtendedStabilizer.h.

References ApplyCRZ().

◆ ApplyCS()

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

Definition at line 238 of file QCSimExtendedStabilizer.h.

References ApplyCX(), ApplyT(), and ApplyTDG().

Referenced by ApplyCSX().

◆ ApplyCSDAG()

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

Definition at line 246 of file QCSimExtendedStabilizer.h.

References ApplyCX(), ApplyT(), and ApplyTDG().

Referenced by ApplyCSXDAG().

◆ ApplyCSwap()

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

Definition at line 274 of file QCSimExtendedStabilizer.h.

References ApplyCSX(), ApplyCX(), and ApplyP().

◆ ApplyCSX()

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

Definition at line 254 of file QCSimExtendedStabilizer.h.

References ApplyCS(), and ApplyH().

Referenced by ApplyCCX(), ApplyCSwap(), and ApplyCSx().

◆ ApplyCSx()

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

Definition at line 260 of file QCSimExtendedStabilizer.h.

References ApplyCSX().

◆ ApplyCSXDAG()

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

Definition at line 264 of file QCSimExtendedStabilizer.h.

References ApplyCSDAG(), and ApplyH().

Referenced by ApplyCCX(), and ApplyCSxDAG().

◆ ApplyCSxDAG()

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

Definition at line 270 of file QCSimExtendedStabilizer.h.

References ApplyCSXDAG().

◆ 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 175 of file QCSimExtendedStabilizer.h.

References ApplyCX(), ApplyP(), and ApplyU().

◆ ApplyCX()

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

◆ ApplyCY()

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

Definition at line 114 of file QCSimExtendedStabilizer.h.

◆ ApplyCZ()

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

Definition at line 118 of file QCSimExtendedStabilizer.h.

◆ ApplyH()

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

Definition at line 46 of file QCSimExtendedStabilizer.h.

Referenced by ApplyCH(), ApplyCRX(), ApplyCSX(), and ApplyCSXDAG().

◆ ApplyISWAP()

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

Definition at line 126 of file QCSimExtendedStabilizer.h.

◆ ApplyISWAPDG()

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

Definition at line 130 of file QCSimExtendedStabilizer.h.

◆ ApplyK()

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

Definition at line 56 of file QCSimExtendedStabilizer.h.

◆ ApplyP()

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

Definition at line 146 of file QCSimExtendedStabilizer.h.

References ApplyRZ().

Referenced by ApplyCP(), ApplyCSwap(), and ApplyCU().

◆ ApplyRX()

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

Definition at line 134 of file QCSimExtendedStabilizer.h.

◆ ApplyRY()

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

Definition at line 138 of file QCSimExtendedStabilizer.h.

Referenced by ApplyCRY(), and ApplyU().

◆ ApplyRZ()

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

Definition at line 142 of file QCSimExtendedStabilizer.h.

Referenced by ApplyCRX(), ApplyCRZ(), ApplyP(), ApplyT(), ApplyTDG(), and ApplyU().

◆ ApplyS()

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

Definition at line 48 of file QCSimExtendedStabilizer.h.

Referenced by ApplyCH().

◆ ApplySDG()

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

Definition at line 102 of file QCSimExtendedStabilizer.h.

Referenced by ApplyCH().

◆ ApplySWAP()

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

Definition at line 122 of file QCSimExtendedStabilizer.h.

◆ ApplySX()

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

Definition at line 104 of file QCSimExtendedStabilizer.h.

◆ ApplySxDAG()

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

Definition at line 108 of file QCSimExtendedStabilizer.h.

References ApplySXDG().

◆ ApplySXDG()

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

Definition at line 106 of file QCSimExtendedStabilizer.h.

Referenced by ApplySxDAG().

◆ ApplyT()

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

Definition at line 148 of file QCSimExtendedStabilizer.h.

References ApplyRZ().

Referenced by ApplyCH(), ApplyCS(), and ApplyCSDAG().

◆ ApplyTDG()

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

Definition at line 150 of file QCSimExtendedStabilizer.h.

References ApplyRZ().

Referenced by ApplyCS(), and ApplyCSDAG().

◆ ApplyU()

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

Definition at line 152 of file QCSimExtendedStabilizer.h.

References ApplyRY(), and ApplyRZ().

Referenced by ApplyCU().

◆ ApplyX()

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

Definition at line 50 of file QCSimExtendedStabilizer.h.

Referenced by ApplyCH().

◆ ApplyY()

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

Definition at line 52 of file QCSimExtendedStabilizer.h.

◆ ApplyZ()

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

Definition at line 54 of file QCSimExtendedStabilizer.h.

◆ Clone()

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

Definition at line 72 of file QCSimExtendedStabilizer.h.

References QCSimExtendedStabilizer().

◆ ExpectationValue()

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

Definition at line 64 of file QCSimExtendedStabilizer.h.

◆ GetApproximationErrorBound()

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

Definition at line 91 of file QCSimExtendedStabilizer.h.

◆ GetApproximationPolicy()

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

Definition at line 81 of file QCSimExtendedStabilizer.h.

◆ GetApproximationStatistics()

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

Definition at line 87 of file QCSimExtendedStabilizer.h.

◆ GetFrames()

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

Definition at line 77 of file QCSimExtendedStabilizer.h.

◆ GetNrQubits()

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

Definition at line 38 of file QCSimExtendedStabilizer.h.

◆ GetQubitProbability()

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

Definition at line 60 of file QCSimExtendedStabilizer.h.

◆ Measure()

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

Definition at line 58 of file QCSimExtendedStabilizer.h.

◆ Reset()

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

Definition at line 40 of file QCSimExtendedStabilizer.h.

◆ RestoreState()

void Simulators::QCSimExtendedStabilizer::RestoreState ( )
inline

Definition at line 70 of file QCSimExtendedStabilizer.h.

◆ SaveState()

void Simulators::QCSimExtendedStabilizer::SaveState ( )
inline

Definition at line 68 of file QCSimExtendedStabilizer.h.

◆ SetApproximationPolicy()

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

Definition at line 95 of file QCSimExtendedStabilizer.h.

◆ SetRandomSeed()

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

Definition at line 42 of file QCSimExtendedStabilizer.h.


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