File DeterministicNoiseSimulator.hpp

class DeterministicNoiseSimulator : public CircuitSimulator

Public Functions

inline DeterministicNoiseSimulator(std::unique_ptr<qc::QuantumComputation> &&qc_, const ApproximationInfo &approximationInfo_, std::string noiseEffects_ = "APD", double noiseProbability_ = 0.001, std::optional<double> ampDampingProbability_ = std::nullopt, double multiQubitGateFactor_ = 2)
inline explicit DeterministicNoiseSimulator(std::unique_ptr<qc::QuantumComputation> &&qc_, const std::string &noiseEffects_ = "APD", double noiseProbability_ = 0.001, std::optional<double> ampDampingProbability_ = std::nullopt, double multiQubitGateFactor_ = 2)
inline DeterministicNoiseSimulator(std::unique_ptr<qc::QuantumComputation> &&qc_, const ApproximationInfo &approximationInfo_, const std::size_t seed_, std::string noiseEffects_ = "APD", double noiseProbability_ = 0.001, std::optional<double> ampDampingProbability_ = std::nullopt, double multiQubitGateFactor_ = 2)
inline virtual std::map<std::string, std::size_t> measureAllNonCollapsing(std::size_t shots) override
virtual void initializeSimulation(std::size_t nQubits) override
virtual char measure(dd::Qubit i) override
virtual void reset(qc::NonUnitaryOperation *nonUnitaryOp) override
virtual void applyOperationToState(std::unique_ptr<qc::Operation> &op) override
std::map<std::string, std::size_t> sampleFromProbabilityMap(const dd::SparsePVecStrKeys &resultProbabilityMap, std::size_t shots)
inline virtual std::size_t getActiveNodeCount() const override
inline virtual std::size_t countNodesFromRoot() override

Public Members

dd::DensityMatrixDD rootEdge = {}

Private Members

std::string noiseEffects
double noiseProbSingleQubit = {}
double ampDampingProbSingleQubit = {}
double noiseProbMultiQubit = {}
double ampDampingProbMultiQubit = {}
double measurementThreshold = 0.01
dd::DeterministicNoiseFunctionality deterministicNoiseFunctionality