UNPKG

@thi.ng/dual-algebra

Version:

Multivariate dual number algebra, automatic differentiation

26 lines (25 loc) 772 B
import { add, mul } from "./ops.js"; const quadratic = (x, a, b, c) => add(add(mul(a, mul(x, x)), mul(b, x)), c); const quadraticS = (x, a, b, c) => quadratic([x, 1], [a, 0], [b, 0], [c, 0]); const cubic = (x, a, b, c, d) => { const x2 = mul(x, x); return add(add(add(mul(a, mul(x2, x)), mul(b, x2)), mul(c, x)), d); }; const cubicS = (x, a, b, c, d) => cubic([x, 1], [a, 0], [b, 0], [c, 0], [d, 0]); const quartic = (x, a, b, c, d, e) => { const x2 = mul(x, x); const x3 = mul(x2, x); return add( add(add(add(mul(a, mul(x3, x)), mul(b, x3)), mul(c, x2)), mul(d, x)), e ); }; const quarticS = (x, a, b, c, d, e) => quartic([x, 1], [a, 0], [b, 0], [c, 0], [d, 0], [e, 0]); export { cubic, cubicS, quadratic, quadraticS, quartic, quarticS };