Template Struct ApplySWAP

Struct Documentation

template<typename PrecisionT, std::size_t packed_size>
struct ApplySWAP

Public Types

using Precision = PrecisionT
using PrecisionAVXConcept = typename AVXConcept<PrecisionT, packed_size>::Type

Public Static Functions

template<std::size_t rev_wire0, std::size_t rev_wire1>
static inline consteval auto applyInternalInternalPermutation()

Permutation that swaps bits in two wires.

template<std::size_t rev_wire0, std::size_t rev_wire1>
static inline void applyInternalInternal(std::complex<PrecisionT> *arr, std::size_t num_qubits, [[maybe_unused]] bool inverse)
template<std::size_t min_rev_wire>
static inline consteval auto createMask0()

Setting a mask. Mask is 1 if bits in min_rev_wire is set.

template<std::size_t min_rev_wire>
static inline consteval auto createMask1()

Setting a mask. Mask is 1 if bits in min_rev_wire is unset.

template<std::size_t min_rev_wire>
static inline void applyInternalExternal(std::complex<PrecisionT> *arr, std::size_t num_qubits, std::size_t max_rev_wire, [[maybe_unused]] bool inverse)
static inline void applyExternalExternal(std::complex<PrecisionT> *arr, const std::size_t num_qubits, const std::size_t rev_wire0, const std::size_t rev_wire1, [[maybe_unused]] bool inverse)

Public Static Attributes

static constexpr std::size_t packed_size_ = packed_size
static constexpr bool symmetric = true