Sequential Quantum Gate Decomposer  v1.9.6
Powerful decomposition of general unitarias into one- and two-qubit gates gates
List of all members | Public Member Functions
squander::density::NoiseOperation Class Referenceabstract

Base class for noise channel operations (CPTP maps). More...

#include <noise_operation.h>

Inheritance diagram for squander::density::NoiseOperation:
Inheritance graph
[legend]

Public Member Functions

virtual void apply_to_density (const double *params, int param_count, DensityMatrix &rho)=0
 Apply this operation to the density matrix. More...
 
virtual std::unique_ptr< IDensityOperationclone () const =0
 Create a deep copy of this operation. More...
 
virtual std::string get_name () const =0
 Get operation name for debugging/display. More...
 
virtual int get_parameter_num () const =0
 Get number of free parameters this operation requires. More...
 
bool is_unitary () const override
 Check if this is a unitary operation (gate) or non-unitary (noise) More...
 

Detailed Description

Base class for noise channel operations (CPTP maps).

Noise channels are non-unitary quantum operations that model decoherence and errors. They are represented via Kraus operators: ρ → Σᵢ KᵢρKᵢ†

Unlike gates, noise channels:

Definition at line 36 of file noise_operation.h.

Member Function Documentation

◆ apply_to_density()

virtual void squander::density::IDensityOperation::apply_to_density ( const double *  params,
int  param_count,
DensityMatrix rho 
)
pure virtualinherited

Apply this operation to the density matrix.

Parameters
paramsPointer to this operation's parameters (may be nullptr if param_count=0)
param_countNumber of parameters for this operation
rhoThe density matrix to modify in-place

Implemented in squander::density::PhaseDampingOp, squander::density::AmplitudeDampingOp, squander::density::LocalDepolarizingOp, squander::density::DepolarizingOp, and squander::density::GateOperation.

◆ clone()

virtual std::unique_ptr<IDensityOperation> squander::density::IDensityOperation::clone ( ) const
pure virtualinherited

Create a deep copy of this operation.

Returns
Unique pointer to the cloned operation

Implemented in squander::density::PhaseDampingOp, squander::density::AmplitudeDampingOp, squander::density::LocalDepolarizingOp, squander::density::DepolarizingOp, and squander::density::GateOperation.

Here is the caller graph for this function:

◆ get_name()

virtual std::string squander::density::IDensityOperation::get_name ( ) const
pure virtualinherited

Get operation name for debugging/display.

Returns
Human-readable name (e.g., "H", "CNOT", "Depolarizing")

Implemented in squander::density::PhaseDampingOp, squander::density::AmplitudeDampingOp, squander::density::LocalDepolarizingOp, squander::density::DepolarizingOp, and squander::density::GateOperation.

◆ get_parameter_num()

virtual int squander::density::IDensityOperation::get_parameter_num ( ) const
pure virtualinherited

Get number of free parameters this operation requires.

Returns
Number of parameters (0 for constant gates/fixed noise)

Implemented in squander::density::PhaseDampingOp, squander::density::AmplitudeDampingOp, squander::density::LocalDepolarizingOp, squander::density::DepolarizingOp, and squander::density::GateOperation.

◆ is_unitary()

bool squander::density::NoiseOperation::is_unitary ( ) const
inlineoverridevirtual

Check if this is a unitary operation (gate) or non-unitary (noise)

Returns
true for unitary gates, false for noise channels

Implements squander::density::IDensityOperation.

Definition at line 38 of file noise_operation.h.

Here is the caller graph for this function:

The documentation for this class was generated from the following file: