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
(111) |
Sep
|
Oct
|
Nov
|
Dec
|
From: Stavros M. <mac...@gm...> - 2025-08-16 18:32:42
|
Sorry, I should have mentioned your fix for nounified =. I was just (favorably) surprised that nounified +, *, and . already worked, and = was the only exception. I wonder why *' "+"(a,b)* displays as *a+b *with *display2d:true* but as *'mplus(a,b) *with *display2d:false*.... -s On Fri, Aug 15, 2025 at 11:59 PM Robert Dodier <rob...@gm...> wrote: > On Fri, Aug 15, 2025 at 10:45 AM Stavros Macrakis <mac...@gm...> > wrote: > > > "="(a,b+1) => a = b + 1 << correct rendering with regular "=" > > ' "="(a,b+1) => a = (b + 1) << BAD, parens are not necessary > > Try it again after > > :lisp (setf (get '%mequal 'rbp) (get 'mequal 'rbp)) > :lisp (setf (get '%mequal 'lbp) (get 'mequal 'lbp)) > > which gives '"=" (nounified) the same binding powers as "=" (verbified). > > best > > Robert > |
From: Robert D. <rob...@gm...> - 2025-08-16 03:59:25
|
On Fri, Aug 15, 2025 at 10:45 AM Stavros Macrakis <mac...@gm...> wrote: > "="(a,b+1) => a = b + 1 << correct rendering with regular "=" > ' "="(a,b+1) => a = (b + 1) << BAD, parens are not necessary Try it again after :lisp (setf (get '%mequal 'rbp) (get 'mequal 'rbp)) :lisp (setf (get '%mequal 'lbp) (get 'mequal 'lbp)) which gives '"=" (nounified) the same binding powers as "=" (verbified). best Robert |
From: Stavros M. <mac...@gm...> - 2025-08-15 17:45:11
|
Robert, I was surprised that the noun-operators work just fine.... But '"=" seems to be the one bad case: ' "*"(a,' "+"(b,c),d) => a (b + c) d << parens necessary ' "+"(a,' "*"(b,c),d) => a + b c + d << parens not necessary ' "."(a,' "+"(b,c),d) => a . (b + c) . d ' "+"(a,' "."(b,c),d) => a + b . c + d "="(a,b+1) => a = b + 1 << correct rendering with regular "=" ' "="(a,b+1) => a = (b + 1) << BAD, parens are not necessary On Sun, Aug 10, 2025 at 6:41 PM Robert Dodier <rob...@gm...> wrote: > On Fri, Aug 8, 2025 at 1:50 AM Oleg Nesterov <ol...@re...> wrote: > > > (%i1) '"+"(2,2) = 4; > > (%o1) 2 + 2 = 4 > > Huh, I'm a little surprised (although not very much) that this has the > expected effect ... I guess that's a %MPLUS expression instead of > MPLUS, and the simplification rules for MPLUS aren't also implemented > for %MPLUS. OK by me. > > > (%i2) '"."(matrix([1, 2], [3, 4]), matrix([1], [2])) = > matrix([5],[11]); > > ┌ ┐ ┌ ┐ ┌ ┐ > > │ 1 2 │ │ 1 │ │ 5 │ > > (%o2) (│ │) . (│ │) = │ │ > > │ 3 4 │ │ 2 │ │ 11 │ > > Here the issue is that the operator is %MNCTIMES which does not have a > right or left binding power (precedence) defined for it. Try this: > > :lisp (setf (get '%mnctimes 'rbp) (get 'mnctimes 'rbp)) > :lisp (setf (get '%mnctimes 'lbp) (get 'mnctimes 'lbp)) > > which gives %MNCTIMES the same precedence, and therefore parentheses > in the same places, as MNCTIMES. > > > (%i4) a = b . c; > > (%o4) a = b . c > > (%i5) '"="(a, b.c); > > (%o5) a = (b . c) > > (%i6) :lisp (defprop %mequal 80. lbp) > > (%i6) :lisp (defprop %mequal 80. rbp) > > Likewise I guess we would say > > :lisp (setf (get '%mequal 'rbp) (get 'mequal 'rbp)) > :lisp (setf (get '%mequal 'lbp) (get 'mequal 'lbp)) > > I don't see why the nounified operators should not have the same > binding powers as the un-nounified -- I will try to remember to update > grind.lisp. > > Robert > > > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss > |
From: Robert D. <rob...@gm...> - 2025-08-14 14:46:21
|
On Thu, Aug 14, 2025 at 7:35 AM Nicholas Strauss <st...@po...> wrote: > I found a feature / bug with batch -- the last line is repeated. Example is > > Maxima 5.41.0 http://maxima.sourceforge.net > (%i8) stringout("nav5-sol.mc",x_values) > (%o8) /home/nicks/nav5-sol.mc > (%o8) navigate5.mc Nicholas, thanks for your interest in Maxima. That bug was fixed in commit 71af20 which was released as Maxima 5.43. That was several years ago, and many other bugs (at least a hundred) have been fixed since 5.41. The latest version is Maxima 5.48, maybe you'll consider updating your installation. Hope this helps, Robert |
From: Nicholas S. <st...@po...> - 2025-08-14 14:32:07
|
Hi Mac, I found a feature / bug with batch -- the last line is repeated. Example is Maxima 5.41.0 http://maxima.sourceforge.net using Lisp GNU Common Lisp (GCL) GCL 2.6.12 Distributed under the GNU Public License. See the file COPYING. Dedicated to the memory of William Schelter. The function bug_report() provides bug reporting information. (%i1) batch("navigate5.mc"); read and interpret file: #p/home/nicks/navigate5.mc (%i8) stringout("nav5-sol.mc",x_values) (%o8) /home/nicks/nav5-sol.mc (%o8) navigate5.mc There are two answer lines with the same identifier. -- All postal correspondence to: The Positive Internet Company, 24 Ganton Street, London. W1F 7QY The Positive Internet Company Limited is registered in England and Wales. Registered company number: 3673639. VAT no: 726 7072 28. Registered office: Level One, 86 Queens Road, Buckhurst Hill, IG9 5BS |
From: <l.c...@gm...> - 2025-08-13 19:44:33
|
Hello Jaime, If I click on xmaxima menu help->maxima manual (xmaxima browser) This effectively open the Window with the initial file but no any html link are working. The error message is : not supported anchor not supported anchor while executing "error [concat [mc "not supported"] "[lindex $res 0]"]" (procedure "getURL" line 93) invoked from within "getURL $new contentType mimeheader $post" (procedure "OpenMathOpenUrl" line 66) invoked from within "OpenMathOpenUrl $reference -commandpanel [omPanel $win]" (procedure "HMdoaref" line 25) invoked from within "HMdoaref click .browser.t4.text 112 217" (command bound to event) If I select the option “open the browser” a Window open (introduction to maxima) but if I click the html link “Maxima Primer” I obtain the error : not supported dirname not supported dirname while executing "error [concat [mc "not supported"] "[lindex $res 0]"]" (procedure "getURL" line 93) invoked from within "getURL $new contentType mimeheader $post" (procedure "OpenMathOpenUrl" line 66) invoked from within "OpenMathOpenUrl $reference -commandpanel [omPanel $win]" (procedure "HMdoaref" line 25) invoked from within "HMdoaref click .browser.t5.text 107 240" (command bound to event) Best regards, Laurent De : Jaime Villate <vi...@fe...> Envoyé : mardi 12 août 2025 23:23 À : l.c...@gm...; max...@li...; Wolfgang Dautermann <wol...@da...> Objet : Re: ***SPAM*** [Maxima-discuss] Problem in XMaxima On 12/08/25 20:54, l.c...@gm... <mailto:l.c...@gm...> wrote: In the file xmaxima from lines 13965 to 13974 there is : global autoconf set autoconf(defaultlisp) "sbcl" set autoconf(prefix) "c:/maxima-5.48.1" set autoconf(exec_prefix) " c:/maxima-5.48.1" set autoconf(package) "maxima" set autoconf(version) "5.48.1" set autoconf(libdir) " c:/maxima-5.48.1/lib" set autoconf(libexecdir) " c:/maxima-5.48.1/libexec" set autoconf(datadir) " c:/maxima-5.48.1/share" set autoconf(infodir) " c:/maxima-5.48.1/share/info" This imply that xmaxima cannot start if we install it elsewhere (in my case D:/Program Files/maxima-5.48.1) Replacing this “c:” by the installation directory make xmaxima start correctly Hello Laurent, Thank you for your report. I hope Wolfgang, who creates the Windows installer, can fix this, (even if the xmaxima help browser still does not work) The browser Window should open and if it cannot access the initial file, it should show an error message. What error message is it?. If you don't get a browser window, what happens if you select the option "Open the Browser" in the "Options" menu? Best regards, Jaime |
From: Barton W. <wi...@un...> - 2025-08-13 12:27:23
|
I have been looking at the residue code (see residu.lisp). One idea I was trying was to use a non-default value for taylor_simplifer as a way to find residues somewhat symbolically; for example: (%i10) myresidue(1/(x^2+x+1),x,a); Is 0 equal to a^2+a+1? y; (%o10) 1/(2*a+1) (%i11) myresidue(1/(x^2+x+1),x,a); Is 0 equal to a^2+a+1? n; (%o11) 0 These answers are OK. But I'm mystified by the following: (%i1) (display2d : false, linel : 100)$ (%i2) taylor_simplifier : lambda([s], scsimp(s, a^2=-1))$ (%i3) taylor(1/(x^2+1),x,a,4); (%o3) -(a/(2*(x-a)))+1/4+(x-a)/(8*a^3)-(x-a)^2/16+(x-a)^3/(32*a^5)+(x-a)^4/64 It looks like the simply pole term is -a/2, which is correct, but coeff tells me something else (%i4) coeff(%,x-a,-1); (%o4) -((a^5-4*a^3+48*a)/64) (%i5) subst(a=%i,%); (%o5) -((53*%i)/64) But if I do ratdisrep before finding the simple pole term, all is well: (%i6) taylor(1/(x^2+1),x,a,4); (%o6) -(a/(2*(x-a)))+1/4+(x-a)/(8*a^3)-(x-a)^2/16+(x-a)^3/(32*a^5)+(x-a)^4/64 (%i7) coeff(ratdisrep(%),x-a,-1); (%o7) -(a/2) Question: How is the output in %o4 correct? It seems wrong to me—what is the story? |
From: Jaime V. <vi...@fe...> - 2025-08-13 10:22:04
|
Hello Wolfgang, Thanks for the explanation. On 13/08/25 07:41, Wolfgang Dautermann wrote: > I just call ./configure with an installation path (c:\maxima-5.48.1 > for example) and if Maxima is installed elsewhere, there is nothing I > can do. (Some time ago I had that path unchangeable, but there were > complaints). > The same effect would (most likely) occur on Linux/Unix if - let's say > - one configures Maxima for the prefix /opt/maxima-5.48.1 and later > moves that installation somewhere else. Oh, now I see the problem. > > But maybe it can fixed with TCL? I don't know much about TCL, but with > > set script_path [ file dirname [ file normalize [ info script ] ] ] > puts $script_path > > (found on the internet) one seems to get the script path (and output > it). Can Xmaxima changed, so that it uses that, instead of the > "./configure" prefix? Sure, we can fix it so that we make it independent of autoconf. I guess it is safe to assume that if xmaxima is in D:/whatever/bin then maxima will also be in the same directory? Another thing that I can do is to include the variables that are currently created by autoconf into the xmaxima_default file. That way if someone else faces the same problem as Laurent, there will be no need to edit Xmaxima itself but just add a few lines (probably just one line) in xmaxima_default. Regards, Jaime |
From: Wolfgang D. <wol...@da...> - 2025-08-13 06:41:21
|
Am 12.08.25 um 23:23 schrieb Jaime Villate: > Hello Laurent, > > Thank you for your report. I hope Wolfgang, who creates the Windows > installer, can fix this, Hi Jaime & Maxima-team, No. I just call ./configure with an installation path (c:\maxima-5.48.1 for example) and if Maxima is installed elsewhere, there is nothing I can do. (Some time ago I had that path unchangeable, but there were complaints). The same effect would (most likely) occur on Linux/Unix if - let's say - one configures Maxima for the prefix /opt/maxima-5.48.1 and later moves that installation somewhere else. But maybe it can fixed with TCL? I don't know much about TCL, but with set script_path [ file dirname [ file normalize [ info script ] ] ] puts $script_path (found on the internet) one seems to get the script path (and output it). Can Xmaxima changed, so that it uses that, instead of the "./configure" prefix? Best regards, Wolfgang |
From: Jaime V. <vi...@fe...> - 2025-08-12 21:23:34
|
On 12/08/25 20:54, l.c...@gm... wrote: > > In the file xmaxima from lines 13965 to 13974 there is : > > global autoconf > > set autoconf(defaultlisp) "sbcl" > > set autoconf(prefix) "c:/maxima-5.48.1" > > set autoconf(exec_prefix) " c:/maxima-5.48.1" > > set autoconf(package) "maxima" > > set autoconf(version) "5.48.1" > > set autoconf(libdir) " c:/maxima-5.48.1/lib" > > set autoconf(libexecdir) " c:/maxima-5.48.1/libexec" > > set autoconf(datadir) " c:/maxima-5.48.1/share" > > set autoconf(infodir) " c:/maxima-5.48.1/share/info" > > This imply that xmaxima cannot start if we install it elsewhere (in my > case D:/Program Files/maxima-5.48.1) > > Replacing this “c:” by the installation directory make xmaxima start > correctly > Hello Laurent, Thank you for your report. I hope Wolfgang, who creates the Windows installer, can fix this, > (even if the xmaxima help browser still does not work) > The browser Window should open and if it cannot access the initial file, it should show an error message. What error message is it?. If you don't get a browser window, what happens if you select the option "Open the Browser" in the "Options" menu? Best regards, Jaime |
From: <l.c...@gm...> - 2025-08-12 19:54:30
|
Hi, In the file xmaxima from lines 13965 to 13974 there is : global autoconf set autoconf(defaultlisp) "sbcl" set autoconf(prefix) "c:/maxima-5.48.1" set autoconf(exec_prefix) " c:/maxima-5.48.1" set autoconf(package) "maxima" set autoconf(version) "5.48.1" set autoconf(libdir) " c:/maxima-5.48.1/lib" set autoconf(libexecdir) " c:/maxima-5.48.1/libexec" set autoconf(datadir) " c:/maxima-5.48.1/share" set autoconf(infodir) " c:/maxima-5.48.1/share/info" This imply that xmaxima cannot start if we install it elsewhere (in my case D:/Program Files/maxima-5.48.1) Replacing this "c:" by the installation directory make xmaxima start correctly (even if the xmaxima help browser still does not work) Best, Laurent |
From: Viplava C. <vip...@ai...> - 2025-08-12 08:57:14
|
Hello WXMAXIMA Team, I would like to know the compatibility of the wxmaxima on RHEL9 OS. Could you please give me feedback if these versions are supported on RHEL9. We are installing a new setup with RHEL9 virtual machines and our focus is currently about confirmation from your technical side if these Versions are compatible or not. Thank You Mit freundlichen Grüßen / Yours Sincerely *Viplava Ambedkar, Chappidi* *CIMPA GmbH* *im Auftrag von / on behalf of* CAE Application & CAX Service KITP - Processes, Methods & Tools *KDP* - Digital Engineering Solutions *Airbus Aerostructures GmbH* Haunstetterstrasse 225 86167 Augsburg, Germany Phone: +49 821 801 64301 Mobile: +49 1512 0515 219 E-mail: vip...@ai... KITP-Homepage <https://sites.google.com/airbus.com/kitp-processes-methods-tools/> The information in this e-mail is confidential. The contents may not be disclosed or used by anyone other than the addressee. Access to this e-mail by anyone else is unauthorised. If you are not the intended recipient, please notify Airbus immediately and delete this e-mail. Airbus cannot accept any responsibility for the accuracy or completeness of this e-mail as it has been sent over public networks. If you have any concerns over the content of this message or its Accuracy or Integrity, please contact Airbus immediately. All outgoing e-mails from Airbus are checked using regularly updated virus scanning software but you should take whatever measures you deem to be appropriate to ensure that this message and any attachments are virus free. |
From: Robert D. <rob...@gm...> - 2025-08-11 00:15:41
|
I was looking at some stuff about determining the position of the sun the sky (in order to tell time without a clock, just for fun) and it seems like "Astronomical Algorithms" by Jean Meeus is a commonly-used reference. There is an implementation in Go: https://github.com/soniakeys/meeus Go, as you may know, is an Algol-family language, apparently intended to be somewhat more predictable than C (in the sense of enforcing more constraints on the programmer). Go is a not-very-complex language for not-very-complex programming -- the lead developer has said as much -- but anyway it turns out it's not that hard to translate to Maxima. I have a proof of concept of a Go to Maxima translator, see the folder robert-dodier/maxima_from_go at: https://github.com/maxima-project-on-github/maxima-packages The translator is not too strongly organized, having been accreted by adding rules one after another in the best Maxima development style. It works well enough to translate a few of the subunits of the meeus project. The starting point for the translator is a syntax tree produced by a tool named asty (https://github.com/asty-org/asty).Then successive rules are applied to translate specific constructs to a Maxima equivalent. The result is not too far from idiomatic Maxima code, although translating Go's 'return' and 'continue' requires some kind of nonlocal goto -- I have implemented that with throw/catch in Maxima. Maybe there are other ways to do it. Also, one could try to clean up functions which don't have any throw inside them, via some additional rules. I wrote some stuff by hand to fill out stuff around the edges -- providing implementations of built-in functions and what-not. Probably some of that stuff could be replaced by automatically translated code at some point. I can say more about any of this if there's interest. Robert PS. Here's a first example. I'll call a function HorizontalByDeclination which takes arguments φ (latitude) and a (height of sundial gnomon). I am just north of 45 degrees north latitude, so φ = pi/4 approximately. Input: linel: 72; fpprintprec: 6; foo: HorizontalByDeclination (math@Pi/4, 1); displayfoo (l) := (display (l@Declination), display (l@Description), display (l@Points)); [second (foo), third (foo)]; for x in first (foo) do displayfoo (x); Output: l@Declination = Angle(- 23.44) l@Description = winter solstice l@Points = [PointWithHour(H = 8, X = - 18.436, Y = 14.0529), PointWithHour(H = 9, X = - 3.65579, Y = 4.17006), PointWithHour(H = 10, X = - 1.63509, Y = 3.00513), PointWithHour(H = 11, X = - 0.687555, Y = 2.62886), PointWithHour(H = 12, X = 0, Y = 2.53087), PointWithHour(H = 13, X = 0.687555, Y = 2.62886), PointWithHour(H = 14, X = 1.63509, Y = 3.00513), PointWithHour(H = 15, X = 3.65579, Y = 4.17006), PointWithHour(H = 16, X = 18.436, Y = 14.0529)] l@Declination = Angle(- 20.15) l@Description = winter solstice + 1 month l@Points = [PointWithHour(H = 8, X = - 9.20431, Y = 6.51529), PointWithHour(H = 9, X = - 2.93972, Y = 3.15739), PointWithHour(H = 10, X = - 1.4168, Y = 2.47043), PointWithHour(H = 11, X = - 0.611073, Y = 2.22519), PointWithHour(H = 12, X = 0, Y = 2.15925), PointWithHour(H = 13, X = 0.611073, Y = 2.22519), PointWithHour(H = 14, X = 1.4168, Y = 2.47043), PointWithHour(H = 15, X = 2.93972, Y = 3.15739), PointWithHour(H = 16, X = 9.20431, Y = 6.51529)] l@Declination = Angle(- 11.47) l@Description = equinox - 1 month l@Points = [PointWithHour(H = 7, X = - 24.4317, Y = 8.25809), PointWithHour(H = 8, X = - 4.12243, Y = 2.36595), PointWithHour(H = 9, X = - 1.98334, Y = 1.80487), PointWithHour(H = 10, X = - 1.06634, Y = 1.61198), PointWithHour(H = 11, X = - 0.479707, Y = 1.53185), PointWithHour(H = 12, X = 0, Y = 1.50912), PointWithHour(H = 13, X = 0.479707, Y = 1.53185), PointWithHour(H = 14, X = 1.06634, Y = 1.61198), PointWithHour(H = 15, X = 1.98334, Y = 1.80487), PointWithHour(H = 16, X = 4.12243, Y = 2.36595), PointWithHour(H = 17, X = 24.4317, Y = 8.25809)] l@Declination = Angle(0) l@Description = equinox l@Points = [PointWithHour(H = 6, X = - 2.30959e+16, Y = 1.0), PointWithHour(H = 7, X = - 5.27792, Y = 1.0), PointWithHour(H = 8, X = - 2.44949, Y = 1.0), PointWithHour(H = 9, X = - 1.41421, Y = 1.0), PointWithHour(H = 10, X = - 0.816497, Y = 1.0), PointWithHour(H = 11, X = - 0.378937, Y = 1.0), PointWithHour(H = 12, X = 0, Y = 1.0), PointWithHour(H = 13, X = 0.378937, Y = 1.0), PointWithHour(H = 14, X = 0.816497, Y = 1.0), PointWithHour(H = 15, X = 1.41421, Y = 1.0), PointWithHour(H = 16, X = 2.44949, Y = 1.0), PointWithHour(H = 17, X = 5.27792, Y = 1.0), PointWithHour(H = 18, X = 2.30959e+16, Y = 1.0)] l@Declination = Angle(11.47) l@Description = equinox + 1 month l@Points = [PointWithHour(H = 6, X = - 6.96976, Y = - 1.0), PointWithHour(H = 7, X = - 2.95852, Y = 0.121093), PointWithHour(H = 8, X = - 1.7424, Y = 0.422663), PointWithHour(H = 9, X = - 1.09888, Y = 0.554057), PointWithHour(H = 10, X = - 0.661507, Y = 0.620356), PointWithHour(H = 11, X = - 0.313155, Y = 0.652804), PointWithHour(H = 12, X = 0, Y = 0.662639), PointWithHour(H = 13, X = 0.313155, Y = 0.652804), PointWithHour(H = 14, X = 0.661507, Y = 0.620356), PointWithHour(H = 15, X = 1.09888, Y = 0.554057), PointWithHour(H = 16, X = 1.7424, Y = 0.422663), PointWithHour(H = 17, X = 2.95852, Y = 0.121093), PointWithHour(H = 18, X = 6.96976, Y = - 1.0)] l@Declination = Angle(20.15) l@Description = summer solstice - 1 month l@Points = [PointWithHour(H = 5, X = - 12.6345, Y = - 5.78768), PointWithHour(H = 6, X = - 3.8541, Y = - 1.0), PointWithHour(H = 7, X = - 2.183, Y = - 0.172781), PointWithHour(H = 8, X = - 1.41273, Y = 0.153485), PointWithHour(H = 9, X = - 0.93106, Y = 0.316718), PointWithHour(H = 10, X = - 0.573502, Y = 0.404787), PointWithHour(H = 11, X = - 0.274616, Y = 0.449399), PointWithHour(H = 12, X = 0, Y = 0.463124), PointWithHour(H = 13, X = 0.274616, Y = 0.449399), PointWithHour(H = 14, X = 0.573502, Y = 0.404787), PointWithHour(H = 15, X = 0.93106, Y = 0.316718), PointWithHour(H = 16, X = 1.41273, Y = 0.153485), PointWithHour(H = 17, X = 2.183, Y = - 0.172781), PointWithHour(H = 18, X = 3.8541, Y = - 1.0), PointWithHour(H = 19, X = 12.6345, Y = - 5.78768)] l@Declination = Angle(23.44) l@Description = summer solstice l@Points = [PointWithHour(H = 5, X = - 7.81708, Y = - 3.96219), PointWithHour(H = 6, X = - 3.26181, Y = - 1.0), PointWithHour(H = 7, X = - 1.97292, Y = - 0.252386), PointWithHour(H = 8, X = - 1.3119, Y = 0.0711595), PointWithHour(H = 9, X = - 0.876674, Y = 0.239805), PointWithHour(H = 10, X = - 0.544099, Y = 0.332764), PointWithHour(H = 11, X = - 0.261541, Y = 0.380393), PointWithHour(H = 12, X = 0, Y = 0.395121), PointWithHour(H = 13, X = 0.261541, Y = 0.380393), PointWithHour(H = 14, X = 0.544099, Y = 0.332764), PointWithHour(H = 15, X = 0.876674, Y = 0.239805), PointWithHour(H = 16, X = 1.3119, Y = 0.0711595), PointWithHour(H = 17, X = 1.97292, Y = - 0.252386), PointWithHour(H = 18, X = 3.26181, Y = - 1.0), PointWithHour(H = 19, X = 7.81708, Y = - 3.96219)] |
From: Robert D. <rob...@gm...> - 2025-08-10 22:41:09
|
On Fri, Aug 8, 2025 at 1:50 AM Oleg Nesterov <ol...@re...> wrote: > (%i1) '"+"(2,2) = 4; > (%o1) 2 + 2 = 4 Huh, I'm a little surprised (although not very much) that this has the expected effect ... I guess that's a %MPLUS expression instead of MPLUS, and the simplification rules for MPLUS aren't also implemented for %MPLUS. OK by me. > (%i2) '"."(matrix([1, 2], [3, 4]), matrix([1], [2])) = matrix([5],[11]); > ┌ ┐ ┌ ┐ ┌ ┐ > │ 1 2 │ │ 1 │ │ 5 │ > (%o2) (│ │) . (│ │) = │ │ > │ 3 4 │ │ 2 │ │ 11 │ Here the issue is that the operator is %MNCTIMES which does not have a right or left binding power (precedence) defined for it. Try this: :lisp (setf (get '%mnctimes 'rbp) (get 'mnctimes 'rbp)) :lisp (setf (get '%mnctimes 'lbp) (get 'mnctimes 'lbp)) which gives %MNCTIMES the same precedence, and therefore parentheses in the same places, as MNCTIMES. > (%i4) a = b . c; > (%o4) a = b . c > (%i5) '"="(a, b.c); > (%o5) a = (b . c) > (%i6) :lisp (defprop %mequal 80. lbp) > (%i6) :lisp (defprop %mequal 80. rbp) Likewise I guess we would say :lisp (setf (get '%mequal 'rbp) (get 'mequal 'rbp)) :lisp (setf (get '%mequal 'lbp) (get 'mequal 'lbp)) I don't see why the nounified operators should not have the same binding powers as the un-nounified -- I will try to remember to update grind.lisp. Robert |
From: J. M. <mi...@cg...> - 2025-08-10 18:06:57
|
Related to this, I just submitted the updated Slackbuild for 5.48.1. It will take a few days for it to show up on slackbuilds.org. It'll be here: https://slackbuilds.org/repository/15.0/academic/maxima/ (which currently still shows the 5.47.0 slackbuild.) If you have sbotools installed, you should be able to do just "sboinstall maxima" as root. Otherwise, it can be done manually. Thanks all. Judah On 8/6/25 15:11, Wolfgang Dautermann wrote: > Am 06.08.25 um 10:13 schrieb Viktor T. Toth: >> Dear all, >> >> I completed the release process for 5.48.1, hopefully without messing >> anything up. RPMs (created on Oracle OS 8/RHEL 8) and the source >> tarball are available. I also updated some of the English-language >> Web pages. >> >> I hope others will soon be able to prepare and upload a Windows and a >> MacOS version as well. > Thank you Victor and all the other members of the Maxima team. > > I released a Windows installer now. (Currently 64 bit, including CCL64). > A 32 bit version will be released later or maybe the next few days. > > I found one minimal glitch, which I included in the 5.48.1 Windows > installer (see commit 7045578). > > Best regards, Wolfgang > > > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss > |
From: Barton W. <wi...@un...> - 2025-08-08 13:16:11
|
* One thing that I see now that didn't get implemented is a way to unbox a superquoted expression so that it just becomes ordinary again. If you're interested, I can try to figure it out. Could this be as simple as: (defmvar $respect_quote t) (defmspec $superq (e) e) (defun simp-$superq (x y z) (declare (ignore y z)) (if $respect_quote x (resimplify (cadr x)))) _______________________________________________ Maxima-discuss mailing list Max...@li... https://urldefense.com/v3/__https://lists.sourceforge.net/lists/listinfo/maxima-discuss__;!!PvXuogZ4sRB2p-tU!EwyvQfYuxVLJmn4CqjYt-a9IeEQVn3Vigc0aYb_NsrmOEE17YQAewra47OovVWgKNrsyxhVmv1KDz7ixaem32g$ |
From: Oleg N. <ol...@re...> - 2025-08-08 08:50:38
|
On 08/07, Robert Dodier wrote: > > On Thu, Aug 7, 2025 at 1:09 PM Michael Gough > <inn...@gm...> wrote: > > > > I need to prevent maxima from maxima from simplifying a subexpression. Let’s say I have x+x. > > > > Try as I might, I can not keep it from becoming 2x. > > Mike, take a look at a little package I wrote called superq (for > superquote). You can find it in the folder robert-dodier/superq at: > https://github.com/maxima-project-on-github/maxima-packages Thanks, I will probably use it ;) On a related note... From time to time I do something like (%i1) '"+"(2,2) = 4; (%o1) 2 + 2 = 4 without "simp: false" and then I can copy the unsimplified expression somewhere. This mostly works, but (%i2) '"."(matrix([1, 2], [3, 4]), matrix([1], [2])) = matrix([5],[11]); ┌ ┐ ┌ ┐ ┌ ┐ │ 1 2 │ │ 1 │ │ 5 │ (%o2) (│ │) . (│ │) = │ │ │ 3 4 │ │ 2 │ │ 11 │ └ ┘ └ ┘ └ ┘ looks a bit worse. If I do (%i3) :lisp (def-lbp $matrix 201) (%i3) :lisp (def-rbp $matrix 201) then (%i3) '"."(matrix([1, 2], [3, 4]), matrix([1], [2])) = matrix([5],[11]); ┌ ┐ ┌ ┐ ┌ ┐ │ 1 2 │ │ 1 │ │ 5 │ (%o3) │ │ . │ │ = │ │ │ 3 4 │ │ 2 │ │ 11 │ └ ┘ └ ┘ └ ┘ and this matches "matrix([1, 2], [3, 4]) . matrix([1], [2]) = matrix([5],[11])" with "simp: false". :lisp (defprop %mnctimes 130. lbp) :lisp (defprop %mnctimes 129. rbp) works too and probably makes more sense, this matches "(defprop mnctimes ...)" in src/grind.lisp. Another simple example: (%i4) a = b . c; (%o4) a = b . c (%i5) '"="(a, b.c); (%o5) a = (b . c) (%i6) :lisp (defprop %mequal 80. lbp) (%i6) :lisp (defprop %mequal 80. rbp) (%i6) '"="(a, b.c); (%o6) a = b . c so perhaps it makes sense to update src/grind.lisp even if this all is purely cosmetic? Oleg. |
From: Robert D. <rob...@gm...> - 2025-08-08 06:01:37
|
On Thu, Aug 7, 2025 at 1:09 PM Michael Gough <inn...@gm...> wrote: > > I need to prevent maxima from maxima from simplifying a subexpression. Let’s say I have x+x. > > Try as I might, I can not keep it from becoming 2x. Mike, take a look at a little package I wrote called superq (for superquote). You can find it in the folder robert-dodier/superq at: https://github.com/maxima-project-on-github/maxima-packages You can load the superq.lisp file there and then you can say stuff like superq(1 + 1) and it stays unsimplified. It's kind of clumsy but maybe it's workable. One thing that I see now that didn't get implemented is a way to unbox a superquoted expression so that it just becomes ordinary again. If you're interested, I can try to figure it out. Simplification and pattern matching and all that stuff is a lot of fun; if you say more about what you're doing maybe I can provide some ideas. Robert |
From: Eduardo O. <edu...@gm...> - 2025-08-08 03:11:42
|
Hi Michael, If you are looking for an operation that is just displayed like "+" then this may have some useful ideas: http://anggtwu.net/eev-maxima.html#lazy-nouns If you find its documentation confusing feel free to e-mail me! Cheers, Eduardo Ochs http://anggtwu.net/eev-maxima.html On Thu, 7 Aug 2025 at 17:43, Michael Gough <inn...@gm...> wrote: > i need simplification to work on most expressions. I need a way to wrap a > subexpression so it doesn't simplify. I'm thinking of changing the operator > so instead of x+x I would use mikeplus(x,x). I won't define mikeplus, so it > won't simplify, but the tree will still contain the subexpression in some > form. I think that's what I need. > > |
From: Stavros M. <mac...@gm...> - 2025-08-08 00:51:37
|
One trick is to wrap the expression in a lambda, which blocks simplification: lambda([],2+2) => lambda([],2+2) But lambda([],2+2)+lambda([],2+2) => 2*lambda([],2+2) To block that, you can construct unique lambdas: lambda([z23],2+2) + lambda([z24],2+2) doesn't simplify. Then you can write a simple function to remove these lambdas. If this isn't clear, please ask for more info. -s On Thu, Aug 7, 2025, 16:42 Michael Gough <inn...@gm...> wrote: > i need simplification to work on most expressions. I need a way to wrap a > subexpression so it doesn't simplify. I'm thinking of changing the operator > so instead of x+x I would use mikeplus(x,x). I won't define mikeplus, so it > won't simplify, but the tree will still contain the subexpression in some > form. I think that's what I need. > > > On Thu, Aug 7, 2025 at 1:27 PM Barton Willis <wi...@un...> wrote: > >> Setting the option variable 'simp' to false disables simplification; for >> example, >> >> (%i101) simp : false$ >> >> (%i102) xxx : x+x; >> (%o102) x + x >> >> (%i103) xxx - 2*x; >> (%o103) (x + x) - 2 x >> >> (%i104) simp : true$ >> >> (%i105) xxx - 2*x; >> (%o105) 0 >> >> But when simp is false, few things are guaranteed to work. One of the >> few (only?) uses of setting simp to false is to define a simplification >> rule, such as 0^0 = 1. Maybe another legitimate use is an educational or >> math tutorial use. >> >> Users often want to set simp to false, but I think it rarely turns out >> well, and it usually invokes the question: Why do you need to set simp to >> false? Can you explain what you are trying to do? There might be a better >> option than turning off simplification. >> >> ------------------------------ >> *From:* Michael Gough <inn...@gm...> >> *Sent:* Thursday, August 7, 2025 3:05 PM >> *To:* <max...@li...> < >> max...@li...> >> *Subject:* [Maxima-discuss] Stop simplifying a subexpression >> >> Caution: Non-NU Email >> >> I need to prevent maxima from maxima from simplifying a subexpression. >> Let’s say I have x+x. >> >> Try as I might, I can not keep it from becoming 2x. >> >> Pkease note that x+x is just an example of a subexpression. >> >> Thanks in advance! >> Mike >> > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss > |
From: Michael G. <inn...@gm...> - 2025-08-07 20:41:40
|
i need simplification to work on most expressions. I need a way to wrap a subexpression so it doesn't simplify. I'm thinking of changing the operator so instead of x+x I would use mikeplus(x,x). I won't define mikeplus, so it won't simplify, but the tree will still contain the subexpression in some form. I think that's what I need. On Thu, Aug 7, 2025 at 1:27 PM Barton Willis <wi...@un...> wrote: > Setting the option variable 'simp' to false disables simplification; for > example, > > (%i101) simp : false$ > > (%i102) xxx : x+x; > (%o102) x + x > > (%i103) xxx - 2*x; > (%o103) (x + x) - 2 x > > (%i104) simp : true$ > > (%i105) xxx - 2*x; > (%o105) 0 > > But when simp is false, few things are guaranteed to work. One of the > few (only?) uses of setting simp to false is to define a simplification > rule, such as 0^0 = 1. Maybe another legitimate use is an educational or > math tutorial use. > > Users often want to set simp to false, but I think it rarely turns out > well, and it usually invokes the question: Why do you need to set simp to > false? Can you explain what you are trying to do? There might be a better > option than turning off simplification. > > ------------------------------ > *From:* Michael Gough <inn...@gm...> > *Sent:* Thursday, August 7, 2025 3:05 PM > *To:* <max...@li...> < > max...@li...> > *Subject:* [Maxima-discuss] Stop simplifying a subexpression > > Caution: Non-NU Email > > I need to prevent maxima from maxima from simplifying a subexpression. > Let’s say I have x+x. > > Try as I might, I can not keep it from becoming 2x. > > Pkease note that x+x is just an example of a subexpression. > > Thanks in advance! > Mike > |
From: Barton W. <wi...@un...> - 2025-08-07 20:27:44
|
Setting the option variable 'simp' to false disables simplification; for example, (%i101) simp : false$ (%i102) xxx : x+x; (%o102) x + x (%i103) xxx - 2*x; (%o103) (x + x) - 2 x (%i104) simp : true$ (%i105) xxx - 2*x; (%o105) 0 But when simp is false, few things are guaranteed to work. One of the few (only?) uses of setting simp to false is to define a simplification rule, such as 0^0 = 1. Maybe another legitimate use is an educational or math tutorial use. Users often want to set simp to false, but I think it rarely turns out well, and it usually invokes the question: Why do you need to set simp to false? Can you explain what you are trying to do? There might be a better option than turning off simplification. ________________________________ From: Michael Gough <inn...@gm...> Sent: Thursday, August 7, 2025 3:05 PM To: <max...@li...> <max...@li...> Subject: [Maxima-discuss] Stop simplifying a subexpression Caution: Non-NU Email I need to prevent maxima from maxima from simplifying a subexpression. Let’s say I have x+x. Try as I might, I can not keep it from becoming 2x. Pkease note that x+x is just an example of a subexpression. Thanks in advance! Mike |
From: Michael G. <inn...@gm...> - 2025-08-07 20:06:19
|
I need to prevent maxima from maxima from simplifying a subexpression. Let’s say I have x+x. Try as I might, I can not keep it from becoming 2x. Pkease note that x+x is just an example of a subexpression. Thanks in advance! Mike |
From: Wolfgang D. <wol...@da...> - 2025-08-06 19:11:35
|
Am 06.08.25 um 10:13 schrieb Viktor T. Toth: > Dear all, > > I completed the release process for 5.48.1, hopefully without messing > anything up. RPMs (created on Oracle OS 8/RHEL 8) and the source tarball > are available. I also updated some of the English-language Web pages. > > I hope others will soon be able to prepare and upload a Windows and a > MacOS version as well. Thank you Victor and all the other members of the Maxima team. I released a Windows installer now. (Currently 64 bit, including CCL64). A 32 bit version will be released later or maybe the next few days. I found one minimal glitch, which I included in the 5.48.1 Windows installer (see commit 7045578). Best regards, Wolfgang |
From: Raymond T. <toy...@gm...> - 2025-08-06 13:20:44
|
On 8/6/25 12:07 AM, Jaime Villate via Maxima-discuss wrote: > No. I use the standard install path recommended by the installer > (C:\maxima-current) , and my user directory is very simple > (C:\Users\jaime). It has been working correctly since last year; > something went wrong with yesterday's installation. I guess is just a > temporary glitch; I will try again next week when I return from a trip. > > By the way, "output_format_for_help:html" works fine in Windows, but > the user should also change the default value of browser ("start") to > the real name of a browser (e.g. browser:"firefox"), or change the > base_url to one with http or https (e.g. > "https::/maxima.sourceforge.io/docs/manual"). Using maxima.sourceforge.io/docs/manual is not going to work very well unless the lisp index was built using the same version as the site. I would very definitely *not* recommend doing this unless you know for a fact it would work. > > This is because the following two commands work fine in Windows CMD: > start https://site/page#section > start browser file://path/page#section > > But the command: > start file://path/page#section > > opens "page" at the top, but not in the requested "section". I've > tried many things people recommended to protect the # character > (quotes, ^, encoding, give a page title, ...) but nothing works. Maybe we should just set browser to "msedge" on windows. The Edge browser should be available on every Windows machine. Chrome or Firefox are probably available, but we don't know for sure. Of course, this is just a workaround for the issue. ​ |