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 | Private Member Functions | Private Attributes
squander::density::AmplitudeDampingOp Class Reference

Amplitude damping channel (T1 relaxation): |1⟩ → |0⟩ decay. More...

#include <noise_operation.h>

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

Public Member Functions

 AmplitudeDampingOp (int target_qbit, double gamma)
 Create amplitude damping with fixed gamma. More...
 
 AmplitudeDampingOp (int target_qbit)
 Create parametric amplitude damping (1 parameter) More...
 
void apply_to_density (const double *params, int param_count, DensityMatrix &rho) override
 Apply this operation to the density matrix. More...
 
std::unique_ptr< IDensityOperationclone () const override
 Create a deep copy of this operation. More...
 
double get_gamma () const
 
std::string get_name () const override
 Get operation name for debugging/display. More...
 
int get_parameter_num () const override
 Get number of free parameters this operation requires. More...
 
int get_target_qbit () const
 
bool is_parametric () const
 
bool is_unitary () const override
 Check if this is a unitary operation (gate) or non-unitary (noise) More...
 

Private Member Functions

void apply_amplitude_damping (DensityMatrix &rho, double gamma)
 

Private Attributes

double fixed_gamma_
 
bool is_parametric_
 
int target_qbit_
 

Detailed Description

Amplitude damping channel (T1 relaxation): |1⟩ → |0⟩ decay.

Models energy relaxation from the excited state to the ground state. Represents spontaneous emission in real quantum systems.

Kraus operators:

where γ = 1 - exp(-t/T1) is the damping parameter.

Properties:

Can be parametric (γ from parameter array) or fixed.

Definition at line 151 of file noise_operation.h.

Constructor & Destructor Documentation

◆ AmplitudeDampingOp() [1/2]

squander::density::AmplitudeDampingOp::AmplitudeDampingOp ( int  target_qbit,
double  gamma 
)

Create amplitude damping with fixed gamma.

Parameters
target_qbitTarget qubit index
gammaDamping parameter γ = 1 - exp(-t/T1) ∈ [0, 1]

Definition at line 214 of file noise_operation.cpp.

Here is the caller graph for this function:

◆ AmplitudeDampingOp() [2/2]

squander::density::AmplitudeDampingOp::AmplitudeDampingOp ( int  target_qbit)
explicit

Create parametric amplitude damping (1 parameter)

Parameters
target_qbitTarget qubit index

Definition at line 225 of file noise_operation.cpp.

Member Function Documentation

◆ apply_amplitude_damping()

void squander::density::AmplitudeDampingOp::apply_amplitude_damping ( DensityMatrix rho,
double  gamma 
)
private

Definition at line 254 of file noise_operation.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ apply_to_density()

void squander::density::AmplitudeDampingOp::apply_to_density ( const double *  params,
int  param_count,
DensityMatrix rho 
)
overridevirtual

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

Implements squander::density::IDensityOperation.

Definition at line 233 of file noise_operation.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ clone()

std::unique_ptr< IDensityOperation > squander::density::AmplitudeDampingOp::clone ( ) const
overridevirtual

Create a deep copy of this operation.

Returns
Unique pointer to the cloned operation

Implements squander::density::IDensityOperation.

Definition at line 308 of file noise_operation.cpp.

Here is the call graph for this function:

◆ get_gamma()

double squander::density::AmplitudeDampingOp::get_gamma ( ) const
inline

Definition at line 176 of file noise_operation.h.

◆ get_name()

std::string squander::density::AmplitudeDampingOp::get_name ( ) const
inlineoverridevirtual

Get operation name for debugging/display.

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

Implements squander::density::IDensityOperation.

Definition at line 170 of file noise_operation.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_parameter_num()

int squander::density::AmplitudeDampingOp::get_parameter_num ( ) const
inlineoverridevirtual

Get number of free parameters this operation requires.

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

Implements squander::density::IDensityOperation.

Definition at line 169 of file noise_operation.h.

◆ get_target_qbit()

int squander::density::AmplitudeDampingOp::get_target_qbit ( ) const
inline

Definition at line 175 of file noise_operation.h.

◆ is_parametric()

bool squander::density::AmplitudeDampingOp::is_parametric ( ) const
inline

Definition at line 177 of file noise_operation.h.

◆ is_unitary()

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

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:

Member Data Documentation

◆ fixed_gamma_

double squander::density::AmplitudeDampingOp::fixed_gamma_
private

Definition at line 181 of file noise_operation.h.

◆ is_parametric_

bool squander::density::AmplitudeDampingOp::is_parametric_
private

Definition at line 182 of file noise_operation.h.

◆ target_qbit_

int squander::density::AmplitudeDampingOp::target_qbit_
private

Definition at line 180 of file noise_operation.h.


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