UNPKG

@toruslabs/ffjavascript

Version:

Finite Field Library in Javascript

86 lines (85 loc) 2.7 kB
import FFT from "./fft"; export default class ZqField { type: string; one: bigint; zero: bigint; p: bigint; m: number; negone: bigint; two: bigint; half: bigint; bitLength: number; mask: bigint; n64: number; n32: number; n8: number; R: bigint; Ri: bigint; nqr: bigint; s: number; t: bigint; nqr_to_t: bigint; FFT: FFT; w: bigint[]; wi: bigint[]; shift: bigint; k: bigint; sqrt_q?: bigint; sqrt_s?: number; sqrt_t?: bigint; sqrt_z?: bigint; sqrt_tm1d2?: bigint; sqrt_e1?: bigint; sqrt_e34?: bigint; sqrt_e12?: bigint; sqrt?: (this: ZqField, a: bigint) => bigint | null; frobenius?: (n: number, x: bigint) => bigint; constructor(p: bigint | number | string); e(a: bigint | number | string, b?: number): bigint; add(a: bigint, b: bigint): bigint; sub(a: bigint, b: bigint): bigint; neg(a: bigint): bigint; mul(a: bigint, b: bigint): bigint; mulScalar(base: bigint, s: bigint | number | string): bigint; square(a: bigint): bigint; eq(a: bigint, b: bigint): boolean; neq(a: bigint, b: bigint): boolean; lt(a: bigint, b: bigint): boolean; gt(a: bigint, b: bigint): boolean; leq(a: bigint, b: bigint): boolean; geq(a: bigint, b: bigint): boolean; div(a: bigint, b: bigint): bigint; idiv(a: bigint, b: bigint): bigint; inv(a: bigint): bigint; mod(a: bigint, b: bigint): bigint; pow(b: bigint, e: bigint | number): bigint; exp(b: bigint, e: bigint | number): bigint; band(a: bigint, b: bigint): bigint; bor(a: bigint, b: bigint): bigint; bxor(a: bigint, b: bigint): bigint; bnot(a: bigint): bigint; shl(a: bigint, b: bigint): bigint; shr(a: bigint, b: bigint): bigint; land(a: bigint, b: bigint): bigint; lor(a: bigint, b: bigint): bigint; lnot(a: bigint): bigint; sqrt_old(n: bigint): bigint | null; normalize(a: bigint | number): bigint; random(): bigint; toString(a: bigint, base?: number): string; isZero(a: bigint): boolean; fromRng(rng: { nextU64(): bigint; }): bigint; fft(a: bigint[]): bigint[]; ifft(a: bigint[]): bigint[]; toRprLE(buff: Uint8Array, o: number, e: bigint): void; toRprBE(buff: Uint8Array, o: number, e: bigint): void; toRprBEM(buff: Uint8Array, o: number, e: bigint): void; toRprLEM(buff: Uint8Array, o: number, e: bigint): void; fromRprLE(buff: Uint8Array, o: number): bigint; fromRprBE(buff: Uint8Array, o: number): bigint; fromRprLEM(buff: Uint8Array, o: number): bigint; fromRprBEM(buff: Uint8Array, o: number): bigint; toObject(a: bigint): bigint; }