Closed afishhh closed 6 months ago
The mistake meant that a.equals(b, ..., true) would return true if a is infinite and b is zero.
This directly affects MathStructure::equals(zero, ..., true), MathStructure::countOccurrences(zero) (infinite values counted), MathStructure::replace(zero, ...) (infinite values replaced), MathStructure::calculateReplace(zero, ...), and MathStructure::contains(zero, ..., ..., ..., true).
This will affect anyone who calls these functions directly in the library. I have however examined how they are used in within the library and any further significant consequences seem highly unlikely.
Number.equals()
would previously return different results depending on which value isthis
and which one iso
when comparing an infinity with a finite value (when the internal rational is the same).