You can subscribe to this list here.
| 2014 |
Jan
|
Feb
(232) |
Mar
(323) |
Apr
(383) |
May
(359) |
Jun
(435) |
Jul
(252) |
Aug
(172) |
Sep
(265) |
Oct
(263) |
Nov
(350) |
Dec
(359) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2015 |
Jan
(267) |
Feb
(220) |
Mar
(311) |
Apr
(269) |
May
(388) |
Jun
(403) |
Jul
(172) |
Aug
(399) |
Sep
(364) |
Oct
(269) |
Nov
(357) |
Dec
(468) |
| 2016 |
Jan
(618) |
Feb
(592) |
Mar
(625) |
Apr
(516) |
May
(375) |
Jun
(155) |
Jul
(346) |
Aug
(262) |
Sep
(346) |
Oct
(291) |
Nov
(333) |
Dec
(335) |
| 2017 |
Jan
(436) |
Feb
(460) |
Mar
(370) |
Apr
(189) |
May
(252) |
Jun
(272) |
Jul
(286) |
Aug
(293) |
Sep
(303) |
Oct
(331) |
Nov
(346) |
Dec
(273) |
| 2018 |
Jan
(295) |
Feb
(343) |
Mar
(265) |
Apr
(290) |
May
(233) |
Jun
(201) |
Jul
(234) |
Aug
(125) |
Sep
(287) |
Oct
(322) |
Nov
(274) |
Dec
(293) |
| 2019 |
Jan
(406) |
Feb
(255) |
Mar
(418) |
Apr
(187) |
May
(247) |
Jun
(282) |
Jul
(84) |
Aug
(108) |
Sep
(175) |
Oct
(161) |
Nov
(215) |
Dec
(184) |
| 2020 |
Jan
(205) |
Feb
(287) |
Mar
(180) |
Apr
(285) |
May
(272) |
Jun
(266) |
Jul
(133) |
Aug
(253) |
Sep
(281) |
Oct
(346) |
Nov
(293) |
Dec
(253) |
| 2021 |
Jan
(218) |
Feb
(194) |
Mar
(399) |
Apr
(312) |
May
(425) |
Jun
(358) |
Jul
(160) |
Aug
(251) |
Sep
(110) |
Oct
(113) |
Nov
(257) |
Dec
(99) |
| 2022 |
Jan
(233) |
Feb
(184) |
Mar
(284) |
Apr
(221) |
May
(178) |
Jun
(231) |
Jul
(337) |
Aug
(264) |
Sep
(181) |
Oct
(183) |
Nov
(281) |
Dec
(406) |
| 2023 |
Jan
(479) |
Feb
(263) |
Mar
(278) |
Apr
(149) |
May
(186) |
Jun
(215) |
Jul
(353) |
Aug
(195) |
Sep
(232) |
Oct
(140) |
Nov
(211) |
Dec
(197) |
| 2024 |
Jan
(348) |
Feb
(167) |
Mar
(131) |
Apr
(222) |
May
(113) |
Jun
(136) |
Jul
(242) |
Aug
(105) |
Sep
(94) |
Oct
(237) |
Nov
(110) |
Dec
(155) |
| 2025 |
Jan
(372) |
Feb
(234) |
Mar
(332) |
Apr
(310) |
May
(203) |
Jun
(63) |
Jul
(254) |
Aug
(151) |
Sep
(145) |
Oct
(126) |
Nov
(151) |
Dec
(68) |
|
From: Justin S. <jus...@gm...> - 2025-12-07 14:49:30
|
The command
integrate(sqrt(1+tan(x)),x);
produces
Maxima encountered a Lisp error:
The value
1
is not of type
LIST
Automatically continuing.
To enable the Lisp debugger set *debugger-hook* to nil.
--
"As long as you are not aware of the continual law of Die and Be Again,
you are merely a vague guest on a dark Earth."
--- Johann Wolfgang von Goethe
Homepage: http://www.five-dimensions.org
|
|
From: ehm <eri...@gm...> - 2025-12-07 14:06:58
|
On Sat, 2025-12-06 at 22:18 -0800, Robert Dodier wrote: > > From what I gather, Taboola has something to do with web ads, but I > can't tell what the effect of the above line would be. If it's > actually needed we can restore it. Interesting, I didn't notice that. I just saved the web page as is and edited it in emacs. I wonder how it got in there in the first place. I just checked the other pages and they are all free of Taboola. > On Sun, 2025-12-07 at 11:29 +0000, Jaime Villate wrote: > > Hello, > > Thank you for your contribution. The page is much better now. We now > have to update the Spanish, Portuguese, Russian and Turkish versions. > I wonder whether we should eliminate the link to other languages when > a page is updated, leaving instead a comment that older versions > exist in other languages and should be re-linked once they are > updated. Thank you. I'll keep an eye on that in the future and leave a comment. -Eric |
|
From: Jaime V. <vi...@fe...> - 2025-12-07 11:29:39
|
Hello, Thank you for your contribution. The page is much better now. We now have to update the Spanish, Portuguese, Russian and Turkish versions. I wonder whether we should eliminate the link to other languages when a page is updated, leaving instead a comment that older versions exist in other languages and should be re-linked once they are updated. I find it strange that I didn't get a copy of either the message with the ProjectsRelatedtoMaxima_ehm.html page or the commit done by Robert. Regards, Jaime On 12/7/25 06:18, Robert Dodier wrote: > On Sat, Dec 6, 2025 at 8:34 AM ehm<eri...@gm...> wrote: > >> I updated the page and added maxima-on-wasm. >> >> I have attached the updated html file if someone wants to merge it. > Thanks, Eric. I have committed ProjectsRelatedtoMaxima_ehm.html as > relatedprojects.html with a couple of changes. One was to replace > external linkshttps://maxima.sourceforge.io/... with just the ... to > make a relative link. The other is that I omitted a line which > mentioned Taboola, > > <style>:is([id*='google_ads_iframe'],[id*='taboola-'],.taboolaHeight,.taboola-placeholder,#top-ad,#credential_picker_container,#credentials-picker-container,#credential_picker_iframe,[id*='google-one-tap-iframe'],#google-one-tap-popup-container,.google-one-tap__module,.google-one-tap-modal-div,#amp_floatingAdDiv,#ez-content-blocker-container) > {display:none!important;min-height:0!important;height:0!important;}</style></head> > > From what I gather, Taboola has something to do with web ads, but I > can't tell what the effect of the above line would be. If it's > actually needed we can restore it. > > best, > > Robert > > > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss |
|
From: Robert D. <rob...@gm...> - 2025-12-07 06:18:40
|
On Sat, Dec 6, 2025 at 8:34 AM ehm <eri...@gm...> wrote: > I updated the page and added maxima-on-wasm. > > I have attached the updated html file if someone wants to merge it. Thanks, Eric. I have committed ProjectsRelatedtoMaxima_ehm.html as relatedprojects.html with a couple of changes. One was to replace external links https://maxima.sourceforge.io/... with just the ... to make a relative link. The other is that I omitted a line which mentioned Taboola, <style>:is([id*='google_ads_iframe'],[id*='taboola-'],.taboolaHeight,.taboola-placeholder,#top-ad,#credential_picker_container,#credentials-picker-container,#credential_picker_iframe,[id*='google-one-tap-iframe'],#google-one-tap-popup-container,.google-one-tap__module,.google-one-tap-modal-div,#amp_floatingAdDiv,#ez-content-blocker-container) {display:none!important;min-height:0!important;height:0!important;}</style></head> >From what I gather, Taboola has something to do with web ads, but I can't tell what the effect of the above line would be. If it's actually needed we can restore it. best, Robert |
|
From: Robert D. <rob...@gm...> - 2025-12-07 05:10:04
|
On Sat, Dec 6, 2025 at 6:29 PM Raymond Toy <toy...@gm...> wrote: > There is support for patches, but it looks like almost no one (including me) ever looks there since there are quite a few outstanding patches some of which are over ten years old. 😦 > > I find this a bit unfortunate since I think people are used to pull/merge requests to propose changes to projects. AFAIK, sourceforge doesn't really provide that feature. For the record, in addition to the patch tracker, there is also a feature called the merge request, which is not too different (only a little bit less convenient) from a pull request. My own feeling is that it is not so much a technical issue as it is sociological -- the Maxima developers would do well to encourage actual and potential collaborators by, well, spending some time reviewing and therefore accepting at least some of the proposed changes. I am as guilty as anyone, but anyway I think it's in the interest of the project for the regular developers to spend some time reviewing patches and merge requests. Robert |
|
From: Raymond T. <toy...@gm...> - 2025-12-07 02:27:25
|
On 12/6/25 3:34 PM, Robert Dodier wrote: > On Fri, Dec 5, 2025 at 4:31 PM Greg Bennett<gwb...@gm...> wrote: > >> Is there a maxima-approved way to merge this change on my own (compiled) >> copy of maxima ? > Greg, thanks for your interest in Maxima. The best way to keep up to > date with development changes is to clone the Git repo from > Sourceforge and pull commits as desired. The master branch is almost > always a workable version -- the project does not have any separate > process for posting, vetting, and merging changes. There is support for patches <https://sourceforge.net/p/maxima/patches/>, but it looks like almost no one (including me) ever looks there since there are quite a few outstanding patches some of which are over ten years old. 😦 I find this a bit unfortunate since I think people are used to pull/merge requests to propose changes to projects. AFAIK, sourceforge doesn't really provide that feature. > best, > > Robert > > > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss ​ |
|
From: Raymond T. <toy...@gm...> - 2025-12-07 00:30:35
|
In a discussion with Barton and Stavros, it came up that ecl was getting some type errors in running the testsuite. In particular, |elliptic_e| and |lambert_w| were producing long-float values. In maxima, float values are always supposed to be double-floats. However, in ecl and clisp, |cl:pi| is a long-float because both ecl and clisp have a long-float type separate from double-float. This means any code that uses |cl:pi| causes the use of long-floats. That's not want we want to happen. I'm not sure what the best solution is, but we do have |bigfloat:%pi| to return a value of pi of the appropriate type. However, that's a method so there's some cost to using this. I'm not sure if a compiler macro could be written to remove the cost. An alternative is to change |bigfloat:%pi| to be a function. Then I can definitely write a compiler macro to return the appropriate type if the arg has a known value. A quick grep shows that currently |bigfloat:%pi| is always called with a variable instead of a constant. There are also quite a few places where we do |(coerce pi 'flonum)| and |(float pi 1e0)|. These should be updated to use |bigfloat:%pi| if we choose to do this. This might be ok. I'll do some experimentation. ​ |
|
From: Robert D. <rob...@gm...> - 2025-12-06 23:34:28
|
On Fri, Dec 5, 2025 at 4:31 PM Greg Bennett <gwb...@gm...> wrote: > Is there a maxima-approved way to merge this change on my own (compiled) > copy of maxima ? Greg, thanks for your interest in Maxima. The best way to keep up to date with development changes is to clone the Git repo from Sourceforge and pull commits as desired. The master branch is almost always a workable version -- the project does not have any separate process for posting, vetting, and merging changes. best, Robert |
|
From: Richard F. <fa...@gm...> - 2025-12-06 18:04:18
|
I'm thinking mostly of trap and exception handling by interrupts not being uniform in language implementation. No specific items at the moment. On Sat, Dec 6, 2025, 8:47 AM Stavros Macrakis <mac...@gm...> wrote: > RJF, > > Agreed that the Common Lisp spec didn't specify the behavior of floats > completely, leaving it to the underlying implementation. > I'd hope that denormalized 64-bit IEEE 754 floats are implemented > correctly and consistently on common modern processors (x86, ARM). > Are you claiming that there are "nuances" in the spec or implementation of *scale-float > *that mean that it can't be consistent across Common Lisp + CPU > combinations? > > -s > > On Fri, Dec 5, 2025 at 6:52 PM Richard Fateman <fa...@gm...> wrote: > >> There are nuances in the IEEE standard that are not widely used and >> sometimes >> were left out of the software support (for laziness, lack of >> understanding, uncertainty >> of whether this would catch on?) and >> were, certainly in the past, left out of some hardware. (vendors would >> say they support >> the IEEE format, not mentioning lack of support of some operations.) >> Denormalized numbers are certainly in the category of not-widely-used. >> Common Lisp Standard support for floats was deliberately underspecified >> -- IEEE floats >> were new at the time. >> >> Curious -- is there a call for this in some important place, say in a >> math library routine?? >> >> RJF >> >> On Fri, Dec 5, 2025 at 3:39 PM Raymond Toy <toy...@gm...> wrote: >> >>> >>> On 12/5/25 3:24 PM, David Scherfgen wrote: >>> >>> This is a known bug in SBCL: >>> https://bugs.launchpad.net/sbcl/+bug/2000178 >>> >>> Almost 3 years old. I guess it's not important enough to anyone. >>> >>> >>> Raymond Toy <toy...@gm...> schrieb am Fr., 5. Dez. 2025, 16:00: >>> >>>> >>>> On 12/5/25 10:21 AM, Barton Willis via Maxima-discuss wrote: >>>> >>>> >>>> For subnormal floats, the SBCL CL function scale-float is possibly >>>> buggy: >>>> >>>> SBCL 2.4.7: >>>> >>>> Define Maxima function that calls the CL function scale-float >>>> >>>> (%i1) :lisp(defun $scale_float (x m) (scale-float x m)) >>>> >>>> (%i1) x : 2.0^(-1024); >>>> (%o1) 5.562684646268004e-309 >>>> >>>> This is a SBCL bug, I think: surely scaling by zero should be an >>>> identity? >>>> >>>> (%i2) scale_float(x,0); >>>> (%o2) 2.7813423231340017e-308 >>>> >>>> (%i3) x : 2.0^(-1023); >>>> (%o3) 1.1125369292536007e-308 >>>> >>>> This is kinda surprising. Cmucl gets this right. So does ecl. Kinda >>>> funny too; it's not obvious what's happening here. `integer-decode-float` >>>> for the scaled result is `#x14000000000000` and an exponent of -1074, >>>> instead of the expected `#x10000000000000` with exponent -1076. >>>> >>>> >>>> _______________________________________________ >>>> Maxima-discuss mailing list >>>> Max...@li... >>>> https://lists.sourceforge.net/lists/listinfo/maxima-discuss >>>> >>> >>> >>> _______________________________________________ >>> Maxima-discuss mailing list >>> Max...@li... >>> https://lists.sourceforge.net/lists/listinfo/maxima-discuss >>> >> _______________________________________________ >> Maxima-discuss mailing list >> Max...@li... >> https://lists.sourceforge.net/lists/listinfo/maxima-discuss >> > |
|
From: Stavros M. <mac...@gm...> - 2025-12-06 16:47:11
|
RJF,
Agreed that the Common Lisp spec didn't specify the behavior of floats
completely, leaving it to the underlying implementation.
I'd hope that denormalized 64-bit IEEE 754 floats are implemented correctly
and consistently on common modern processors (x86, ARM).
Are you claiming that there are "nuances" in the spec or
implementation of *scale-float
*that mean that it can't be consistent across Common Lisp + CPU
combinations?
-s
On Fri, Dec 5, 2025 at 6:52 PM Richard Fateman <fa...@gm...> wrote:
> There are nuances in the IEEE standard that are not widely used and
> sometimes
> were left out of the software support (for laziness, lack of
> understanding, uncertainty
> of whether this would catch on?) and
> were, certainly in the past, left out of some hardware. (vendors would say
> they support
> the IEEE format, not mentioning lack of support of some operations.)
> Denormalized numbers are certainly in the category of not-widely-used.
> Common Lisp Standard support for floats was deliberately underspecified --
> IEEE floats
> were new at the time.
>
> Curious -- is there a call for this in some important place, say in a
> math library routine??
>
> RJF
>
> On Fri, Dec 5, 2025 at 3:39 PM Raymond Toy <toy...@gm...> wrote:
>
>>
>> On 12/5/25 3:24 PM, David Scherfgen wrote:
>>
>> This is a known bug in SBCL: https://bugs.launchpad.net/sbcl/+bug/2000178
>>
>> Almost 3 years old. I guess it's not important enough to anyone.
>>
>>
>> Raymond Toy <toy...@gm...> schrieb am Fr., 5. Dez. 2025, 16:00:
>>
>>>
>>> On 12/5/25 10:21 AM, Barton Willis via Maxima-discuss wrote:
>>>
>>>
>>> For subnormal floats, the SBCL CL function scale-float is possibly
>>> buggy:
>>>
>>> SBCL 2.4.7:
>>>
>>> Define Maxima function that calls the CL function scale-float
>>>
>>> (%i1) :lisp(defun $scale_float (x m) (scale-float x m))
>>>
>>> (%i1) x : 2.0^(-1024);
>>> (%o1) 5.562684646268004e-309
>>>
>>> This is a SBCL bug, I think: surely scaling by zero should be an
>>> identity?
>>>
>>> (%i2) scale_float(x,0);
>>> (%o2) 2.7813423231340017e-308
>>>
>>> (%i3) x : 2.0^(-1023);
>>> (%o3) 1.1125369292536007e-308
>>>
>>> This is kinda surprising. Cmucl gets this right. So does ecl. Kinda
>>> funny too; it's not obvious what's happening here. `integer-decode-float`
>>> for the scaled result is `#x14000000000000` and an exponent of -1074,
>>> instead of the expected `#x10000000000000` with exponent -1076.
>>>
>>>
>>> _______________________________________________
>>> Maxima-discuss mailing list
>>> Max...@li...
>>> https://lists.sourceforge.net/lists/listinfo/maxima-discuss
>>>
>>
>>
>> _______________________________________________
>> Maxima-discuss mailing list
>> Max...@li...
>> https://lists.sourceforge.net/lists/listinfo/maxima-discuss
>>
> _______________________________________________
> Maxima-discuss mailing list
> Max...@li...
> https://lists.sourceforge.net/lists/listinfo/maxima-discuss
>
|
|
From: ehm <eri...@gm...> - 2025-12-06 16:32:46
|
I updated the page and added maxima-on-wasm. I have attached the updated html file if someone wants to merge it. -EM On Sat, 2025-12-06 at 07:28 -0800, Raymond Toy wrote: > > > > > On 12/6/25 7:19 AM, Stavros Macrakis wrote: > > > > > > Maybe list them in a separate "history" section? > > > > > > > > > > That makes sense to me. > > And we should probably add the [maxima-on-wasm > website](https://maxima-on-wasm.pages.dev/), a full Maxima running in > a browser, including plotting. > > > > > > > On Sat, Dec 6, 2025, 09:29 ehm <eri...@gm...> wrote: > > > > > > > There are several dead links on the related projects page. > > > Perhaps they > > > should be considered for removal. > > > > > > Euler > > > WIMS > > > Jacomax > > > Interactive Demos of Mathematical Computations > > > > > > Also, some very old projects that might be considered for > > > removal. > > > > > > Symaxx2 - no updates for 25 years, and no recent downloads > > > Symbolic Equation Manipulator - no updates for 20 years, no > > > downloads > > > MaximaPHP - no updates for 14 years, no downloads > > > > > > -EM > > > > > > > > > _______________________________________________ > > > Maxima-discuss mailing list > > > Max...@li... > > > https://lists.sourceforge.net/lists/listinfo/maxima-discuss > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > Maxima-discuss mailing list > > Max...@li... > > https://lists.sourceforge.net/lists/listinfo/maxima-discuss > > > > > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss |
|
From: Raymond T. <toy...@gm...> - 2025-12-06 16:31:01
|
On 12/5/25 5:43 PM, Raymond Toy wrote: > > On 12/5/25 3:51 PM, Richard Fateman wrote: >> There are nuances in the IEEE standard that are not widely used and >> sometimes >> were left out of the software support (for laziness, lack of >> understanding, uncertainty >> of whether this would catch on?) and >> were, certainly in the past, left out of some hardware. (vendors >> would say they support >> the IEEE format, not mentioning lack of support of some operations.) >> Denormalized numbers are certainly in the category of not-widely-used. >> Common Lisp Standard support for floats was deliberately >> underspecified -- IEEE floats >> were new at the time. > > I think it's safe to say that any x86 or arm processor supports > IEEE-754. Handling of NaN was never well-specified. (Agner Fog has > an excellent article about this.) > I should have included a link to Agner Fogs article <https://grouper.ieee.org/groups/msc/ANSI_IEEE-Std-754-2019/background/nan-propagation.pdf>. Sorry about that. ​ |
|
From: Raymond T. <toy...@gm...> - 2025-12-06 15:28:54
|
On 12/6/25 7:19 AM, Stavros Macrakis wrote: > Maybe list them in a separate "history" section? That makes sense to me. And we should probably add the [maxima-on-wasm website](https://maxima-on-wasm.pages.dev/), a full Maxima running in a browser, including plotting. > > On Sat, Dec 6, 2025, 09:29 ehm <eri...@gm...> wrote: > > There are several dead links on the related projects page. Perhaps > they > should be considered for removal. > > Euler > WIMS > Jacomax > Interactive Demos of Mathematical Computations > > Also, some very old projects that might be considered for removal. > > Symaxx2 - no updates for 25 years, and no recent downloads > Symbolic Equation Manipulator - no updates for 20 years, no downloads > MaximaPHP - no updates for 14 years, no downloads > > -EM > > > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss > > > > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss |
|
From: Stavros M. <mac...@gm...> - 2025-12-06 15:19:26
|
Maybe list them in a separate "history" section? On Sat, Dec 6, 2025, 09:29 ehm <eri...@gm...> wrote: > There are several dead links on the related projects page. Perhaps they > should be considered for removal. > > Euler > WIMS > Jacomax > Interactive Demos of Mathematical Computations > > Also, some very old projects that might be considered for removal. > > Symaxx2 - no updates for 25 years, and no recent downloads > Symbolic Equation Manipulator - no updates for 20 years, no downloads > MaximaPHP - no updates for 14 years, no downloads > > -EM > > > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss > |
|
From: ehm <eri...@gm...> - 2025-12-06 14:29:23
|
There are several dead links on the related projects page. Perhaps they should be considered for removal. Euler WIMS Jacomax Interactive Demos of Mathematical Computations Also, some very old projects that might be considered for removal. Symaxx2 - no updates for 25 years, and no recent downloads Symbolic Equation Manipulator - no updates for 20 years, no downloads MaximaPHP - no updates for 14 years, no downloads -EM |
|
From: Raymond T. <toy...@gm...> - 2025-12-06 01:44:07
|
On 12/5/25 3:51 PM, Richard Fateman wrote: > There are nuances in the IEEE standard that are not widely used and > sometimes > were left out of the software support (for laziness, lack of > understanding, uncertainty > of whether this would catch on?) and > were, certainly in the past, left out of some hardware. (vendors would > say they support > the IEEE format, not mentioning lack of support of some operations.) > Denormalized numbers are certainly in the category of not-widely-used. > Common Lisp Standard support for floats was deliberately > underspecified -- IEEE floats > were new at the time. I think it's safe to say that any x86 or arm processor supports IEEE-754. Handling of NaN was never well-specified. (Agner Fog has an excellent article about this.) Some older (and newer?) x86 chips had really awful performance with denormals, but I think this is mostly fixed. I understand arm is quite good and operations with denormals are about twice the cost of normal floats. > > Curious -- is there a call for this in some important place, say in a > math library routine?? I don't know, but if you poke around fdlibm, you can see the code handles denormals. Presumably other math libraries also handle denormals; I haven't checked those. > > RJF > > On Fri, Dec 5, 2025 at 3:39 PM Raymond Toy <toy...@gm...> wrote: > > > On 12/5/25 3:24 PM, David Scherfgen wrote: >> This is a known bug in SBCL: >> https://bugs.launchpad.net/sbcl/+bug/2000178 > Almost 3 years old. I guess it's not important enough to anyone. >> >> Raymond Toy <toy...@gm...> schrieb am Fr., 5. Dez. 2025, >> 16:00: >> >> >> On 12/5/25 10:21 AM, Barton Willis via Maxima-discuss wrote: >>> >>> For subnormal floats, the SBCL CL function scale-float is >>> possibly buggy: >>> >>> SBCL 2.4.7: >>> >>> Define Maxima function that calls the CL function scale-float >>> >>> (%i1) :lisp(defun $scale_float (x m) (scale-float x m)) >>> >>> (%i1) x : 2.0^(-1024); >>> (%o1) 5.562684646268004e-309 >>> >>> This is a SBCL bug, I think: surely scaling by zero should >>> be an identity? >>> >>> (%i2) scale_float(x,0); >>> (%o2) 2.7813423231340017e-308 >>> >>> (%i3) x : 2.0^(-1023); >>> (%o3) 1.1125369292536007e-308 >> This is kinda surprising. Cmucl gets this right. So does >> ecl. Kinda funny too; it's not obvious what's happening >> here. `integer-decode-float` for the scaled result is >> `#x14000000000000` and an exponent of -1074, instead of the >> expected `#x10000000000000` with exponent -1076. >> >> _______________________________________________ >> Maxima-discuss mailing list >> Max...@li... >> https://lists.sourceforge.net/lists/listinfo/maxima-discuss >> > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss > |
|
From: Greg B. <gwb...@gm...> - 2025-12-06 00:30:01
|
I have a new machine with linux mint 22.2 and sbcl-2.5.10. From a previous machine with mint 21 I have Robert Dodier's recipe for cloning maxima and thence installing it. I am quite comfortable with this sort of thing, so I intend to use it on the new machine. Then I'll get wxMaxima as a gui too. If there are any caveats about the current release or this process I would be grateful to learn of them. From time to time on this list I see notes from one of the maintainers, to whom I am very grateful, of the sort: If there is no objection I'll merge this soon. Is there a maxima-approved way to merge this change on my own (compiled) copy of maxima ? I am aware that .fasls from different sbcl's don't play together; I do update my sbcl fairly regularly. I don't mind fetching from github, compiling, slotting into an appropriate fasl slot, but that is with my own stuff; maxima presumably keeps a 'record' of what's where and I need to more careful with merges. Thanks for the great software and, in advance, for any advice and assistance. Cheers Greg Bennett |
|
From: Richard F. <fa...@gm...> - 2025-12-05 23:52:15
|
There are nuances in the IEEE standard that are not widely used and sometimes were left out of the software support (for laziness, lack of understanding, uncertainty of whether this would catch on?) and were, certainly in the past, left out of some hardware. (vendors would say they support the IEEE format, not mentioning lack of support of some operations.) Denormalized numbers are certainly in the category of not-widely-used. Common Lisp Standard support for floats was deliberately underspecified -- IEEE floats were new at the time. Curious -- is there a call for this in some important place, say in a math library routine?? RJF On Fri, Dec 5, 2025 at 3:39 PM Raymond Toy <toy...@gm...> wrote: > > On 12/5/25 3:24 PM, David Scherfgen wrote: > > This is a known bug in SBCL: https://bugs.launchpad.net/sbcl/+bug/2000178 > > Almost 3 years old. I guess it's not important enough to anyone. > > > Raymond Toy <toy...@gm...> schrieb am Fr., 5. Dez. 2025, 16:00: > >> >> On 12/5/25 10:21 AM, Barton Willis via Maxima-discuss wrote: >> >> >> For subnormal floats, the SBCL CL function scale-float is possibly buggy: >> >> SBCL 2.4.7: >> >> Define Maxima function that calls the CL function scale-float >> >> (%i1) :lisp(defun $scale_float (x m) (scale-float x m)) >> >> (%i1) x : 2.0^(-1024); >> (%o1) 5.562684646268004e-309 >> >> This is a SBCL bug, I think: surely scaling by zero should be an >> identity? >> >> (%i2) scale_float(x,0); >> (%o2) 2.7813423231340017e-308 >> >> (%i3) x : 2.0^(-1023); >> (%o3) 1.1125369292536007e-308 >> >> This is kinda surprising. Cmucl gets this right. So does ecl. Kinda >> funny too; it's not obvious what's happening here. `integer-decode-float` >> for the scaled result is `#x14000000000000` and an exponent of -1074, >> instead of the expected `#x10000000000000` with exponent -1076. >> >> >> _______________________________________________ >> Maxima-discuss mailing list >> Max...@li... >> https://lists.sourceforge.net/lists/listinfo/maxima-discuss >> > > > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss > |
|
From: Raymond T. <toy...@gm...> - 2025-12-05 23:50:19
|
On 12/5/25 3:41 PM, Richard Fateman wrote: > (fppi) returns the insides of bigfloat %pi to the current bigfloat > precision. If you want the > whole number with the precision encoded, then use bcons. > > :lisp (setf $mypi (bcons (fppi))) > > sets the maxima variable mypi to a bigfloat pi which in the default > precision prints as > 3.141592653589793b0 > > The lisp programs (of which there are lots of examples) generally do > calculations on the "insides" with > the precision understood, and presumed (required) to be the same for > all bigfloat insides in the calculation. > > One could relax that understanding and instead insist that each number > has the header, so > instead of just (say) adding two bigfloats insides by (fpplus a b), > we could convert a to current precision, b to current precision, add > them producing a result (with header) > specifying the current precision. This is what bfloat(a+b) does. > > (fppi) returns the lisp list (56593902016227522 2) > $mypi in lisp is ((bigfloat simp 56) 56593902016227522 2) > > I hope this helps if someone decides to read/extend/improve/replace > this code. The bigfloat package is intended to hide these implementation details while still using the original algorithms from float.lisp so that there are no weird and very hard to debug regressions in bfloat arithmetic. It won't be as fast as using the bare code from float.lisp, but hopefully it's a lot less error-prone and easier to write and debug. If someone really, really needs that speed boost, they can still get down and dirty with the original code. |
|
From: Richard F. <fa...@gm...> - 2025-12-05 23:42:03
|
(fppi) returns the insides of bigfloat %pi to the current bigfloat precision. If you want the whole number with the precision encoded, then use bcons. :lisp (setf $mypi (bcons (fppi))) sets the maxima variable mypi to a bigfloat pi which in the default precision prints as 3.141592653589793b0 The lisp programs (of which there are lots of examples) generally do calculations on the "insides" with the precision understood, and presumed (required) to be the same for all bigfloat insides in the calculation. One could relax that understanding and instead insist that each number has the header, so instead of just (say) adding two bigfloats insides by (fpplus a b), we could convert a to current precision, b to current precision, add them producing a result (with header) specifying the current precision. This is what bfloat(a+b) does. (fppi) returns the lisp list (56593902016227522 2) $mypi in lisp is ((bigfloat simp 56) 56593902016227522 2) I hope this helps if someone decides to read/extend/improve/replace this code. RJF On Fri, Dec 5, 2025 at 1:49 PM Raymond Toy <toy...@gm...> wrote: > > On 12/5/25 10:41 AM, Robert Dodier wrote: > > On Fri, Dec 5, 2025 at 4:58 AM Barton Willis via Maxima-discuss<max...@li...> <max...@li...> wrote: > > Another thing: Although bfhalf automatically updates when fpprec changes, some special variables defined in globals.lisp do not. > > I wonder if any specific bigfloat values should be functions instead > of constants, so that changing fpprec causes a different value to be > returned. Or maybe baking the prevailing fpprec into the symbol name, > something like BIGFLOAT-%PI-FOR-DEFAULT-FPPREC or whatever. > > I agree on adding functions. We already have `fppi` that returns a > bigfloat pi for the current fpprec. But `fppi` returns a bfloat object sans > bfloat marker. And `fppi` is memoized. I think if you use the bigfloat > package, you get `(bigfloat:%pi num)` where `num` is only used to figure > out what kind of result to return (single, double, big float). Similarly > for `bigfloat:%e`. > > Speaking strictly for myself, I can't keep it straight in my head when > some constant is no longer valid in some context ... if developers are > supposed to "just know", then it's likely that I'll mess it up at some > point. YMMV as always. > > I don't think it's just you. > > > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss > |
|
From: Raymond T. <toy...@gm...> - 2025-12-05 23:39:37
|
On 12/5/25 3:24 PM, David Scherfgen wrote: > This is a known bug in SBCL: https://bugs.launchpad.net/sbcl/+bug/2000178 Almost 3 years old. I guess it's not important enough to anyone. > > Raymond Toy <toy...@gm...> schrieb am Fr., 5. Dez. 2025, 16:00: > > > On 12/5/25 10:21 AM, Barton Willis via Maxima-discuss wrote: >> >> For subnormal floats, the SBCL CL function scale-float is >> possibly buggy: >> >> SBCL 2.4.7: >> >> Define Maxima function that calls the CL function scale-float >> >> (%i1) :lisp(defun $scale_float (x m) (scale-float x m)) >> >> (%i1) x : 2.0^(-1024); >> (%o1) 5.562684646268004e-309 >> >> This is a SBCL bug, I think: surely scaling by zero should be an >> identity? >> >> (%i2) scale_float(x,0); >> (%o2) 2.7813423231340017e-308 >> >> (%i3) x : 2.0^(-1023); >> (%o3) 1.1125369292536007e-308 > This is kinda surprising. Cmucl gets this right. So does ecl. > Kinda funny too; it's not obvious what's happening here. > `integer-decode-float` for the scaled result is `#x14000000000000` > and an exponent of -1074, instead of the expected > `#x10000000000000` with exponent -1076. > > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss > |
|
From: David S. <d.s...@go...> - 2025-12-05 23:25:03
|
This is a known bug in SBCL: https://bugs.launchpad.net/sbcl/+bug/2000178 Raymond Toy <toy...@gm...> schrieb am Fr., 5. Dez. 2025, 16:00: > > On 12/5/25 10:21 AM, Barton Willis via Maxima-discuss wrote: > > > For subnormal floats, the SBCL CL function scale-float is possibly buggy: > > SBCL 2.4.7: > > Define Maxima function that calls the CL function scale-float > > (%i1) :lisp(defun $scale_float (x m) (scale-float x m)) > > (%i1) x : 2.0^(-1024); > (%o1) 5.562684646268004e-309 > > This is a SBCL bug, I think: surely scaling by zero should be an > identity? > > (%i2) scale_float(x,0); > (%o2) 2.7813423231340017e-308 > > (%i3) x : 2.0^(-1023); > (%o3) 1.1125369292536007e-308 > > This is kinda surprising. Cmucl gets this right. So does ecl. Kinda > funny too; it's not obvious what's happening here. `integer-decode-float` > for the scaled result is `#x14000000000000` and an exponent of -1074, > instead of the expected `#x10000000000000` with exponent -1076. > > > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss > |
|
From: Raymond T. <toy...@gm...> - 2025-12-05 21:59:13
|
On 12/5/25 10:21 AM, Barton Willis via Maxima-discuss wrote: > > For subnormal floats, the SBCL CL function scale-float is possibly buggy: > > SBCL 2.4.7: > > Define Maxima function that calls the CL function scale-float > > (%i1) :lisp(defun $scale_float (x m) (scale-float x m)) > > (%i1) x : 2.0^(-1024); > (%o1) 5.562684646268004e-309 > > This is a SBCL bug, I think: surely scaling by zero should be an > identity? > > (%i2) scale_float(x,0); > (%o2) 2.7813423231340017e-308 > > (%i3) x : 2.0^(-1023); > (%o3) 1.1125369292536007e-308 This is kinda surprising. Cmucl gets this right. So does ecl. Kinda funny too; it's not obvious what's happening here. `integer-decode-float` for the scaled result is `#x14000000000000` and an exponent of -1074, instead of the expected `#x10000000000000` with exponent -1076. |
|
From: Raymond T. <toy...@gm...> - 2025-12-05 21:49:42
|
On 12/5/25 10:41 AM, Robert Dodier wrote: > On Fri, Dec 5, 2025 at 4:58 AM Barton Willis via Maxima-discuss > <max...@li...> wrote: >> Another thing: Although bfhalf automatically updates when fpprec changes, some special variables defined in globals.lisp do not. > I wonder if any specific bigfloat values should be functions instead > of constants, so that changing fpprec causes a different value to be > returned. Or maybe baking the prevailing fpprec into the symbol name, > something like BIGFLOAT-%PI-FOR-DEFAULT-FPPREC or whatever. I agree on adding functions. We already have `fppi` that returns a bigfloat pi for the current fpprec. But `fppi` returns a bfloat object sans bfloat marker. And `fppi` is memoized. I think if you use the bigfloat package, you get `(bigfloat:%pi num)` where `num` is only used to figure out what kind of result to return (single, double, big float). Similarly for `bigfloat:%e`. > > Speaking strictly for myself, I can't keep it straight in my head when > some constant is no longer valid in some context ... if developers are > supposed to "just know", then it's likely that I'll mess it up at some > point. YMMV as always. I don't think it's just you. |
|
From: Richard F. <fa...@gm...> - 2025-12-05 19:17:03
|
Having written the bigfloat code about 50 years ago, I'm probably to blame for such things. Resetting the global bf values for one, zero, half are cheap. Values for e and pi and other constants may not be so cheap. I think some computations are done by bumping up the precision slightly and then rounding down, so re-doing e,pi, etc at each change may not be a great idea. But if they are memoized, maybe it doesn't matter, and it doesn't matter if functions producing the values are used in places, instead of the values themselves being stored. Note that the precision used for a bigfloat op like fpplus is the global fp precision, and is NOT governed by precision of the arguments. Also there is a Maxima variable $fpprec , initially 16, supposed to be number of decimal digits, and a lisp variable ?fpprec, initially 56, the corresponding number of binary bits in the "fraction" part of the bigfloat. Whether it is a feature or a defect, it is unclear: since there is no limit on the value of the exponent, "underflow" or "overflow" by exceeding that range is not possible, and so bigfloats do not have NaN (Not a Number) as do IEEE754 standard floats. Maxima has inf, und, ind, which might be "allowed" as bigfloats, if someone cared to do that, figured out the consequences, and it was acceptably fast. RJF On Fri, Dec 5, 2025 at 10:41 AM Robert Dodier <rob...@gm...> wrote: > On Fri, Dec 5, 2025 at 4:58 AM Barton Willis via Maxima-discuss > <max...@li...> wrote: > > > > Another thing: Although bfhalf automatically updates when fpprec > changes, some special variables defined in globals.lisp do not. > > I wonder if any specific bigfloat values should be functions instead > of constants, so that changing fpprec causes a different value to be > returned. Or maybe baking the prevailing fpprec into the symbol name, > something like BIGFLOAT-%PI-FOR-DEFAULT-FPPREC or whatever. > > Speaking strictly for myself, I can't keep it straight in my head when > some constant is no longer valid in some context ... if developers are > supposed to "just know", then it's likely that I'll mess it up at some > point. YMMV as always. > > Robert > > > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss > |