65 virtual std::string
get_name()
const = 0;
77 virtual std::unique_ptr<IDensityOperation>
clone()
const = 0;
virtual std::unique_ptr< IDensityOperation > clone() const =0
Create a deep copy of this operation.
Quantum density matrix Ï for mixed-state representation.
virtual ~IDensityOperation()=default
virtual void apply_to_density(const double *params, int param_count, DensityMatrix &rho)=0
Apply this operation to the density matrix.
Interface for any operation that can be applied to a density matrix.
virtual bool is_unitary() const =0
Check if this is a unitary operation (gate) or non-unitary (noise)
virtual int get_parameter_num() const =0
Get number of free parameters this operation requires.
virtual std::string get_name() const =0
Get operation name for debugging/display.