Maestro 0.3.11
Unified interface for quantum circuit simulation
Loading...
Searching...
No Matches
FactoryQCSim.cpp
Go to the documentation of this file.
1
12
13#define _CRT_SECURE_NO_WARNINGS 1
14
15#include "FactoryBackends.h"
16
17#define INCLUDED_BY_FACTORY
26
28{
29
30std::unique_ptr<ISimulator> CreateQCSimImmediate(SimulationType method)
31{
32 switch (method)
33 {
35 return std::make_unique<Private::QCSimStatevectorSimulator>();
41 return std::make_unique<Private::QCSimStabilizerSimulator>();
43 return std::make_unique<Private::QCSimTensorNetworkSimulator>();
45 return std::make_unique<Private::QCSimPauliPropagatorSimulator>();
47 return std::make_unique<Private::QCSimPathIntegralSimulator>();
49 return std::make_unique<Private::QCSimDensityMatrixSimulator>();
51 return std::make_unique<Private::QCSimExtendedStabilizerSimulator>();
52 default:
53 throw std::invalid_argument("Simulation Type not supported for QCSim");
54 }
55}
56
57std::unique_ptr<ISimulator> CreateQCSimSimulator(std::unique_ptr<ISimulator> immediate)
58{
59 return std::make_unique<Private::QCSimSimulator>(std::move(immediate));
60}
61
62} // namespace Simulators::FactoryBackends
std::unique_ptr< ISimulator > CreateQCSimImmediate(SimulationType method)
std::unique_ptr< ISimulator > CreateQCSimMPOImmediate()
std::unique_ptr< ISimulator > CreateQCSimMPSImmediate()
std::unique_ptr< ISimulator > CreateQCSimSimulator(std::unique_ptr< ISimulator > immediate)
SimulationType
The type of simulation.
Definition State.h:109
@ kExtendedStabilizer
Extended stabilizer simulation type.
Definition State.h:115
@ kStatevector
statevector simulation type
Definition State.h:110
@ kMatrixProductState
matrix product state simulation type
Definition State.h:111
@ kDensityMatrix
Density matrix simulation type.
Definition State.h:117
@ kStabilizer
Clifford gates simulation type.
Definition State.h:112
@ kMatrixProductOperator
Matrix product operator simulation type.
Definition State.h:118
@ kPauliPropagator
Pauli propagator simulation type.
Definition State.h:114
@ kTensorNetwork
Tensor network simulation type.
Definition State.h:113
@ kPathIntegral
Path integral simulation type.
Definition State.h:116