josdejong/mathjs

math.rationalize silently ignores imaginary numbers

Ouverte

#2 375 ouverte le 6 janv. 2022

 (4 commentaires) (0 réaction) (0 personne assignée)JavaScript (1 314 forks)batch import
bughelp wanted

Métriques du dépôt

Stars
 (15 065 étoiles)
Métriques de merge PR
 (Métriques PR en attente)

Description

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.

Guide contributeur