INNER CODE UNIT · TypeScript
mult
privy-io/shamir-secret-sharing · src/index.ts:86
function mult(a: number, b: number): number {
if (!Number.isInteger(a) || a < 0 || a > 255) {
throw new RangeError('Number is out of Uint8 range');
}
if (!Number.isInteger(b) || b < 0 || b > 255) {
throw new RangeError('Number is out of Uint8 range');
}
const logA = LOG_TABLE[a]!;
const logB = LOG_TABLE[b]!;
const sum = (logA + logB) % 255;
const result = EXP_TABLE[sum]!;
return a === 0 || b === 0 ? 0 : result;
}
// Takes N sample points and returns the value at a given x using a lagrange interpolation.
function interpolatePolynomial(xSamples: Uint8Array, ySamples: Uint8Array, x: number): number {
if (xSamples.length !== ySamples.length) {