Template Class MPOTNCuda¶
Defined in File MPOTNCuda.hpp
Class Documentation¶
-
template<class PrecisionT>
class MPOTNCuda¶ Class representing a Matrix Product Operator (MPO) object for the MPS backend. Any gate tensor can be represented as an MPO tensor network in the context of MPS. The gate tensor must be decomposed with respect to its target wires. The MPO tensors’ modes order in an open boundary condition are: 2 3 2 | | | X—1—….—0—X—2—….—0—X | | | 0 1 1.
The extents of the MPO tensors are [bondL, 2, bondR, 2]. The bondL of the left side bound MPO tensor is 1 and the bondR of the right side bound MPO tensor is 1.
Note that the gate tensor should be decomposed into MPO sites and use column-major order (Fortran order) before passing to this class.
- Template Parameters
PrecisionT – Floating point type.
Public Functions
-
inline explicit MPOTNCuda(const std::vector<std::vector<ComplexT>> &tensors, const std::vector<std::size_t> &wires, const std::size_t maxMPOBondDim, const std::size_t numQubits, const cutensornetHandle_t &cutensornetHandle, const cudaDataType_t &cudaDataType, const DevTag<int> &dev_tag)¶
-
inline auto getMPOOperator() const -> const cutensornetNetworkOperator_t&¶
-
inline auto getBondDims() const -> const std::vector<std::size_t>&¶
-
inline ~MPOTNCuda()¶