Shoddy Documentation
The family law every mathematical machine keeps, written once
A machine is one of Shoddy's standard libraries: a file of related words, where a word is Shoddy's name for a function. The mathematical machines — alg, eng, ephemeris, fin, geo, julian, lin, math, matrix, neural, random, sparse and their neighbours — grew one at a time. Each new one copied the last one's discipline. This page writes the shared discipline down. Nothing here is new: every clause was lifted from a shipped machine's header, and its origin is named, so each rule reads as observed practice rather than invented policy. A new mathematical machine states its position on each clause in its own header. An existing one is edited only when other work touches it anyway.
SpShow in sparse, neural's two random edges, and random's whole
surface are those edges — each documented as the exception it is.=. A
computed value carries tiny rounding errors, so = on it can lie.
A machine owning a computed type offers the one honest comparison —
EngCNear, GeoNear, AlgEqual — and its
header says why. julian is the counter-case that proves the rule: dates are
whole-number arithmetic, so = is honest there, and the header
says that instead.Number type holds exactly — overflow bounds,
iteration limits, dimension limits. A ceiling that produces a plausible
wrong answer is documented at the word, not the header alone.Seed from Rnd this way. A capability the tree
needs twice becomes a shared machine; julian is the calendar that fin and geo
each briefly carried. A private three-line helper duplicated inside
another machine's body is that machine's business — fin's bisection, geo's
list vectors, the two suns — but it is tested where it can drift, never
merely trusted.Error, naming the word. External
input answers Result with a 1-based position — counting from
one, not zero. Absence answers Option. A word that aborts has
its total twin defined under it; a total word always answers instead of
aborting. GeoAt sits over GeoTryAt, and
JulOf over JulTryOf — one set of rules, not
two.Includes point downward. A machine slots into the map. It does not reshape it.
| Tier | Machines | Owns |
|---|---|---|
| 0 | the runtime builtins | native precision and native state |
| 1 | math, seq, str, random, julian | the standalone derived layers; they include nothing, or math alone |
| 2 | matrix, sparse, stats | data structures and their arithmetic |
| 3 | eng, lin, alg | engines: continuous, linear, symbolic |
| 4 | fin, geo, ephemeris, neural, simplex and mip | subjects, composed from the tiers below. A subject may include a subject when its first line would have to anyway — ephemeris includes geo, as a projections machine one day will. |
Physics does not appear in the table, on purpose. The family is the physics library, and the atlas maps the curriculum onto it rather than adding a machine that would re-own words a dozen machines already publish.
A vector — a row of numbers treated as one quantity, like a direction in
space — crossing a public surface is an Array Of Number.
matrix owns the element arithmetic
(Dot, VAdd). lin
owns the geometry (LinCross, LinNorm). A subject
machine reuses those rather than growing public twins. The one grandfathered
exception is GeoEcef, which answers a
List Of Number and stays — repairing it would break a shipped
surface to gain no capability. It is recorded here so it is a boundary, not
a precedent.