josdejong/mathjs

math.rationalize silently ignores imaginary numbers

Open

#2.375 aberto em 6 de jan. de 2022

Ver no GitHub
 (4 comments) (0 reactions) (0 assignees)JavaScript (1.298 forks)batch import
bughelp wanted

Métricas do repositório

Stars
 (13.832 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

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.

Guia do colaborador