|
Maestro 0.3.11
Unified interface for quantum circuit simulation
|
Classes | |
| struct | TensorAxis |
| class | TensorAxisCursor |
| class | TensorAxisMask |
| class | TensorAxisOffsets |
| struct | TensorAxisPattern |
| class | TensorContractionPlan |
Functions | |
| bool | TensorAddBytes (size_t &used, size_t count, size_t elementSize, size_t limit) |
| template<class Pairs> | |
| std::vector< size_t > | TensorContractionDimensions (const std::vector< size_t > &da, const std::vector< size_t > &db, const Pairs &pairs, TensorAxisMask &usedA, TensorAxisMask &usedB) |
| template<class Pairs> | |
| void | TensorContractionPatterns (const std::vector< size_t > &da, const std::vector< size_t > &db, const TensorAxisMask &usedA, const TensorAxisMask &usedB, const Pairs &pairs, TensorAxisPattern &fa, TensorAxisPattern &fb, TensorAxisPattern &ka, TensorAxisPattern &kb) |
| int | TensorContractionThreads (size_t jobs, double work, bool allow) |
| template<class T, class Storage> | |
| void | TensorDenseContraction (const Storage &a, const Storage &b, Storage &out, const TensorAxisPattern &fa, const TensorAxisPattern &fb, const TensorAxisPattern &ka, const TensorAxisPattern &kb, bool allow, int gateSize=0) |
| template<class T, class Input, class Output> | |
| void | TensorExecuteContraction (const Input &a, const Input &b, Output &out, const TensorAxisPattern &fa, const TensorAxisPattern &fb, const TensorAxisPattern &ka, const TensorAxisPattern &kb, const TensorAxisOffsets &af, const TensorAxisOffsets &bf, const TensorAxisOffsets &ac, const TensorAxisOffsets &bc, int gateSize, bool allow, T *packing=nullptr) |
| template<size_t G, bool SmallLeft, class T, class Input, class Output> | |
| void | TensorGateContraction (const Input &a, const Input &b, Output &out, size_t count, const TensorAxisOffsets &af, const TensorAxisOffsets &bf, const TensorAxisOffsets &ac, const TensorAxisOffsets &bc, bool allow) |
| template<size_t G, class T, size_t... X> | |
| T | TensorGateProduct (const std::array< T, G > &values, const T *coefficients, std::index_sequence< X... >) |
| int | TensorGateSize (const std::vector< size_t > &da, const std::vector< size_t > &db, size_t pairs) |
| bool | TensorMatrixContiguous (const TensorAxisPattern &rows, const TensorAxisPattern &columns) |
| template<class Function> | |
| void | TensorParallelRanges (size_t jobs, int threads, const Function &function) |
| template<class T, class Storage> | |
| T | TensorScalarContraction (const Storage &a, const Storage &b, const TensorAxisPattern &ka, const TensorAxisPattern &kb, bool allow) |
| size_t | TensorSizeProduct (size_t a, size_t b) |
| template<class T, class Storage, class Pairs> | |
| bool | TensorSmallContraction (const Storage &a, const Storage &b, Storage &out, const std::vector< size_t > &da, const std::vector< size_t > &db, const TensorAxisMask &usedA, const TensorAxisMask &usedB, const Pairs &pairs) |
Variables | |
| template<class T, class Storage> | |
| constexpr bool | TensorEigenStorage |
| struct Utils::detail::TensorAxis |
Definition at line 57 of file TensorContraction.h.
| Class Members | ||
|---|---|---|
| size_t | extent | |
| size_t | stride | |
|
inline |
Definition at line 205 of file TensorContraction.h.
Referenced by Utils::detail::TensorContractionPlan::GetPackingSize().
| std::vector< size_t > Utils::detail::TensorContractionDimensions | ( | const std::vector< size_t > & | da, |
| const std::vector< size_t > & | db, | ||
| const Pairs & | pairs, | ||
| TensorAxisMask & | usedA, | ||
| TensorAxisMask & | usedB ) |
Definition at line 133 of file TensorContraction.h.
| void Utils::detail::TensorContractionPatterns | ( | const std::vector< size_t > & | da, |
| const std::vector< size_t > & | db, | ||
| const TensorAxisMask & | usedA, | ||
| const TensorAxisMask & | usedB, | ||
| const Pairs & | pairs, | ||
| TensorAxisPattern & | fa, | ||
| TensorAxisPattern & | fb, | ||
| TensorAxisPattern & | ka, | ||
| TensorAxisPattern & | kb ) |
Definition at line 160 of file TensorContraction.h.
References Utils::detail::TensorAxisPattern::Add(), and TensorSizeProduct().
|
inline |
Definition at line 250 of file TensorContraction.h.
Referenced by TensorExecuteContraction(), TensorGateContraction(), and TensorScalarContraction().
| void Utils::detail::TensorDenseContraction | ( | const Storage & | a, |
| const Storage & | b, | ||
| Storage & | out, | ||
| const TensorAxisPattern & | fa, | ||
| const TensorAxisPattern & | fb, | ||
| const TensorAxisPattern & | ka, | ||
| const TensorAxisPattern & | kb, | ||
| bool | allow, | ||
| int | gateSize = 0 ) |
Definition at line 541 of file TensorContraction.h.
References Utils::detail::TensorAxisPattern::count, TensorExecuteContraction(), and TensorScalarContraction().
| void Utils::detail::TensorExecuteContraction | ( | const Input & | a, |
| const Input & | b, | ||
| Output & | out, | ||
| const TensorAxisPattern & | fa, | ||
| const TensorAxisPattern & | fb, | ||
| const TensorAxisPattern & | ka, | ||
| const TensorAxisPattern & | kb, | ||
| const TensorAxisOffsets & | af, | ||
| const TensorAxisOffsets & | bf, | ||
| const TensorAxisOffsets & | ac, | ||
| const TensorAxisOffsets & | bc, | ||
| int | gateSize, | ||
| bool | allow, | ||
| T * | packing = nullptr ) |
Definition at line 426 of file TensorContraction.h.
References Utils::detail::TensorAxisPattern::count, Output(), TensorContractionThreads(), TensorEigenStorage, TensorGateContraction(), TensorMatrixContiguous(), TensorParallelRanges(), TensorScalarContraction(), and TensorSizeProduct().
Referenced by Utils::detail::TensorContractionPlan::Execute(), and TensorDenseContraction().
| void Utils::detail::TensorGateContraction | ( | const Input & | a, |
| const Input & | b, | ||
| Output & | out, | ||
| size_t | count, | ||
| const TensorAxisOffsets & | af, | ||
| const TensorAxisOffsets & | bf, | ||
| const TensorAxisOffsets & | ac, | ||
| const TensorAxisOffsets & | bc, | ||
| bool | allow ) |
Definition at line 393 of file TensorContraction.h.
References Output(), TensorContractionThreads(), TensorGateProduct(), and TensorParallelRanges().
Referenced by TensorExecuteContraction().
| T Utils::detail::TensorGateProduct | ( | const std::array< T, G > & | values, |
| const T * | coefficients, | ||
| std::index_sequence< X... > | ) |
Definition at line 387 of file TensorContraction.h.
Referenced by TensorGateContraction().
|
inline |
Definition at line 192 of file TensorContraction.h.
|
inline |
Definition at line 90 of file TensorContraction.h.
References Utils::detail::TensorAxisPattern::count, Utils::detail::TensorAxisPattern::Linear(), and Utils::detail::TensorAxisPattern::Stride().
Referenced by Utils::detail::TensorContractionPlan::GetPackingSize(), and TensorExecuteContraction().
| void Utils::detail::TensorParallelRanges | ( | size_t | jobs, |
| int | threads, | ||
| const Function & | function ) |
Definition at line 268 of file TensorContraction.h.
Referenced by TensorExecuteContraction(), TensorGateContraction(), and TensorScalarContraction().
| T Utils::detail::TensorScalarContraction | ( | const Storage & | a, |
| const Storage & | b, | ||
| const TensorAxisPattern & | ka, | ||
| const TensorAxisPattern & | kb, | ||
| bool | allow ) |
Definition at line 297 of file TensorContraction.h.
References Utils::detail::TensorAxisPattern::count, Utils::detail::TensorAxisPattern::Linear(), Utils::detail::TensorAxisCursor::Next(), Utils::detail::TensorAxisCursor::offset, Utils::detail::TensorAxisPattern::Stride(), TensorContractionThreads(), TensorEigenStorage, and TensorParallelRanges().
Referenced by TensorDenseContraction(), and TensorExecuteContraction().
|
inline |
Definition at line 26 of file TensorContraction.h.
Referenced by Utils::detail::TensorAxisPattern::Add(), Utils::Tensor< T, Storage >::GetSize(), TensorContractionPatterns(), and TensorExecuteContraction().
| bool Utils::detail::TensorSmallContraction | ( | const Storage & | a, |
| const Storage & | b, | ||
| Storage & | out, | ||
| const std::vector< size_t > & | da, | ||
| const std::vector< size_t > & | db, | ||
| const TensorAxisMask & | usedA, | ||
| const TensorAxisMask & | usedB, | ||
| const Pairs & | pairs ) |
Definition at line 333 of file TensorContraction.h.
|
constexpr |
Definition at line 291 of file TensorContraction.h.
Referenced by TensorExecuteContraction(), and TensorScalarContraction().