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 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
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