ADR 0091: Elementary-function accuracy
Context
CPU and target implementations use different library, intrinsic, or custom approximation paths, so matching operation names do not establish equal numeric results. Review must define exact rounding or an explicit accuracy bound, monotonicity requirement, domain errors, and special-value results for division, reciprocal, square root, reciprocal square root, logarithm, exponential, and exponential difference.
The proposal under review uses a versioned independent high-precision oracle plus a named per-profile ULP or relative-error bound, domain table, monotonicity rule, and special-value table. CPU host-library and hardware primitive results remain observations, not the oracle.
Affected domains
scalar-binaryscalar-unarytile-binarytile-expandtile-unary
Alternatives considered
- correctly rounded portable rules;
- named profile error bounds; and
- unsupported-in-profile dispositions.
Blockers
- Choose the oracle and version.
- Set per-operation/type/profile error bounds.
- Define domain boundaries and monotonic intervals.
Acceptance obligations
- A versioned high-precision oracle.
- A ULP or relative-error rule.
- Domain-boundary and monotonicity vectors.
Decision
No accuracy bound is accepted by this draft.