UNPKG

flo-poly

Version:

A practical, root-focused JavaScript polynomial utility library.

32 lines (24 loc) 724 B
import { EFTHorner as EFTHorner_ } from "./eft-horner.js"; // We *have* to do the below❗ The assignee is a getter❗ The assigned is a pure function❗ Otherwise code is too slow❗ const EFTHorner = EFTHorner_; /** * @param p * @param x * @param K * * @internal */ function EFTHornerK( p: number[], x: number, K: number): { hs: number[]; ps: number[][]; } { const ps = [p]; const hs: number[] = []; const card = (2**K)-1; // size of the tree, i.e. cardinality of the nodes for (let i=0; i<card; i++) { const { r̂, pπ, pσ } = EFTHorner(ps[i], x); hs.push(r̂); ps.push(pπ); ps.push(pσ); } return { hs, ps: ps.slice(2**(K-1)) }; } export { EFTHornerK }