51 bool correctBoundaries =
true)
53 using Ty_x =
decltype(*y_begin / *x_begin);
55 std::ptrdiff_t x_size {x_end - x_begin}, y_size {y_end - y_begin};
60 std::vector<Ty_x> dy_dx(x_size - 2);
64 typename std::vector<Ty_x>::iterator forwardStart {forward.begin() + 1};
67 if (correctBoundaries)
69 forward.push_back(backward.back());
70 backward.insert(backward.begin(), forward.front());
74 forwardStart = forward.begin();
77 typename std::vector<Ty_x>::iterator back = backward.begin();
79 std::transform(forwardStart, forward.end(), dy_dx.begin(), [&](
auto fwd) { return (fwd + *back++) / 2; });
constexpr auto centeredDifferenceMethod(IteratorX x_begin, IteratorX x_end, IteratorY y_begin, IteratorY y_end, bool correctBoundaries=true)
Definition centeredDifferenceMethod.hpp:50
constexpr auto forwardDifferenceMethod(IteratorX x_begin, IteratorX x_end, IteratorY y_begin, IteratorY y_end)
Definition forwardDifferenceMethod.hpp:45
constexpr auto backwardsDifferenceMethod(IteratorX x_begin, IteratorX x_end, IteratorY y_begin, IteratorY y_end)
Definition backwardsDifferenceMethod.hpp:45