@thi.ng/dual-algebra
Version:
Multivariate dual number algebra, automatic differentiation
26 lines (25 loc) • 772 B
JavaScript
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
};