|
SuperDex Physics C++ API
|
#include <simd_arch_emulator_inl.h>
Public Types | |
| using | NativeType = Array<Scalar, N> |
| using | Scalar = T |
Public Member Functions | |
| Scalar constexpr | Get (int i) const |
| 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) |
| static constexpr Scalar | Get (Simd v, int i) |
| 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 418 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 419 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 224 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 218 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 243 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 253 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 258 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 410 of file simd_arch_emulator_inl.h.
|
inlinestatic |
Definition at line 452 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 178 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 183 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 188 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 194 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 392 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 386 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 404 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 398 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscard |
Definition at line 288 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscard |
Definition at line 302 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscard |
Definition at line 315 of file simd_arch_emulator_inl.h.
|
inlinestatic |
Definition at line 329 of file simd_arch_emulator_inl.h.
|
inlinestatic |
Definition at line 456 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 498 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 485 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 483 of file simd_arch_emulator_inl.h.
| Simd & superdex::Simd< T, N, Concept >::operator*= | ( | Simd< T, N > | rhs | ) |
|
inlinenodiscardconstexpr |
Definition at line 481 of file simd_arch_emulator_inl.h.
| Simd & superdex::Simd< T, N, Concept >::operator+= | ( | Simd< T, N > | rhs | ) |
|
inlinenodiscardconstexpr |
Definition at line 467 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 482 of file simd_arch_emulator_inl.h.
| Simd & superdex::Simd< T, N, Concept >::operator-= | ( | Simd< T, N > | rhs | ) |
|
inlinenodiscardconstexpr |
Definition at line 484 of file simd_arch_emulator_inl.h.
| Simd & superdex::Simd< T, N, Concept >::operator/= | ( | Simd< T, N > | rhs | ) |
|
inlinenodiscardconstexpr |
Definition at line 477 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 488 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 479 of file simd_arch_emulator_inl.h.
|
inlineconstexprdefault |
|
inlineconstexpr |
Definition at line 163 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 491 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 478 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 480 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 489 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 174 of file simd_arch_emulator_inl.h.
|
inlinenodiscardconstexpr |
Definition at line 487 of file simd_arch_emulator_inl.h.
| Simd & superdex::Simd< T, N, Concept >::operator^= | ( | Simd< T, N > | rhs | ) |
|
inlinenodiscardconstexpr |
Definition at line 486 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 472 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 422 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 205 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscard |
Definition at line 213 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 231 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 503 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 264 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 272 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 281 of file simd_arch_emulator_inl.h.
|
inlinestaticconstexpr |
Definition at line 156 of file simd_arch_emulator_inl.h.
|
inlinestatic |
Definition at line 342 of file simd_arch_emulator_inl.h.
|
inlinestatic |
Definition at line 351 of file simd_arch_emulator_inl.h.
|
inlinestatic |
Definition at line 358 of file simd_arch_emulator_inl.h.
|
inlinestatic |
Definition at line 373 of file simd_arch_emulator_inl.h.
|
inlinestaticnodiscardconstexpr |
Definition at line 170 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 433 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 441 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 442 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 443 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 438 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 444 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 435 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 434 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 445 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 450 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 449 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 461 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 462 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 463 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 464 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 436 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 437 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 439 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 432 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 440 of file simd_arch_emulator_inl.h.
|
staticconstexpr |
Definition at line 446 of file simd_arch_emulator_inl.h.