BSplinebasis
|
Classes | |
class | Derivative |
Derivative operator. More... | |
class | IdentityOperator |
Multiplicative identity operator. More... | |
class | Operator |
Marker interface for operators. More... | |
class | OperatorProduct |
Represents the product of two operators. More... | |
class | OperatorSum |
Operator sum. Represents the sum or difference of two operators. More... | |
class | Position |
Position operator. More... | |
class | ScalarMultiplication |
Multiplication operator for Operator and scalar. More... | |
class | SplineOperator |
Operator representation of a Spline. More... | |
Typedefs | |
template<size_t n> | |
using | Dx = Derivative< n > |
Convenient alias for derivative operator. | |
template<size_t n> | |
using | X = Position< n > |
Alias for Position operator. | |
Enumerations | |
enum class | AdditionOperation { ADDITION , SUBTRACTION } |
Functions | |
template<typename O1 , typename O2 , std::enable_if_t< are_operators_v< O1, O2 >, bool > = true> | |
OperatorProduct< O1, O2 > | operator* (O1 &&o1, O2 &&o2) |
Operator multiplication operator. | |
template<typename O1 , typename O2 , std::enable_if_t< are_operators_v< O1, O2 >, bool > = true> | |
auto | operator+ (O1 &&o1, O2 &&o2) |
Operator sum. | |
template<typename O1 , typename O2 , std::enable_if_t< are_operators_v< O1, O2 >, bool > = true> | |
auto | operator- (O1 &&o1, O2 &&o2) |
Operator difference. | |
template<typename T , size_t order, typename O , std::enable_if_t< is_operator_v< O >, bool > = true> | |
auto | transformSpline (const O &op, const Spline< T, order > &spline) |
Applies operator to spline. | |
template<typename O , typename S , std::enable_if_t< is_operator_v< O > &&is_spline_v< S >, bool > = true> | |
auto | operator* (const O &o, const S &s) |
Applies an operator to a spline. | |
template<typename S > | |
ScalarMultiplication (S s) -> ScalarMultiplication< S, IdentityOperator > | |
ScalarMultiplication with default constructed operator. | |
template<typename S , typename O , std::enable_if_t< are_scalar_multiplication_types_v< S, O >, bool > = true> | |
ScalarMultiplication< S, O > | operator* (const S &s, O &&o) |
Scalar-Opertator multiplication. | |
template<typename S , typename O , std::enable_if_t< are_scalar_multiplication_types_v< S, O >, bool > = true> | |
ScalarMultiplication< S, O > | operator* (O &&o, const S &s) |
The scalar multiplication operator for an operator. | |
template<typename S , typename O , std::enable_if_t< are_scalar_multiplication_types_v< S, O >, bool > = true> | |
ScalarMultiplication< S, O > | operator/ (O &&o, const S &s) |
The scalar division operator for an operator. | |
template<typename S , typename O , std::enable_if_t< are_scalar_multiplication_types_v< S, O >, bool > = true> | |
auto | operator+ (O &&o, const S &s) |
template<typename S , typename O , std::enable_if_t< are_scalar_multiplication_types_v< S, O >, bool > = true> | |
auto | operator+ (const S &s, O &&o) |
The scalar addition operator for an operator. | |
template<typename S , typename O , std::enable_if_t< are_scalar_multiplication_types_v< S, O >, bool > = true> | |
auto | operator- (O &&o, const S &s) |
The scalar subtraction operator for an operator. | |
template<typename S , typename O , std::enable_if_t< are_scalar_multiplication_types_v< S, O >, bool > = true> | |
auto | operator- (const S &s, O &&o) |
template<typename O , std::enable_if_t< is_operator_v< O >, bool > = true> | |
ScalarMultiplication< int, O > | operator- (O &&o) |
Unitary minus operator. | |
Variables | |
template<AdditionOperation operation> | |
constexpr bool | is_valid_operation_v |
Validates operation. | |
template<typename O > | |
constexpr bool | is_operator_v |
Checks whether O is an operator. | |
template<typename O1 , typename O2 > | |
constexpr bool | are_operators_v = is_operator_v<O1> &&is_operator_v<O2> |
Checks whether O1 and O2 are operators. | |
template<typename T , typename O > | |
constexpr bool | are_scalar_multiplication_types_v |
Validates ScalarOperator template parameters. | |
using bspline::operators::Dx = typedef Derivative<n> |
Convenient alias for derivative operator.
Alias for the derivative operator
n | Order of the derivative. |
Alias for Position operator.
Alias for the power
n | Order of the power of the position operator. |
Indicates which operation the OperatorSum is supposed to perform.
Enumerator | |
---|---|
ADDITION | Perform addition. |
SUBTRACTION | Perform subtraction. |
auto bspline::operators::operator* | ( | const O & | o, |
const S & | s | ||
) |
Applies an operator to a spline.
o | The operator. |
s | The spline. |
O | The type of the operator. |
S | The type of the spline. |
ScalarMultiplication< S, O > bspline::operators::operator* | ( | const S & | s, |
O && | o | ||
) |
Scalar-Opertator multiplication.
Deduction guide for a ScalarMultiplication of a scalar and an Operator.
s | The scalar to be multiplied. |
o | The operator to be multiplied. |
S | The type of the scalar. |
O | The type of the operator to be multiplied. |
ScalarMultiplication< S, O > bspline::operators::operator* | ( | O && | o, |
const S & | s | ||
) |
The scalar multiplication operator for an operator.
o | The operator to be multiplied. |
s | The scalar to be multiplied. |
S | The type of the scalar. |
O | The type of the operator to be multiplied. |
OperatorProduct< O1, O2 > bspline::operators::operator* | ( | O1 && | o1, |
O2 && | o2 | ||
) |
Operator multiplication operator.
The multiplication operator for two operators, returning an OperatorProduct.
o1 | The first (left) operator. |
o2 | The second (right) operator. |
O1 | The type of the first (left) operator. |
O2 | The type of the second (right) operator. |
auto bspline::operators::operator+ | ( | const S & | s, |
O && | o | ||
) |
The scalar addition operator for an operator.
s | The scalar to be added. |
o | The operator to be added. |
S | The type of the scalar. |
O | The type of the operator. |
auto bspline::operators::operator+ | ( | O && | o, |
const S & | s | ||
) |
The scalar addition operator for an operator.
o | The operator to be added. |
s | The scalar to be added. |
S | The type of the scalar. |
O | The type of the operator. |
Operator sum.
The addition operator for two operators, returning an OperatorSum.
o1 | The first operator. |
o2 | The second operator. |
O1 | The type of the first operator. |
O2 | The type of the second operator. |
auto bspline::operators::operator- | ( | const S & | s, |
O && | o | ||
) |
The scalar subtraction operator for an operator.
s | The scalar. |
o | The operator to be subtracted. |
S | The type of the scalar. |
O | The type of the operator. |
ScalarMultiplication< int, O > bspline::operators::operator- | ( | O && | o | ) |
Unitary minus operator.
The unitary minus operator for an operator. Returns an ScalarMultiplication<int, O>.
o | The operator to be negated. |
O | The type of the operator to be negated. |
auto bspline::operators::operator- | ( | O && | o, |
const S & | s | ||
) |
The scalar subtraction operator for an operator.
o | The operator. |
s | The scalar to be subtracted. |
S | The type of the scalar. |
O | The type of the operator. |
Operator difference.
The subtraction operator for two operators, returning an OperatorSum.
o1 | The first operator. |
o2 | The second operator. |
O1 | The type of the first operator. |
O2 | The type of the second operator. |
ScalarMultiplication< S, O > bspline::operators::operator/ | ( | O && | o, |
const S & | s | ||
) |
The scalar division operator for an operator.
o | The operator to be divided. |
s | The divisor. |
S | The type of the scalar. |
O | The type of the operator to be divided. |
ScalarMultiplication with default constructed operator.
Deduction guide for a ScalarMultiplication constructed from a scalar alone.
S | The type of the scalar. |
auto bspline::operators::transformSpline | ( | const O & | op, |
const Spline< T, order > & | spline | ||
) |
Applies operator to spline.
Helper method that applies an operator to a spline based on the transformation of the coefficients on a single interval.
op | The operator to apply to the spline. |
spline | The spline to apply the operator to. |
T | The datatype of the input and output splines. |
order | The order of the input spline. |
O | The type of the operator. |
|
inlineconstexpr |
Checks whether O1 and O2 are operators.
Indicates whether both template parameters are operator types.
O1 | First template parameter. |
O2 | Second template parameter. |
Validates ScalarOperator template parameters.
Indicates whether the argument types may be arguments of a scalar multiplication (i.e. a scalar multiplied with an operator).
T | Scalar type. |
O | Operator type. |
Checks whether O is an operator.
Indicates whether the template parameter is an operator type.
O | Template parameter. |
|
inlineconstexpr |
Validates operation.
Checks whether the operation is a valid oeration for OperatorSum.
operation | The operation type to be checked. |