Orbital library

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().

André Platzer
See Also:

Nested Class Summary
static interface MathFunctor.Composite
          A composed mathematical functors.
Nested classes/interfaces inherited from interface orbital.logic.functor.Functor
Field Summary
Fields inherited from interface orbital.math.Arithmetic
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

Orbital library
1.3.0: 11 Apr 2009

Copyright © 1996-2009 André Platzer
All Rights Reserved.