#include <hpk/architecture.hpp>

This header declares the Architecture enumeration.

See Also:


enum class hpk::Architecture#

Enumerates values for Parameter::architecture.


enumerator detect#

Architecture will be detected at runtime.

enumerator unsupported#

No supported architecture was detected.

enumerator avx2#

AVX + AVX2 + FMA on x86_64.

enumerator avx512#

Architecture::avx2 + AVX512F + AVX512DQ + AVX512VL.

enumerator avx512fp16#

Architecture::avx512 + AVX512_FP16.

enumerator sve256#

SVE vector length 256 on AArch64.


constexpr bool hpk::operator>=(Architecture lhs, Architecture rhs)#

True if the left-hand Architecture includes the right-hand one.

For example:

hpk::Architecture::avx512 >= hpk::Architecture::avx2  // true
hpk::Architecture::avx2 >= hpk::Architecture::avx512  // false
hpk::Architecture::avx2 >= hpk::Architecture::sve256  // false
hpk::Architecture::sve256 >= hpk::Architecture::avx2  // false

constexpr bool hpk::operator<(Architecture lhs, Architecture rhs)#

True if the left-hand side does not include the right-hand side.

For example:

hpk::Architecture::avx512 < hpk::Architecture::avx2  // false
hpk::Architecture::avx2 < hpk::Architecture::avx512  // true
hpk::Architecture::avx2 < hpk::Architecture::sve256  // true
hpk::Architecture::sve256 < hpk::Architecture::avx2  // true

std::string hpk::toString(Architecture arch)#

Returns a short string description of an Architecture.

inline std::ostream &hpk::operator<<(std::ostream &os, Architecture arch)#

Overload for ostream’s << operator for an Architecture.