|
Sequential Quantum Gate Decomposer
v1.9.6
Powerful decomposition of general unitarias into one- and two-qubit gates gates
|
#include "apply_kernel_to_state_vector_input.h"#include "tbb/tbb.h"#include <type_traits>#include <utility>
Go to the source code of this file.
Typedefs | |
| template<typename MatrixT > | |
| using | StateVecComplexT = typename std::remove_reference< decltype(std::declval< MatrixT & >()[0])>::type |
Functions | |
| void | apply_2qbit_kernel_to_state_vector_input (Matrix &two_qbit_unitary, Matrix &input, const int &inner_qbit, const int &outer_qbit, const int &matrix_size) |
| void | apply_2qbit_kernel_to_state_vector_input (Matrix_float &two_qbit_unitary, Matrix_float &input, const int &inner_qbit, const int &outer_qbit, const int &matrix_size) |
| void | apply_3qbit_kernel_to_state_vector_input (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size) |
| void | apply_3qbit_kernel_to_state_vector_input (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size) |
| void | apply_4qbit_kernel_to_state_vector_input (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size) |
| void | apply_4qbit_kernel_to_state_vector_input (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size) |
| void | apply_5qbit_kernel_to_state_vector_input (Matrix &unitary, Matrix &input, std::vector< int > involved_qbits, const int &matrix_size) |
| void | apply_5qbit_kernel_to_state_vector_input (Matrix_float &unitary, Matrix_float &input, std::vector< int > involved_qbits, const int &matrix_size) |
| void | apply_kernel_to_state_vector_input (Matrix &u3_1qbit, Matrix &input, const bool &deriv, const int &target_qbit, const int &control_qbit, const int &matrix_size) |
| Call to apply a gate kernel on a state vector. More... | |
| void | apply_kernel_to_state_vector_input (Matrix_float &u3_1qbit, Matrix_float &input, const bool &deriv, const int &target_qbit, const int &control_qbit, const int &matrix_size) |
| template<typename MatrixT > | |
| void | apply_kernel_to_state_vector_input_impl (MatrixT &u3_1qbit, MatrixT &input, const bool &deriv, const int &target_qbit, const int &control_qbit, const int &matrix_size) |
| void | apply_kernel_to_state_vector_input_parallel (Matrix &u3_1qbit, Matrix &input, const bool &deriv, const int &target_qbit, const int &control_qbit, const int &matrix_size) |
| Call to apply a gate kernel on a state vector. More... | |
| void | apply_kernel_to_state_vector_input_parallel (Matrix_float &u3_1qbit, Matrix_float &input, const bool &deriv, const int &target_qbit, const int &control_qbit, const int &matrix_size) |
| template<typename MatrixT > | |
| void | apply_kernel_to_state_vector_input_parallel_impl (MatrixT &u3_1qbit, MatrixT &input, const bool &deriv, const int &target_qbit, const int &control_qbit, const int &matrix_size) |
| Call to apply a gate kernel on a state vector. More... | |
| template<typename MatrixT > | |
| void | apply_large_state_vector_2q_impl (MatrixT &two_qbit_unitary, MatrixT &input, const int &inner_qbit, const int &outer_qbit, const int &matrix_size) |
| template<typename MatrixT > | |
| void | apply_large_state_vector_3q_impl (MatrixT &unitary, MatrixT &input, std::vector< int > involved_qbits, const int &matrix_size) |
| template<typename MatrixT > | |
| void | apply_large_state_vector_4q_impl (MatrixT &unitary, MatrixT &input, std::vector< int > involved_qbits, const int &matrix_size) |
| template<typename MatrixT > | |
| void | apply_large_state_vector_5q_impl (MatrixT &unitary, MatrixT &input, std::vector< int > involved_qbits, const int &matrix_size) |
| using StateVecComplexT = typename std::remove_reference<decltype(std::declval<MatrixT&>()[0])>::type |
Definition at line 31 of file apply_kernel_to_state_vector_input.cpp.
| void apply_2qbit_kernel_to_state_vector_input | ( | Matrix & | two_qbit_unitary, |
| Matrix & | input, | ||
| const int & | inner_qbit, | ||
| const int & | outer_qbit, | ||
| const int & | matrix_size | ||
| ) |
Definition at line 619 of file apply_kernel_to_state_vector_input.cpp.


| void apply_2qbit_kernel_to_state_vector_input | ( | Matrix_float & | two_qbit_unitary, |
| Matrix_float & | input, | ||
| const int & | inner_qbit, | ||
| const int & | outer_qbit, | ||
| const int & | matrix_size | ||
| ) |
Definition at line 623 of file apply_kernel_to_state_vector_input.cpp.

| void apply_3qbit_kernel_to_state_vector_input | ( | Matrix & | unitary, |
| Matrix & | input, | ||
| std::vector< int > | involved_qbits, | ||
| const int & | matrix_size | ||
| ) |
Definition at line 627 of file apply_kernel_to_state_vector_input.cpp.


| void apply_3qbit_kernel_to_state_vector_input | ( | Matrix_float & | unitary, |
| Matrix_float & | input, | ||
| std::vector< int > | involved_qbits, | ||
| const int & | matrix_size | ||
| ) |
Definition at line 631 of file apply_kernel_to_state_vector_input.cpp.

| void apply_4qbit_kernel_to_state_vector_input | ( | Matrix & | unitary, |
| Matrix & | input, | ||
| std::vector< int > | involved_qbits, | ||
| const int & | matrix_size | ||
| ) |
Definition at line 635 of file apply_kernel_to_state_vector_input.cpp.


| void apply_4qbit_kernel_to_state_vector_input | ( | Matrix_float & | unitary, |
| Matrix_float & | input, | ||
| std::vector< int > | involved_qbits, | ||
| const int & | matrix_size | ||
| ) |
Definition at line 639 of file apply_kernel_to_state_vector_input.cpp.

| void apply_5qbit_kernel_to_state_vector_input | ( | Matrix & | unitary, |
| Matrix & | input, | ||
| std::vector< int > | involved_qbits, | ||
| const int & | matrix_size | ||
| ) |
Definition at line 643 of file apply_kernel_to_state_vector_input.cpp.


| void apply_5qbit_kernel_to_state_vector_input | ( | Matrix_float & | unitary, |
| Matrix_float & | input, | ||
| std::vector< int > | involved_qbits, | ||
| const int & | matrix_size | ||
| ) |
Definition at line 647 of file apply_kernel_to_state_vector_input.cpp.

| void apply_kernel_to_state_vector_input | ( | Matrix & | u3_1qbit, |
| Matrix & | input, | ||
| const bool & | deriv, | ||
| const int & | target_qbit, | ||
| const int & | control_qbit, | ||
| const int & | matrix_size | ||
| ) |
Call to apply a gate kernel on a state vector.
| u3_1qbit | The 2x2 kernel of the gate operation |
| input | The input matrix on which the transformation is applied |
| deriv | Set true to apply derivate transformation, false otherwise |
| target_qbit | The targer qubit on which the transformation should be applied |
| control_qbit | The contron qubit (-1 if the is no control qubit) |
| matrix_size | The size of the input |
Definition at line 110 of file apply_kernel_to_state_vector_input.cpp.


| void apply_kernel_to_state_vector_input | ( | 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 116 of file apply_kernel_to_state_vector_input.cpp.

| void apply_kernel_to_state_vector_input_impl | ( | MatrixT & | u3_1qbit, |
| MatrixT & | input, | ||
| const bool & | deriv, | ||
| const int & | target_qbit, | ||
| const int & | control_qbit, | ||
| const int & | matrix_size | ||
| ) |
Call to apply a gate kernel on a state vector
| u3_1qbit | The 2x2 kernel of the gate operation |
| input | The input matrix on which the transformation is applied |
| deriv | Set true to apply derivate transformation, false otherwise |
| target_qbit | The targer qubit on which the transformation should be applied |
| control_qbit | The contron qubit (-1 if the is no control qubit) |
| matrix_size | The size of the input |
Definition at line 35 of file apply_kernel_to_state_vector_input.cpp.


| void apply_kernel_to_state_vector_input_parallel | ( | Matrix & | u3_1qbit, |
| Matrix & | input, | ||
| const bool & | deriv, | ||
| const int & | target_qbit, | ||
| const int & | control_qbit, | ||
| const int & | matrix_size | ||
| ) |
Call to apply a gate kernel on a state vector.
Parallel version
| u3_1qbit | The 2x2 kernel of the gate operation |
| input | The input matrix on which the transformation is applied |
| deriv | Set true to apply derivate transformation, false otherwise |
| target_qbit | The targer qubit on which the transformation should be applied |
| control_qbit | The contron qubit (-1 if the is no control qubit) |
| matrix_size | The size of the input |
Definition at line 233 of file apply_kernel_to_state_vector_input.cpp.


| void apply_kernel_to_state_vector_input_parallel | ( | 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 239 of file apply_kernel_to_state_vector_input.cpp.

| void apply_kernel_to_state_vector_input_parallel_impl | ( | MatrixT & | u3_1qbit, |
| MatrixT & | input, | ||
| const bool & | deriv, | ||
| const int & | target_qbit, | ||
| const int & | control_qbit, | ||
| const int & | matrix_size | ||
| ) |
Call to apply a gate kernel on a state vector.
Parallel version
| u3_1qbit | The 2x2 kernel of the gate operation |
| input | The input matrix on which the transformation is applied |
| deriv | Set true to apply derivate transformation, false otherwise |
| target_qbit | The targer qubit on which the transformation should be applied |
| control_qbit | The contron qubit (-1 if the is no control qubit) |
| matrix_size | The size of the input |
Definition at line 135 of file apply_kernel_to_state_vector_input.cpp.


| void apply_large_state_vector_2q_impl | ( | MatrixT & | two_qbit_unitary, |
| MatrixT & | input, | ||
| const int & | inner_qbit, | ||
| const int & | outer_qbit, | ||
| const int & | matrix_size | ||
| ) |
Definition at line 245 of file apply_kernel_to_state_vector_input.cpp.


| void apply_large_state_vector_3q_impl | ( | MatrixT & | unitary, |
| MatrixT & | input, | ||
| std::vector< int > | involved_qbits, | ||
| const int & | matrix_size | ||
| ) |
Definition at line 290 of file apply_kernel_to_state_vector_input.cpp.


| void apply_large_state_vector_4q_impl | ( | MatrixT & | unitary, |
| MatrixT & | input, | ||
| std::vector< int > | involved_qbits, | ||
| const int & | matrix_size | ||
| ) |
Definition at line 363 of file apply_kernel_to_state_vector_input.cpp.


| void apply_large_state_vector_5q_impl | ( | MatrixT & | unitary, |
| MatrixT & | input, | ||
| std::vector< int > | involved_qbits, | ||
| const int & | matrix_size | ||
| ) |
Definition at line 462 of file apply_kernel_to_state_vector_input.cpp.


1.8.13