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

#include <QuestLibSim.h>

Inheritance diagram for Simulators::QuestLibSim:
Collaboration diagram for Simulators::QuestLibSim:

Public Member Functions

 QuestLibSim () noexcept
 QuestLibSim (const QuestLibSim &)=delete
 QuestLibSim (QuestLibSim &&)=default
virtual ~QuestLibSim ()
void ApplyCCX (void *sim, int control1, int control2, int target)
void ApplyCH (void *sim, int control, int target)
void ApplyCP (void *sim, int control, int target, double angle)
void ApplyCRx (void *sim, int control, int target, double angle)
void ApplyCRy (void *sim, int control, int target, double angle)
void ApplyCRz (void *sim, int control, int target, double angle)
void ApplyCS (void *sim, int control, int target)
void ApplyCSwap (void *sim, int control, int qubit1, int qubit2)
void ApplyCSx (void *sim, int control, int target)
void ApplyCSxDg (void *sim, int control, int target)
void ApplyCT (void *sim, int control, int target)
void ApplyCU (void *sim, int control, int target, double theta, double phi, double lambda, double gamma)
void ApplyCX (void *sim, int control, int target)
void ApplyCY (void *sim, int control, int target)
void ApplyCZ (void *sim, int control, int target)
void ApplyH (void *sim, int qubit)
void ApplyK (void *sim, int qubit)
void ApplyP (void *sim, int qubit, double angle)
void ApplyRx (void *sim, int qubit, double angle)
void ApplyRy (void *sim, int qubit, double angle)
void ApplyRz (void *sim, int qubit, double angle)
void ApplyS (void *sim, int qubit)
void ApplySdg (void *sim, int qubit)
void ApplySwap (void *sim, int qubit1, int qubit2)
void ApplySx (void *sim, int qubit)
void ApplySxDg (void *sim, int qubit)
void ApplyT (void *sim, int qubit)
void ApplyTdg (void *sim, int qubit)
void ApplyU (void *sim, int qubit, double theta, double phi, double lambda, double gamma)
void ApplyX (void *sim, int qubit)
void ApplyY (void *sim, int qubit)
void ApplyZ (void *sim, int qubit)
unsigned long int CloneSimulator (void *sim)
unsigned long int CreateSimulator (int nrQubits)
void DestroySimulator (unsigned long int simHandle)
bool GetAmplitude (void *sim, long long int index, std::complex< double > &amplitude) const
bool GetAmplitudes (void *sim, std::vector< std::complex< double > > &amplitudes) const
double GetExpectationValue (void *sim, const char *pauliStr) const
void * GetFunction (const char *funcName) noexcept
const void * GetHandle () const noexcept
int GetNumQubits (void *sim) const
double GetOutcomeProbability (void *sim, long long int outcome) const
double GetQubitProbability0 (void *sim, int qubit) const
double GetQubitProbability1 (void *sim, int qubit) const
void * GetSimulator (unsigned long int simHandle)
bool Init (const char *libName) noexcept override
bool IsDoublePrecision () const
bool IsMuted () const noexcept
bool IsValid () const
int Measure (void *sim, int qubit)
long long int MeasureQubits (void *sim, int *qubits, int numQubits)
QuestLibSimoperator= (const QuestLibSim &)=delete
QuestLibSimoperator= (QuestLibSim &&)=default
void SetMute (bool m) noexcept

Static Public Member Functions

static void CheckFunction (void *func, int line) noexcept

Detailed Description

Definition at line 24 of file QuestLibSim.h.

Constructor & Destructor Documentation

◆ QuestLibSim() [1/3]

Simulators::QuestLibSim::QuestLibSim ( const QuestLibSim & )
delete

◆ QuestLibSim() [2/3]

Simulators::QuestLibSim::QuestLibSim ( QuestLibSim && )
default

References QuestLibSim().

◆ QuestLibSim() [3/3]

Simulators::QuestLibSim::QuestLibSim ( )
inlinenoexcept

Definition at line 32 of file QuestLibSim.h.

◆ ~QuestLibSim()

virtual Simulators::QuestLibSim::~QuestLibSim ( )
inlinevirtual

Definition at line 34 of file QuestLibSim.h.

Member Function Documentation

◆ ApplyCCX()

void Simulators::QuestLibSim::ApplyCCX ( void * sim,
int control1,
int control2,
int target )
inline

Definition at line 525 of file QuestLibSim.h.

◆ ApplyCH()

void Simulators::QuestLibSim::ApplyCH ( void * sim,
int control,
int target )
inline

Definition at line 431 of file QuestLibSim.h.

◆ ApplyCP()

void Simulators::QuestLibSim::ApplyCP ( void * sim,
int control,
int target,
double angle )
inline

Definition at line 487 of file QuestLibSim.h.

◆ ApplyCRx()

void Simulators::QuestLibSim::ApplyCRx ( void * sim,
int control,
int target,
double angle )
inline

Definition at line 466 of file QuestLibSim.h.

◆ ApplyCRy()

void Simulators::QuestLibSim::ApplyCRy ( void * sim,
int control,
int target,
double angle )
inline

Definition at line 473 of file QuestLibSim.h.

◆ ApplyCRz()

void Simulators::QuestLibSim::ApplyCRz ( void * sim,
int control,
int target,
double angle )
inline

Definition at line 480 of file QuestLibSim.h.

◆ ApplyCS()

void Simulators::QuestLibSim::ApplyCS ( void * sim,
int control,
int target )
inline

Definition at line 417 of file QuestLibSim.h.

◆ ApplyCSwap()

void Simulators::QuestLibSim::ApplyCSwap ( void * sim,
int control,
int qubit1,
int qubit2 )
inline

Definition at line 518 of file QuestLibSim.h.

◆ ApplyCSx()

void Simulators::QuestLibSim::ApplyCSx ( void * sim,
int control,
int target )
inline

Definition at line 502 of file QuestLibSim.h.

◆ ApplyCSxDg()

void Simulators::QuestLibSim::ApplyCSxDg ( void * sim,
int control,
int target )
inline

Definition at line 509 of file QuestLibSim.h.

◆ ApplyCT()

void Simulators::QuestLibSim::ApplyCT ( void * sim,
int control,
int target )
inline

Definition at line 424 of file QuestLibSim.h.

◆ ApplyCU()

void Simulators::QuestLibSim::ApplyCU ( void * sim,
int control,
int target,
double theta,
double phi,
double lambda,
double gamma )
inline

Definition at line 494 of file QuestLibSim.h.

◆ ApplyCX()

void Simulators::QuestLibSim::ApplyCX ( void * sim,
int control,
int target )
inline

Definition at line 445 of file QuestLibSim.h.

◆ ApplyCY()

void Simulators::QuestLibSim::ApplyCY ( void * sim,
int control,
int target )
inline

Definition at line 452 of file QuestLibSim.h.

◆ ApplyCZ()

void Simulators::QuestLibSim::ApplyCZ ( void * sim,
int control,
int target )
inline

Definition at line 459 of file QuestLibSim.h.

◆ ApplyH()

void Simulators::QuestLibSim::ApplyH ( void * sim,
int qubit )
inline

Definition at line 328 of file QuestLibSim.h.

◆ ApplyK()

void Simulators::QuestLibSim::ApplyK ( void * sim,
int qubit )
inline

Definition at line 377 of file QuestLibSim.h.

◆ ApplyP()

void Simulators::QuestLibSim::ApplyP ( void * sim,
int qubit,
double angle )
inline

Definition at line 300 of file QuestLibSim.h.

◆ ApplyRx()

void Simulators::QuestLibSim::ApplyRx ( void * sim,
int qubit,
double angle )
inline

Definition at line 386 of file QuestLibSim.h.

◆ ApplyRy()

void Simulators::QuestLibSim::ApplyRy ( void * sim,
int qubit,
double angle )
inline

Definition at line 393 of file QuestLibSim.h.

◆ ApplyRz()

void Simulators::QuestLibSim::ApplyRz ( void * sim,
int qubit,
double angle )
inline

Definition at line 400 of file QuestLibSim.h.

◆ ApplyS()

void Simulators::QuestLibSim::ApplyS ( void * sim,
int qubit )
inline

Definition at line 335 of file QuestLibSim.h.

◆ ApplySdg()

void Simulators::QuestLibSim::ApplySdg ( void * sim,
int qubit )
inline

Definition at line 349 of file QuestLibSim.h.

◆ ApplySwap()

void Simulators::QuestLibSim::ApplySwap ( void * sim,
int qubit1,
int qubit2 )
inline

Definition at line 438 of file QuestLibSim.h.

◆ ApplySx()

void Simulators::QuestLibSim::ApplySx ( void * sim,
int qubit )
inline

Definition at line 363 of file QuestLibSim.h.

◆ ApplySxDg()

void Simulators::QuestLibSim::ApplySxDg ( void * sim,
int qubit )
inline

Definition at line 370 of file QuestLibSim.h.

◆ ApplyT()

void Simulators::QuestLibSim::ApplyT ( void * sim,
int qubit )
inline

Definition at line 342 of file QuestLibSim.h.

◆ ApplyTdg()

void Simulators::QuestLibSim::ApplyTdg ( void * sim,
int qubit )
inline

Definition at line 356 of file QuestLibSim.h.

◆ ApplyU()

void Simulators::QuestLibSim::ApplyU ( void * sim,
int qubit,
double theta,
double phi,
double lambda,
double gamma )
inline

Definition at line 407 of file QuestLibSim.h.

◆ ApplyX()

void Simulators::QuestLibSim::ApplyX ( void * sim,
int qubit )
inline

Definition at line 307 of file QuestLibSim.h.

◆ ApplyY()

void Simulators::QuestLibSim::ApplyY ( void * sim,
int qubit )
inline

Definition at line 314 of file QuestLibSim.h.

◆ ApplyZ()

void Simulators::QuestLibSim::ApplyZ ( void * sim,
int qubit )
inline

Definition at line 321 of file QuestLibSim.h.

◆ CheckFunction()

void Simulators::QuestLibSim::CheckFunction ( void * func,
int line )
inlinestaticnoexcept

Definition at line 174 of file QuestLibSim.h.

Referenced by Init().

◆ CloneSimulator()

unsigned long int Simulators::QuestLibSim::CloneSimulator ( void * sim)
inline

Definition at line 210 of file QuestLibSim.h.

◆ CreateSimulator()

unsigned long int Simulators::QuestLibSim::CreateSimulator ( int nrQubits)
inline

Definition at line 194 of file QuestLibSim.h.

◆ DestroySimulator()

void Simulators::QuestLibSim::DestroySimulator ( unsigned long int simHandle)
inline

Definition at line 203 of file QuestLibSim.h.

◆ GetAmplitude()

bool Simulators::QuestLibSim::GetAmplitude ( void * sim,
long long int index,
std::complex< double > & amplitude ) const
inline

Definition at line 560 of file QuestLibSim.h.

References IsDoublePrecision().

◆ GetAmplitudes()

bool Simulators::QuestLibSim::GetAmplitudes ( void * sim,
std::vector< std::complex< double > > & amplitudes ) const
inline

Definition at line 534 of file QuestLibSim.h.

References IsDoublePrecision().

◆ GetExpectationValue()

double Simulators::QuestLibSim::GetExpectationValue ( void * sim,
const char * pauliStr ) const
inline

Definition at line 269 of file QuestLibSim.h.

◆ GetFunction()

void * Utils::Library::GetFunction ( const char * funcName)
inlinenoexceptinherited

Definition at line 104 of file Library.h.

Referenced by MaestroLibrary::Init(), and Simulators::QuestLibSim::Init().

◆ GetHandle()

const void * Utils::Library::GetHandle ( ) const
inlinenoexceptinherited

Definition at line 112 of file Library.h.

◆ GetNumQubits()

int Simulators::QuestLibSim::GetNumQubits ( void * sim) const
inline

Definition at line 230 of file QuestLibSim.h.

◆ GetOutcomeProbability()

double Simulators::QuestLibSim::GetOutcomeProbability ( void * sim,
long long int outcome ) const
inline

Definition at line 259 of file QuestLibSim.h.

◆ GetQubitProbability0()

double Simulators::QuestLibSim::GetQubitProbability0 ( void * sim,
int qubit ) const
inline

Definition at line 239 of file QuestLibSim.h.

◆ GetQubitProbability1()

double Simulators::QuestLibSim::GetQubitProbability1 ( void * sim,
int qubit ) const
inline

Definition at line 249 of file QuestLibSim.h.

◆ GetSimulator()

void * Simulators::QuestLibSim::GetSimulator ( unsigned long int simHandle)
inline

Definition at line 219 of file QuestLibSim.h.

◆ Init()

bool Simulators::QuestLibSim::Init ( const char * libName)
inlineoverridevirtualnoexcept

Reimplemented from Utils::Library.

Definition at line 41 of file QuestLibSim.h.

References CheckFunction(), Utils::Library::GetFunction(), and Utils::Library::Init().

◆ IsDoublePrecision()

bool Simulators::QuestLibSim::IsDoublePrecision ( ) const
inline

Definition at line 581 of file QuestLibSim.h.

Referenced by GetAmplitude(), and GetAmplitudes().

◆ IsMuted()

bool Utils::Library::IsMuted ( ) const
inlinenoexceptinherited

Definition at line 114 of file Library.h.

◆ IsValid()

bool Simulators::QuestLibSim::IsValid ( ) const
inline

Definition at line 190 of file QuestLibSim.h.

◆ Measure()

int Simulators::QuestLibSim::Measure ( void * sim,
int qubit )
inline

Definition at line 280 of file QuestLibSim.h.

◆ MeasureQubits()

long long int Simulators::QuestLibSim::MeasureQubits ( void * sim,
int * qubits,
int numQubits )
inline

Definition at line 289 of file QuestLibSim.h.

◆ operator=() [1/2]

QuestLibSim & Simulators::QuestLibSim::operator= ( const QuestLibSim & )
delete

References QuestLibSim().

◆ operator=() [2/2]

QuestLibSim & Simulators::QuestLibSim::operator= ( QuestLibSim && )
default

References QuestLibSim().

◆ SetMute()

void Utils::Library::SetMute ( bool m)
inlinenoexceptinherited

Definition at line 116 of file Library.h.


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