+

Addition of type-level naturals.
Add two vectors, or add a vector to a point.
add and subtract elements
Infix shorthand for plus.
Add 2 Word128
Add 2 Word256
Adds two Quantitys.
Adds two possibly scaled SQuantitys, preserving any scale factor. Use in conjunction with changeRepRound to combine quantities with differing scale factors.
TypeInt addition.
The sum of two type-level numbers
Differentiable logging sum function.

Examples of usage

>>> import Control.Arrow (runKleisli)

>>> import Control.Monad.Logger (runStdoutLoggingT)

>>> import InfBackprop (call)
>>> runStdoutLoggingT $ runKleisli (call (+)) (2, 2)
[Info] Calculating sum of 2 and 2 => 4
4
Summation differentiable binary operation.

Examples of usage

>>> import Prelude (Float)

>>> import InfBackprop (call, derivative)
>>> call (+) (2, 3) :: Float
5.0
>>> import Debug.SimpleExpr.Expr (variable)

>>> x = variable "x"

>>> y = variable "y"

>>> derivative (+) (x, y)
(1,1)
(++) appends two lists, i.e.,
[x1, ..., xm] ++ [y1, ..., yn] == [x1, ..., xm, y1, ..., yn]
[x1, ..., xm] ++ [y1, ...] == [x1, ..., xm, y1, ...]
If the first list is not finite, the result is the first list.

Performance considerations

This function takes linear time in the number of elements of the first list. Thus it is better to associate repeated applications of (++) to the right (which is the default behaviour): xs ++ (ys ++ zs) or simply xs ++ ys ++ zs, but not (xs ++ ys) ++ zs. For the same reason concat = foldr (++) [] has linear performance, while foldl (++) [] is prone to quadratic slowdown

Examples

>>> [1, 2, 3] ++ [4, 5, 6]
[1,2,3,4,5,6]
>>> [] ++ [1, 2, 3]
[1,2,3]
>>> [3, 2, 1] ++ []
[3,2,1]
Split the input between the two argument arrows, retagging and merging their outputs. Note that this is in general not a functor. The default definition may be overridden with a more efficient version if desired.
Symmetric choice.
Symmetric choice.