You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(67) |
Jul
(61) |
Aug
(49) |
Sep
(43) |
Oct
(59) |
Nov
(24) |
Dec
(18) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(34) |
Feb
(35) |
Mar
(72) |
Apr
(42) |
May
(46) |
Jun
(15) |
Jul
(64) |
Aug
(62) |
Sep
(22) |
Oct
(41) |
Nov
(57) |
Dec
(56) |
| 2004 |
Jan
(48) |
Feb
(47) |
Mar
(33) |
Apr
(39) |
May
(6) |
Jun
(17) |
Jul
(19) |
Aug
(10) |
Sep
(14) |
Oct
(74) |
Nov
(80) |
Dec
(22) |
| 2005 |
Jan
(43) |
Feb
(33) |
Mar
(52) |
Apr
(74) |
May
(32) |
Jun
(58) |
Jul
(18) |
Aug
(41) |
Sep
(71) |
Oct
(28) |
Nov
(65) |
Dec
(68) |
| 2006 |
Jan
(54) |
Feb
(37) |
Mar
(82) |
Apr
(211) |
May
(69) |
Jun
(75) |
Jul
(279) |
Aug
(139) |
Sep
(135) |
Oct
(58) |
Nov
(81) |
Dec
(78) |
| 2007 |
Jan
(141) |
Feb
(134) |
Mar
(65) |
Apr
(49) |
May
(61) |
Jun
(90) |
Jul
(72) |
Aug
(53) |
Sep
(86) |
Oct
(61) |
Nov
(62) |
Dec
(101) |
| 2008 |
Jan
(100) |
Feb
(66) |
Mar
(76) |
Apr
(95) |
May
(77) |
Jun
(93) |
Jul
(103) |
Aug
(76) |
Sep
(42) |
Oct
(55) |
Nov
(44) |
Dec
(75) |
| 2009 |
Jan
(103) |
Feb
(105) |
Mar
(121) |
Apr
(59) |
May
(103) |
Jun
(82) |
Jul
(67) |
Aug
(76) |
Sep
(85) |
Oct
(75) |
Nov
(181) |
Dec
(133) |
| 2010 |
Jan
(107) |
Feb
(116) |
Mar
(145) |
Apr
(89) |
May
(138) |
Jun
(85) |
Jul
(82) |
Aug
(111) |
Sep
(70) |
Oct
(83) |
Nov
(60) |
Dec
(16) |
| 2011 |
Jan
(61) |
Feb
(16) |
Mar
(52) |
Apr
(41) |
May
(34) |
Jun
(41) |
Jul
(57) |
Aug
(73) |
Sep
(21) |
Oct
(45) |
Nov
(50) |
Dec
(28) |
| 2012 |
Jan
(70) |
Feb
(36) |
Mar
(71) |
Apr
(29) |
May
(48) |
Jun
(61) |
Jul
(44) |
Aug
(54) |
Sep
(20) |
Oct
(28) |
Nov
(41) |
Dec
(137) |
| 2013 |
Jan
(62) |
Feb
(55) |
Mar
(31) |
Apr
(23) |
May
(54) |
Jun
(54) |
Jul
(90) |
Aug
(46) |
Sep
(38) |
Oct
(60) |
Nov
(92) |
Dec
(17) |
| 2014 |
Jan
(62) |
Feb
(35) |
Mar
(72) |
Apr
(30) |
May
(97) |
Jun
(81) |
Jul
(63) |
Aug
(64) |
Sep
(28) |
Oct
(45) |
Nov
(48) |
Dec
(109) |
| 2015 |
Jan
(106) |
Feb
(36) |
Mar
(65) |
Apr
(63) |
May
(95) |
Jun
(56) |
Jul
(48) |
Aug
(55) |
Sep
(100) |
Oct
(57) |
Nov
(33) |
Dec
(46) |
| 2016 |
Jan
(76) |
Feb
(53) |
Mar
(88) |
Apr
(79) |
May
(62) |
Jun
(65) |
Jul
(37) |
Aug
(23) |
Sep
(108) |
Oct
(68) |
Nov
(66) |
Dec
(47) |
| 2017 |
Jan
(55) |
Feb
(11) |
Mar
(30) |
Apr
(19) |
May
(14) |
Jun
(21) |
Jul
(30) |
Aug
(48) |
Sep
(39) |
Oct
(30) |
Nov
(75) |
Dec
(28) |
| 2018 |
Jan
(70) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2019 |
Jan
(19) |
Feb
(61) |
Mar
(14) |
Apr
(7) |
May
(5) |
Jun
(17) |
Jul
(5) |
Aug
(7) |
Sep
(11) |
Oct
(2) |
Nov
(17) |
Dec
(9) |
| 2020 |
Jan
(8) |
Feb
(8) |
Mar
(12) |
Apr
(17) |
May
(2) |
Jun
(10) |
Jul
(24) |
Aug
(6) |
Sep
(16) |
Oct
(3) |
Nov
(10) |
Dec
(40) |
| 2021 |
Jan
(53) |
Feb
(18) |
Mar
(20) |
Apr
(11) |
May
(23) |
Jun
(37) |
Jul
(28) |
Aug
(32) |
Sep
(105) |
Oct
(81) |
Nov
(109) |
Dec
(41) |
| 2022 |
Jan
(139) |
Feb
(82) |
Mar
(96) |
Apr
(51) |
May
(58) |
Jun
(104) |
Jul
(32) |
Aug
(61) |
Sep
(37) |
Oct
(25) |
Nov
(94) |
Dec
(81) |
| 2023 |
Jan
(113) |
Feb
(77) |
Mar
(98) |
Apr
(43) |
May
(48) |
Jun
(28) |
Jul
(72) |
Aug
(40) |
Sep
(44) |
Oct
(61) |
Nov
(70) |
Dec
(94) |
| 2024 |
Jan
(101) |
Feb
(21) |
Mar
(66) |
Apr
(88) |
May
(55) |
Jun
(109) |
Jul
(57) |
Aug
(103) |
Sep
(50) |
Oct
(75) |
Nov
(132) |
Dec
(69) |
| 2025 |
Jan
(216) |
Feb
(161) |
Mar
(85) |
Apr
(50) |
May
(80) |
Jun
(51) |
Jul
(49) |
Aug
(27) |
Sep
(30) |
Oct
(84) |
Nov
(54) |
Dec
(38) |
|
From: Raymond T. <rt...@us...> - 2025-12-05 15:40:59
|
I'm not aware of any Lisp that does anything fancy with complex division other than taking care not to overflow or underflow unnessarily. My limited understanding is for the worst cases, you need to use extra precision., as your bfloat result shows. A Google search returns this [paper on HW complex division that is correctly rounded](http://arith.cs.ucla.edu/publications/CmplexDiv-ASAP03.pdf). I very briefly skimmed it. It's pretty complicated and I can't say I understand it. --- **[bugs:#4645] rectform/polarform complex division overflow** **Status:** open **Group:** None **Labels:** rectform **Created:** Wed Dec 03, 2025 07:23 PM UTC by Stavros Macrakis **Last Updated:** Thu Dec 04, 2025 06:19 PM UTC **Owner:** nobody ~~~ fpprintprec:5$ q: (1.13e-100*%i+5.43e-10)/(5.7e-312*%i+1.2e-311) rectform(q) => OVERFLOW float(rectform(bfloat(q))) => 3.692e+301-1.7537e+301*%i polarform(q) => OVERFLOW polarform(bfloat(q)) => 4.0873b301*%e^-(4.4345b-1*%i) ~~~ --- 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. |
|
From: Stavros M. <mac...@us...> - 2025-12-04 18:19:36
|
I tried using SBCL native complexes (following Barton's idea) and I don't get overflow, but the answer is off by a hundred ULPs, which is the sort of thing to expect with "naive" complex float division.
~~~
(defun $cldiv (a b)
(let* ((recta (risplit a))
(ac (complex (car recta) (cdr recta))) ; will err out if not numeric
(rectb (risplit b))
(bc (complex (car rectb) (cdr rectb)))
(q (/ ac bc)))
(add (realpart q) (mul '$%i (imagpart q)))))
bfdiv(a,b):=block([fpprec:32],float(rectform(bfloat(a)/bfloat(b))));
bfcabs(a):=block([fpprex:100],float(cabs(bfloat(a))));
clq: cldiv(1.13e-100*%i+5.43e-10,5.7e-312*%i+1.2e-311);
=> 3.691993880674702e301 - 1.7536970933199895e301 %i
bfq: bfdiv(1.13e-100*%i+5.43e-10,5.7e-312*%i+1.2e-311);
=>3.6919938806746145e301 - 1.7536970933199478e301 %i
bfdiv(clq,bfq)
=> 1.0000000000000238 - 1.0515920681324065e-17 %i
qr: bfcabs(%) => 1.0000000000000238
(qr-1)/unit_in_last_place(qr) => 107
~~~
---
**[bugs:#4645] rectform/polarform complex division overflow**
**Status:** open
**Group:** None
**Labels:** rectform
**Created:** Wed Dec 03, 2025 07:23 PM UTC by Stavros Macrakis
**Last Updated:** Wed Dec 03, 2025 07:23 PM UTC
**Owner:** nobody
~~~
fpprintprec:5$
q: (1.13e-100*%i+5.43e-10)/(5.7e-312*%i+1.2e-311)
rectform(q) => OVERFLOW
float(rectform(bfloat(q))) => 3.692e+301-1.7537e+301*%i
polarform(q) => OVERFLOW
polarform(bfloat(q)) => 4.0873b301*%e^-(4.4345b-1*%i)
~~~
---
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. |
|
From: Raymond T. <rt...@us...> - 2025-12-03 23:06:32
|
Thanks. I rarely use matrices for anything, so I never remember all the associated functions. I did now matrices were basically a list of lists. --- **[bugs:#4641] is does not work** **Status:** not-a-bug **Group:** None **Created:** Mon Dec 01, 2025 04:03 PM UTC by dan hayes **Last Updated:** Wed Dec 03, 2025 10:43 PM UTC **Owner:** nobody build_info() or bug_report() "branch_5_44_base_231_g5c411f69f",timestamp="2021-01-12 23:51:42",host="x86_64-w64-mingw32",lisp_name="SBCL",lisp_version="2.0.0",maxima_userdir="C:/Users/zmth1/maxima",maxima_tempdir="C:/Users/zmth1/AppData/Local/Temp",maxima_objdir="C:/Users/zmth1/maxima/binary/branch_5_44_base_231_g5c411f69f/sbcl/2_0_0",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.2-DevelopmentSnapshot_MSW_OpenMP201511+Locks") (t:matrix([1],[2]),t,t[2],is( t[2]>0)); and it comes back with unknown --- 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. |
|
From: Stavros M. <mac...@us...> - 2025-12-03 22:43:31
|
> I do not know why t[2] doesn't return a matrix. Maxima defines a matrix as being composed of rows, each of which is a vector/list. t[2] is the second row, and is a list, not a matrix. If you want the second row as a matrix, you can use row(M,2), which gives a nx1 matrix, not a list. col(M,2) gives an 1xn matrix. But, beware! You can modify the parent matrix via the rows, but not via the columns. I'd like to say that this is all beautifully designed, but frankly it was probably just an expedient way of implementing basic matrix functionality. --- **[bugs:#4641] is does not work** **Status:** not-a-bug **Group:** None **Created:** Mon Dec 01, 2025 04:03 PM UTC by dan hayes **Last Updated:** Wed Dec 03, 2025 10:33 PM UTC **Owner:** nobody build_info() or bug_report() "branch_5_44_base_231_g5c411f69f",timestamp="2021-01-12 23:51:42",host="x86_64-w64-mingw32",lisp_name="SBCL",lisp_version="2.0.0",maxima_userdir="C:/Users/zmth1/maxima",maxima_tempdir="C:/Users/zmth1/AppData/Local/Temp",maxima_objdir="C:/Users/zmth1/maxima/binary/branch_5_44_base_231_g5c411f69f/sbcl/2_0_0",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.2-DevelopmentSnapshot_MSW_OpenMP201511+Locks") (t:matrix([1],[2]),t,t[2],is( t[2]>0)); and it comes back with unknown --- 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. |
|
From: Stavros M. <mac...@us...> - 2025-12-03 22:33:29
|
You don't seem to be paying attention to what Raymond and I are telling you. The list [0.1] is not the same as the number 0.1. Maxima does allow arithmetic on lists, so that 0.1*[2] yields [0.2]. But that is not equal to 0.2. --- **[bugs:#4641] is does not work** **Status:** not-a-bug **Group:** None **Created:** Mon Dec 01, 2025 04:03 PM UTC by dan hayes **Last Updated:** Wed Dec 03, 2025 10:33 PM UTC **Owner:** nobody build_info() or bug_report() "branch_5_44_base_231_g5c411f69f",timestamp="2021-01-12 23:51:42",host="x86_64-w64-mingw32",lisp_name="SBCL",lisp_version="2.0.0",maxima_userdir="C:/Users/zmth1/maxima",maxima_tempdir="C:/Users/zmth1/AppData/Local/Temp",maxima_objdir="C:/Users/zmth1/maxima/binary/branch_5_44_base_231_g5c411f69f/sbcl/2_0_0",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.2-DevelopmentSnapshot_MSW_OpenMP201511+Locks") (t:matrix([1],[2]),t,t[2],is( t[2]>0)); and it comes back with unknown --- 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. |
|
From: Raymond T. <rt...@us...> - 2025-12-03 22:33:25
|
I think that's caused by two things. `t[2]` is a list, not matrix. And `listarith` idefaults to `true`, so list arithmetic is done. If you set `listarith` to `false`, then I get:
```
(%i17) listarith:false;
(%o17) false
(%i18) .1/(t[2]-1);
0.1
(%o18) ───────
[2] - 1
```
I do not know why `t[2]` doesn't return a matrix.
---
**[bugs:#4641] is does not work**
**Status:** not-a-bug
**Group:** None
**Created:** Mon Dec 01, 2025 04:03 PM UTC by dan hayes
**Last Updated:** Wed Dec 03, 2025 03:37 PM UTC
**Owner:** nobody
build_info() or bug_report()
"branch_5_44_base_231_g5c411f69f",timestamp="2021-01-12 23:51:42",host="x86_64-w64-mingw32",lisp_name="SBCL",lisp_version="2.0.0",maxima_userdir="C:/Users/zmth1/maxima",maxima_tempdir="C:/Users/zmth1/AppData/Local/Temp",maxima_objdir="C:/Users/zmth1/maxima/binary/branch_5_44_base_231_g5c411f69f/sbcl/2_0_0",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.2-DevelopmentSnapshot_MSW_OpenMP201511+Locks")
(t:matrix([1],[2]),t,t[2],is( t[2]>0));
and it comes back with unknown
---
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. |
|
From: dan h. <zm...@us...> - 2025-12-03 22:32:46
|
The reason i think it should work because(t:matrix([1],[2]),t,t[2],.1/( t[2]-1));does come back with the correct answer using it as i should think without any t[2][1] or first(t[2]) etc.so it should do so in(t:matrix([1],[2]),t,t[2],is( t[2]=2));rather than giving false and (t:matrix([1],[2]),is(abs(t[2])>0));should come back true rather than unknown. To be consistent if it workedcorrectly in the numeric case it should do the same in these other cases. It is not consistent if it didn't.I would have written this in the forum but i could not find it in bugs. I could not even get a list of bugs so i wrote it here.
On Wednesday, December 3, 2025 at 09:37:42 AM CST, Stavros Macrakis via Maxima-bugs <max...@li...> wrote:
Perhaps you should look at the value of flatten(t)[2]:
t:matrix([1],[2])$
flatten(t)[2] => [2]
In some systems (e.g. R), a singleton value is the same as a vector of length 1. That is not true in Maxima or most other systems, as you can verify:
is([2]=2) => false
"Of coourse it should work like it is supposed to without either any of these extra things."
Comments like this are inappropriate in a bug report, for multiple reasons:
* It is obnoxiously phrased. "Of course" is presumptuous.
* It presumes that your (mis)understanding of the system is what the system is "supposed" to do.
* It suggests that using the correct functions is "extra things".
Please try to use more neutral language and recognize that we are here to help you. Attacking us as incompetent is not helpful.
[bugs:#4641] is does not work
Status: not-a-bug
Group: None
Created: Mon Dec 01, 2025 04:03 PM UTC by dan hayes
Last Updated: Wed Dec 03, 2025 02:51 PM UTC
Owner: nobody
build_info() or bug_report()
"branch_5_44_base_231_g5c411f69f",timestamp="2021-01-12 23:51:42",host="x86_64-w64-mingw32",lisp_name="SBCL",lisp_version="2.0.0",maxima_userdir="C:/Users/zmth1/maxima",maxima_tempdir="C:/Users/zmth1/AppData/Local/Temp",maxima_objdir="C:/Users/zmth1/maxima/binary/branch_5_44_base_231_g5c411f69f/sbcl/2_0_0",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.2-DevelopmentSnapshot_MSW_OpenMP201511+Locks")
(t:matrix([1],[2]),t,t[2],is( t[2]>0));
and it comes back with unknown
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.
_______________________________________________
Maxima-bugs mailing list
Max...@li...
https://lists.sourceforge.net/lists/listinfo/maxima-bugs
---
**[bugs:#4641] is does not work**
**Status:** not-a-bug
**Group:** None
**Created:** Mon Dec 01, 2025 04:03 PM UTC by dan hayes
**Last Updated:** Wed Dec 03, 2025 03:37 PM UTC
**Owner:** nobody
build_info() or bug_report()
"branch_5_44_base_231_g5c411f69f",timestamp="2021-01-12 23:51:42",host="x86_64-w64-mingw32",lisp_name="SBCL",lisp_version="2.0.0",maxima_userdir="C:/Users/zmth1/maxima",maxima_tempdir="C:/Users/zmth1/AppData/Local/Temp",maxima_objdir="C:/Users/zmth1/maxima/binary/branch_5_44_base_231_g5c411f69f/sbcl/2_0_0",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.2-DevelopmentSnapshot_MSW_OpenMP201511+Locks")
(t:matrix([1],[2]),t,t[2],is( t[2]>0));
and it comes back with unknown
---
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. |
|
From: dan h. <zm...@us...> - 2025-12-03 22:25:15
|
The reason i think it should work because(t:matrix([1],[2]),t,t[2],.1/( t[2]-1));does come back with the correct answer using it as i should think without any t[2][1] or first(t[2]) etc.so it should do so in(t:matrix([1],[2]),t,t[2],is( t[2]=2));rather than giving false should be true and (t:matrix([1],[2]),is(abs(t[2])>0));should come back true rather than unknown. To be consistent if it workedcorrectly in the numeric case it should do the same in these other cases. It is not consistent if it didn't.I would have written this in the forum but i could not find it in bugs. I could not even get a list of bugs so i wrote it here.
On Monday, December 1, 2025 at 10:10:50 AM CST, Raymond Toy <rt...@us...> wrote:
With your example t[2] is [2], a 1x1 matrix. (Well, a list of one element). I think unknown is a good answer. Perhaps you really wanted is(t[2][1]>0). This returns true.
[bugs:#4641] is does not work
Status: open
Group: None
Created: Mon Dec 01, 2025 04:03 PM UTC by dan hayes
Last Updated: Mon Dec 01, 2025 04:03 PM UTC
Owner: nobody
build_info() or bug_report()
"branch_5_44_base_231_g5c411f69f",timestamp="2021-01-12 23:51:42",host="x86_64-w64-mingw32",lisp_name="SBCL",lisp_version="2.0.0",maxima_userdir="C:/Users/zmth1/maxima",maxima_tempdir="C:/Users/zmth1/AppData/Local/Temp",maxima_objdir="C:/Users/zmth1/maxima/binary/branch_5_44_base_231_g5c411f69f/sbcl/2_0_0",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.2-DevelopmentSnapshot_MSW_OpenMP201511+Locks")
(t:matrix([1],[2]),t,t[2],is( t[2]>0));
and it comes back with unknown
Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/maxima/bugs/4641/
To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/
---
**[bugs:#4641] is does not work**
**Status:** not-a-bug
**Group:** None
**Created:** Mon Dec 01, 2025 04:03 PM UTC by dan hayes
**Last Updated:** Wed Dec 03, 2025 03:37 PM UTC
**Owner:** nobody
build_info() or bug_report()
"branch_5_44_base_231_g5c411f69f",timestamp="2021-01-12 23:51:42",host="x86_64-w64-mingw32",lisp_name="SBCL",lisp_version="2.0.0",maxima_userdir="C:/Users/zmth1/maxima",maxima_tempdir="C:/Users/zmth1/AppData/Local/Temp",maxima_objdir="C:/Users/zmth1/maxima/binary/branch_5_44_base_231_g5c411f69f/sbcl/2_0_0",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.2-DevelopmentSnapshot_MSW_OpenMP201511+Locks")
(t:matrix([1],[2]),t,t[2],is( t[2]>0));
and it comes back with unknown
---
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. |
|
From: Stavros M. <mac...@us...> - 2025-12-03 19:23:26
|
--- **[bugs:#4645] rectform/polarform complex division overflow** **Status:** open **Group:** None **Labels:** rectform **Created:** Wed Dec 03, 2025 07:23 PM UTC by Stavros Macrakis **Last Updated:** Wed Dec 03, 2025 07:23 PM UTC **Owner:** nobody ~~~ fpprintprec:5$ q: (1.13e-100*%i+5.43e-10)/(5.7e-312*%i+1.2e-311) rectform(q) => OVERFLOW float(rectform(bfloat(q))) => 3.692e+301-1.7537e+301*%i polarform(q) => OVERFLOW polarform(bfloat(q)) => 4.0873b301*%e^-(4.4345b-1*%i) ~~~ --- 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. |
|
From: Stavros M. <mac...@us...> - 2025-12-03 19:15:41
|
--- **[bugs:#4644] bfloat((x+1)/x includes unnecessary 1.0b0 factor** **Status:** open **Group:** None **Labels:** bfloat **Created:** Wed Dec 03, 2025 07:15 PM UTC by Stavros Macrakis **Last Updated:** Wed Dec 03, 2025 07:15 PM UTC **Owner:** nobody ~~~ bfloat((x+2)/x) => (1.0b0*(x+2.0b0))/x ~~~ What is the ``1.0b0`` factor doing there? Set as priority 1 (which I hope means lowest, not highest) because this probably isn't doing any harm. --- 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. |
|
From: Stavros M. <mac...@us...> - 2025-12-03 15:37:30
|
Perhaps you should look at the value of flatten(t)[2]: ~~~ t:matrix([1],[2])$ flatten(t)[2] => [2] ~~~ In some systems (e.g. R), a singleton value is the same as a vector of length 1. That is not true in Maxima or most other systems, as you can verify: ~~~ is([2]=2) => false ~~~ "Of coourse it should work like it is supposed to without either any of these extra things." Comments like this are inappropriate in a bug report, for multiple reasons: * It is obnoxiously phrased. "Of course" is presumptuous. * It presumes that your (mis)understanding of the system is what the system is "supposed" to do. * It suggests that using the correct functions is "extra things". Please try to use more neutral language and recognize that we are here to help you. Attacking us as incompetent is not helpful. --- **[bugs:#4641] is does not work** **Status:** not-a-bug **Group:** None **Created:** Mon Dec 01, 2025 04:03 PM UTC by dan hayes **Last Updated:** Wed Dec 03, 2025 02:51 PM UTC **Owner:** nobody build_info() or bug_report() "branch_5_44_base_231_g5c411f69f",timestamp="2021-01-12 23:51:42",host="x86_64-w64-mingw32",lisp_name="SBCL",lisp_version="2.0.0",maxima_userdir="C:/Users/zmth1/maxima",maxima_tempdir="C:/Users/zmth1/AppData/Local/Temp",maxima_objdir="C:/Users/zmth1/maxima/binary/branch_5_44_base_231_g5c411f69f/sbcl/2_0_0",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.2-DevelopmentSnapshot_MSW_OpenMP201511+Locks") (t:matrix([1],[2]),t,t[2],is( t[2]>0)); and it comes back with unknown --- 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. |
|
From: Raymond T. <rt...@us...> - 2025-12-03 14:51:43
|
Why do you think it should work? And how is it supposed to work according to you? I think it's working as it supposed to. `flatten(t)` returns a matrix for me. `t[2]` is the second row of a matrix. You can't compare a matrix to a number. If you want the element of a matrix you have to extract the element. Thus use `t[2,1]` to get the first element of the second row, which is 2 in this case. --- **[bugs:#4641] is does not work** **Status:** not-a-bug **Group:** None **Created:** Mon Dec 01, 2025 04:03 PM UTC by dan hayes **Last Updated:** Wed Dec 03, 2025 02:42 PM UTC **Owner:** nobody build_info() or bug_report() "branch_5_44_base_231_g5c411f69f",timestamp="2021-01-12 23:51:42",host="x86_64-w64-mingw32",lisp_name="SBCL",lisp_version="2.0.0",maxima_userdir="C:/Users/zmth1/maxima",maxima_tempdir="C:/Users/zmth1/AppData/Local/Temp",maxima_objdir="C:/Users/zmth1/maxima/binary/branch_5_44_base_231_g5c411f69f/sbcl/2_0_0",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.2-DevelopmentSnapshot_MSW_OpenMP201511+Locks") (t:matrix([1],[2]),t,t[2],is( t[2]>0)); and it comes back with unknown --- 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. |
|
From: dan h. <zm...@us...> - 2025-12-03 14:42:55
|
dan hayes also does not work when use flatten (t:matrix([1],[2]),t,t[2],is( flatten(t)[2]>0)); But does work when use for example first or last(...) as in (t:matrix([1],[2]),t,t[2],is( first(t[2])>0)); Of coourse it should work like it is supposed to without either any of these extra things. --- **[bugs:#4641] is does not work** **Status:** not-a-bug **Group:** None **Created:** Mon Dec 01, 2025 04:03 PM UTC by dan hayes **Last Updated:** Wed Dec 03, 2025 02:40 PM UTC **Owner:** nobody build_info() or bug_report() "branch_5_44_base_231_g5c411f69f",timestamp="2021-01-12 23:51:42",host="x86_64-w64-mingw32",lisp_name="SBCL",lisp_version="2.0.0",maxima_userdir="C:/Users/zmth1/maxima",maxima_tempdir="C:/Users/zmth1/AppData/Local/Temp",maxima_objdir="C:/Users/zmth1/maxima/binary/branch_5_44_base_231_g5c411f69f/sbcl/2_0_0",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.2-DevelopmentSnapshot_MSW_OpenMP201511+Locks") (t:matrix([1],[2]),t,t[2],is( t[2]>0)); and it comes back with unknown --- 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. |
|
From: dan h. <zm...@us...> - 2025-12-03 14:40:55
|
also does not work when use flatten (t:matrix([1],[2]),t,t[2],is( flatten(t)[2]>0)); But does work when use for example first or last(...) as in (t:matrix([1],[2]),t,t[2],is( first(t[2])>0)); Of coourse it should work like it is supposed to without either any of these extra things. --- **[bugs:#4641] is does not work** **Status:** not-a-bug **Group:** None **Created:** Mon Dec 01, 2025 04:03 PM UTC by dan hayes **Last Updated:** Mon Dec 01, 2025 09:47 PM UTC **Owner:** nobody build_info() or bug_report() "branch_5_44_base_231_g5c411f69f",timestamp="2021-01-12 23:51:42",host="x86_64-w64-mingw32",lisp_name="SBCL",lisp_version="2.0.0",maxima_userdir="C:/Users/zmth1/maxima",maxima_tempdir="C:/Users/zmth1/AppData/Local/Temp",maxima_objdir="C:/Users/zmth1/maxima/binary/branch_5_44_base_231_g5c411f69f/sbcl/2_0_0",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.2-DevelopmentSnapshot_MSW_OpenMP201511+Locks") (t:matrix([1],[2]),t,t[2],is( t[2]>0)); and it comes back with unknown --- 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. |
|
From: Raymond T. <rt...@us...> - 2025-12-03 00:46:53
|
Looks like a ccl bug. I get `(decode-float 1d-310) => 0.575 -1029 1d0`. That looks right. But `(scale-float 1d-310 1029) => -0.0d0`. that's wrong. I'm at a loss at how you can get -0d0 out of that. --- **[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:** Wed Dec 03, 2025 12:08 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. |
|
From: Barton W. <wil...@us...> - 2025-12-03 00:08:37
|
Maybe Clozure CL doesn't use denormalized floats and SBCL does? ~~~ (%i6) cabs( 1e-323 + %i* 1e-323); 0> Calling (HYPOTENUSE-BINARY64 1.0E-323 1.0E-323) <0 HYPOTENUSE-BINARY64 returned 0.0 (%o6) 0.0 ~~~ I'll fix this up and switch to the English spelling. Thanks for catching these errors. --- **[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 08:00 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. |
|
From: Barton W. <wil...@us...> - 2025-12-02 23:11:56
|
I have a putative fix--it puts a trap near the top of the function `sign1` for the complex binary64 numbers (including the pure real case). Running the testsuite, it catches about 70,000 cases early--I think that's a win. Likely it doesn't fix all bugs with the sign of mixed binary64 numbers and symbolic expressions, but I think it's an improvement. --- **[bugs:#4642] sign(1.0e-310*%i) gives error because 1e-310*x/1e-310 fails** **Status:** open **Group:** None **Labels:** sign splitprod floating point **Created:** Tue Dec 02, 2025 07:59 PM UTC by Stavros Macrakis **Last Updated:** Tue Dec 02, 2025 07:59 PM UTC **Owner:** nobody As observed in https://sourceforge.net/p/maxima/bugs/4638/#2782: `sign(1.0e-310*%i)` gives an overflow error. This comes from `splitprod` trying to remove a common factor using `div`, but ``1e-310*x/1e-310`` => overflow, because 1/1e-310 is not representable. I tried the quick and dirty hack of replacing ``div`` with ``remove``, but that was never going to work in general.... I don't think we can or should fix ``1e-310*x/1e-310`` -- Maxima's notion that `x/y == x*(1/y)` is too deeply ingrained. But I wonder whether it is worth fixing `splitprod`. --- 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. |
|
From: Stavros M. <mac...@us...> - 2025-12-02 20:24:35
|
---
**[bugs:#4643] Negative zero not normalized, but 0.0 == -0.0 (not a problem!)**
**Status:** open
**Group:** None
**Labels:** floating point
**Created:** Tue Dec 02, 2025 08:24 PM UTC by Stavros Macrakis
**Last Updated:** Tue Dec 02, 2025 08:24 PM UTC
**Owner:** nobody
~~~
-0.0 => -0.0
~~~
As far as I can tell, this causes no problems, since:
~~~
sign(-0.0) => zero
is(0.0=-0.0) => true
is(equal(0.0,-0.0)) => true
?equal(bfloat(0.0),bfloat(-0.0)) => true
is(-0.0 < 0.0) => false
( x[-0.0]:'n, x[0.0]:'p, x[-0.0] ) => p
{ 0.0, -0.0 } => {-0.0}
~~~
Although ``?equal(0.0,-0.0) => false``, I haven't been able to come up with a case where that causes problems. That is, in Maxima, there is no distinction other than the print representation.
So the only case that *might* be a problem is that string(0.0)#string(-0.0).
---
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. |
|
From: Stavros M. <mac...@us...> - 2025-12-02 20:00:59
|
See https://sourceforge.net/p/maxima/bugs/4642/ for the csign problem. --- **[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 06:41 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. |
|
From: Stavros M. <mac...@us...> - 2025-12-02 19:59:23
|
--- **[bugs:#4642] sign(1.0e-310*%i) gives error because 1e-310*x/1e-310 fails** **Status:** open **Group:** None **Labels:** sign splitprod floating point **Created:** Tue Dec 02, 2025 07:59 PM UTC by Stavros Macrakis **Last Updated:** Tue Dec 02, 2025 07:59 PM UTC **Owner:** nobody As observed in https://sourceforge.net/p/maxima/bugs/4638/#2782: `sign(1.0e-310*%i)` gives an overflow error. This comes from `splitprod` trying to remove a common factor using `div`, but ``1e-310*x/1e-310`` => overflow, because 1/1e-310 is not representable. I tried the quick and dirty hack of replacing ``div`` with ``remove``, but that was never going to work in general.... I don't think we can or should fix ``1e-310*x/1e-310`` -- Maxima's notion that `x/y == x*(1/y)` is too deeply ingrained. But I wonder whether it is worth fixing `splitprod`. --- 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. |
|
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. |
|
From: Barton W. <wil...@us...> - 2025-12-02 15:16:41
|
**proposal** Attempt to detect a floating point overflow, and when it is detected, return an `abs` nounform. Examples (done with experimental code) ~~~ (%i40) cabs(2/3 +%i*x); (%o40) sqrt(x^2+4/9) (%i41) cabs(2.3 +%i*x); (%o41) sqrt(x^2+5.289999999999999) (%i42) cabs(2.3e100 +%i*x); (%o42) sqrt(x^2+5.2899999999999995e200) ~~~ Examples of floating point overflow ~~~ (%i43) cabs(2.3e170 +%i*x); floating point overflow detected (%o43) abs(%i*x+2.3e170) (%i44) cabs(2.3 +%i*x*1.8e200); floating point overflow detected (%o44) abs(1.8e200*%i*x+2.3) ~~~ I'm not sure that this will work with all Lisp varieties. --- **[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:** Mon Dec 01, 2025 08:39 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. |
|
From: David S. <tom...@us...> - 2025-12-01 21:47:52
|
- **status**: open --> not-a-bug --- **[bugs:#4641] is does not work** **Status:** not-a-bug **Group:** None **Created:** Mon Dec 01, 2025 04:03 PM UTC by dan hayes **Last Updated:** Mon Dec 01, 2025 04:10 PM UTC **Owner:** nobody build_info() or bug_report() "branch_5_44_base_231_g5c411f69f",timestamp="2021-01-12 23:51:42",host="x86_64-w64-mingw32",lisp_name="SBCL",lisp_version="2.0.0",maxima_userdir="C:/Users/zmth1/maxima",maxima_tempdir="C:/Users/zmth1/AppData/Local/Temp",maxima_objdir="C:/Users/zmth1/maxima/binary/branch_5_44_base_231_g5c411f69f/sbcl/2_0_0",maxima_frontend="wxMaxima",maxima_frontend_version="20.12.2-DevelopmentSnapshot_MSW_OpenMP201511+Locks") (t:matrix([1],[2]),t,t[2],is( t[2]>0)); and it comes back with unknown --- 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. |
|
From: Barton W. <wil...@us...> - 2025-12-01 20:39:45
|
The `carg(1.0E-310 * %i + 1.0E-310)` bug is due in part to a bug in the sign code: ~~~ (%i14) csign(1.0E-310 * %i + 1.0E-310); 1 Call csign [1.0E-310 %i + 1.0E-310] Maxima encountered a Lisp error: FLOATING-POINT-OVERFLOW detected performing / on (1.0 1.0E-310) ~~~ --- **[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:** Mon Dec 01, 2025 06:01 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. |
|
From: Barton W. <wil...@us...> - 2025-12-01 18:01:57
|
Likely my code should have a trap for re = 0 and im = 0. --- **[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:** Mon Dec 01, 2025 05:50 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. |