class QuantumError
#include <NoiseModel.h>
class QuantumError
{
public:
// typedefs
typedef std::vector<std::vector<size_t>> noise_qubits_t;
// construction
QuantumError();
QuantumError(
const NOISE_MODEL& model,
double prob,
size_t qubit_num
);
// methods
void set_noise(
const NOISE_MODEL& model,
double prob,
size_t qubit_num
);
void set_noise(
const NOISE_MODEL& model,
double T1,
double T2,
double t_gate,
size_t qubit_num
);
void set_noise(
const NOISE_MODEL& model,
const std::vector<QStat>& unitary_matrices,
const std::vector<double>& probs,
size_t qubit_num
);
void set_noise(
const NOISE_MODEL& model,
const std::vector<QStat>& unitary_matrices,
size_t qubit_num
);
void set_reset_error(
double p0,
double p1
);
void set_readout_error(
const std::vector<std::vector<double>>& probs_list,
size_t qubit_num
);
bool sample_noise(
NOISE_MODEL& model,
NoiseOp& noise_ops,
Qnum& noise_qubits,
RandomEngine19937& rng
);
bool sample_noise(
NoiseOp& noise_ops,
Qnum& noise_qubits,
RandomEngine19937& rng
);
bool sample_readout(std::vector<std::vector<double>>& readout);
void set_qubit_num(int num);
int get_qubit_num() const;
bool _optimize_ops(NoiseOp& ops);
NOISE_MODEL get_noise_model();
};