1#ifndef TATOOINE_FINITE_DIFFERENCES_COEFFICIENTS_H
2#define TATOOINE_FINITE_DIFFERENCES_COEFFICIENTS_H
15 constexpr auto N =
sizeof...(xs);
21 static_cast<real_type>(gcem::factorial(derivative_order));
26template <
typename Tensor,
floating_po
int Real, std::
size_t N>
32 b(derivative_order) =
static_cast<Real
>(gcem::factorial<std::size_t>(derivative_order));
37template <
typename Tensor,
floating_po
int Real, std::
size_t N>
43 b(derivative_order) = gcem::factorial(derivative_order);
48template <
floating_po
int_range R>
49requires (!static_tensor<R>)
52 using real_type = std::ranges::range_value_t<R>;
56 static_cast<real_type>(gcem::factorial(derivative_order));
57 return solve(V, b)->internal_container();
Definition: concepts.h:30
auto finite_differences_coefficients(std::size_t const derivative_order, floating_point auto const ... xs)
See What is this? for an explanation.
Definition: finite_differences_coefficients.h:13
Definition: algorithm.h:6
typename common_type_impl< Ts... >::type common_type
Definition: common_type.h:23
auto solve(polynomial< Real, 1 > const &p) -> std::vector< Real >
solve a + b*x
Definition: polynomial.h:187
auto transposed(dynamic_tensor auto &&t)
Definition: transposed_tensor.h:170
Definition: base_tensor.h:23
static auto constexpr vander(fixed_size_vec< N > auto const &v)
Definition: mat.h:60
static constexpr auto zeros()
Definition: tensor.h:144
static auto constexpr zeros()
Definition: vec.h:26