# Differentiable Function Combinators

## Basic functions and Combinators (all implemented)

We build differentiable functions for our basic learning system using some basic ones and combinators:

• compositions (in class)
• sums and scalar products of differentiable functions. (done)
• product of a real valued and a vector valued function - the subtlest case (done).
• identity function (done).
• projections on (V, W) (done)
• inclusions to (V, W) (dome)
• evaluation of a finite distribution at a point (done).
• atomic distribution as a function of weight (done).
• point-wise multiplication of a finite distribution by a given function (done).
• sum of a set of functions, with even the set depending on argument (done).
• this can be interpreted as the sum of a fixed set of functions, but with all but finitely many zero.
• repeated squaring $k$ times, with $k=0$ and $k<0$ cases (done).
• recursive definitions for families indexed by integers - generic given zero. Done (for vector spaces).

## Derived from these

• (optional) moves
• (optional) pairings
• linear combinations.

## Convenience code

• Have implicit conversion from
• a type T implicitly depending on a linear structure on T to have methods ++ and *:
• DiffbleFunction[V, V] to a class with a multiplication method **:

### To Do:

• Construct differentiable functions for Finite Distributions - atom, evaluate and point-wise product.