Orbital library

## 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 MathFunctorextends 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
derive()
Structure:
inhert:orbital.logic.functor.Functor

Nested Class Summary
`static interface` `MathFunctor.Composite`
A composed mathematical functors.

Nested classes/interfaces inherited from interface orbital.logic.functor.Functor
`Functor.Specification`

Field Summary

Fields inherited from interface orbital.math.Arithmetic
`numerical`

Method Summary

Methods inherited from interface orbital.logic.functor.Functor
`equals, hashCode, toString`

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`

Orbital library
1.3.0: 11 Apr 2009