Sequential Quantum Gate Decomposer  v1.9.3
Powerful decomposition of general unitarias into one- and two-qubit gates gates
List of all members | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes
Tdg Class Reference

A class representing a U3 gate. More...

#include <Tdg.h>

Inheritance diagram for Tdg:
Inheritance graph
[legend]

Public Member Functions

void add_child (Gate *child)
 Call to add a child gate to the current gate. More...
 
void add_parent (Gate *parent)
 Call to add a parent gate to the current gate. More...
 
virtual std::vector< Matrixapply_derivate_to (Matrix_real &parameters, Matrix &input, int parallel)
 Call to evaluate the derivate of the circuit on an inout with respect to all of the free parameters. More...
 
void apply_from_right (Matrix &input)
 Call to apply the gate on the input array/matrix by input*U3. More...
 
virtual void apply_from_right (Matrix_real &parameters, Matrix &input)
 Call to apply the gate on the input array/matrix by input*U3. More...
 
void apply_to (Matrix &input, int parallel)
 Call to apply the gate on the input array/matrix by U3*input. More...
 
virtual void apply_to (Matrix_real &parameters, Matrix &input, int parallel)
 Call to apply the gate on the input array/matrix by U3*input. More...
 
void apply_to_list (Matrix_real &parameters, std::vector< Matrix > &inputs, int parallel)
 Call to apply the gate on the input array/matrix by U3*input. More...
 
virtual void apply_to_list (std::vector< Matrix > &inputs, int parallel)
 Call to apply the gate on a list of inputs. More...
 
Matrix calc_one_qubit_u3 ()
 Set static values for matrix of the gates. More...
 
virtual Matrix calc_one_qubit_u3 (double Theta, double Phi, double Lambda)
 Calculate the matrix of a U3 gate gate corresponding to the given parameters acting on a single qbit space. More...
 
void clear_children ()
 Call to erase data on children. More...
 
void clear_parents ()
 Call to erase data on parents. More...
 
Tdgclone ()
 Call to create a clone of the present class. More...
 
virtual Matrix_real extract_parameters (Matrix_real &parameters)
 Call to extract parameters from the parameter array corresponding to the circuit, in which the gate is embedded. More...
 
std::vector< Gate * > get_children ()
 Call to get the children of the current gate. More...
 
int get_control_qbit ()
 Call to get the index of the control qubit. More...
 
virtual std::vector< intget_involved_qubits ()
 Call to get the qubits involved in the gate operation. More...
 
Matrix get_matrix (Matrix_real &parameters)
 Call to retrieve the gate matrix. More...
 
Matrix get_matrix ()
 Call to retrieve the gate matrix. More...
 
Matrix get_matrix (int parallel)
 Call to retrieve the gate matrix. More...
 
Matrix get_matrix (Matrix_real &parameters, int parallel)
 Call to retrieve the gate matrix. More...
 
std::string get_name ()
 Call to get the name label of the gate. More...
 
int get_parameter_num ()
 Call to get the number of free parameters. More...
 
int get_parameter_start_idx ()
 Call to get the starting index of the parameters in the parameter array corresponding to the circuit in which the current gate is incorporated. More...
 
std::vector< Gate * > get_parents ()
 Call to get the parents of the current gate. More...
 
int get_qbit_num ()
 Call to get the number of qubits composing the unitary. More...
 
int get_target_qbit ()
 Call to get the index of the target qubit. More...
 
gate_type get_type ()
 Call to get the type of the operation. More...
 
virtual void parameters_for_calc_one_qubit (double &ThetaOver2, double &Phi, double &Lambda)
 Calculate the matrix of a U3 gate gate corresponding to the given parameters acting on a single qbit space. More...
 
void print (const std::stringstream &sstream, int verbose_level=1) const
 Call to print output messages in the function of the verbosity level. More...
 
void reorder_qubits (std::vector< int > qbit_list)
 Call to reorder the qubits in the matrix of the gate. More...
 
void set_children (std::vector< Gate *> &children_)
 Call to set the children of the current gate. More...
 
void set_control_qbit (int control_qbit_in)
 Call to set the control qubit for the gate operation. More...
 
void set_debugfile (std::string debugfile)
 Call to set the debugfile name. More...
 
void set_matrix (Matrix input)
 Call to set the stored matrix in the operation. More...
 
void set_parameter_start_idx (int start_idx)
 Call to set the starting index of the parameters in the parameter array corresponding to the circuit in which the current gate is incorporated. More...
 
void set_parents (std::vector< Gate *> &parents_)
 Call to set the parents of the current gate. More...
 
void set_qbit_num (int qbit_num_in)
 Call to set the number of qubits spanning the matrix of the gate. More...
 
void set_target_qbit (int target_qbit_in)
 Call to set the target qubit for the gate operation. More...
 
void set_verbose (int verbose_in)
 Call to set the verbose attribute. More...
 
 Tdg ()
 NullaRX constructor of the class. More...
 
 Tdg (int qbit_num_in, int target_qbit_in)
 Constructor of the class. More...
 
 ~Tdg ()
 Destructor of the class. More...
 

Public Attributes

bool debug
 Logical variable. Set true to write output messages to the 'debug.txt' file. More...
 
std::string debugfile_name
 String variable. Set the debug file name. More...
 
int verbose
 Set the verbosity level of the output messages. More...
 

Protected Member Functions

void apply_kernel_from_right (Matrix &u3_1qbit, Matrix &input)
 Call to apply the gate kernel on the input state or unitary from right (no AVX support) More...
 
void apply_kernel_to (Matrix &u3_1qbit, Matrix &input, bool deriv=false, int parallel=0)
 Call to apply the gate kernel on the input state or unitary with optional AVX support. More...
 

Protected Attributes

std::vector< Gate * > children
 list of child gates to be applied after this current gate More...
 
int control_qbit
 The index of the qubit which acts as a control qubit (control_qbit >= 0) in controlled operations. More...
 
int matrix_size
 The size N of the NxN matrix associated with the operations. More...
 
std::string name
 A string labeling the gate operation. More...
 
int parameter_num
 the number of free parameters of the operation More...
 
int parameter_start_idx
 the index in the parameter array (corrensponding to the encapsulated circuit) where the gate parameters begin (if gates are placed into a circuit a single parameter array is used to execute the whole circuit) More...
 
std::vector< Gate * > parents
 list of parent gates to be applied in the circuit prior to this current gate More...
 
int qbit_num
 number of qubits spanning the matrix of the operation More...
 
int target_qbit
 The index of the qubit on which the operation acts (target_qbit >= 0) More...
 
gate_type type
 The type of the operation (see enumeration gate_type) More...
 

Detailed Description

A class representing a U3 gate.

Definition at line 35 of file Tdg.h.

Constructor & Destructor Documentation

◆ Tdg() [1/2]

Tdg::Tdg ( )

NullaRX constructor of the class.

Definition at line 31 of file Tdg.cpp.

Here is the caller graph for this function:

◆ Tdg() [2/2]

Tdg::Tdg ( int  qbit_num_in,
int  target_qbit_in 
)

Constructor of the class.

Parameters
qbit_num_inThe number of qubits spanning the gate.
target_qbit_inThe 0<=ID<qbit_num of the target qubit.
theta_inlogical value indicating whether the matrix creation takes an argument theta.
phi_inlogical value indicating whether the matrix creation takes an argument phi
lambda_inlogical value indicating whether the matrix creation takes an argument lambda

Definition at line 64 of file Tdg.cpp.

Here is the call graph for this function:

◆ ~Tdg()

Tdg::~Tdg ( )

Destructor of the class.

Definition at line 98 of file Tdg.cpp.

Member Function Documentation

◆ add_child()

void Gate::add_child ( Gate child)
inherited

Call to add a child gate to the current gate.

Parameters
childThe parent gate of the current gate.

Definition at line 426 of file Gate.cpp.

Here is the caller graph for this function:

◆ add_parent()

void Gate::add_parent ( Gate parent)
inherited

Call to add a parent gate to the current gate.

Parameters
parentThe parent gate of the current gate.

Definition at line 409 of file Gate.cpp.

Here is the caller graph for this function:

◆ apply_derivate_to()

std::vector< Matrix > U3::apply_derivate_to ( Matrix_real parameters_mtx,
Matrix input,
int  parallel 
)
virtualinherited

Call to evaluate the derivate of the circuit on an inout with respect to all of the free parameters.

Parameters
parametersAn array of the input parameters.
inputThe input array on which the gate is applied
parallelSet 0 for sequential execution, 1 for parallel execution with OpenMP and 2 for parallel with TBB (optional)

Reimplemented from Gate.

Reimplemented in RY, Adaptive, R, RX, RZ_P, RZ, U1, U2, and CRY.

Definition at line 220 of file U3.cpp.

Here is the call graph for this function:

◆ apply_from_right() [1/2]

void Tdg::apply_from_right ( Matrix input)
virtual

Call to apply the gate on the input array/matrix by input*U3.

Parameters
parametersAn array of parameters to calculate the matrix of the U3 gate.
inputThe input array on which the gate is applied

Reimplemented from Gate.

Definition at line 173 of file Tdg.cpp.

Here is the call graph for this function:

◆ apply_from_right() [2/2]

void U3::apply_from_right ( Matrix_real parameters_mtx,
Matrix input 
)
virtualinherited

Call to apply the gate on the input array/matrix by input*U3.

Parameters
parametersAn array of parameters to calculate the matrix of the U3 gate.
inputThe input array on which the gate is applied

Reimplemented in Adaptive, RY, R, RX, RZ, RZ_P, custom_kernel_1qubit_gate, CRY, U1, and U2.

Definition at line 196 of file U3.cpp.

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

◆ apply_kernel_from_right()

void Gate::apply_kernel_from_right ( Matrix u3_1qbit,
Matrix input 
)
protectedinherited

Call to apply the gate kernel on the input state or unitary from right (no AVX support)

Parameters
u3_1qbitThe 2x2 kernel of the gate operation
inputThe input matrix on which the transformation is applied
derivSet true to apply derivate transformation, false otherwise

Definition at line 613 of file Gate.cpp.

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

◆ apply_kernel_to()

void Gate::apply_kernel_to ( Matrix u3_1qbit,
Matrix input,
bool  deriv = false,
int  parallel = 0 
)
protectedinherited

Call to apply the gate kernel on the input state or unitary with optional AVX support.

Parameters
u3_1qbitThe 2x2 kernel of the gate operation
inputThe input matrix on which the transformation is applied
derivSet true to apply derivate transformation, false otherwise (optional)
parallelSet true to apply parallel kernels, false otherwise (optional)
parallelSet 0 for sequential execution (default), 1 for parallel execution with OpenMP and 2 for parallel with TBB (optional)
u3_1qbitThe 2x2 kernel of the gate operation
inputThe input matrix on which the transformation is applied
derivSet true to apply derivate transformation, false otherwise (optional)
derivSet true to apply parallel kernels, false otherwise (optional)
parallelSet 0 for sequential execution (default), 1 for parallel execution with OpenMP and 2 for parallel with TBB (optional)

Definition at line 537 of file Gate.cpp.

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

◆ apply_to() [1/2]

void Tdg::apply_to ( Matrix input,
int  parallel 
)
virtual

Call to apply the gate on the input array/matrix by U3*input.

Parameters
parametersAn array of parameters to calculate the matrix of the U3 gate.
inputThe input array on which the gate is applied
parallelSet 0 for sequential execution, 1 for parallel execution with OpenMP and 2 for parallel with TBB (optional)
parametersAn array of parameters to calculate the matrix of the U3 gate.
inputThe input array on which the gate is applied
parallelSet 0 for sequential execution (default), 1 for parallel execution with OpenMP and 2 for parallel with TBB (optional)

Reimplemented from Gate.

Definition at line 148 of file Tdg.cpp.

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

◆ apply_to() [2/2]

void U3::apply_to ( Matrix_real parameters_mtx,
Matrix input,
int  parallel 
)
virtualinherited

Call to apply the gate on the input array/matrix by U3*input.

Parameters
parametersAn array of parameters to calculate the matrix of the U3 gate.
inputThe input array on which the gate is applied
parallelSet 0 for sequential execution, 1 for parallel execution with OpenMP and 2 for parallel with TBB (optional)

Reimplemented from Gate.

Reimplemented in Adaptive, RY, R, RX, RZ, RZ_P, CRY, U1, and U2.

Definition at line 173 of file U3.cpp.

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

◆ apply_to_list() [1/2]

void U3::apply_to_list ( Matrix_real parameters_mtx,
std::vector< Matrix > &  inputs,
int  parallel 
)
virtualinherited

Call to apply the gate on the input array/matrix by U3*input.

Parameters
parametersAn array of parameters to calculate the matrix of the U3 gate.
inputThe input array on which the gate is applied
parallelSet 0 for sequential execution, 1 for parallel execution with OpenMP and 2 for parallel with TBB (optional)

Reimplemented from Gate.

Definition at line 141 of file U3.cpp.

Here is the call graph for this function:

◆ apply_to_list() [2/2]

void Gate::apply_to_list ( std::vector< Matrix > &  inputs,
int  parallel 
)
virtualinherited

Call to apply the gate on a list of inputs.

Parameters
inputsThe input array on which the gate is applied
parallelSet 0 for sequential execution, 1 for parallel execution with OpenMP and 2 for parallel with TBB (optional)

Definition at line 187 of file Gate.cpp.

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

◆ calc_one_qubit_u3() [1/2]

Matrix Tdg::calc_one_qubit_u3 ( )
virtual

Set static values for matrix of the gates.

Parameters
u3_1qbitMatrix parameter for the gate.

Reimplemented from Gate.

Definition at line 241 of file Tdg.cpp.

Here is the caller graph for this function:

◆ calc_one_qubit_u3() [2/2]

Matrix Gate::calc_one_qubit_u3 ( double  ThetaOver2,
double  Phi,
double  Lambda 
)
virtualinherited

Calculate the matrix of a U3 gate gate corresponding to the given parameters acting on a single qbit space.

Parameters
ThetaReal parameter standing for the parameter theta.
PhiReal parameter standing for the parameter phi.
LambdaReal parameter standing for the parameter lambda.
Returns
Returns with the matrix of the one-qubit matrix.
Parameters
ThetaOver2Real parameter standing for the parameter theta.
PhiReal parameter standing for the parameter phi.
LambdaReal parameter standing for the parameter lambda.
Returns
Returns with the matrix of the one-qubit matrix.

Definition at line 695 of file Gate.cpp.

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

◆ clear_children()

void Gate::clear_children ( )
inherited

Call to erase data on children.

Definition at line 441 of file Gate.cpp.

Here is the caller graph for this function:

◆ clear_parents()

void Gate::clear_parents ( )
inherited

Call to erase data on parents.

Definition at line 451 of file Gate.cpp.

Here is the caller graph for this function:

◆ clone()

Tdg * Tdg::clone ( )
virtual

Call to create a clone of the present class.

Returns
Return with a pointer pointing to the cloned object

Reimplemented from U3.

Definition at line 200 of file Tdg.cpp.

Here is the call graph for this function:

◆ extract_parameters()

Matrix_real U3::extract_parameters ( Matrix_real parameters)
virtualinherited

Call to extract parameters from the parameter array corresponding to the circuit, in which the gate is embedded.

Parameters
parametersThe parameter array corresponding to the circuit in which the gate is embedded
Returns
Returns with the array of the extracted parameters.

Reimplemented from Gate.

Reimplemented in Adaptive, RY, RZ, U1, U2, RX, R, and CRY.

Definition at line 297 of file U3.cpp.

Here is the call graph for this function:

◆ get_children()

std::vector< Gate * > Gate::get_children ( )
inherited

Call to get the children of the current gate.

Returns
Returns with the list of the children

Definition at line 474 of file Gate.cpp.

Here is the caller graph for this function:

◆ get_control_qbit()

int Gate::get_control_qbit ( )
inherited

Call to get the index of the control qubit.

Returns
Return with the index of the control qubit (return with -1 if control qubit was not set)

Definition at line 378 of file Gate.cpp.

Here is the caller graph for this function:

◆ get_involved_qubits()

std::vector< int > Gate::get_involved_qubits ( )
virtualinherited

Call to get the qubits involved in the gate operation.

Returns
Return with a list of the involved qubits

Reimplemented in Gates_block.

Definition at line 386 of file Gate.cpp.

Here is the caller graph for this function:

◆ get_matrix() [1/4]

Matrix U3::get_matrix ( Matrix_real parameters)
virtualinherited

Call to retrieve the gate matrix.

Parameters
parametersAn array of parameters to calculate the matrix of the U3 gate.
Returns
Returns with a matrix of the gate

Reimplemented from Gate.

Definition at line 102 of file U3.cpp.

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

◆ get_matrix() [2/4]

Matrix Tdg::get_matrix ( )
virtual

Call to retrieve the gate matrix.

Returns
Returns with a matrix of the gate

Reimplemented from Gate.

Definition at line 108 of file Tdg.cpp.

◆ get_matrix() [3/4]

Matrix Tdg::get_matrix ( int  parallel)
virtual

Call to retrieve the gate matrix.

Parameters
parallelSet 0 for sequential execution, 1 for parallel execution with OpenMP and 2 for parallel with TBB (optional)
Returns
Returns with a matrix of the gate
Parameters
parallelSet 0 for sequential execution (default), 1 for parallel execution with OpenMP and 2 for parallel with TBB (optional)
Returns
Returns with a matrix of the gate

Reimplemented from Gate.

Definition at line 122 of file Tdg.cpp.

Here is the call graph for this function:

◆ get_matrix() [4/4]

Matrix U3::get_matrix ( Matrix_real parameters,
int  parallel 
)
virtualinherited

Call to retrieve the gate matrix.

Parameters
parametersAn array of parameters to calculate the matrix of the U3 gate.
parallelSet 0 for sequential execution, 1 for parallel execution with OpenMP and 2 for parallel with TBB (optional)
Returns
Returns with a matrix of the gate

Reimplemented from Gate.

Definition at line 115 of file U3.cpp.

Here is the call graph for this function:

◆ get_name()

std::string Gate::get_name ( )
inherited

Call to get the name label of the gate.

Returns
Returns with the name label of the gate

Definition at line 839 of file Gate.cpp.

Here is the caller graph for this function:

◆ get_parameter_num()

int Gate::get_parameter_num ( )
inherited

Call to get the number of free parameters.

Returns
Return with the number of the free parameters

Definition at line 486 of file Gate.cpp.

Here is the caller graph for this function:

◆ get_parameter_start_idx()

int Gate::get_parameter_start_idx ( )
inherited

Call to get the starting index of the parameters in the parameter array corresponding to the circuit in which the current gate is incorporated.

Parameters
start_idxThe starting index

Definition at line 814 of file Gate.cpp.

Here is the caller graph for this function:

◆ get_parents()

std::vector< Gate * > Gate::get_parents ( )
inherited

Call to get the parents of the current gate.

Returns
Returns with the list of the parents

Definition at line 463 of file Gate.cpp.

Here is the caller graph for this function:

◆ get_qbit_num()

int Gate::get_qbit_num ( )
inherited

Call to get the number of qubits composing the unitary.

Returns
Return with the number of qubits composing the unitary

Definition at line 504 of file Gate.cpp.

Here is the caller graph for this function:

◆ get_target_qbit()

int Gate::get_target_qbit ( )
inherited

Call to get the index of the target qubit.

Returns
Return with the index of the target qubit (return with -1 if target qubit was not set)

Definition at line 370 of file Gate.cpp.

Here is the caller graph for this function:

◆ get_type()

gate_type Gate::get_type ( )
inherited

Call to get the type of the operation.

Returns
Return with the type of the operation (see gate_type for details)

Definition at line 495 of file Gate.cpp.

Here is the caller graph for this function:

◆ parameters_for_calc_one_qubit()

void Gate::parameters_for_calc_one_qubit ( double &  ThetaOver2,
double &  Phi,
double &  Lambda 
)
virtualinherited

Calculate the matrix of a U3 gate gate corresponding to the given parameters acting on a single qbit space.

Set static values for the angles and constans parameters for calculating the matrix of the gates.

Parameters
ThetaReal parameter standing for the parameter theta.
PhiReal parameter standing for the parameter phi.
LambdaReal parameter standing for the parameter lambda.
Returns
Returns with the matrix of the one-qubit matrix.
Parameters
ThetaOver2Real parameter standing for the parameter theta.
PhiReal parameter standing for the parameter phi.
LambdaReal parameter standing for the parameter lambda.

Reimplemented in RY, RX, RZ, RZ_P, U1, and U2.

Definition at line 767 of file Gate.cpp.

◆ print()

void logging::print ( const std::stringstream &  sstream,
int  verbose_level = 1 
) const
inherited

Call to print output messages in the function of the verbosity level.

Parameters
sstreamThe stringstream input to store the output messages.
verbose_levelInteger input. High level means write more to the standart output, 0 means write nothing. The default value is set to 1.

Definition at line 55 of file logging.cpp.

◆ reorder_qubits()

void Tdg::reorder_qubits ( std::vector< int qbit_list)
virtual

Call to reorder the qubits in the matrix of the gate.

Parameters
qbit_listThe reordered list of qubits spanning the matrix

Reimplemented from U3.

Definition at line 219 of file Tdg.cpp.

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

◆ set_children()

void Gate::set_children ( std::vector< Gate *> &  children_)
inherited

Call to set the children of the current gate.

Parameters
children_the list of the children

Definition at line 802 of file Gate.cpp.

Here is the caller graph for this function:

◆ set_control_qbit()

void Gate::set_control_qbit ( int  control_qbit_in)
inherited

Call to set the control qubit for the gate operation.

Parameters
control_qbit_inThe control qubit. Should be: 0 <= control_qbit_in < qbit_num

Definition at line 308 of file Gate.cpp.

Here is the caller graph for this function:

◆ set_debugfile()

void logging::set_debugfile ( std::string  debugfile)
inherited

Call to set the debugfile name.

Parameters
debugfileString variable. Set the debugfile name.

Definition at line 95 of file logging.cpp.

Here is the caller graph for this function:

◆ set_matrix()

void Gate::set_matrix ( Matrix  input)
inherited

Call to set the stored matrix in the operation.

Parameters
inputThe operation matrix to be stored. The matrix is stored by attribute matrix_alloc.
Returns
Returns with 0 on success.

Definition at line 299 of file Gate.cpp.

Here is the caller graph for this function:

◆ set_parameter_start_idx()

void Gate::set_parameter_start_idx ( int  start_idx)
inherited

Call to set the starting index of the parameters in the parameter array corresponding to the circuit in which the current gate is incorporated.

Parameters
start_idxThe starting index

Definition at line 779 of file Gate.cpp.

Here is the caller graph for this function:

◆ set_parents()

void Gate::set_parents ( std::vector< Gate *> &  parents_)
inherited

Call to set the parents of the current gate.

Parameters
parents_the list of the parents

Definition at line 790 of file Gate.cpp.

Here is the caller graph for this function:

◆ set_qbit_num()

void Tdg::set_qbit_num ( int  qbit_num_in)
virtual

Call to set the number of qubits spanning the matrix of the gate.

Parameters
qbit_num_inThe number of qubits

Reimplemented from U3.

Definition at line 230 of file Tdg.cpp.

Here is the call graph for this function:

◆ set_target_qbit()

void Gate::set_target_qbit ( int  target_qbit_in)
inherited

Call to set the target qubit for the gate operation.

Parameters
target_qbit_inThe target qubit on which the gate is applied. Should be: 0 <= target_qbit_in < qbit_num

Definition at line 324 of file Gate.cpp.

Here is the caller graph for this function:

◆ set_verbose()

void logging::set_verbose ( int  verbose_in)
inherited

Call to set the verbose attribute.

Parameters
verbose_inInteger variable. Set the number to specify the verbosity level for output messages.

Definition at line 85 of file logging.cpp.

Here is the caller graph for this function:

Member Data Documentation

◆ children

std::vector<Gate*> Gate::children
protectedinherited

list of child gates to be applied after this current gate

Definition at line 97 of file Gate.h.

◆ control_qbit

int Gate::control_qbit
protectedinherited

The index of the qubit which acts as a control qubit (control_qbit >= 0) in controlled operations.

Definition at line 87 of file Gate.h.

◆ debug

bool logging::debug
inherited

Logical variable. Set true to write output messages to the 'debug.txt' file.

Definition at line 53 of file logging.h.

◆ debugfile_name

std::string logging::debugfile_name
inherited

String variable. Set the debug file name.

Definition at line 56 of file logging.h.

◆ matrix_size

int Gate::matrix_size
protectedinherited

The size N of the NxN matrix associated with the operations.

Definition at line 89 of file Gate.h.

◆ name

std::string Gate::name
protectedinherited

A string labeling the gate operation.

Definition at line 79 of file Gate.h.

◆ parameter_num

int Gate::parameter_num
protectedinherited

the number of free parameters of the operation

Definition at line 91 of file Gate.h.

◆ parameter_start_idx

int Gate::parameter_start_idx
protectedinherited

the index in the parameter array (corrensponding to the encapsulated circuit) where the gate parameters begin (if gates are placed into a circuit a single parameter array is used to execute the whole circuit)

Definition at line 93 of file Gate.h.

◆ parents

std::vector<Gate*> Gate::parents
protectedinherited

list of parent gates to be applied in the circuit prior to this current gate

Definition at line 95 of file Gate.h.

◆ qbit_num

int Gate::qbit_num
protectedinherited

number of qubits spanning the matrix of the operation

Definition at line 81 of file Gate.h.

◆ target_qbit

int Gate::target_qbit
protectedinherited

The index of the qubit on which the operation acts (target_qbit >= 0)

Definition at line 85 of file Gate.h.

◆ type

gate_type Gate::type
protectedinherited

The type of the operation (see enumeration gate_type)

Definition at line 83 of file Gate.h.

◆ verbose

int logging::verbose
inherited

Set the verbosity level of the output messages.

Definition at line 50 of file logging.h.


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