Base class for the representation of general gate operations.
More...
#include <Gate.h>
Base class for the representation of general gate operations.
Definition at line 41 of file Gate.h.
◆ Gate() [1/2]
Default constructor of the class.
Deafult constructor of the class.
- Returns
- An instance of the class
Definition at line 34 of file Gate.cpp.
◆ ~Gate()
Destructor of the class.
Definition at line 77 of file Gate.cpp.
◆ Gate() [2/2]
Gate::Gate |
( |
int |
qbit_num_in | ) |
|
Constructor of the class.
- Parameters
-
qbit_num_in | The number of qubits spanning the unitaries |
- Returns
- An instance of the class
Definition at line 57 of file Gate.cpp.
◆ apply_from_right()
void Gate::apply_from_right |
( |
Matrix & |
input | ) |
|
|
virtual |
Call to apply the gate on the input array/matrix by input*Gate.
- Parameters
-
input | The input array on which the gate is applied |
Reimplemented in SX, X, CNOT, SYC, CH, and CZ.
Definition at line 138 of file Gate.cpp.
◆ apply_to()
void Gate::apply_to |
( |
Matrix & |
input | ) |
|
|
virtual |
Call to apply the gate on the input array/matrix.
- Parameters
-
input | The input array on which the gate is applied |
Reimplemented in SX, X, CH, CNOT, CZ, and SYC.
Definition at line 125 of file Gate.cpp.
◆ apply_to_list()
void Gate::apply_to_list |
( |
std::vector< Matrix > & |
input | ) |
|
Call to apply the gate on the input array/matrix by U3*input.
- Parameters
-
parameters | An array of parameters to calculate the matrix of the U3 gate. |
input | The input array on which the gate is applied |
Definition at line 110 of file Gate.cpp.
◆ clone()
Call to create a clone of the present class.
- Returns
- Return with a pointer pointing to the cloned object
Definition at line 238 of file Gate.cpp.
◆ get_control_qbit()
int Gate::get_control_qbit |
( |
| ) |
|
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 203 of file Gate.cpp.
◆ get_matrix()
Call to retrieve the operation matrix.
- Returns
- Returns with a matrix of the operation
Definition at line 99 of file Gate.cpp.
◆ get_parameter_num()
int Gate::get_parameter_num |
( |
| ) |
|
Call to get the number of free parameters.
- Returns
- Return with the number of the free parameters
Definition at line 211 of file Gate.cpp.
◆ get_qbit_num()
int Gate::get_qbit_num |
( |
| ) |
|
Call to get the number of qubits composing the unitary.
- Returns
- Return with the number of qubits composing the unitary
Definition at line 229 of file Gate.cpp.
◆ get_target_qbit()
int Gate::get_target_qbit |
( |
| ) |
|
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 195 of file Gate.cpp.
◆ get_type()
Call to get the type of the operation.
- Returns
- Return with the type of the operation (see gate_type for details)
Definition at line 220 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
-
sstream | The stringstream input to store the output messages. |
verbose_level | Integer 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 Gate::reorder_qubits |
( |
std::vector< int > |
qbit_list | ) |
|
|
virtual |
Call to reorder the qubits in the matrix of the operation.
- Parameters
-
qbit_list | The reordered list of qubits spanning the matrix |
Reimplemented in Gates_block, Decomposition_Base, U3, Composite, SX, X, ON, UN, CNOT, SYC, CH, and CZ.
Definition at line 161 of file Gate.cpp.
◆ set_debugfile()
void logging::set_debugfile |
( |
std::string |
debugfile | ) |
|
|
inherited |
Call to set the debugfile name.
- Parameters
-
debugfile | String variable. Set the debugfile name. |
Definition at line 95 of file logging.cpp.
◆ set_matrix()
void Gate::set_matrix |
( |
Matrix |
input | ) |
|
Call to set the stored matrix in the operation.
- Parameters
-
input | The operation matrix to be stored. The matrix is stored by attribute matrix_alloc. |
- Returns
- Returns with 0 on success.
Definition at line 152 of file Gate.cpp.
◆ set_qbit_num()
void Gate::set_qbit_num |
( |
int |
qbit_num_in | ) |
|
|
virtual |
Set the number of qubits spanning the matrix of the operation.
- Parameters
-
qbit_num_in | The number of qubits spanning the matrix |
Reimplemented in Gates_block, U3, Composite, ON, SX, UN, X, CNOT, SYC, CH, and CZ.
Definition at line 84 of file Gate.cpp.
◆ set_verbose()
void logging::set_verbose |
( |
int |
verbose_in | ) |
|
|
inherited |
Call to set the verbose attribute.
- Parameters
-
verbose_in | Integer variable. Set the number to specify the verbosity level for output messages. |
Definition at line 85 of file logging.cpp.
◆ control_qbit
The index of the qubit which acts as a control qubit (control_qbit >= 0) in controlled operations.
Definition at line 53 of file Gate.h.
◆ debug
Logical variable. Set true to write output messages to the 'debug.txt' file.
Definition at line 48 of file logging.h.
◆ debugfile_name
std::string logging::debugfile_name |
|
inherited |
String variable. Set the debug file name.
Definition at line 51 of file logging.h.
◆ matrix_alloc
◆ matrix_size
The size N of the NxN matrix associated with the operations.
Definition at line 55 of file Gate.h.
◆ parameter_num
the number of free parameters of the operation
Definition at line 57 of file Gate.h.
◆ qbit_num
number of qubits spanning the matrix of the operation
Definition at line 47 of file Gate.h.
◆ target_qbit
The index of the qubit on which the operation acts (target_qbit >= 0)
Definition at line 51 of file Gate.h.
◆ type
The type of the operation (see enumeration gate_type)
Definition at line 49 of file Gate.h.
◆ verbose
Set the verbosity level of the output messages.
Definition at line 45 of file logging.h.
The documentation for this class was generated from the following files: