Maestro 0.2.5
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

◆ 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()

static 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 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

◆ operator=() [2/2]

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

◆ 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: