Orbital library

## Package orbital.math.functional

Contains mathematical functors and extended functional operations.

See:
Description

Interface Summary
BinaryFunction This interface encapsulates a binary function "r = f(x,y)".
BinaryFunction.Composite A composite function.
Function This interface encapsulates a mathematical unary function "r = f(x)".
Function.Composite A composite function.
MathFunctor MathFunctor interface tags all mathematical functors.
MathFunctor.Composite A composed mathematical functors.
Operations Provides central arithmetic operations for algebraic types.

Class Summary
Functionals Provides important compositional functionals for mathematical functions.
Functions Common function implementations.

## Package orbital.math.functional Description

Contains mathematical functors and extended functional operations.

This package is dual to orbital.logic.functor, it provides mathematical extensions that inherit from logic functors (that are in turn derived from orbital.logic.functor.Functor) in a conform way. Mathematical functors extend their logic counterpart and additionally implement orbital.math.functional.MathFunctor.
So for instance there's an interface orbital.math.functional.BinaryFunction that extends both, orbital.logic.functor.BinaryFunction and orbital.math.functional.MathFunctor.
Though this might see a little subtile it has the advantage that methods written for general logical functors will work for mathematical functors as well. So both types of functors are rather compatible.

The class orbital.math.functional.Functionals defines High-Order-Functions for functional style evaluation. With Functionals one can apply Functions to collections and arrays of values as well as compose functions. Mathematical operations for major mathematical functions are pre-defined in the class orbital.math.functional.Operations. Usual mathematical functions are provided in orbital.math.functional.Functions

The inheritance hierarchy of common mathematical functor interfaces:

• orbital.logic.functor.Functor
• Functions
• orbital.logic.functor.Function<A,B>: f:A→B;x↦f(x)
• orbital.math.functional.Function: f:A→B;x↦f(x)
(also extends orbital.math.functional.MathFunctor)
• orbital.logic.functor.BinaryFunction<A1,A2,B>: f:A1×A2→B;(x,y)↦f(x,y)
• orbital.math.functional.BinaryFunction: f:A1×A2→B;(x,y)↦f(x,y)
(also extends orbital.math.functional.MathFunctor)
• orbital.math.functional.MathFunctor
(also extends orbital.math.Arithmetic)
• orbital.math.functional.Function: f:A→B;x↦f(x)
(also extends orbital.logic.functor.Function)
• orbital.math.functional.BinaryFunction: f:A1×A2→B;(x,y)↦f(x,y)
(also extends orbital.logic.functor.BinaryFunction)
Extends:
orbital.logic.functor (dual to this package)