/** * Integer quaternion-interpolation contract used by the Paper 6 conformance experiment. * * This is deliberately not the shipped AnimationClip policy (which is shortest-arc nlerp), * and it is not MinimaxSLERP. It is a fixed-point, CORDIC approximation of shortest-arc * SLERP whose claimed output is the encoded i32 byte sequence. The WebGPU implementation * uses only WGSL i32/u32 operations; this independent oracle uses BigInt throughout. */ export declare const QUATERNION_INTERPOLATION_CONTRACT_VERSION: "paper6-q14-cordic-slerp-v1"; export declare const QUATERNION_Q14_ONE = 16384; export declare const WEIGHT_Q15_ONE = 32768; export declare const NEAR_ALIGNED_DOT_Q15 = 32760; export declare const CORDIC_GAIN_Q15 = 19898; /** atan(2^-i) in BAM16, where one complete turn is 65,536 units. */ export declare const CORDIC_ATAN_BAM16: readonly [8192, 4836, 2555, 1297, 651, 326, 163, 81, 41, 20, 10, 5, 3, 1, 1]; export type QuaternionQ14 = readonly [number, number, number, number]; export interface QuaternionInterpolationCase { readonly id: string; readonly from: QuaternionQ14; readonly to: QuaternionQ14; /** Unsigned interpolation fraction on [0, 32768], where 32768 is exactly one. */ readonly tQ15: number; } /** * Independent BigInt oracle for the integer WGSL schedule. * * The raw Q28 dot selects the shortest-arc sign before any approximation. The ordinary * branch computes theta=atan2(sqrt(1-dot^2), dot), evaluates the two sine weights with * integer CORDIC, blends in Q14, and integer-normalizes the result. */ export declare function slerpQuaternionQ14Oracle(testCase: QuaternionInterpolationCase): QuaternionQ14; /** Frozen, adversarial byte-level corpus shared by the oracle and GPU receipt harness. */ export declare const PAPER6_Q14_SLERP_CASES: readonly QuaternionInterpolationCase[]; /** * Encode each case as a 48-byte storage-buffer row matching the independent WGSL struct: * from[4] i32, to[4] i32, t u32, case id u32, and two explicit padding words. */ export declare function encodeQuaternionInterpolationCases(cases: readonly QuaternionInterpolationCase[]): Int32Array; export declare function encodeQuaternionInterpolationOracleResults(cases: readonly QuaternionInterpolationCase[]): Int32Array; //# sourceMappingURL=QuaternionInterpolationContract.d.ts.map