|
From: Stavros M. <mac...@us...> - 2025-12-02 18:41:48
|
In addition to the 0.0/-0.0 case that you mention
(hypotenouse-binary64 1e-170 0.0) => 0.0 -- should be 1e-170
it isn't right for denormalized numbers:
(hypotenouse-binary64 1e-323 1e-323) => 3.1467296279827185e-308
(* 1e-323 (sqrt 2.0)) => 1.4821969375237396e-323
PS By the way, although I appreciate the spelling *hypotenouse* as being more faithful to the Greek (ὑποτείνουσα), that's not the usual English spelling.
---
**[bugs:#4638] cabs/carg/polarform overflow and underflow**
**Status:** open
**Group:** None
**Labels:** cabs carg
**Created:** Sat Nov 29, 2025 07:18 AM UTC by Stavros Macrakis
**Last Updated:** Tue Dec 02, 2025 03:16 PM UTC
**Owner:** nobody
``cabs`` and ``carg`` on complex floats overflow and underflow even when the result is perfectly representable:
<pre>
cabs(1e-170 + %i*1e-170) => 0.0
but float(cabs(bfloat(1e-170 + %i*1e-170))) => 1.414213562373095e-170
cabs(1e170 + %i*1e+170) => overflow
but float(cabs(bfloat(1e170 + %i*1e170))) => 1.4142135623730952e170
carg(1e170 + %i*1e+170)) => overflow
but float(carg(bfloat(1e170 + %i*1e+170))) => 0.7853981633974483
carg(1e-310 + %i*1e-310) => overflow
but carg(1b-310 + %i*1b-310) => 7.853981633974483b-1
polarform(1e170 + %i*1e+170) => overflow
</pre>
Tested in Maxima 5.48.1 SBCL 2.5.7 MacOS Intel
---
Sent from sourceforge.net because max...@li... is subscribed to https://sourceforge.net/p/maxima/bugs/
To unsubscribe from further messages, a project admin can change settings at https://sourceforge.net/p/maxima/admin/bugs/options. Or, if this is a mailing list, you can unsubscribe from the mailing list. |