orbital.math.functional
Interface MathFunctor
- All Superinterfaces:
- Arithmetic, Functor, Normed
- All Known Subinterfaces:
- BinaryFunction, BinaryFunction.Composite, Function, Function.Composite, MathFunctor.Composite, Polynomial, UnivariatePolynomial
public interface MathFunctor
- extends Functor, Arithmetic
MathFunctor interface tags all mathematical functors.
So this interface for mathematical functors extends normal logic functors.
The difference between MathFunctor and its superinterface Functor
is that the mathematical MathFunctor tags objects to provide extended mathematical
behaviour like derivation and integration, and that it is aware of arithmetic operations
on functions.
MathFunctors f:A→B; x ↦ f(x) form a vector space over K if the function f returns elements in B=K.
MathFunctors form a field if and only if |A|=1 which is not a particulary exciting case.
MathFunctors usually provide pointwise arithmetic operations.
For an arithmetic operation ⋆:B×B→B this will be a pointwise composition
of the operation ∘ with the functor operands
⋆:Map(A,B)×Map(A,B)→Map(A,B); (f,g) ↦ f ⋆ g: A→B; x ↦ (f ⋆ g)(x) := f(x) ⋆ g(x)
An consequence of this pointwise arithmetic is that the corresponding zero function
is the constant
0:A→B; x ↦ 0
And the corresponding one function is the constant
1:A→B; x ↦ 1
Which are both distinct from the identity function.
Note: once covariant return-types are available again in Java, this interface will
unveil its method for derivation. It will have the signature
MathFunctor derive()
It is now only provided in the sub interfaces because this approach saves inconvenient casting.
For the documentation concerning derivation methods in MathFunctor and its sub interfaces
see derive().
- Since:
- Orbital1.0
- Author:
- André Platzer
- See Also:
- derive()
- Structure:
- inhert:orbital.logic.functor.Functor
Methods inherited from interface orbital.math.Arithmetic |
add, divide, equals, inverse, isOne, isZero, minus, multiply, one, power, scale, subtract, toString, valueFactory, zero |
Methods inherited from interface orbital.math.Normed |
norm |
Copyright © 1996-2009 André Platzer
All Rights Reserved.