import { SecureRandom } from "./rng";
|
export declare class BigInteger {
|
constructor(a: number | number[] | string, b?: number | SecureRandom, c?: number | SecureRandom);
|
toString(b: number): string;
|
protected negate(): BigInteger;
|
abs(): BigInteger;
|
compareTo(a: BigInteger): number;
|
bitLength(): number;
|
mod(a: BigInteger): BigInteger;
|
modPowInt(e: number, m: BigInteger): BigInteger;
|
protected clone(): BigInteger;
|
protected intValue(): number;
|
protected byteValue(): number;
|
protected shortValue(): number;
|
protected signum(): 0 | 1 | -1;
|
toByteArray(): number[];
|
protected equals(a: BigInteger): boolean;
|
protected min(a: BigInteger): BigInteger;
|
protected max(a: BigInteger): BigInteger;
|
protected and(a: BigInteger): BigInteger;
|
protected or(a: BigInteger): BigInteger;
|
protected xor(a: BigInteger): BigInteger;
|
protected andNot(a: BigInteger): BigInteger;
|
protected not(): BigInteger;
|
protected shiftLeft(n: number): BigInteger;
|
protected shiftRight(n: number): BigInteger;
|
protected getLowestSetBit(): number;
|
protected bitCount(): number;
|
protected testBit(n: number): boolean;
|
protected setBit(n: number): BigInteger;
|
protected clearBit(n: number): BigInteger;
|
protected flipBit(n: number): BigInteger;
|
add(a: BigInteger): BigInteger;
|
subtract(a: BigInteger): BigInteger;
|
multiply(a: BigInteger): BigInteger;
|
divide(a: BigInteger): BigInteger;
|
protected remainder(a: BigInteger): BigInteger;
|
protected divideAndRemainder(a: BigInteger): BigInteger[];
|
modPow(e: BigInteger, m: BigInteger): BigInteger;
|
modInverse(m: BigInteger): BigInteger;
|
protected pow(e: number): BigInteger;
|
gcd(a: BigInteger): BigInteger;
|
isProbablePrime(t: number): boolean;
|
copyTo(r: BigInteger): void;
|
fromInt(x: number): void;
|
protected fromString(s: string | number[], b: number): void;
|
clamp(): void;
|
dlShiftTo(n: number, r: BigInteger): void;
|
drShiftTo(n: number, r: BigInteger): void;
|
protected lShiftTo(n: number, r: BigInteger): void;
|
protected rShiftTo(n: number, r: BigInteger): void;
|
subTo(a: BigInteger, r: BigInteger): void;
|
multiplyTo(a: BigInteger, r: BigInteger): void;
|
squareTo(r: BigInteger): void;
|
divRemTo(m: BigInteger, q: BigInteger, r: BigInteger): void;
|
invDigit(): number;
|
protected isEven(): boolean;
|
protected exp(e: number, z: IReduction): BigInteger;
|
protected chunkSize(r: number): number;
|
protected toRadix(b: number): string;
|
fromRadix(s: string, b: number): void;
|
protected fromNumber(a: number, b: number | SecureRandom, c?: number | SecureRandom): void;
|
protected bitwiseTo(a: BigInteger, op: (a: number, b: number) => number, r: BigInteger): void;
|
protected changeBit(n: number, op: (a: number, b: number) => number): BigInteger;
|
protected addTo(a: BigInteger, r: BigInteger): void;
|
protected dMultiply(n: number): void;
|
dAddOffset(n: number, w: number): void;
|
multiplyLowerTo(a: BigInteger, n: number, r: BigInteger): void;
|
multiplyUpperTo(a: BigInteger, n: number, r: BigInteger): void;
|
protected modInt(n: number): number;
|
protected millerRabin(t: number): boolean;
|
protected square(): BigInteger;
|
gcda(a: BigInteger, callback: (x: BigInteger) => void): void;
|
fromNumberAsync(a: number, b: number | SecureRandom, c: number | SecureRandom, callback: () => void): void;
|
s: number;
|
t: number;
|
DB: number;
|
DM: number;
|
DV: number;
|
FV: number;
|
F1: number;
|
F2: number;
|
am: (i: number, x: number, w: BigInteger, j: number, c: number, n: number) => number;
|
[index: number]: number;
|
static ONE: BigInteger;
|
static ZERO: BigInteger;
|
}
|
export interface IReduction {
|
convert(x: BigInteger): BigInteger;
|
revert(x: BigInteger): BigInteger;
|
mulTo(x: BigInteger, y: BigInteger, r: BigInteger): void;
|
sqrTo(x: BigInteger, r: BigInteger): void;
|
}
|
export declare function nbi(): BigInteger;
|
export declare function parseBigInt(str: string, r: number): BigInteger;
|
export declare function intAt(s: string, i: number): number;
|
export declare function nbv(i: number): BigInteger;
|
export declare function nbits(x: number): number;
|