8#ifndef BSPLINE_OPERATORS_GENERICOPERATORS_H
9#define BSPLINE_OPERATORS_GENERICOPERATORS_H
11#include <bspline/Spline.h>
35 std::is_base_of_v<Operator, std::remove_cv_t<std::remove_reference_t<O>>>;
46template <
typename O1,
typename O2>
63template <
typename T,
size_t order,
typename O,
64 std::enable_if_t<is_operator_v<O>,
bool> =
true>
73 const auto &support =
spline.getSupport();
76 const size_t absIndex = support.absoluteFromRelative(
i);
122 template <
typename T,
size_t size>
140template <
typename O,
typename S,
141 std::enable_if_t<is_operator_v<O> &&
is_spline_v<S>,
bool> =
true>
The central Spline class of the library.
Definition Spline.h:59
Multiplicative identity operator.
Definition GenericOperators.h:95
static constexpr size_t outputOrder(size_t inputOrder)
Order of the resulting Spline.
Definition GenericOperators.h:105
std::array< T, size > transform(const std::array< T, size > &input, const support::Grid< T > &grid, size_t intervalIndex) const
Applies operator on one interval.
Definition GenericOperators.h:123
Marker interface for operators.
Definition GenericOperators.h:23
Represents a global Grid.
Definition Grid.h:27
size_t size() const
Returns the number of elements of the Grid.
Definition Grid.h:169
Operator definitions.
Definition CompoundOperators.h:13
OperatorProduct< O1, O2 > operator*(O1 &&o1, O2 &&o2)
Operator multiplication operator.
Definition CompoundOperators.h:84
auto transformSpline(const O &op, const Spline< T, order > &spline)
Applies operator to spline.
Definition GenericOperators.h:65
constexpr bool is_operator_v
Checks whether O is an operator.
Definition GenericOperators.h:34
constexpr bool are_operators_v
Checks whether O1 and O2 are operators.
Definition GenericOperators.h:47