|
SuperDex Physics C++ API
|
#include <simd_arch_emulator_inl.h>
Public Types | |
| using | NativeType = Array<Scalar, N> |
| using | Scalar = T |
Public Member Functions | |
| constexpr bool | operator!= (Simd rhs) const |
| constexpr Simd | operator& (Simd rhs) const |
| Simd | operator&& (Simd rhs) const |
| Simd & | operator&= (Simd rhs) |
| constexpr Simd | operator* (Simd rhs) const |
| Simd & | operator*= (Simd rhs) |
| constexpr Simd | operator+ (Simd rhs) const |
| Simd & | operator+= (Simd rhs) |
| constexpr Simd | operator- () const |
| constexpr Simd | operator- (Simd rhs) const |
| Simd & | operator-= (Simd rhs) |
| constexpr Simd | operator/ (Simd rhs) const |
| Simd & | operator/= (Simd rhs) |
| constexpr Simd | operator< (Simd rhs) const |
| constexpr Simd | operator<< (Simd rhs) const |
| constexpr Simd | operator<= (Simd rhs) const |
| constexpr Simd & | operator= (Simd const &rhs)=default |
| template<class U, std::enable_if_t<(std::is_convertible_v< U, Scalar > &&!std::is_same_v< U, bool >), superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| constexpr Simd & | operator= (U a) |
| constexpr bool | operator== (Simd rhs) const |
| constexpr Simd | operator> (Simd rhs) const |
| constexpr Simd | operator>= (Simd rhs) const |
| constexpr Simd | operator>> (Simd rhs) const |
| Scalar constexpr | operator[] (int i) const |
| constexpr Simd | operator^ (Simd rhs) const |
| Simd & | operator^= (Simd rhs) |
| constexpr Simd | operator| (Simd rhs) const |
| Simd & | operator|= (Simd rhs) |
| Simd | operator|| (Simd rhs) const |
| constexpr Simd | operator~ () const |
| constexpr | Simd ()=default |
| template<typename... Args> | |
| constexpr | Simd (Args... args) |
| template<typename F, typename... Args> requires IsInvokableWithRaw<F, Args...> | |
| constexpr | Simd (F const &f, Args const &... args) |
| constexpr | Simd (NativeType const &rhs) |
| constexpr | Simd (Simd const &rhs)=default |
| constexpr | Simd (Simd< T, N/2 > a, Simd< T, N/2 > b) |
| template<class U, std::enable_if_t<(std::is_convertible_v< U, Scalar > &&!std::is_same_v< U, bool >), superdex::ConceptMatch > = superdex::ConceptMatch::True> | |
| constexpr | Simd (U a) |
Static Public Member Functions | |
| template<int M = kSize> | |
| static constexpr bool | AllTrue (Simd a) |
| template<int M = kSize> | |
| static constexpr bool | AnyTrue (Simd a) |
| static constexpr Simd | AsDirection (Simd a) |
| static constexpr Simd | AsPoint (Simd a) |
| template<int... x> requires (sizeof...(x) == N) | |
| static constexpr Simd | Blend (Simd a, Simd b) |
| static constexpr Simd | Broadcast (Scalar const *p) |
| template<int i> | |
| static constexpr Simd | Broadcast (Simd v) |
| template<int M = kSize> | |
| static constexpr Simd | Dot (Simd a, Simd b) |
| static Simd | Equal (Simd const &x, Simd const &y) |
| template<int i> | |
| static constexpr Scalar | Get (Simd v) |
| template<int i> requires (N >= 2 && N % 2 == 0) | |
| static constexpr Simd< T, N/2 > | GetHalf (Simd v) |
| template<int M = kSize> | |
| static constexpr Scalar | HMax (Simd a) |
| template<int M = kSize> | |
| static constexpr Scalar | HMin (Simd a) |
| template<int M = kSize> | |
| static constexpr Scalar | HProd (Simd a) |
| template<int M = kSize> | |
| static constexpr Scalar | HSum (Simd a) |
| template<int M = kSize> | |
| static Simd | Load (Scalar const *ptr) |
| static Simd | Load (Scalar const *ptr, int n) |
| template<typename IntT> requires (std::integral<IntT>) | |
| static Simd | LoadIndexed (Scalar const *ptr, Simd< IntT, N > const &indices) |
| template<int kTupleCount = kSize> | |
| static void | LoadTransposed (Scalar const *ptr, Simd &out0, Simd &out1, Simd &out2) |
| static Simd | NotEqual (Simd const &x, Simd const &y) |
| static constexpr Simd | Select (Simd mask, Simd a, Simd b) |
| static constexpr Simd | Set (Simd v, int i, Scalar value) |
| template<int i> | |
| static Simd | Set (Simd v, Scalar value) |
| template<int i> requires (N == 4) | |
| static constexpr Simd | SetBasisVector () |
| template<int kShift> | |
| static constexpr Simd | ShiftRight (Simd a) |
| template<int x = 0, int y = 1> requires (N == 2) | |
| static constexpr Simd | Shuffle (Simd a) |
| template<int x = 0, int y = 1, int z = 2, int w = 3> requires (N == 4) | |
| static constexpr Simd | Shuffle (Simd a, Simd b) |
| template<int x = 0, int y = 1, int z = 2, int w = 3> requires (N == 4) | |
| static constexpr Simd | Shuffle (Simd v) |
| static constexpr size_t | size () |
| template<int M = kSize> | |
| static void | Store (Scalar *ptr, Simd v) |
| static void | Store (Scalar *ptr, Simd v, int n) |
| static int | StoreSelected (Scalar *ptr, Simd condition, Simd values) |
| template<int kTupleCount = kSize> | |
| static void | StoreTransposed (Scalar *ptr, Simd out0, Simd out1, Simd out2) |
| static constexpr Simd | Zero () |
Public Attributes | |
| NativeType | raw |
Static Public Attributes | |
| static constexpr auto | Abs = Xapply<std::abs> |
| static constexpr auto | ACos = Xapply<std::acos> |
| static constexpr auto | ASin = Xapply<std::asin> |
| static constexpr auto | ATan = Xapply<std::atan> |
| static constexpr auto | Cos = Xapply<std::cos> |
| static constexpr auto | Exp = Xapply<std::exp> |
| static constexpr auto | FastRound = Xapply<std::round> |
| static constexpr auto | Floor = Xapply<std::floor> |
| static constexpr bool | kIsComposite = false |
| static constexpr bool | kIsEmulated = true |
| static constexpr bool | kIsSupported = true |
| static constexpr int | kSize = N |
| static constexpr auto | Ln = Xapply<std::log> |
| static constexpr auto | Max = XYapply<T const&, superdex::Max<T>> |
| static constexpr auto | Min = XYapply<T const&, superdex::Min<T>> |
| static constexpr auto | MulAdd = XYZapply<T, superdex::MulAdd<T, T, T>> |
| static constexpr auto | MulSub = XYZapply<T, superdex::MulSub<T, T, T>> |
| static constexpr auto | NegMulAdd = XYZapply<T, superdex::NegMulAdd<T, T, T>> |
| static constexpr auto | NegMulSub = XYZapply<T, superdex::NegMulSub<T, T, T>> |
| static constexpr auto | RcpApprox = Xapply<[](ST a) { return ST{1} / a; }> |
| static constexpr auto | RcpSqrtApprox = Xapply<[](ST a) { return ST{1} / std::sqrt(a); }> |
| static constexpr auto | Sin = Xapply<std::sin> |
| static constexpr auto | Sqrt = Xapply<std::sqrt> |
| static constexpr auto | Tan = Xapply<std::tan> |
| static constexpr auto | Tanh = Xapply<std::tanh> |
Definition at line 50 of file simd_arch_emulator_inl.h.
| using superdex::Simd< T, N >::NativeType = Array<Scalar, N> |
Definition at line 118 of file simd_arch_emulator_inl.h.
| using superdex::Simd< T, N >::Scalar = T |
Definition at line 116 of file simd_arch_emulator_inl.h.
|
inlineconstexprdefault |
|
inlineconstexprdefault |
|
inlineconstexpr |
Definition at line 123 of file simd_arch_emulator_inl.h.
|
inlineconstexpr |
Definition at line 125 of file simd_arch_emulator_inl.h.
|
inlineconstexpr |
Definition at line 130 of file simd_arch_emulator_inl.h.
|
inlineconstexpr |
Definition at line 144 of file simd_arch_emulator_inl.h.
|
inlineconstexpr |
Definition at line 148 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 410 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 411 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 216 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 210 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 235 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 245 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 250 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 402 of file simd_arch_emulator_inl.h.
|
inlinestatic |
Definition at line 444 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 180 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 186 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 384 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 378 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 396 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 390 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscard |
Definition at line 280 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscard |
Definition at line 294 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscard |
Definition at line 307 of file simd_arch_emulator_inl.h.
|
inlinestatic |
Definition at line 321 of file simd_arch_emulator_inl.h.
|
inlinestatic |
Definition at line 448 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 490 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 477 of file simd_arch_emulator_inl.h.
| Simd superdex::Simd< T, N, Concept >::operator&& | ( | Simd< T, N > | rhs | ) | const |
| Simd & superdex::Simd< T, N, Concept >::operator&= | ( | Simd< T, N > | rhs | ) |
|
inlinenodiscardconstexpr |
Definition at line 475 of file simd_arch_emulator_inl.h.
| Simd & superdex::Simd< T, N, Concept >::operator*= | ( | Simd< T, N > | rhs | ) |
|
inlinenodiscardconstexpr |
Definition at line 473 of file simd_arch_emulator_inl.h.
| Simd & superdex::Simd< T, N, Concept >::operator+= | ( | Simd< T, N > | rhs | ) |
|
inlinenodiscardconstexpr |
Definition at line 459 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 474 of file simd_arch_emulator_inl.h.
| Simd & superdex::Simd< T, N, Concept >::operator-= | ( | Simd< T, N > | rhs | ) |
|
inlinenodiscardconstexpr |
Definition at line 476 of file simd_arch_emulator_inl.h.
| Simd & superdex::Simd< T, N, Concept >::operator/= | ( | Simd< T, N > | rhs | ) |
|
inlinenodiscardconstexpr |
Definition at line 469 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 480 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 471 of file simd_arch_emulator_inl.h.
|
inlineconstexprdefault |
|
inlineconstexpr |
Definition at line 163 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 483 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 470 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 472 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 481 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 174 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 479 of file simd_arch_emulator_inl.h.
| Simd & superdex::Simd< T, N, Concept >::operator^= | ( | Simd< T, N > | rhs | ) |
|
inlinenodiscardconstexpr |
Definition at line 478 of file simd_arch_emulator_inl.h.
| Simd & superdex::Simd< T, N, Concept >::operator|= | ( | Simd< T, N > | rhs | ) |
| Simd superdex::Simd< T, N, Concept >::operator|| | ( | Simd< T, N > | rhs | ) | const |
|
inlinenodiscardconstexpr |
Definition at line 464 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 414 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 197 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscard |
Definition at line 205 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 223 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 495 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 256 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 264 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 273 of file simd_arch_emulator_inl.h.
|
inlinestaticconstexpr |
Definition at line 156 of file simd_arch_emulator_inl.h.
|
inlinestatic |
Definition at line 334 of file simd_arch_emulator_inl.h.
|
inlinestatic |
Definition at line 343 of file simd_arch_emulator_inl.h.
|
inlinestatic |
Definition at line 350 of file simd_arch_emulator_inl.h.
|
inlinestatic |
Definition at line 365 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 170 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 425 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 433 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 434 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 435 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 430 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 436 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 427 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 426 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 114 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 115 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 113 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 112 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 437 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 442 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 441 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 453 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 454 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 455 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 456 of file simd_arch_emulator_inl.h.
| NativeType superdex::Simd< T, N >::raw |
Definition at line 119 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 428 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 429 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 431 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 424 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 432 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 438 of file simd_arch_emulator_inl.h.