@@ -730,10 +730,7 @@ void SplineBuilder<ExecSpace, MemorySpace, BSplines, InterpolationDDim, BcLower,
730730 // iterate only to deg as last bspline is 0
731731 for (std::size_t i = 0 ; i < s_nbc_xmin; ++i) {
732732 for (std::size_t j = 0 ; j < bsplines_type::degree (); ++j) {
733- m_matrix->set_element (
734- i,
735- j,
736- DDC_MDSPAN_ACCESS_OP (derivs, j, s_nbc_xmin - i - 1 + s_odd));
733+ m_matrix->set_element (i, j, DDC_MDSPAN_ACCESS_OP (derivs, j, i + s_odd));
737734 }
738735 }
739736 }
@@ -868,12 +865,12 @@ operator()(
868865 KOKKOS_LAMBDA (
869866 typename batch_domain_type<BatchedInterpolationDDom>::discrete_element_type
870867 j) {
871- for (int i = s_nbc_xmin ; i > 0 ; -- i) {
872- spline (ddc::DiscreteElement<bsplines_type>(s_nbc_xmin - i), j)
868+ for (int i = 0 ; i < s_nbc_xmin; ++ i) {
869+ spline (ddc::DiscreteElement<bsplines_type>(i), j)
873870 = derivs_xmin_values (
874- ddc::DiscreteElement<deriv_type>(i + odd_proxy - 1 ),
871+ ddc::DiscreteElement<deriv_type>(i + odd_proxy),
875872 j)
876- * ddc::detail::ipow (dx_proxy, i + odd_proxy - 1 );
873+ * ddc::detail::ipow (dx_proxy, i + odd_proxy);
877874 }
878875 });
879876 }
@@ -1087,8 +1084,7 @@ SplineBuilder<ExecSpace, MemorySpace, BSplines, InterpolationDDim, BcLower, BcUp
10871084 coefficients_derivs_xmin (i) *= ddc::detail::
10881085 ipow (dx_proxy,
10891086 static_cast <std::size_t >(get<bsplines_type>(
1090- s_nbc_xmin + odd_proxy - 1
1091- - (i - coefficients_derivs_xmin.domain ().front ()))));
1087+ (i - coefficients_derivs_xmin.domain ().front ()) + odd_proxy)));
10921088 });
10931089 ddc::parallel_for_each (
10941090 exec_space (),
@@ -1097,15 +1093,14 @@ SplineBuilder<ExecSpace, MemorySpace, BSplines, InterpolationDDim, BcLower, BcUp
10971093 coefficients_derivs_xmax (i) *= ddc::detail::
10981094 ipow (dx_proxy,
10991095 static_cast <std::size_t >(get<bsplines_type>(
1100- i - coefficients_derivs_xmax.domain ().front () + odd_proxy)));
1096+ ( i - coefficients_derivs_xmax.domain ().front () ) + odd_proxy)));
11011097 });
11021098
11031099 ddc::DiscreteElement<deriv_type> const first_deriv (s_odd);
11041100 // Allocate Chunk on deriv_type and interpolation_discrete_dimension_type and copy quadrature coefficients into it
11051101 ddc::Chunk coefficients_derivs_xmin_out (
1106- ddc::DiscreteDomain<deriv_type>(
1107- first_deriv, // These indices are wrong the order should be reversed
1108- ddc::DiscreteVector<deriv_type>(s_nbc_xmin)),
1102+ ddc::DiscreteDomain<
1103+ deriv_type>(first_deriv, ddc::DiscreteVector<deriv_type>(s_nbc_xmin)),
11091104 ddc::KokkosAllocator<double , OutMemorySpace>());
11101105 ddc::Chunk coefficients_out (
11111106 interpolation_domain ().take_first (
0 commit comments