83 std::string
get_name()
const override {
return "Depolarizing"; }
85 std::unique_ptr<IDensityOperation>
clone()
const override;
97 void apply_depolarizing(
DensityMatrix &rho,
double error_rate);
116 std::string
get_name()
const override {
return "LocalDepolarizing"; }
118 std::unique_ptr<IDensityOperation>
clone()
const override;
129 void apply_local_depolarizing(
DensityMatrix &rho,
double error_rate);
170 std::string
get_name()
const override {
return "AmplitudeDamping"; }
172 std::unique_ptr<IDensityOperation>
clone()
const override;
184 void apply_amplitude_damping(
DensityMatrix &rho,
double gamma);
227 std::string
get_name()
const override {
return "PhaseDamping"; }
229 std::unique_ptr<IDensityOperation>
clone()
const override;
bool is_parametric() const
int get_target_qbit() const
Base class for noise channel operations (CPTP maps).
std::string get_name() const override
Get operation name for debugging/display.
int get_target_qbit() const
bool is_parametric() const
int get_target_qbit() const
double get_error_rate() const
virtual std::unique_ptr< IDensityOperation > clone() const =0
Create a deep copy of this operation.
Amplitude damping channel (T1 relaxation): |1â© â |0â© decay.
double get_error_rate() const
std::string get_name() const override
Get operation name for debugging/display.
Quantum density matrix Ï for mixed-state representation.
Phase damping channel (T2 dephasing): loss of coherence.
std::string get_name() const override
Get operation name for debugging/display.
std::string get_name() const override
Get operation name for debugging/display.
int get_parameter_num() const override
Get number of free parameters this operation requires.
Depolarizing noise channel: Ï â (1-p)Ï + p·I/2^n.
double get_lambda() const
virtual void apply_to_density(const double *params, int param_count, DensityMatrix &rho)=0
Apply this operation to the density matrix.
Local single-qubit depolarizing channel on one target qubit.
bool is_parametric() const
int get_parameter_num() const override
Get number of free parameters this operation requires.
Interface for any operation that can be applied to a density matrix.
bool is_unitary() const override
Check if this is a unitary operation (gate) or non-unitary (noise)
bool is_parametric() const
int get_parameter_num() const override
Get number of free parameters this operation requires.
int get_parameter_num() const override
Get number of free parameters this operation requires.