Sequential Quantum Gate Decomposer
v1.9.3
Powerful decomposition of general unitarias into one- and two-qubit gates gates
|
Go to the source code of this file.
Functions | |
void | apply_2qbit_kernel_to_matrix_input_AVX (Matrix &two_qbit_unitary, Matrix &input, const int &inner_qbit, const int &outer_qbit, const int &matrix_size) |
Call to apply kernel to apply two qubit gate kernel on an input matrix using AVX. More... | |
void | apply_2qbit_kernel_to_state_vector_input_AVX (Matrix &two_qbit_unitary, Matrix &input, const int &inner_qbit, const int &outer_qbit, const int &matrix_size) |
Call to apply kernel to apply two qubit gate kernel on a state vector using AVX. More... | |
void | apply_2qbit_kernel_to_state_vector_input_parallel_AVX (Matrix &two_qbit_unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size) |
Call to apply kernel to apply two qubit gate kernel on a state vector using AVX and TBB. More... | |
void | apply_3qbit_kernel_to_state_vector_input_parallel_AVX (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size) |
Call to apply kernel to apply three qubit gate kernel on a state vector using AVX and TBB. More... | |
void | apply_4qbit_kernel_to_state_vector_input_parallel_AVX (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size) |
Call to apply kernel to apply four qubit gate kernel on a state vector using AVX and TBB. More... | |
void | apply_crot_kernel_to_matrix_input_AVX_parallel (Matrix &u3_1qbit1, Matrix &u3_1qbit2, Matrix &input, const int &target_qbit, const int &control_qbit, const int &matrix_size) |
Call to apply crot gate kernel on an input matrix using AVX and TBB. More... | |
void | apply_large_kernel_to_input_AVX (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size) |
Call to apply kernel to apply multi qubit gate kernel on an input matrix. More... | |
__m256d | complex_mult_AVX (__m256d input_vec, __m256d unitary_row_vec, __m256d neg) |
__m256d | get_AVX_vector (double *element_outer, double *element_inner) |
void apply_2qbit_kernel_to_matrix_input_AVX | ( | Matrix & | two_qbit_unitary, |
Matrix & | input, | ||
const int & | inner_qbit, | ||
const int & | outer_qbit, | ||
const int & | matrix_size | ||
) |
Call to apply kernel to apply two qubit gate kernel on an input matrix using AVX.
two_qbit_unitary | The 4x4 kernel of the gate operation |
input | The input matrix on which the transformation is applied |
inner_qbit | The lower significance qubit (little endian convention) |
outer_qbit | The higher significance qubit (little endian convention) |
matrix_size | The size of the input |
Definition at line 248 of file apply_large_kernel_to_input_AVX.cpp.
void apply_2qbit_kernel_to_state_vector_input_AVX | ( | Matrix & | two_qbit_unitary, |
Matrix & | input, | ||
const int & | inner_qbit, | ||
const int & | outer_qbit, | ||
const int & | matrix_size | ||
) |
Call to apply kernel to apply two qubit gate kernel on a state vector using AVX.
two_qbit_unitary | The 4x4 kernel of the gate operation |
input | The input matrix on which the transformation is applied |
inner_qbit | The lower significance qubit (little endian convention) |
outer_qbit | The higher significance qubit (little endian convention) |
matrix_size | The size of the input |
Definition at line 87 of file apply_large_kernel_to_input_AVX.cpp.
void apply_2qbit_kernel_to_state_vector_input_parallel_AVX | ( | Matrix & | two_qbit_unitary, |
Matrix & | input, | ||
std::vector< int > | involved_qbits, | ||
const int & | matrix_size | ||
) |
Call to apply kernel to apply two qubit gate kernel on a state vector using AVX and TBB.
two_qbit_unitary | The 4x4 kernel of the gate operation |
input | The input matrix on which the transformation is applied |
inner_qbit | The lower significance qubit (little endian convention) |
outer_qbit | The higher significance qubit (little endian convention) |
matrix_size | The size of the input |
Definition at line 343 of file apply_large_kernel_to_input_AVX.cpp.
void apply_3qbit_kernel_to_state_vector_input_parallel_AVX | ( | Matrix & | unitary, |
Matrix & | input, | ||
std::vector< int > | involved_qbits, | ||
const int & | matrix_size | ||
) |
Call to apply kernel to apply three qubit gate kernel on a state vector using AVX and TBB.
two_qbit_unitary | The 8x8 kernel of the gate operation |
input | The input matrix on which the transformation is applied |
involved_qbits | The qubits affected by the gate in order |
matrix_size | The size of the input |
Definition at line 549 of file apply_large_kernel_to_input_AVX.cpp.
void apply_4qbit_kernel_to_state_vector_input_parallel_AVX | ( | Matrix & | unitary, |
Matrix & | input, | ||
std::vector< int > | involved_qbits, | ||
const int & | matrix_size | ||
) |
Call to apply kernel to apply four qubit gate kernel on a state vector using AVX and TBB.
two_qbit_unitary | The 16x16 kernel of the gate operation |
input | The input matrix on which the transformation is applied |
involved_qbits | The qubits affected by the gate in order |
matrix_size | The size of the input |
Definition at line 695 of file apply_large_kernel_to_input_AVX.cpp.
void apply_crot_kernel_to_matrix_input_AVX_parallel | ( | Matrix & | u3_1qbit1, |
Matrix & | u3_1qbit2, | ||
Matrix & | input, | ||
const int & | target_qbit, | ||
const int & | control_qbit, | ||
const int & | matrix_size | ||
) |
Call to apply crot gate kernel on an input matrix using AVX and TBB.
u3_1qbit1 | The 2x2 kernel to be applied on target |1> |
u3_1qbit2 | The 2x2 kernel to be applied on target |0> |
input | The input matrix on which the transformation is applied |
target_qbit | The target qubit |
control_qbit | The control qubit |
matrix_size | The size of the input |
Definition at line 917 of file apply_large_kernel_to_input_AVX.cpp.
void apply_large_kernel_to_input_AVX | ( | Matrix & | unitary, |
Matrix & | input, | ||
std::vector< int > | involved_qbits, | ||
const int & | matrix_size | ||
) |
Call to apply kernel to apply multi qubit gate kernel on an input matrix.
unitary | The 2^Nx2^N kernel of the gate operation |
input | The input matrix on which the transformation is applied |
involved_qbits | The involved qubits in the operation |
matrix_size | The size of the input |
Definition at line 58 of file apply_large_kernel_to_input_AVX.cpp.
|
inline |
Definition at line 39 of file apply_large_kernel_to_input_AVX.cpp.
|
inline |
Definition at line 27 of file apply_large_kernel_to_input_AVX.cpp.