|
From: Barton W. <wil...@us...> - 2025-12-01 14:21:15
|
I have an experimental way to fix the `cabs` overflow case for complex binary64 numbers, but mixed binary64 & symbolic cases can still fail: Example OK: ~~~ (%i10) cabs(5.0e154 + %i); float-float case (debug message) (%o10) 5.0e154 ~~~ Still overflows ~~~ (%i11) cabs(5.0e154 + %i*x); Maxima encountered a Lisp error: arithmetic error FLOATING-POINT-OVERFLOW signalled ~~~ Returning a `cabs` nounform isn't an option for `cabs(5.0e154 + %i*x)`, I think, so I'm stuck. --- **[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:** Sat Nov 29, 2025 07:18 AM 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. |