Skip to content

Ieee754Kernel

Ieee754Kernel<TSig> = object

Defined in: packages/math-numbers/src/ieee754/binary/kernels/types.ts:63

The arithmetic behind ieeeBinaryMul/Div/Axpy/Axpby, as a swappable implementation.

Only operations expensive enough per element that a native kernel is expected to win despite the crossing cost belong here. add/sub/neg/abs/cmp/ sqrt have exactly one implementation each (ieee-binary-add.ts and siblings) and are never installed or swapped.

A kernel is installed synchronously, so arithmetic never awaits — an await in front of a.mul(b) would put an I/O shape on a pure computation.

Operands are accepted in either significand representation (a value produced by the other kernel is converted at the boundary, not rejected — see finiteToBigInt/finiteToLimbs); TSig names only the representation this kernel produces, so results never carry an unnecessary conversion back to a shared canonical form.

TSig extends bigint | Uint32Array = bigint | Uint32Array

axpby: Ieee754AxpbyFunction<TSig>

Defined in: packages/math-numbers/src/ieee754/binary/kernels/types.ts:69


axpy: Ieee754AxpyFunction<TSig>

Defined in: packages/math-numbers/src/ieee754/binary/kernels/types.ts:68


readonly optional batch?: Ieee754BatchKernel

Defined in: packages/math-numbers/src/ieee754/binary/kernels/types.ts:75

Batched entry points, one native crossing for count elements instead of one per element. Absent on a kernel with no crossing to amortise.


div: Ieee754BinaryFunction<TSig>

Defined in: packages/math-numbers/src/ieee754/binary/kernels/types.ts:67


mul: Ieee754BinaryFunction<TSig>

Defined in: packages/math-numbers/src/ieee754/binary/kernels/types.ts:66