UNPKG

@sgratzl/science

Version:

Scientific and statistical computing in JavaScript.

34 lines (30 loc) 734 B
export default function quadratic() { var complex = false; function quadratic(a, b, c) { var d = b * b - 4 * a * c; if (d > 0) { d = Math.sqrt(d) / (2 * a); return complex ? [{r: -b - d, i: 0}, {r: -b + d, i: 0}] : [-b - d, -b + d]; } else if (d === 0) { d = -b / (2 * a); return complex ? [{r: d, i: 0}] : [d]; } else { if (complex) { d = Math.sqrt(-d) / (2 * a); return [ {r: -b, i: -d}, {r: -b, i: d} ]; } return []; } } quadratic.complex = function(x) { if (!arguments.length) return complex; complex = x; return quadratic; }; return quadratic; };