10#include <Kokkos_Core.hpp>
14namespace ddc::detail {
16template <
class ExecSpace>
17SplinesLinearProblem<ExecSpace>::SplinesLinearProblem(std::size_t
const size) : m_size(size)
21template <
class ExecSpace>
22SplinesLinearProblem<ExecSpace>::~SplinesLinearProblem() =
default;
24template <
class ExecSpace>
25std::size_t SplinesLinearProblem<ExecSpace>::size()
const
30template <
class ExecSpace>
31std::size_t SplinesLinearProblem<ExecSpace>::required_number_of_rhs_rows()
const
33 std::size_t
const nrows = impl_required_number_of_rhs_rows();
34 assert(nrows >= size());
38template <
class ExecSpace>
39std::size_t SplinesLinearProblem<ExecSpace>::impl_required_number_of_rhs_rows()
const
44template <
class ExecSpace>
45std::ostream& operator<<(std::ostream& os, SplinesLinearProblem<ExecSpace>
const& linear_problem)
47 std::size_t
const n = linear_problem.size();
48 for (std::size_t i = 0; i < n; ++i) {
49 for (std::size_t j = 0; j < n; ++j) {
50 os << std::fixed << std::setprecision(3) << std::setw(10)
51 << linear_problem.get_element(i, j);
58#if defined(KOKKOS_ENABLE_SERIAL
)
59template class SplinesLinearProblem<Kokkos::Serial>;
60template std::ostream& operator<<(
62 SplinesLinearProblem<Kokkos::Serial>
const& linear_problem);
64#if defined(KOKKOS_ENABLE_OPENMP)
65template class SplinesLinearProblem<Kokkos::OpenMP>;
66template std::ostream& operator<<(
68 SplinesLinearProblem<Kokkos::OpenMP>
const& linear_problem);
70#if defined(KOKKOS_ENABLE_CUDA)
71template class SplinesLinearProblem<Kokkos::Cuda>;
72template std::ostream& operator<<(
74 SplinesLinearProblem<Kokkos::Cuda>
const& linear_problem);
76#if defined(KOKKOS_ENABLE_HIP)
77template class SplinesLinearProblem<Kokkos::HIP>;
78template std::ostream& operator<<(
80 SplinesLinearProblem<Kokkos::HIP>
const& linear_problem);
82#if defined(KOKKOS_ENABLE_SYCL)
83template class SplinesLinearProblem<Kokkos::SYCL>;
84template std::ostream& operator<<(
86 SplinesLinearProblem<Kokkos::SYCL>
const& linear_problem);
The top-level namespace of DDC.