AetherlangLib: Manifolds

Types

manifolds.manifold
@ defines a manifold.

Functions


manifold varname1...varnameN body @-> manifolds.manifold
@ where varname1...varnameN: symbol or string
@       body: symbol
@ makes a manifold with given variables and a given body. note that body must contain one pair of outer parentheses in it. like :(f a b c).

section mn varname-value1...varname-valueN @-> manifolds.manifold
@ where mn: manifolds.manifold
@       varname-value1...varname-valueN: symbol or string and any
@ makes a slice of a manifold by removing certain variables from its list and assigning constant values to them instead.
@ example:
     m1 = manifold :x :y :(< x y) @ -> manifold of x, y where x < y
     m2 = section m1 :x 5 @ -> manifold of y where 5 < y

Note that contains? from base works perfectly fine with manifolds too, except it will always expect an array of values and a manifold and return 1 or void, since there is no indexing in manifolds.

@ example:
     m = manifold :x :y :(< x y) @ -> manifold of x, y where x < y
     in? (arr 5 6) m @ -> 1
     in? (arr 8 0) m @ -> void