13#define _CRT_SECURE_NO_WARNINGS 1
17#define INCLUDED_BY_FACTORY
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>();
53 throw std::invalid_argument(
"Simulation Type not supported for QCSim");
59 return std::make_unique<Private::QCSimSimulator>(std::move(immediate));
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.
@ kExtendedStabilizer
Extended stabilizer simulation type.
@ kStatevector
statevector simulation type
@ kMatrixProductState
matrix product state simulation type
@ kDensityMatrix
Density matrix simulation type.
@ kStabilizer
Clifford gates simulation type.
@ kMatrixProductOperator
Matrix product operator simulation type.
@ kPauliPropagator
Pauli propagator simulation type.
@ kTensorNetwork
Tensor network simulation type.
@ kPathIntegral
Path integral simulation type.