8#include <KokkosBlas2_gemv.hpp>
9#include <Kokkos_Core.hpp>
28template <KokkosViewRank<1> SourceType, KokkosViewRank<1> OffsType,
29 KokkosArray AxisType,
int_t dim = AxisType::size()>
70template <KokkosViewRank<2> PViewType, KokkosViewRank<1> XViewType,
71 KokkosViewRank<1> OffsViewType, KokkosArray AxisType,
72 int_t dim = AxisType::size()>
76 const int_t N =
P.extent_int(0);
108template <KokkosViewRank<2> QViewType, KokkosViewRank<1> XViewType,
109 KokkosViewRank<1> XOffsType, KokkosViewRank<1> WViewType,
110 KokkosArray AxisType,
int_t dim = AxisType::size()>
115 using ExecSpace =
typename QViewType::execution_space;
119 for (
int i = 0;
i <
dim + 1; ++
i) {
149template <KokkosViewRank<2> AViewType, KokkosViewRank<1> BViewType,
150 KokkosViewRank<1> OutViewType>
155 KB::SerialGemv<KB::Trans::NoTranspose, KB::Algo::Gemv::Unblocked>;
164template <KokkosViewRank<1> UViewType, KokkosViewRank<1> VViewType>
167 const int_t N =
U.extent_int(0);
178template <KokkosViewRank<1> UViewType, KokkosViewRank<1> VViewType>
181 const int_t N =
U.extent_int(0);
KOKKOS_FORCEINLINE_FUNCTION void SerialVecVecSub(UViewType &U, const VViewType &V)
Perform an inplace difference of 2 vectors such as U = U - V.
KOKKOS_FORCEINLINE_FUNCTION int_t SerialFillQ(QViewType &Q, const XViewType &X, const XOffsType &XOffs, WViewType &W, AxisType &activeAxis)
Fill the polynomial augmentation matrix Q and sets activeAxis accordingly to the deactivated axis in ...
KOKKOS_FORCEINLINE_FUNCTION void SerialSVD(AViewType &A, SViewType &S, WViewType &W)
Perform a partial SVD decomposition, to fetch only the singular values of A.
typename std::remove_cv< typename std::remove_reference< T >::type >::type base_type
Returns a type without reference or const/volatile modifiers.
KOKKOS_FUNCTION void SerialFillPoly(PViewType &P, const XViewType &X, const OffsViewType &XOffs, AxisType &activeAxis)
Fill the polynomial augmentation matrix accordingly to the activated axis in activeAxis
KOKKOS_INLINE_FUNCTION auto RbfPumMinMax(const ViewType &v, const Comparator &op)
A reimplementation of Kokkos::MinMax which works on any backend.
KOKKOS_FORCEINLINE_FUNCTION void SerialMulMatVec(const AViewType &A, const BViewType &B, OutViewType &out)
Perform: out = Ab.
KOKKOS_FORCEINLINE_FUNCTION void SerialVecVecAdd(UViewType &U, const VViewType &V)
Perform an inplace addition of 2 vectors such as U = U + V.
KOKKOS_INLINE_FUNCTION int_t SerialDeactivateOneAxis(const SourceType &src, const OffsType &offs, AxisType &activeAxis)
Deactivate one axis, the one with the smallest range of values and returns the index of this deactiva...
KOKKOS_INLINE_FUNCTION consteval fp_t zero(void)
KOKKOS_INLINE_FUNCTION consteval fp_t epsilon(void)
KOKKOS_INLINE_FUNCTION fp_t max(void)
KOKKOS_INLINE_FUNCTION consteval fp_t one(void)