047-target-independent-transcendentals
One implementation of exp and ln on every target (amends 002 and 027)
Approved (A-44). The remedy spec 027 3.11.5 names for a cross-target floating-point divergence. The pure crates' four transcendental call sites (`exp` in core's softmax, `ln` in core's calibration, `ln` in evaluation's log loss and temperature fit) call the platform's math library on native targets and Rust's bundled one on WebAssembly; measured on 2026-10-21 they differ by one unit in the last place on 0.08% to 7.1% of a million inputs per input domain (macOS arm64 against `wasm32-unknown-unknown`). This spec routes all four through one pure Rust implementation, the `libm` crate exact-pinned at 0.2.16 without default features, exposed as `rustev_core::math`, so each produces the same bits on every target; no existing golden changes. Ratified by the owner on 2026-10-21 (A-44). Approval does not authorize a release.
Read the full pinned specification ↗Relationships
Claimed units
- extends
{ "nature": "amending", "spec": "002-decision-contract-and-pure-core", "unit": { "kind": "directory", "path": "crates/rustev-core/" } } - extends
{ "nature": "amending", "spec": "004-evaluation-and-replay", "unit": { "kind": "directory", "path": "crates/rustev-eval/" } } - extends
{ "nature": "additive", "spec": "001-boundaries-and-authority", "unit": { "kind": "file", "path": "Cargo.toml" } } - extends
{ "nature": "additive", "spec": "001-boundaries-and-authority", "unit": { "kind": "file", "path": "Cargo.lock" } } - extends
{ "nature": "additive", "spec": "031-public-api-and-release-family", "unit": { "kind": "directory", "path": "tools/rustev-release/" } }
Source headings
- 047: One implementation of exp and ln on every target (amends 002 and 027)
- 1. Purpose
- 2. Territory
- 3. One implementation
- What changes in spec 002
- What changes in spec 027
- 4. Out of scope
- 5. Observable negative cases
- Acceptance
- Verification
- Implementation record
Frozen anchors
No frozen anchors declared.