23 #ifndef N_Qubit_Decomposition_H 24 #define N_Qubit_Decomposition_H N_Qubit_Decomposition()
Nullary constructor of the class.
void decompose_submatrix()
Start the decompostion process to recursively decompose the submatrices.
virtual void start_decomposition(bool finalize_decomp=true)
Start the disentanglig process of the unitary.
void finalize_decomposition()
After the main optimization problem is solved, the indepent qubits can be rotated into state |0> by t...
void set_custom_gate_structure(std::map< int, Gates_block *> gate_structure_in)
Call to set custom layers to the gate structure that are intended to be used in the subdecomposition...
virtual ~N_Qubit_Decomposition()
Destructor of the class.
A base class to determine the decomposition of an N-qubit unitary into a sequence of CNOT and U3 gate...
Structure type representing complex numbers in the SQUANDER package.
Class to store data of complex arrays and its properties.
int LAPACKE_zggev(int matrix_layout, char jobvl, char jobvr, int n, QGD_Complex16 *a, int lda, QGD_Complex16 *b, int ldb, QGD_Complex16 *alpha, QGD_Complex16 *beta, QGD_Complex16 *vl, int ldvl, QGD_Complex16 *vr, int ldvr)
Definition of the zggev function from Lapacke to calculate the eigenvalues of a complex matrix...
void extract_subdecomposition_results(Sub_Matrix_Decomposition *cSub_decomposition)
Call to extract and store the calculated parameters and gates of the sub-decomposition processes...
guess_type
Type definition of the types of the initial guess.
std::map< std::string, Config_Element > config
config metadata utilized during the optimization
Header file for a class responsible for the disentanglement of one qubit from the others...
std::map< int, Gates_block * > gate_structure
A map of <int n: Gates_block* block> describing custom gate structure to be used in the decomposition...
A class responsible for the disentanglement of one qubit from the others.
int set_identical_blocks(int n, int identical_blocks_in)
Set the number of identical successive blocks during the subdecomposition of the n-th qubit...
A base class to determine the decomposition of an N-qubit unitary into a sequence of CNOT and U3 gate...