josdejong/mathjs

math.rationalize silently ignores imaginary numbers

Aperta

#2375 aperta il 6 gen 2022

 (4 commenti) (0 reazioni) (0 assegnatari)JavaScript (1314 fork)batch import
bughelp wanted

Metriche repository

Star
 (15.065 stelle)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

Currently, math.rationalize seems to ignore imaginary numbers:

// math.js version 9.5.1

// complex coefficient a = (2 + complex(3, 4))
let a = new math.OperatorNode("+", "add", [new math.ConstantNode(2), new math.ConstantNode(math.complex(3, 4))]);
console.log(a.evaluate()); // {re: 5, im: 4}

// polynomial a * x
let poly = new math.OperatorNode("*", "multiply", [a, new math.SymbolNode("x")]);

let coefficients = math.rationalize(poly, true).coefficients;
console.log(coefficients); // [0, 5]

I would expect coefficients to be [0, 5+4i] or for rationalize to throw an error.

Guida contributor