Sequential Quantum Gate Decomposer  v1.9.6
Powerful decomposition of general unitarias into one- and two-qubit gates gates
Functions
apply_kernel_to_state_vector_input_AVX.cpp File Reference
#include "apply_kernel_to_state_vector_input_AVX.h"
#include "apply_large_kernel_to_input_AVX.h"
#include <immintrin.h>
#include "tbb/tbb.h"
Include dependency graph for apply_kernel_to_state_vector_input_AVX.cpp:

Go to the source code of this file.

Functions

void apply_2qbit_kernel_to_state_vector_input_AVX (Matrix &two_qbit_unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_2qbit_kernel_to_state_vector_input_AVX32 (Matrix_float &two_qbit_unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_2qbit_kernel_to_state_vector_input_AVX32_impl (Matrix_float &two_qbit_unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_2qbit_kernel_to_state_vector_input_AVX_impl (Matrix &two_qbit_unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 Apply two-qubit gate kernel to a state vector using AVX optimization. More...
 
void apply_2qbit_kernel_to_state_vector_input_AVX_OpenMP (Matrix &two_qbit_unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_2qbit_kernel_to_state_vector_input_AVX_OpenMP32 (Matrix_float &two_qbit_unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_2qbit_kernel_to_state_vector_input_AVX_OpenMP32_impl (Matrix_float &two_qbit_unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_2qbit_kernel_to_state_vector_input_AVX_OpenMP_impl (Matrix &two_qbit_unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 Apply two-qubit gate kernel to a state vector using AVX optimization and OpenMP parallelization. More...
 
void apply_2qbit_kernel_to_state_vector_input_AVX_TBB (Matrix &two_qbit_unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_2qbit_kernel_to_state_vector_input_AVX_TBB32 (Matrix_float &two_qbit_unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_2qbit_kernel_to_state_vector_input_AVX_TBB32_impl (Matrix_float &two_qbit_unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_2qbit_kernel_to_state_vector_input_AVX_TBB_impl (Matrix &two_qbit_unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 Apply two-qubit gate kernel to a state vector using AVX optimization and TBB parallelization. More...
 
void apply_3qbit_kernel_to_state_vector_input_AVX (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_3qbit_kernel_to_state_vector_input_AVX32 (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_3qbit_kernel_to_state_vector_input_AVX32_impl (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_3qbit_kernel_to_state_vector_input_AVX_impl (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 Apply a 3-qubit quantum gate (unitary matrix) to a state vector using AVX intrinsics. More...
 
void apply_3qbit_kernel_to_state_vector_input_AVX_OpenMP (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_3qbit_kernel_to_state_vector_input_AVX_OpenMP32 (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_3qbit_kernel_to_state_vector_input_AVX_OpenMP32_impl (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_3qbit_kernel_to_state_vector_input_AVX_OpenMP_impl (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 Apply three-qubit gate kernel to a state vector using AVX optimization and OpenMP parallelization. More...
 
void apply_3qbit_kernel_to_state_vector_input_AVX_TBB (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_3qbit_kernel_to_state_vector_input_AVX_TBB32 (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_3qbit_kernel_to_state_vector_input_AVX_TBB32_impl (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_3qbit_kernel_to_state_vector_input_AVX_TBB_impl (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 Apply three-qubit gate kernel to a state vector using AVX optimization and TBB parallelization. More...
 
void apply_4qbit_kernel_to_state_vector_input_AVX (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_4qbit_kernel_to_state_vector_input_AVX32 (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_4qbit_kernel_to_state_vector_input_AVX32_impl (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_4qbit_kernel_to_state_vector_input_AVX_impl (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 Apply four-qubit gate kernel to a state vector using AVX optimization. More...
 
void apply_4qbit_kernel_to_state_vector_input_AVX_OpenMP (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_4qbit_kernel_to_state_vector_input_AVX_OpenMP32 (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_4qbit_kernel_to_state_vector_input_AVX_OpenMP32_impl (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_4qbit_kernel_to_state_vector_input_AVX_OpenMP_impl (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 Apply four-qubit gate kernel to a state vector using AVX optimization and OpenMP parallelization. More...
 
void apply_4qbit_kernel_to_state_vector_input_AVX_TBB (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_4qbit_kernel_to_state_vector_input_AVX_TBB32 (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_4qbit_kernel_to_state_vector_input_AVX_TBB32_impl (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_4qbit_kernel_to_state_vector_input_AVX_TBB_impl (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 Apply four-qubit gate kernel to a state vector using AVX optimization and TBB parallelization. More...
 
void apply_5qbit_kernel_to_state_vector_input_AVX (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_5qbit_kernel_to_state_vector_input_AVX32 (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_5qbit_kernel_to_state_vector_input_AVX32_impl (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_5qbit_kernel_to_state_vector_input_AVX_impl (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 Apply five-qubit gate kernel to a state vector using AVX optimization. More...
 
void apply_5qbit_kernel_to_state_vector_input_AVX_OpenMP (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_5qbit_kernel_to_state_vector_input_AVX_OpenMP32 (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_5qbit_kernel_to_state_vector_input_AVX_OpenMP32_impl (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_5qbit_kernel_to_state_vector_input_AVX_OpenMP_impl (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 Apply five-qubit gate kernel to a state vector using AVX optimization and OpenMP parallelization. More...
 
void apply_5qbit_kernel_to_state_vector_input_AVX_TBB (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_5qbit_kernel_to_state_vector_input_AVX_TBB32 (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_5qbit_kernel_to_state_vector_input_AVX_TBB32_impl (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size)
 
void apply_5qbit_kernel_to_state_vector_input_AVX_TBB_impl (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size)
 Apply five-qubit gate kernel to a state vector using AVX optimization and TBB parallelization. More...
 
void apply_kernel_to_state_vector_input_AVX (Matrix &u3_1qbit, Matrix &input, const bool &deriv, const int &target_qbit, const int &control_qbit, const int &matrix_size)
 AVX kernel on a state vector. More...
 
void apply_kernel_to_state_vector_input_AVX32 (Matrix_float &u3_1qbit, Matrix_float &input, const bool &deriv, const int &target_qbit, const int &control_qbit, const int &matrix_size)
 
void apply_kernel_to_state_vector_input_parallel_AVX (Matrix &u3_1qbit, Matrix &input, const bool &deriv, const int &target_qbit, const int &control_qbit, const int &matrix_size)
 Parallel AVX kernel on a state vector (parallelized with Intel TBB) More...
 
void apply_kernel_to_state_vector_input_parallel_AVX32 (Matrix_float &u3_1qbit, Matrix_float &input, const bool &deriv, const int &target_qbit, const int &control_qbit, const int &matrix_size)
 
void apply_kernel_to_state_vector_input_parallel_OpenMP_AVX (Matrix &u3_1qbit, Matrix &input, const bool &deriv, const int &target_qbit, const int &control_qbit, const int &matrix_size)
 Parallel AVX kernel on a state vector (parallelized with OpenMP) More...
 
void apply_kernel_to_state_vector_input_parallel_OpenMP_AVX32 (Matrix_float &u3_1qbit, Matrix_float &input, const bool &deriv, const int &target_qbit, const int &control_qbit, const int &matrix_size)
 

Function Documentation

◆ apply_2qbit_kernel_to_state_vector_input_AVX()

void apply_2qbit_kernel_to_state_vector_input_AVX ( Matrix two_qbit_unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1125 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_2qbit_kernel_to_state_vector_input_AVX32()

void apply_2qbit_kernel_to_state_vector_input_AVX32 ( Matrix_float two_qbit_unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1173 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_2qbit_kernel_to_state_vector_input_AVX32_impl()

void apply_2qbit_kernel_to_state_vector_input_AVX32_impl ( Matrix_float two_qbit_unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 5948 of file apply_large_kernel_to_input_AVX.cpp.

Here is the caller graph for this function:

◆ apply_2qbit_kernel_to_state_vector_input_AVX_impl()

void apply_2qbit_kernel_to_state_vector_input_AVX_impl ( Matrix two_qbit_unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Apply two-qubit gate kernel to a state vector using AVX optimization.

Parameters
two_qbit_unitaryThe 4x4 unitary matrix representing the two-qubit gate operation
inputThe input state vector matrix on which the transformation is applied
involved_qbitsThe qubits involved in the gate operation (2 qubits)
matrix_sizeThe size of the input state vector (should be a power of 2)

Definition at line 516 of file apply_large_kernel_to_input_AVX.cpp.

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

◆ apply_2qbit_kernel_to_state_vector_input_AVX_OpenMP()

void apply_2qbit_kernel_to_state_vector_input_AVX_OpenMP ( Matrix two_qbit_unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1129 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_2qbit_kernel_to_state_vector_input_AVX_OpenMP32()

void apply_2qbit_kernel_to_state_vector_input_AVX_OpenMP32 ( Matrix_float two_qbit_unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1177 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_2qbit_kernel_to_state_vector_input_AVX_OpenMP32_impl()

void apply_2qbit_kernel_to_state_vector_input_AVX_OpenMP32_impl ( Matrix_float two_qbit_unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 5952 of file apply_large_kernel_to_input_AVX.cpp.

Here is the caller graph for this function:

◆ apply_2qbit_kernel_to_state_vector_input_AVX_OpenMP_impl()

void apply_2qbit_kernel_to_state_vector_input_AVX_OpenMP_impl ( Matrix two_qbit_unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Apply two-qubit gate kernel to a state vector using AVX optimization and OpenMP parallelization.

Parameters
two_qbit_unitaryThe 4x4 unitary matrix representing the two-qubit gate operation
inputThe input state vector matrix on which the transformation is applied
involved_qbitsThe qubits involved in the gate operation (2 qubits)
matrix_sizeThe size of the input state vector (should be a power of 2)

Definition at line 1553 of file apply_large_kernel_to_input_AVX.cpp.

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

◆ apply_2qbit_kernel_to_state_vector_input_AVX_TBB()

void apply_2qbit_kernel_to_state_vector_input_AVX_TBB ( Matrix two_qbit_unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1133 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_2qbit_kernel_to_state_vector_input_AVX_TBB32()

void apply_2qbit_kernel_to_state_vector_input_AVX_TBB32 ( Matrix_float two_qbit_unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1181 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_2qbit_kernel_to_state_vector_input_AVX_TBB32_impl()

void apply_2qbit_kernel_to_state_vector_input_AVX_TBB32_impl ( Matrix_float two_qbit_unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 5956 of file apply_large_kernel_to_input_AVX.cpp.

Here is the caller graph for this function:

◆ apply_2qbit_kernel_to_state_vector_input_AVX_TBB_impl()

void apply_2qbit_kernel_to_state_vector_input_AVX_TBB_impl ( Matrix two_qbit_unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Apply two-qubit gate kernel to a state vector using AVX optimization and TBB parallelization.

Parameters
two_qbit_unitaryThe 4x4 unitary matrix representing the two-qubit gate operation
inputThe input state vector matrix on which the transformation is applied
involved_qbitsThe qubits involved in the gate operation (2 qubits)
matrix_sizeThe size of the input state vector (should be a power of 2)

Definition at line 1825 of file apply_large_kernel_to_input_AVX.cpp.

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

◆ apply_3qbit_kernel_to_state_vector_input_AVX()

void apply_3qbit_kernel_to_state_vector_input_AVX ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1137 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_3qbit_kernel_to_state_vector_input_AVX32()

void apply_3qbit_kernel_to_state_vector_input_AVX32 ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1185 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_3qbit_kernel_to_state_vector_input_AVX32_impl()

void apply_3qbit_kernel_to_state_vector_input_AVX32_impl ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 5964 of file apply_large_kernel_to_input_AVX.cpp.

Here is the caller graph for this function:

◆ apply_3qbit_kernel_to_state_vector_input_AVX_impl()

void apply_3qbit_kernel_to_state_vector_input_AVX_impl ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Apply a 3-qubit quantum gate (unitary matrix) to a state vector using AVX intrinsics.

Parameters
unitaryThe 8x8 unitary matrix representing the 3-qubit gate.
inputThe state vector to which the gate is applied.
involved_qbitsA vector of three integers indicating the qubit indices the gate acts on.
matrix_sizeThe size of the state vector (should be a power of 2).

Definition at line 849 of file apply_large_kernel_to_input_AVX.cpp.

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

◆ apply_3qbit_kernel_to_state_vector_input_AVX_OpenMP()

void apply_3qbit_kernel_to_state_vector_input_AVX_OpenMP ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1141 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_3qbit_kernel_to_state_vector_input_AVX_OpenMP32()

void apply_3qbit_kernel_to_state_vector_input_AVX_OpenMP32 ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1189 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_3qbit_kernel_to_state_vector_input_AVX_OpenMP32_impl()

void apply_3qbit_kernel_to_state_vector_input_AVX_OpenMP32_impl ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 5968 of file apply_large_kernel_to_input_AVX.cpp.

Here is the caller graph for this function:

◆ apply_3qbit_kernel_to_state_vector_input_AVX_OpenMP_impl()

void apply_3qbit_kernel_to_state_vector_input_AVX_OpenMP_impl ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Apply three-qubit gate kernel to a state vector using AVX optimization and OpenMP parallelization.

Parameters
unitaryThe 8x8 unitary matrix representing the three-qubit gate operation
inputThe input state vector matrix on which the transformation is applied
involved_qbitsThe qubits involved in the gate operation (3 qubits)
matrix_sizeThe size of the input state vector (should be a power of 2)

Definition at line 2095 of file apply_large_kernel_to_input_AVX.cpp.

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

◆ apply_3qbit_kernel_to_state_vector_input_AVX_TBB()

void apply_3qbit_kernel_to_state_vector_input_AVX_TBB ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1145 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_3qbit_kernel_to_state_vector_input_AVX_TBB32()

void apply_3qbit_kernel_to_state_vector_input_AVX_TBB32 ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1193 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_3qbit_kernel_to_state_vector_input_AVX_TBB32_impl()

void apply_3qbit_kernel_to_state_vector_input_AVX_TBB32_impl ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 5972 of file apply_large_kernel_to_input_AVX.cpp.

Here is the caller graph for this function:

◆ apply_3qbit_kernel_to_state_vector_input_AVX_TBB_impl()

void apply_3qbit_kernel_to_state_vector_input_AVX_TBB_impl ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Apply three-qubit gate kernel to a state vector using AVX optimization and TBB parallelization.

Parameters
unitaryThe 8x8 unitary matrix representing the three-qubit gate operation
inputThe input state vector matrix on which the transformation is applied
involved_qbitsThe qubits involved in the gate operation (3 qubits)
matrix_sizeThe size of the input state vector (should be a power of 2)

Definition at line 2268 of file apply_large_kernel_to_input_AVX.cpp.

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

◆ apply_4qbit_kernel_to_state_vector_input_AVX()

void apply_4qbit_kernel_to_state_vector_input_AVX ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1149 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_4qbit_kernel_to_state_vector_input_AVX32()

void apply_4qbit_kernel_to_state_vector_input_AVX32 ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1197 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_4qbit_kernel_to_state_vector_input_AVX32_impl()

void apply_4qbit_kernel_to_state_vector_input_AVX32_impl ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 5976 of file apply_large_kernel_to_input_AVX.cpp.

Here is the caller graph for this function:

◆ apply_4qbit_kernel_to_state_vector_input_AVX_impl()

void apply_4qbit_kernel_to_state_vector_input_AVX_impl ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Apply four-qubit gate kernel to a state vector using AVX optimization.

Parameters
unitaryThe 16x16 unitary matrix representing the four-qubit gate operation
inputThe input state vector matrix on which the transformation is applied
involved_qbitsThe qubits involved in the gate operation (4 qubits)
matrix_sizeThe size of the input state vector (should be a power of 2)

Definition at line 1013 of file apply_large_kernel_to_input_AVX.cpp.

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

◆ apply_4qbit_kernel_to_state_vector_input_AVX_OpenMP()

void apply_4qbit_kernel_to_state_vector_input_AVX_OpenMP ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1153 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_4qbit_kernel_to_state_vector_input_AVX_OpenMP32()

void apply_4qbit_kernel_to_state_vector_input_AVX_OpenMP32 ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1201 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_4qbit_kernel_to_state_vector_input_AVX_OpenMP32_impl()

void apply_4qbit_kernel_to_state_vector_input_AVX_OpenMP32_impl ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 5980 of file apply_large_kernel_to_input_AVX.cpp.

Here is the caller graph for this function:

◆ apply_4qbit_kernel_to_state_vector_input_AVX_OpenMP_impl()

void apply_4qbit_kernel_to_state_vector_input_AVX_OpenMP_impl ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Apply four-qubit gate kernel to a state vector using AVX optimization and OpenMP parallelization.

Parameters
unitaryThe 16x16 unitary matrix representing the four-qubit gate operation
inputThe input state vector matrix on which the transformation is applied
involved_qbitsThe qubits involved in the gate operation (4 qubits)
matrix_sizeThe size of the input state vector (should be a power of 2)

Definition at line 2443 of file apply_large_kernel_to_input_AVX.cpp.

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

◆ apply_4qbit_kernel_to_state_vector_input_AVX_TBB()

void apply_4qbit_kernel_to_state_vector_input_AVX_TBB ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1157 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_4qbit_kernel_to_state_vector_input_AVX_TBB32()

void apply_4qbit_kernel_to_state_vector_input_AVX_TBB32 ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1205 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_4qbit_kernel_to_state_vector_input_AVX_TBB32_impl()

void apply_4qbit_kernel_to_state_vector_input_AVX_TBB32_impl ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 5984 of file apply_large_kernel_to_input_AVX.cpp.

Here is the caller graph for this function:

◆ apply_4qbit_kernel_to_state_vector_input_AVX_TBB_impl()

void apply_4qbit_kernel_to_state_vector_input_AVX_TBB_impl ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Apply four-qubit gate kernel to a state vector using AVX optimization and TBB parallelization.

Parameters
unitaryThe 16x16 unitary matrix representing the four-qubit gate operation
inputThe input state vector matrix on which the transformation is applied
involved_qbitsThe qubits involved in the gate operation (4 qubits)
matrix_sizeThe size of the input state vector (should be a power of 2)

Definition at line 2640 of file apply_large_kernel_to_input_AVX.cpp.

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

◆ apply_5qbit_kernel_to_state_vector_input_AVX()

void apply_5qbit_kernel_to_state_vector_input_AVX ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1161 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_5qbit_kernel_to_state_vector_input_AVX32()

void apply_5qbit_kernel_to_state_vector_input_AVX32 ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1209 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_5qbit_kernel_to_state_vector_input_AVX32_impl()

void apply_5qbit_kernel_to_state_vector_input_AVX32_impl ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 5988 of file apply_large_kernel_to_input_AVX.cpp.

Here is the caller graph for this function:

◆ apply_5qbit_kernel_to_state_vector_input_AVX_impl()

void apply_5qbit_kernel_to_state_vector_input_AVX_impl ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Apply five-qubit gate kernel to a state vector using AVX optimization.

Parameters
unitaryThe 32x32 unitary matrix representing the five-qubit gate operation
inputThe input state vector matrix on which the transformation is applied
involved_qbitsThe qubits involved in the gate operation (5 qubits)
matrix_sizeThe size of the input state vector (should be a power of 2)

Definition at line 1216 of file apply_large_kernel_to_input_AVX.cpp.

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

◆ apply_5qbit_kernel_to_state_vector_input_AVX_OpenMP()

void apply_5qbit_kernel_to_state_vector_input_AVX_OpenMP ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1165 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_5qbit_kernel_to_state_vector_input_AVX_OpenMP32()

void apply_5qbit_kernel_to_state_vector_input_AVX_OpenMP32 ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1213 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_5qbit_kernel_to_state_vector_input_AVX_OpenMP32_impl()

void apply_5qbit_kernel_to_state_vector_input_AVX_OpenMP32_impl ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 5992 of file apply_large_kernel_to_input_AVX.cpp.

Here is the caller graph for this function:

◆ apply_5qbit_kernel_to_state_vector_input_AVX_OpenMP_impl()

void apply_5qbit_kernel_to_state_vector_input_AVX_OpenMP_impl ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Apply five-qubit gate kernel to a state vector using AVX optimization and OpenMP parallelization.

Parameters
unitaryThe 32x32 unitary matrix representing the five-qubit gate operation
inputThe input state vector matrix on which the transformation is applied
involved_qbitsThe qubits involved in the gate operation (5 qubits)
matrix_sizeThe size of the input state vector (should be a power of 2)

Definition at line 2842 of file apply_large_kernel_to_input_AVX.cpp.

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

◆ apply_5qbit_kernel_to_state_vector_input_AVX_TBB()

void apply_5qbit_kernel_to_state_vector_input_AVX_TBB ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1169 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_5qbit_kernel_to_state_vector_input_AVX_TBB32()

void apply_5qbit_kernel_to_state_vector_input_AVX_TBB32 ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 1217 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_5qbit_kernel_to_state_vector_input_AVX_TBB32_impl()

void apply_5qbit_kernel_to_state_vector_input_AVX_TBB32_impl ( Matrix_float unitary,
Matrix_float input,
std::vector< int involved_qbits,
const int matrix_size 
)

Definition at line 5996 of file apply_large_kernel_to_input_AVX.cpp.

Here is the caller graph for this function:

◆ apply_5qbit_kernel_to_state_vector_input_AVX_TBB_impl()

void apply_5qbit_kernel_to_state_vector_input_AVX_TBB_impl ( Matrix unitary,
Matrix input,
std::vector< int involved_qbits,
const int matrix_size 
)

Apply five-qubit gate kernel to a state vector using AVX optimization and TBB parallelization.

Parameters
unitaryThe 32x32 unitary matrix representing the five-qubit gate operation
inputThe input state vector matrix on which the transformation is applied
involved_qbitsThe qubits involved in the gate operation (5 qubits)
matrix_sizeThe size of the input state vector (should be a power of 2)

Definition at line 3179 of file apply_large_kernel_to_input_AVX.cpp.

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

◆ apply_kernel_to_state_vector_input_AVX()

void apply_kernel_to_state_vector_input_AVX ( Matrix u3_1qbit,
Matrix input,
const bool deriv,
const int target_qbit,
const int control_qbit,
const int matrix_size 
)

AVX kernel on a state vector.

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
target_qbitThe targer qubit on which the transformation should be applied
control_qbitThe contron qubit (-1 if the is no control qubit)
matrix_sizeThe size of the input

Definition at line 67 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_kernel_to_state_vector_input_AVX32()

void apply_kernel_to_state_vector_input_AVX32 ( Matrix_float u3_1qbit,
Matrix_float input,
const bool deriv,
const int target_qbit,
const int control_qbit,
const int matrix_size 
)

Definition at line 283 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_kernel_to_state_vector_input_parallel_AVX()

void apply_kernel_to_state_vector_input_parallel_AVX ( Matrix u3_1qbit,
Matrix input,
const bool deriv,
const int target_qbit,
const int control_qbit,
const int matrix_size 
)

Parallel AVX kernel on a state vector (parallelized with Intel TBB)

Parallel AVX kernel on a state vector.

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
target_qbitThe targer qubit on which the transformation should be applied
control_qbitThe contron qubit (-1 if the is no control qubit)
matrix_sizeThe size of the input

Definition at line 1459 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_kernel_to_state_vector_input_parallel_AVX32()

void apply_kernel_to_state_vector_input_parallel_AVX32 ( Matrix_float u3_1qbit,
Matrix_float input,
const bool deriv,
const int target_qbit,
const int control_qbit,
const int matrix_size 
)

Definition at line 833 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_kernel_to_state_vector_input_parallel_OpenMP_AVX()

void apply_kernel_to_state_vector_input_parallel_OpenMP_AVX ( Matrix u3_1qbit,
Matrix input,
const bool deriv,
const int target_qbit,
const int control_qbit,
const int matrix_size 
)

Parallel AVX kernel on a state vector (parallelized with OpenMP)

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
target_qbitThe targer qubit on which the transformation should be applied
control_qbitThe contron qubit (-1 if the is no control qubit)
matrix_sizeThe size of the input

Definition at line 1231 of file apply_kernel_to_state_vector_input_AVX.cpp.

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

◆ apply_kernel_to_state_vector_input_parallel_OpenMP_AVX32()

void apply_kernel_to_state_vector_input_parallel_OpenMP_AVX32 ( Matrix_float u3_1qbit,
Matrix_float input,
const bool deriv,
const int target_qbit,
const int control_qbit,
const int matrix_size 
)

Definition at line 557 of file apply_kernel_to_state_vector_input_AVX.cpp.

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