Quantum++
v1.0.0-beta3
C++11 quantum computing library
|
Quantum operation functions. More...
Go to the source code of this file.
Namespaces | |
qpp | |
Quantum++ main namespace. | |
Functions | |
template<typename Derived1 , typename Derived2 > | |
dyn_mat< typename Derived1::Scalar > | qpp::applyCTRL (const Eigen::MatrixBase< Derived1 > &state, const Eigen::MatrixBase< Derived2 > &A, const std::vector< idx > &ctrl, const std::vector< idx > &subsys, const std::vector< idx > &dims) |
Applies the controlled-gate A to the part subsys of the multi-partite state vector or density matrix state. More... | |
template<typename Derived1 , typename Derived2 > | |
dyn_mat< typename Derived1::Scalar > | qpp::applyCTRL (const Eigen::MatrixBase< Derived1 > &state, const Eigen::MatrixBase< Derived2 > &A, const std::vector< idx > &ctrl, const std::vector< idx > &subsys, idx d=2) |
Applies the controlled-gate A to the part subsys of the multi-partite state vector or density matrix state. More... | |
template<typename Derived1 , typename Derived2 > | |
dyn_mat< typename Derived1::Scalar > | qpp::apply (const Eigen::MatrixBase< Derived1 > &state, const Eigen::MatrixBase< Derived2 > &A, const std::vector< idx > &subsys, const std::vector< idx > &dims) |
Applies the gate A to the part subsys of the multi-partite state vector or density matrix state. More... | |
template<typename Derived1 , typename Derived2 > | |
dyn_mat< typename Derived1::Scalar > | qpp::apply (const Eigen::MatrixBase< Derived1 > &state, const Eigen::MatrixBase< Derived2 > &A, const std::vector< idx > &subsys, idx d=2) |
Applies the gate A to the part subsys of the multi-partite state vector or density matrix state. More... | |
template<typename Derived > | |
cmat | qpp::apply (const Eigen::MatrixBase< Derived > &A, const std::vector< cmat > &Ks) |
Applies the channel specified by the set of Kraus operators Ks to the density matrix A. More... | |
template<typename Derived > | |
cmat | qpp::apply (const Eigen::MatrixBase< Derived > &A, const std::vector< cmat > &Ks, const std::vector< idx > &subsys, const std::vector< idx > &dims) |
Applies the channel specified by the set of Kraus operators Ks to the part subsys of the multi-partite density matrix A. More... | |
template<typename Derived > | |
cmat | qpp::apply (const Eigen::MatrixBase< Derived > &A, const std::vector< cmat > &Ks, const std::vector< idx > &subsys, idx d=2) |
Applies the channel specified by the set of Kraus operators Ks to the part subsys of the multi-partite density matrix A. More... | |
cmat | qpp::kraus2super (const std::vector< cmat > &Ks) |
Superoperator matrix. More... | |
cmat | qpp::kraus2choi (const std::vector< cmat > &Ks) |
Choi matrix. More... | |
std::vector< cmat > | qpp::choi2kraus (const cmat &A) |
Orthogonal Kraus operators from Choi matrix. More... | |
cmat | qpp::choi2super (const cmat &A) |
Converts Choi matrix to superoperator matrix. More... | |
cmat | qpp::super2choi (const cmat &A) |
Converts superoperator matrix to Choi matrix. More... | |
template<typename Derived > | |
dyn_mat< typename Derived::Scalar > | qpp::ptrace1 (const Eigen::MatrixBase< Derived > &A, const std::vector< idx > &dims) |
Partial trace. More... | |
template<typename Derived > | |
dyn_mat< typename Derived::Scalar > | qpp::ptrace1 (const Eigen::MatrixBase< Derived > &A, idx d=2) |
Partial trace. More... | |
template<typename Derived > | |
dyn_mat< typename Derived::Scalar > | qpp::ptrace2 (const Eigen::MatrixBase< Derived > &A, const std::vector< idx > &dims) |
Partial trace. More... | |
template<typename Derived > | |
dyn_mat< typename Derived::Scalar > | qpp::ptrace2 (const Eigen::MatrixBase< Derived > &A, idx d=2) |
Partial trace. More... | |
template<typename Derived > | |
dyn_mat< typename Derived::Scalar > | qpp::ptrace (const Eigen::MatrixBase< Derived > &A, const std::vector< idx > &subsys, const std::vector< idx > &dims) |
Partial trace. More... | |
template<typename Derived > | |
dyn_mat< typename Derived::Scalar > | qpp::ptrace (const Eigen::MatrixBase< Derived > &A, const std::vector< idx > &subsys, idx d=2) |
Partial trace. More... | |
template<typename Derived > | |
dyn_mat< typename Derived::Scalar > | qpp::ptranspose (const Eigen::MatrixBase< Derived > &A, const std::vector< idx > &subsys, const std::vector< idx > &dims) |
Partial transpose. More... | |
template<typename Derived > | |
dyn_mat< typename Derived::Scalar > | qpp::ptranspose (const Eigen::MatrixBase< Derived > &A, const std::vector< idx > &subsys, idx d=2) |
Partial transpose. More... | |
template<typename Derived > | |
dyn_mat< typename Derived::Scalar > | qpp::syspermute (const Eigen::MatrixBase< Derived > &A, const std::vector< idx > &perm, const std::vector< idx > &dims) |
Subsystem permutation. More... | |
template<typename Derived > | |
dyn_mat< typename Derived::Scalar > | qpp::syspermute (const Eigen::MatrixBase< Derived > &A, const std::vector< idx > &perm, idx d=2) |
Subsystem permutation. More... | |
Quantum operation functions.