import { TwoF64, f64 } from "./common.js"; //#region src/base/eft.d.ts /** * Return the canonical {@link TwoF64|`TwoF64`} representation of `x + y` * (`fast2Sum` error-free transform). * * **NB. Assumes `|x| ≥ |y|`. Use {@link twoSum|`twoSum`} if this condition is * not satisfied.** * * FP ops: 3 * * @param x A `f64` number * @param y A `f64` number * @returns The {@link TwoF64|`TwoF64`} representation of `x + y` */ export declare function normalize(x: f64, y: f64): TwoF64; export declare const fast2Sum: typeof normalize; /** * Fast extended-precision subtraction `x - y` (error-free transform). * * **NB. Assumes `|x| ≥ |y|`. Use `sub(x, y)` if this condition is not * satisfied.** * * FP ops: 3 * * @param x A `f64` number * @param y A `f64` number * @returns The {@link TwoF64|`TwoF64`} representation of `x - y` */ export declare function fast2Diff(x: f64, y: f64): TwoF64; /** * Dekker/Veltkamp splitter function (error-free transform). * * Split the given number into two halves, `hi` and `lo`, using the splitting * constant `F64_SPLITTER`. Return a tuple `[hi, lo]` where the non-zero bits in * `hi` and `lo` don't overlap and such that mathematically `hi + lo = x`. * * FP ops: 4 * * @see {@link F64_SPLITTER} * @param x A `f64` number * @returns A tuple `[hi, lo]` such that `hi + lo = x` */ export declare function split(x: f64): [f64, f64]; /** * Extended-precision addition `x + y` (error-free transform - Møller & Knuth * algorithm). * * FP ops: 6 * * @param x A `f64` number * @param y A `f64` number * @returns The {@link TwoF64|`TwoF64`} representation of `x + y` */ export declare function twoSum(x: f64, y: f64): TwoF64; /** * Extended-precision subtraction `x - y` (error-free transform - Møller & Knuth * algorithm). * * FP ops: 6 * * @param x A `f64` number * @param y A `f64` number * @returns The {@link TwoF64|`TwoF64`} representation of `x - y` */ export declare function twoDiff(x: f64, y: f64): TwoF64; /** * Extended-precision multiplication `x * y` (error-free transform - Dekker / * Veltkamp product). * * FP ops: 17 * * @param x A `f64` number * @param y A `f64` number * @returns The {@link TwoF64|`TwoF64`} representation of `x * y` */ export declare function twoProd(x: f64, y: f64): TwoF64; /** * Extended-precision multiplication `x * x` (error-free transform - Dekker / * Veltkamp product). * * FP ops: 12 * * @param x A `f64` number * @returns The {@link TwoF64|`TwoF64`} representation of `x²` */ export declare function twoSquare(x: f64): TwoF64; //#endregion