Maestro 0.3.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)
QuestLibSim & operator= (const QuestLibSim &)=delete
QuestLibSim & operator= (QuestLibSim &&)=default
void SetMute (bool m) noexcept

Static Public Member Functions

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

Detailed Description

Definition at line 25 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 34 of file QuestLibSim.h.

◆ ~QuestLibSim()

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

Definition at line 38 of file QuestLibSim.h.

Member Function Documentation

◆ ApplyCCX()

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

Definition at line 564 of file QuestLibSim.h.

◆ ApplyCH()

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

Definition at line 458 of file QuestLibSim.h.

◆ ApplyCP()

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

Definition at line 522 of file QuestLibSim.h.

◆ ApplyCRx()

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

Definition at line 498 of file QuestLibSim.h.

◆ ApplyCRy()

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

Definition at line 506 of file QuestLibSim.h.

◆ ApplyCRz()

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

Definition at line 514 of file QuestLibSim.h.

◆ ApplyCS()

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

Definition at line 442 of file QuestLibSim.h.

◆ ApplyCSwap()

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

Definition at line 556 of file QuestLibSim.h.

◆ ApplyCSx()

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

Definition at line 538 of file QuestLibSim.h.

◆ ApplyCSxDg()

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

Definition at line 546 of file QuestLibSim.h.

◆ ApplyCT()

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

Definition at line 450 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 530 of file QuestLibSim.h.

◆ ApplyCX()

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

Definition at line 474 of file QuestLibSim.h.

◆ ApplyCY()

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

Definition at line 482 of file QuestLibSim.h.

◆ ApplyCZ()

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

Definition at line 490 of file QuestLibSim.h.

◆ ApplyH()

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

Definition at line 342 of file QuestLibSim.h.

◆ ApplyK()

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

Definition at line 398 of file QuestLibSim.h.

◆ ApplyP()

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

Definition at line 310 of file QuestLibSim.h.

◆ ApplyRx()

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

Definition at line 408 of file QuestLibSim.h.

◆ ApplyRy()

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

Definition at line 416 of file QuestLibSim.h.

◆ ApplyRz()

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

Definition at line 424 of file QuestLibSim.h.

◆ ApplyS()

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

Definition at line 350 of file QuestLibSim.h.

◆ ApplySdg()

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

Definition at line 366 of file QuestLibSim.h.

◆ ApplySwap()

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

Definition at line 466 of file QuestLibSim.h.

◆ ApplySx()

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

Definition at line 382 of file QuestLibSim.h.

◆ ApplySxDg()

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

Definition at line 390 of file QuestLibSim.h.

◆ ApplyT()

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

Definition at line 358 of file QuestLibSim.h.

◆ ApplyTdg()

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

Definition at line 374 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 432 of file QuestLibSim.h.

◆ ApplyX()

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

Definition at line 318 of file QuestLibSim.h.

◆ ApplyY()

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

Definition at line 326 of file QuestLibSim.h.

◆ ApplyZ()

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

Definition at line 334 of file QuestLibSim.h.

◆ CheckFunction()

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

Definition at line 170 of file QuestLibSim.h.

Referenced by Init().

◆ CloneSimulator()

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

Definition at line 214 of file QuestLibSim.h.

◆ CreateSimulator()

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

Definition at line 196 of file QuestLibSim.h.

◆ DestroySimulator()

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

Definition at line 206 of file QuestLibSim.h.

◆ GetAmplitude()

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

Definition at line 598 of file QuestLibSim.h.

References IsDoublePrecision().

◆ GetAmplitudes()

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

Definition at line 574 of file QuestLibSim.h.

References IsDoublePrecision().

◆ GetExpectationValue()

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

Definition at line 276 of file QuestLibSim.h.

◆ GetFunction()

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

Definition at line 112 of file Library.h.

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

◆ GetHandle()

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

Definition at line 121 of file Library.h.

◆ GetNumQubits()

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

Definition at line 236 of file QuestLibSim.h.

◆ GetOutcomeProbability()

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

Definition at line 266 of file QuestLibSim.h.

◆ GetQubitProbability0()

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

Definition at line 246 of file QuestLibSim.h.

◆ GetQubitProbability1()

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

Definition at line 256 of file QuestLibSim.h.

◆ GetSimulator()

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

Definition at line 224 of file QuestLibSim.h.

◆ Init()

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

Reimplemented from Utils::Library.

Definition at line 47 of file QuestLibSim.h.

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

◆ IsDoublePrecision()

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

Definition at line 619 of file QuestLibSim.h.

Referenced by GetAmplitude(), and GetAmplitudes().

◆ IsMuted()

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

Definition at line 126 of file Library.h.

◆ IsValid()

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

Definition at line 189 of file QuestLibSim.h.

◆ Measure()

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

Definition at line 288 of file QuestLibSim.h.

◆ MeasureQubits()

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

Definition at line 298 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 131 of file Library.h.


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