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::PhaseDampingOp Class Reference

Phase damping channel (T2 dephasing): loss of coherence. More...

#include <noise_operation.h>

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

Public Member Functions

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_lambda () 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...
 
 PhaseDampingOp (int target_qbit, double lambda)
 Create phase damping with fixed lambda. More...
 
 PhaseDampingOp (int target_qbit)
 Create parametric phase damping (1 parameter) More...
 

Private Member Functions

void apply_phase_damping (DensityMatrix &rho, double lambda)
 

Private Attributes

double fixed_lambda_
 
bool is_parametric_
 
int target_qbit_
 

Detailed Description

Phase damping channel (T2 dephasing): loss of coherence.

Models phase randomization without energy loss. Represents decoherence in real quantum systems where the environment measures the qubit in the computational basis.

Kraus operators:

where λ = 1 - exp(-t/T2) is the dephasing parameter.

Properties:

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

Definition at line 208 of file noise_operation.h.

Constructor & Destructor Documentation

◆ PhaseDampingOp() [1/2]

squander::density::PhaseDampingOp::PhaseDampingOp ( int  target_qbit,
double  lambda 
)

Create phase damping with fixed lambda.

Parameters
target_qbitTarget qubit index
lambdaDephasing parameter λ = 1 - exp(-t/T2) ∈ [0, 1]

Definition at line 320 of file noise_operation.cpp.

Here is the caller graph for this function:

◆ PhaseDampingOp() [2/2]

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

Create parametric phase damping (1 parameter)

Parameters
target_qbitTarget qubit index

Definition at line 330 of file noise_operation.cpp.

Member Function Documentation

◆ apply_phase_damping()

void squander::density::PhaseDampingOp::apply_phase_damping ( DensityMatrix rho,
double  lambda 
)
private

Definition at line 358 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::PhaseDampingOp::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 337 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::PhaseDampingOp::clone ( ) const
overridevirtual

Create a deep copy of this operation.

Returns
Unique pointer to the cloned operation

Implements squander::density::IDensityOperation.

Definition at line 388 of file noise_operation.cpp.

Here is the call graph for this function:

◆ get_lambda()

double squander::density::PhaseDampingOp::get_lambda ( ) const
inline

Definition at line 233 of file noise_operation.h.

◆ get_name()

std::string squander::density::PhaseDampingOp::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 227 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::PhaseDampingOp::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 226 of file noise_operation.h.

◆ get_target_qbit()

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

Definition at line 232 of file noise_operation.h.

◆ is_parametric()

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

Definition at line 234 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_lambda_

double squander::density::PhaseDampingOp::fixed_lambda_
private

Definition at line 238 of file noise_operation.h.

◆ is_parametric_

bool squander::density::PhaseDampingOp::is_parametric_
private

Definition at line 239 of file noise_operation.h.

◆ target_qbit_

int squander::density::PhaseDampingOp::target_qbit_
private

Definition at line 237 of file noise_operation.h.


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