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}
(162) 
_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

From: Alexander Hansen <alexanderk.hansen@gm...>  20150723 19:08:38

> On Jul 23, 2015, at 09:14, Norman Beam <ephemeris@...> wrote: > > SBCL is killing me by running out of memory on long tasks so I really > want to try GCL. > > I installed GCL 2.6.12 ANSI from source using port and tried to edit the > Maxima binary (which is a script really) to use GCL instead of SBCL by > setting > > MAXIMA_DEFAULT_LISP=gcl > > Unfortunately, Maxima keeps using SBCL instead. Any suggestions on how > to get Maxima to switch to GCL would be appreciated. > > I'm running under OSX 10.10.3 using Maxima 5.34.1 and SBCL 1.2.13 built > from source using port. > > Sorry to bother the list this. I thought I could sort this out by > myself, but I was wrong... > > Regards, > > Norman > You’re going to need to generate a maxima with different build options, apparently. Try contacting the Macports maintainer for maxima via their support channels. That’s who would be most intimately familiar with the build options that they use. —AKH 
From: Norman Beam <ephemeris@gr...>  20150723 18:47:54

SBCL is killing me by running out of memory on long tasks so I really want to try GCL. I installed GCL 2.6.12 ANSI from source using port and tried to edit the Maxima binary (which is a script really) to use GCL instead of SBCL by setting MAXIMA_DEFAULT_LISP=gcl Unfortunately, Maxima keeps using SBCL instead. Any suggestions on how to get Maxima to switch to GCL would be appreciated. I'm running under OSX 10.10.3 using Maxima 5.34.1 and SBCL 1.2.13 built from source using port. Sorry to bother the list this. I thought I could sort this out by myself, but I was wrong... Regards, Norman 
From: Richard Fateman <fateman@be...>  20150715 22:19:30

On 7/15/2015 3:03 PM, David Scherfgen wrote: > Hello again, > > I found a case where fullratsimp loops endlessly, but this time the > reason is different. > > fullratsimp applies ratsimp until the result doesn't change any more. > I found a case in which ratsimp enters a cycle of different results, > so fullratsimp never stops. > > This is the expression (it's two factors of x^5+1): > > (x+%e^((4*%i*%pi)/5))*(x+%e^((2*%i*%pi)/5)) interestingly, taking that expression and removing %i or %pi from it "fixes" the result, so it doesn't change. so it is something that is being done with exp( %i*%pi*something). This would be a bug (I suspect) in the lisp program newvar which determines what kernels to put on the lists of variables (varlist). In this case it seems to be switching between z =exp(w) and 1/z' where z' is exp(w) for w=2*%i*%pi. Same bug exhibited by radcan, switching between 2 forms. > > Applying ratsimp to it: > > (%i1) ratsimp((x+%e^((4*%i*%pi)/5))*(x+%e^((2*%i*%pi)/5))); > (%o1) > %e^((4*%i*%pi)/5)*(%e^((4*%i*%pi)/5)*x^2+(%e^((4*%i*%pi)/5)+%e^((2*%i*%pi)/5))*x+1) > (%i2) ratsimp(%); > (%o2) x^2+(%e^((2*%i*%pi)/5)+%e^((4*%i*%pi)/5))*x+%e^((4*%i*%pi)/5) > (%i3) ratsimp(%); > (%o3) > %e^((4*%i*%pi)/5)*(%e^((4*%i*%pi)/5)*x^2+(%e^((2*%i*%pi)/5)+1)*x+%e^((2*%i*%pi)/5)) > (%i4) ratsimp(%); > (%o4) > %e^((4*%i*%pi)/5)*(%e^((4*%i*%pi)/5)*x^2+(%e^((4*%i*%pi)/5)+%e^((2*%i*%pi)/5))*x+1) > > So, ratsimp cycles over 3 different results here. > > By the way, the algebraic flag helps. > > Maybe the termination criterion of fullratsimp should be changed to > "stop when you get a result that you already got before" instead of > "stop when the result doesn't change any more"? An interesting idea, but one would like to have a single canonical simplified form, not one that depended on where you started from. RJF > > Best, > David > > >  > Don't Limit Your Business. Reach for the Cloud. > GigeNET's Cloud Solutions provide you with the tools and support that > you need to offload your IT needs and focus on growing your business. > Configured For All Businesses. Start Your Cloud Today. > https://www.gigenetcloud.com/ > > > _______________________________________________ > Maximadiscuss mailing list > Maximadiscuss@... > https://lists.sourceforge.net/lists/listinfo/maximadiscuss 
From: David Scherfgen <d.scherfgen@go...>  20150715 22:03:10

Hello again, I found a case where fullratsimp loops endlessly, but this time the reason is different. fullratsimp applies ratsimp until the result doesn't change any more. I found a case in which ratsimp enters a cycle of different results, so fullratsimp never stops. This is the expression (it's two factors of x^5+1): (x+%e^((4*%i*%pi)/5))*(x+%e^((2*%i*%pi)/5)) Applying ratsimp to it: (%i1) ratsimp((x+%e^((4*%i*%pi)/5))*(x+%e^((2*%i*%pi)/5))); (%o1) %e^((4*%i*%pi)/5)*(%e^((4*%i*%pi)/5)*x^2+(%e^((4*%i*%pi)/5)+%e^((2*%i*%pi)/5))*x+1) (%i2) ratsimp(%); (%o2) x^2+(%e^((2*%i*%pi)/5)+%e^((4*%i*%pi)/5))*x+%e^((4*%i*%pi)/5) (%i3) ratsimp(%); (%o3) %e^((4*%i*%pi)/5)*(%e^((4*%i*%pi)/5)*x^2+(%e^((2*%i*%pi)/5)+1)*x+%e^((2*%i*%pi)/5)) (%i4) ratsimp(%); (%o4) %e^((4*%i*%pi)/5)*(%e^((4*%i*%pi)/5)*x^2+(%e^((4*%i*%pi)/5)+%e^((2*%i*%pi)/5))*x+1) So, ratsimp cycles over 3 different results here. By the way, the algebraic flag helps. Maybe the termination criterion of fullratsimp should be changed to "stop when you get a result that you already got before" instead of "stop when the result doesn't change any more"? Best, David 
From: Robert Dodier <robert.dodier@gm...>  20150715 19:36:11

On 20150710, sbh <sholman@...> wrote: > B(a,b,c):=( y[first(b)]+y[second(b)] )/((first(c)second(c))^2); > W([first(a)h,length(B[i])+1],append([j],listify(B[i])),append([z],fn(B[i]))) I see that sometimes there is B(...) and sometimes B[...]  Maxima will treat these as distinct and won't complain about it, so it could lead to mysterious results. Also sometimes there is w and sometimes W  again these are distinct and Maxima won't complain. Maybe these are all intentional, but perhaps it is something to review. best, Robert Dodier 
From: Richard Fateman <fateman@be...>  20150715 19:24:35

On 7/15/2015 12:13 PM, David Scherfgen wrote: > > Robert, > > In general, I agree that subst should do only literal substitution, > but with the exptsubst flag, it already has some kind of algebraic > capability. > > My suggestion was to modify only that behavior, not that of the plain > vanilla subst. > > If subst(u, sqrt(x), x^1.0) works (with exptsubst enabled), I see no > reason why subst(u, sqrt(x), x) shouldn't work. I think that this case > was simply overlooked during implementation. > This problem is easily fixed, though I'm not sure this is a general solution, by writing ratsubst(u^2,x, ....) instead of ratsubst(u,sqrt(x), ....) It is also preferable to avoid unnecessary sqrt(x)  after all, there are 2 values. The bug noted below  I haven't studied it, but in reality, radcan is not designed to solve all problems with nested radicals. The fact that it works sometimes is almost accidental. Nevertheless, an infinite loop is not an appropriate response to a command. > The ratsubst bug report: http://sourceforge.net/p/maxima/bugs/2914/ > > Best regards, > David > > Sent from my mobile phone. / Von meinem Handy aus gesendet. > > Am 15.07.2015 21:02 schrieb "Robert Dodier" <robert.dodier@... > <mailto:robert.dodier@...>>: > > On 20150713, David Scherfgen <d.scherfgen@... > <mailto:d.scherfgen@...>> wrote: > > > Therefore, I suggest that with exptsubst enabled, the subst > function should > > assume an exponent of 1 for any expression it sees that doesn't > have an > > explicit exponent. > > > > I know about the ratsubst function, which can do this when you > enable > > radsubstflag, but unfortunately this function generates endless > loops in > > some cases (bug report filed a long time ago). > > Well, I think subst should continue to carry out only explicit, formal > substitutions (i.e. ignoring algebraic rules)  that makes it > more comprehensible and more likely to work as intended. So I think in > this case we should just fix the bug or bugs in ratsubst. Can you > refer > to a bug report? > > best, > > Robert Dodier > 
From: David Scherfgen <d.scherfgen@go...>  20150715 19:16:14

Richard, I think your reply was meant to go into the other discussion, right? Sent from my mobile phone. / Von meinem Handy aus gesendet. Am 15.07.2015 21:14 schrieb "Richard Fateman" <fateman@...>: > One application for this kind of decomposition into a tower of log/exp > extensions is the Risch algorithm. (Which also might need a tower that > includes algebraic extensions  sqrts of sqrts etc) > > Another is the possibility of constructive zeroequivalence algorithms > subject to Schanuel's Conjecture. (See Wikipedia) > > The tools for such decomposition are in Maxima, but in Lisp. > except as partially exposed by ratsubst. > > The source file is nrat4.lisp, and the programs spc1spc5. > These date from about 1969 (I wrote them then), but they > may have been modified by others. And I was using a less > sophisticated Lisp, and I was less experienced in programming. > So it may not look so pretty. > > RJF > > > On 7/15/2015 11:58 AM, Robert Dodier wrote: > > On 20150713, David Scherfgen <d.scherfgen@...> wrote: > > > >> Therefore, I suggest that with exptsubst enabled, the subst function > should > >> assume an exponent of 1 for any expression it sees that doesn't have an > >> explicit exponent. > >> > >> I know about the ratsubst function, which can do this when you enable > >> radsubstflag, but unfortunately this function generates endless loops in > >> some cases (bug report filed a long time ago). > > Well, I think subst should continue to carry out only explicit, formal > > substitutions (i.e. ignoring algebraic rules)  that makes it > > more comprehensible and more likely to work as intended. So I think in > > this case we should just fix the bug or bugs in ratsubst. Can you refer > > to a bug report? > > > > best, > > > > Robert Dodier > > > > > > >  > > Don't Limit Your Business. Reach for the Cloud. > > GigeNET's Cloud Solutions provide you with the tools and support that > > you need to offload your IT needs and focus on growing your business. > > Configured For All Businesses. Start Your Cloud Today. > > https://www.gigenetcloud.com/ > > _______________________________________________ > > Maximadiscuss mailing list > > Maximadiscuss@... > > https://lists.sourceforge.net/lists/listinfo/maximadiscuss > > > >  > Don't Limit Your Business. Reach for the Cloud. > GigeNET's Cloud Solutions provide you with the tools and support that > you need to offload your IT needs and focus on growing your business. > Configured For All Businesses. Start Your Cloud Today. > https://www.gigenetcloud.com/ > _______________________________________________ > Maximadiscuss mailing list > Maximadiscuss@... > https://lists.sourceforge.net/lists/listinfo/maximadiscuss > 
From: Richard Fateman <fateman@be...>  20150715 19:13:59

One application for this kind of decomposition into a tower of log/exp extensions is the Risch algorithm. (Which also might need a tower that includes algebraic extensions  sqrts of sqrts etc) Another is the possibility of constructive zeroequivalence algorithms subject to Schanuel's Conjecture. (See Wikipedia) The tools for such decomposition are in Maxima, but in Lisp. except as partially exposed by ratsubst. The source file is nrat4.lisp, and the programs spc1spc5. These date from about 1969 (I wrote them then), but they may have been modified by others. And I was using a less sophisticated Lisp, and I was less experienced in programming. So it may not look so pretty. RJF On 7/15/2015 11:58 AM, Robert Dodier wrote: > On 20150713, David Scherfgen <d.scherfgen@...> wrote: > >> Therefore, I suggest that with exptsubst enabled, the subst function should >> assume an exponent of 1 for any expression it sees that doesn't have an >> explicit exponent. >> >> I know about the ratsubst function, which can do this when you enable >> radsubstflag, but unfortunately this function generates endless loops in >> some cases (bug report filed a long time ago). > Well, I think subst should continue to carry out only explicit, formal > substitutions (i.e. ignoring algebraic rules)  that makes it > more comprehensible and more likely to work as intended. So I think in > this case we should just fix the bug or bugs in ratsubst. Can you refer > to a bug report? > > best, > > Robert Dodier > > >  > Don't Limit Your Business. Reach for the Cloud. > GigeNET's Cloud Solutions provide you with the tools and support that > you need to offload your IT needs and focus on growing your business. > Configured For All Businesses. Start Your Cloud Today. > https://www.gigenetcloud.com/ > _______________________________________________ > Maximadiscuss mailing list > Maximadiscuss@... > https://lists.sourceforge.net/lists/listinfo/maximadiscuss 
From: David Scherfgen <d.scherfgen@go...>  20150715 19:13:12

Robert, In general, I agree that subst should do only literal substitution, but with the exptsubst flag, it already has some kind of algebraic capability. My suggestion was to modify only that behavior, not that of the plain vanilla subst. If subst(u, sqrt(x), x^1.0) works (with exptsubst enabled), I see no reason why subst(u, sqrt(x), x) shouldn't work. I think that this case was simply overlooked during implementation. The ratsubst bug report: http://sourceforge.net/p/maxima/bugs/2914/ Best regards, David Sent from my mobile phone. / Von meinem Handy aus gesendet. Am 15.07.2015 21:02 schrieb "Robert Dodier" <robert.dodier@...>: > On 20150713, David Scherfgen <d.scherfgen@...> wrote: > > > Therefore, I suggest that with exptsubst enabled, the subst function > should > > assume an exponent of 1 for any expression it sees that doesn't have an > > explicit exponent. > > > > I know about the ratsubst function, which can do this when you enable > > radsubstflag, but unfortunately this function generates endless loops in > > some cases (bug report filed a long time ago). > > Well, I think subst should continue to carry out only explicit, formal > substitutions (i.e. ignoring algebraic rules)  that makes it > more comprehensible and more likely to work as intended. So I think in > this case we should just fix the bug or bugs in ratsubst. Can you refer > to a bug report? > > best, > > Robert Dodier > > > >  > Don't Limit Your Business. Reach for the Cloud. > GigeNET's Cloud Solutions provide you with the tools and support that > you need to offload your IT needs and focus on growing your business. > Configured For All Businesses. Start Your Cloud Today. > https://www.gigenetcloud.com/ > _______________________________________________ > Maximadiscuss mailing list > Maximadiscuss@... > https://lists.sourceforge.net/lists/listinfo/maximadiscuss > 
From: Robert Dodier <robert.dodier@gm...>  20150715 19:00:18

On 20150713, David Scherfgen <d.scherfgen@...> wrote: > Therefore, I suggest that with exptsubst enabled, the subst function should > assume an exponent of 1 for any expression it sees that doesn't have an > explicit exponent. > > I know about the ratsubst function, which can do this when you enable > radsubstflag, but unfortunately this function generates endless loops in > some cases (bug report filed a long time ago). Well, I think subst should continue to carry out only explicit, formal substitutions (i.e. ignoring algebraic rules)  that makes it more comprehensible and more likely to work as intended. So I think in this case we should just fix the bug or bugs in ratsubst. Can you refer to a bug report? best, Robert Dodier 
From: Robert Dodier <robert.dodier@gm...>  20150715 18:55:37

On 20150715, John Shackell <jrs@...> wrote: > What I am trying to do is to write a structural zeroequivalence > function using differential algebra, which is perhaps a rather ambitious > project for a beginner in Maxima. That sounds interesting  what are some applications of that? > Of course %e^%e^x*%e^x is only an example of a subexpression which > might arise. I may very well need to write something along the lines > that Gunter and Richard suggest, but maybe I can avoid this by following > the suggestion of Stavros and using rat(). So thanks again for the help. Well, the problem is that you need to subvert or forestall the simplifications which Maxima wants to apply. Unfortunately it is generally impossible to selectively inhibit builtin simplifications. (It is easier to activate new simplifications.) In this case it might be possible to write e(x) or l(x) instead of %e^x or log(x) and then make up only the simplification rules that you want for those new operators. I'd be happy to help with that if you want to go down that road. best, Robert Dodier 
From: John Shackell <jrs@sh...>  20150715 07:58:28

Thanks to all for the replies. I should perhaps say a little about the context. What I am trying to do is to write a structural zeroequivalence function using differential algebra, which is perhaps a rather ambitious project for a beginner in Maxima. The algorithm requires exponentials and logarithms to be identified as 'variables', one of which is regarded as an indeterminate. This is eliminated between the input expression and its derivative. The algorithm can then be applied recursively to the result, which has fewer `variables'. Further details can be found, for example, in ISSAC 89 Proceedings, 710. Of course %e^%e^x*%e^x is only an example of a subexpression which might arise. I may very well need to write something along the lines that Gunter and Richard suggest, but maybe I can avoid this by following the suggestion of Stavros and using rat(). So thanks again for the help. John Shackell 
From: Gunter Königsmann <gunter@pe...>  20150714 20:05:41

Is there any chance of actually using variables instead of the exponential functions? If you used a and b instead of them you could do your calculations without them being simplified. Lateron the following construct: expons:[ a=%e^%e^x, b=%e^x ]; will then allow to fill in the exponents at the end of the calculation: (%i9) equation:y=a*b$ (%i10) at(equation,expons); (%o10) %e^(%e^x+x) Kind regards, Gunter. 
From: John Shackell <jrs@sh...>  20150714 16:44:41

Hi, My problem is: %e^%e^x*%e^x; produces %e^(%e^x+x). I don't want this because I want to treat %e^%e^x and %e^x as separate `variables'. I have tried expand and rat expand and I have looked for any useful flags but so far I haven't found anything. Can anyone offer any suggestions? John Shackell 
From: sbh <sholman@ua...>  20150714 15:32:03

Hello all, again, I probably didn't but I should have made it clear that y[1] and y[2] are the main inputs. Actually I am expressing a curve in terms of a local variable z, so that I have y(z) and x(z), one for each N. >From these, one can then calculate B(a,b,c) and K(a,b,c), where K(a,b,c) depends on these previous things and is just; K(a,b,c) = K^{i0,j}(z,z0) \equiv \frac{\int_{X=z}^{X=z} B^{i0,j}(z0,X)}{2(y^j(z)y^j(z))*dx^j(z)} Maybe that helps somewhat, or at least makes it more transparent. So for some better expected values, I have for the case of the following inputs (here there is only one, i.e. N=1 s.t. the superindices can be ignored or considered 1): x(z) = z^2+a y(z) = A*z B(z,z') = B*(1/((zz')^2)) * dz \otimes dz' (I really don't think I need any tensor package, but during Maxima integration there may be questions about relations between z and z'  I've only done it in Maple, but expect to be able to say z'#z, as in the next line, as they are not really in the same space.) K(z,z') = int(B(z',x),x=z..z) / [2*(2*z)*(A*zA*(z))] = b/(4*z*A*(z^2z'^2)) plugging these into the formula for w^{i0}_{1,1} \equiv w([1,1],[i0],[z']) gives w([1,1],[1],[z']) = sum_{j=1}^{N=1} residue( K(a,[1,j],[z,z']) * w([0,2],[j,j],[z,z]) , z,0) = (b^2) / (16*A*z'^4) which I verified also with Maple. There are some others in literature too, of which are, w([0,3],[1,1,1],[z1,z2,z3]) = [(b^3)/(2*A)] * product( 1/z_i^2 , i=1..3) w([0,4],[1,1,1,1],[z1,z2,z3,z4]) = [(b^5)/(4*A^2)] * product( 1/z_i^2 * sum( 3/zi^2, i=1..4) , i=1..4) w([1,2],[1,1],[z1,z2]) = [(b^4)/(4*A^2)] * [1/(8*z1^2*z2^2)] * [ 5/(z1^4) + 5/z2^4 + 3/(z1^2*z2^2) ] Okay, I've incorporated many of the suggestions already provided to me  thanks! Aside from today where I can't work on this, I'll push forward and keep trying. Thanks again, Brett On 150712 10:06 PM, Gunter Königsmann wrote: > > > Am 12. Juli 2015 15:28:57 MESZ, schrieb sbh <sholman@...>: >> Hello all, I underestimated the LaTeX process so couldn't post these >> last night. >> >> These first two are kind of the input data and take me quite a bit of >> Maxima code to compute, so I >> left it out since it is simple to compute, just lengthy (they are a >> power series with mostly regular >> pieces but also, some finite principal terms). > > Maxima is written in a interpreted language and therefore will be slower than c code optimised for a specific problem. But I > In my personal experience maxima can be quite fast with many things (a few things like the ones Robert Dodier showed you are O(n^2) by nature and therefore aren't scaleable) and if there's loads of numerical with compile() actually converts your code into assembler. Perhaps we can find a way to optimise this part of the problem, too. > > > Kind regards, > > Gunter. >> As a testbed I've been >> using the following, with the >> first 2 considered basically "input data" to the recursion, which >> effectively replaces the lengthy >> code's output. >> >> y[1]:z^2$ >> y[2]:z0^2$ >> B(a,b,c):=( y[first(b)]+y[second(b)] )/((first(c)second(c))^2); >> K(a,b,c):=y[first(b)]y[second(b)]+first(c)*u+second(c)*v; >> >> and excluding the residue calculation, and for N=2 (the number of >> y[i]), >> >> for w([0,2],[1,1],[z0,z1]) > >> B(a,b,c) > >> (y[1]+y[1]) / ((z0z1)^2) > >> (z^2+z0^2)/((z0z1)^2) >> >> for w([1,1],[1],[z0]) > >> \sum_{j=1}^{N=2} Res_{z \to 0} K([1,1],[i0=1,j],[z,z]) * >> w([0,2],[j,j],[z,z]) > >> K([1,1],[i0=1,j=1],[z,z0]*w([0,2],[j=1,j=1],[z,z]) + >> K([1,1],[i0=1,j=2],[z,z0]*w([0,2],[j=2,j=2],[z,z]) >> >> for w([2,2],[2],[z0]) > >> \sum_{j=1}^{N=2} Res_{z \to 0} K([1,1],[i0=2,j],[z,z]) * >> w([0,2],[j,j],[z,z]) > >> K([1,1],[i0=2,j=1],[z,z0]*w([0,2],[j=1,j=1],[z,z]) + >> K([1,1],[i0=2,j=2],[z,z0]*w([0,2],[j=2,j=2],[z,z]) >> >> These prior two are just the two "base" cases. The rest got rather long >> and I gave up trying to >> LaTeX them up last night. Instead this link will direct one to the >> scans on box.com  >> https://app.box.com/s/sz093rasdp5jlcxrlisopfb16xwra7cq  this way one >> can see the derivation too. >> Anyone with the link can view it. Note, the one that says "cont'd" at >> the top left is the second >> page to the one with the staple, also for low order in eta. >> >> IMG_20150712_064844.jpg then IMG_20150712_065002.jpg >> >> Also in the box.com folder is the original problem statement. >> >> https://app.box.com/s/sz093rasdp5jlcxrlisopfb16xwra7cq >> >> Thanks again! >> Brett >> >> P.S. Please let me know if anything is confusing :) >> >> On 150711 11:49 AM, sbh wrote: >>> These are all great comments to me, so thank you both for them! I >> will try to implement them. I must >>> admit, I've only had experience in C/C++ and it has always been >> numerical, e.g., solving >>> conservation equations. Maybe its the same, maybe not, but in my mind >> it seems different ;) >>> >>> On 150711 01:01 AM, Robert Dodier wrote: >>>> At the moment I have only some superficial comments about coding >> style. >>>> I'll try to take a closer look later on. If you can post some >> examples >>>> of expected outputs, that would be very helpful. >>>> >>> >>> I will post later today the hand calculations for several cases, >> probably not as an attachment (due >>> to the size limit of 40kb) but as LaTeX (I'll make sure it compiles) >>  unless there is a better way. >>> >>>> On 20150710, sbh <sholman@...> wrote: >>>> >>>>> fn(a):=block([], >>>>> tmp:[], >>>>> for i:1 thru length(a) do( >>>>> tmp:push(concat(z,a[i]),tmp) >>>>> ), >>>>> reverse(tmp) >>>>> ); >>>> >>>> My advice is to try to avoid building up lists element by element, >> and >>>> avoid modifying lists (or anything else). E.g. this function might >> be: >>>> >>>> fn (a) := makelist (concat ('z, n), n, a); >>>> >>>> or >>>> >>>> fn (a) := map (lambda ([n], concat ('z, n)), a); >>>> >>>>> w(a,b,c):=block([], >>>> >>>>> print("c is: ",c), if(F=1) then break() else 1, >>>> >>>> My advice is to omit stuff that doesn't matter  in these cases, >>>> block([], ...) is equivalent to block(...) and, indeed, equivalent >> to >>>> (...). Also the condition in an "if" doesn't need be to wrapped in >>>> parentheses. >>>> >>>>> if (first(a)=0 and second(a)=2) then >>>> >>>> Variable a is always a list of 2 elements, isn't it? If so, in this >> case >>>> you can just write >>>> >>> >>> Yes, a is always a list of 2 elements, g and n. >>> >>>> if a = [0, 2] then ... >>>> >>>>> return(0) >>>> >>>> 'return' doesn't return a value from a function, in contrast to many >>>> other languages. See the documentation  ? return and ? block. >>>> >>>>> print("Check each element in A and B union to {1,...,n}, i.e. >> union(A[i],B[i])={1,...,internal >>>>> n}"), >>>> >>>> If you are constructing set partitions, maybe set_partitions does >> the >>>> job for you. >>> >>> Yet another function I hadn't seen yet ;) >>> >>>> >>>>> /*should this be memoizing?*/ >>>> >>>> Well, memoizing functions are just an efficiency technique. >> Memoization >>>> could speed up some computations but won't make them different. >>>> >>>>> ) >>>>> + u* >>>>> ( >>>> >>>> My advice is to compute the terms separately and then combine them. >> So >>>> something like >>>> >>> >>> okay, will do so >>> >>>> foo1 : (some complicated stuff), >>>> foo2 : (more stuff), >>>> foo3 : foo1 + u*foo2, >>>> ... >>>> >>>> That's it for now  bear in mind that this stuff is mostly pretty >>>> minor. The most important bit is that 'return' may not be doing >>>> what you expect. >>>> >>> >>> Thanks. I'll look at ? block and ? return again. It is fairly concise >> and as a newbie I may need >>> more understanding of something more fundamental... I'll definitely >> check out the documentation site >>> on Maxima: http://maxima.sourceforge.net/documentation.html >>> >>>> Hope this helps. Good luck and keep us posted. If you have >> workedout >>>> examples, that could help a lot. >>>> >>>> Robert Dodier >>>> >>>> >>>> >>  >>>> Don't Limit Your Business. Reach for the Cloud. >>>> GigeNET's Cloud Solutions provide you with the tools and support >> that >>>> you need to offload your IT needs and focus on growing your >> business. >>>> Configured For All Businesses. Start Your Cloud Today. >>>> https://www.gigenetcloud.com/ >>>> _______________________________________________ >>>> Maximadiscuss mailing list >>>> Maximadiscuss@... >>>> https://lists.sourceforge.net/lists/listinfo/maximadiscuss >>>> >>> >>>> >>>> >>>>> fn(a):=block([], >>>>> tmp:[], >>>>> for i:1 thru length(a) do( >>>>> tmp:push(concat(z,a[i]),tmp) >>>>> ), >>>>> reverse(tmp) >>>>> ); >>>> >>>> A few details: >>>> >>>> The function length is called for each loop iterationfor long >> lists this can be spendy. >>>> Also the the cost of a[i] is O(i). Thus the cost of fn is >> O(length(a)^2). Robert's suggestions are O(length(a)). >>> >>> I see. Honestly I was just trying to get it to work first ;). I will >> try to make it more efficient >>> too. Thanks for this explicit example! >>> >>>> >>>> Finally, to make tmp local, you need block([tmp : []], .... ) or >> block([tmp], ..., not block([], tmp : []. >>> >>> Oh, okay. >>> >>>> >>>> Barton >>> >>> Thank you both again, >>> Brett >>> >> >>  >> Don't Limit Your Business. Reach for the Cloud. >> GigeNET's Cloud Solutions provide you with the tools and support that >> you need to offload your IT needs and focus on growing your business. >> Configured For All Businesses. Start Your Cloud Today. >> https://www.gigenetcloud.com/ >> _______________________________________________ >> Maximadiscuss mailing list >> Maximadiscuss@... >> https://lists.sourceforge.net/lists/listinfo/maximadiscuss > 
From: Gunter Königsmann <gunter@pe...>  20150713 18:34:42

On Mo, Jul 13, 2015 at 11:45 , David Scherfgen <d.scherfgen@...> wrote: > Hi, > > "sometimes", Maxima hangs when evaluating the following expression: > > ratsimp(x/(sqrt((x)^(2/3)+1)), x), algebraic; On my computer the crash seems to occur every time. My build_info() is: Maxima version: "branch_5_36_base_146_ge315033" Maxima build date: "20150703 21:04:15" Host type: "x86_64unknownlinuxgnu" Lisp implementation type: "SBCL" Lisp implementation version: "1.2.13.debian" Kind regards, Gunter. 
From: Raymond Toy <toy.raymond@gm...>  20150713 15:41:37

>>>>> "Viktor" == Viktor T Toth <vttoth@...> writes: Viktor> Daniel, Viktor> Unfortunately this is not a MAXIMA issue but a LISP (GCL vs. SBCL) thing. See for yourself: But, since icurvature is defined using defmfun, we could make defmfun produce better error messages. Maxima, in various places, does support nicer error messages for invalid number of arguments, but defmfun basically lets the underlying lisp handle (or not) an incorrect number of arguments. Adding this checking will probably slow down maxima and increase consing. Perhaps that's ok for uservisible functions like icurvature, but I think many internal functions are also defined via defmfun, so slowing down maxima is probably not a great idea.  Ray 
From: David Scherfgen <d.scherfgen@go...>  20150713 14:28:23

Hello, I think the exptsubst flag is great  it allows you to do things like: (%i1) subst(u, sqrt(x), x^2 + x^3 + x^4), exptsubst : true; (%o1) u^8+u^6+u^4 Unfortunately, it doesn't work when there is no explicit exponent given: (%i1) subst(u, sqrt(x), x), exptsubst : true; (%o1) x I would like to get u^2 as the answer, since sqrt(x)^2 = x. There is a workaround. If I write x as x^1.0 and use ratsimp on the result: (%i1) ratsimp(u, sqrt(x), x^1.0), exptsubst : true; rat: replaced 1.0 by 1/1 = 1.0 (%o1) u However, you can't just replace every occurrence of x by x^1.0, since this will change the result in some cases where the original approach works, e.g. for x^(3/2): (%i1) ratsimp(subst(u, sqrt(x), (x^1.0)^(3/2))), exptsubst : true; rat: replaced 2.0 by 2/1 = 2.0 (%o1) u^2*abs(u) (The answer without ^1.0 is u^3.) Therefore, I suggest that with exptsubst enabled, the subst function should assume an exponent of 1 for any expression it sees that doesn't have an explicit exponent. I know about the ratsubst function, which can do this when you enable radsubstflag, but unfortunately this function generates endless loops in some cases (bug report filed a long time ago). Best regards, David 
From: David Scherfgen <d.scherfgen@go...>  20150713 10:42:42

It seems like I was wrong  the following *always* loops, there's no need to call another function before: ratsimp(x/(sqrt(x^(2/3)+1)),x),algebraic; I will report a bug. 20150713 11:57 GMT+02:00 David Scherfgen <d.scherfgen@...>: > Additional information: > > 1.) Doing ratvars(x) instead of specifying x as the second argument to > ratsimp results in the same endless loop. > 2.) Calling reset() doesn't help, I have to restart Maxima completely. > > 20150713 11:45 GMT+02:00 David Scherfgen <d.scherfgen@...>: > >> Hi, >> >> "sometimes", Maxima hangs when evaluating the following expression: >> >> ratsimp(x/(sqrt((x)^(2/3)+1)), x), algebraic; >> >> Two funny things I noted: >> 1.) It doesn't hang when I don't specify x as the second parameter to >> ratsimp. >> 2.) It only hangs after evaluating some other expression previously, >> which I haven't identified yet. >> >> This seems to be another case where some function "corrupts" some >> internal state of Maxima. >> >> I encountered lots of other cases like this, but I could always solve >> them by doing this once in a while: >> >> ?genvar : false$ >> ?varlist : false$ >> >> However, the above case is not solved by this. >> >> Therefore, there must be some other internal state that gets corrupted. >> >> Does anyone have any idea what state that could be? >> >> Best regards, >> David >> > > 
From: David Scherfgen <d.scherfgen@go...>  20150713 09:57:50

Additional information: 1.) Doing ratvars(x) instead of specifying x as the second argument to ratsimp results in the same endless loop. 2.) Calling reset() doesn't help, I have to restart Maxima completely. 20150713 11:45 GMT+02:00 David Scherfgen <d.scherfgen@...>: > Hi, > > "sometimes", Maxima hangs when evaluating the following expression: > > ratsimp(x/(sqrt((x)^(2/3)+1)), x), algebraic; > > Two funny things I noted: > 1.) It doesn't hang when I don't specify x as the second parameter to > ratsimp. > 2.) It only hangs after evaluating some other expression previously, which > I haven't identified yet. > > This seems to be another case where some function "corrupts" some internal > state of Maxima. > > I encountered lots of other cases like this, but I could always solve them > by doing this once in a while: > > ?genvar : false$ > ?varlist : false$ > > However, the above case is not solved by this. > > Therefore, there must be some other internal state that gets corrupted. > > Does anyone have any idea what state that could be? > > Best regards, > David > 
From: David Scherfgen <d.scherfgen@go...>  20150713 09:46:02

Hi, "sometimes", Maxima hangs when evaluating the following expression: ratsimp(x/(sqrt((x)^(2/3)+1)), x), algebraic; Two funny things I noted: 1.) It doesn't hang when I don't specify x as the second parameter to ratsimp. 2.) It only hangs after evaluating some other expression previously, which I haven't identified yet. This seems to be another case where some function "corrupts" some internal state of Maxima. I encountered lots of other cases like this, but I could always solve them by doing this once in a while: ?genvar : false$ ?varlist : false$ However, the above case is not solved by this. Therefore, there must be some other internal state that gets corrupted. Does anyone have any idea what state that could be? Best regards, David 
From: Gunter Königsmann <gunter@pe...>  20150713 04:06:44

Am 12. Juli 2015 15:28:57 MESZ, schrieb sbh <sholman@...>: >Hello all, I underestimated the LaTeX process so couldn't post these >last night. > >These first two are kind of the input data and take me quite a bit of >Maxima code to compute, so I >left it out since it is simple to compute, just lengthy (they are a >power series with mostly regular >pieces but also, some finite principal terms). Maxima is written in a interpreted language and therefore will be slower than c code optimised for a specific problem. But I In my personal experience maxima can be quite fast with many things (a few things like the ones Robert Dodier showed you are O(n^2) by nature and therefore aren't scaleable) and if there's loads of numerical with compile() actually converts your code into assembler. Perhaps we can find a way to optimise this part of the problem, too. Kind regards, Gunter. >As a testbed I've been >using the following, with the >first 2 considered basically "input data" to the recursion, which >effectively replaces the lengthy >code's output. > >y[1]:z^2$ >y[2]:z0^2$ >B(a,b,c):=( y[first(b)]+y[second(b)] )/((first(c)second(c))^2); >K(a,b,c):=y[first(b)]y[second(b)]+first(c)*u+second(c)*v; > >and excluding the residue calculation, and for N=2 (the number of >y[i]), > >for w([0,2],[1,1],[z0,z1]) > > B(a,b,c) > > (y[1]+y[1]) / ((z0z1)^2) > > (z^2+z0^2)/((z0z1)^2) > >for w([1,1],[1],[z0]) > >\sum_{j=1}^{N=2} Res_{z \to 0} K([1,1],[i0=1,j],[z,z]) * >w([0,2],[j,j],[z,z]) > > K([1,1],[i0=1,j=1],[z,z0]*w([0,2],[j=1,j=1],[z,z]) + > K([1,1],[i0=1,j=2],[z,z0]*w([0,2],[j=2,j=2],[z,z]) > >for w([2,2],[2],[z0]) > >\sum_{j=1}^{N=2} Res_{z \to 0} K([1,1],[i0=2,j],[z,z]) * >w([0,2],[j,j],[z,z]) > > K([1,1],[i0=2,j=1],[z,z0]*w([0,2],[j=1,j=1],[z,z]) + > K([1,1],[i0=2,j=2],[z,z0]*w([0,2],[j=2,j=2],[z,z]) > >These prior two are just the two "base" cases. The rest got rather long >and I gave up trying to >LaTeX them up last night. Instead this link will direct one to the >scans on box.com  >https://app.box.com/s/sz093rasdp5jlcxrlisopfb16xwra7cq  this way one >can see the derivation too. >Anyone with the link can view it. Note, the one that says "cont'd" at >the top left is the second >page to the one with the staple, also for low order in eta. > >IMG_20150712_064844.jpg then IMG_20150712_065002.jpg > >Also in the box.com folder is the original problem statement. > >https://app.box.com/s/sz093rasdp5jlcxrlisopfb16xwra7cq > >Thanks again! >Brett > >P.S. Please let me know if anything is confusing :) > >On 150711 11:49 AM, sbh wrote: >> These are all great comments to me, so thank you both for them! I >will try to implement them. I must >> admit, I've only had experience in C/C++ and it has always been >numerical, e.g., solving >> conservation equations. Maybe its the same, maybe not, but in my mind >it seems different ;) >> >> On 150711 01:01 AM, Robert Dodier wrote: >>> At the moment I have only some superficial comments about coding >style. >>> I'll try to take a closer look later on. If you can post some >examples >>> of expected outputs, that would be very helpful. >>> >> >> I will post later today the hand calculations for several cases, >probably not as an attachment (due >> to the size limit of 40kb) but as LaTeX (I'll make sure it compiles) > unless there is a better way. >> >>> On 20150710, sbh <sholman@...> wrote: >>> >>>> fn(a):=block([], >>>> tmp:[], >>>> for i:1 thru length(a) do( >>>> tmp:push(concat(z,a[i]),tmp) >>>> ), >>>> reverse(tmp) >>>> ); >>> >>> My advice is to try to avoid building up lists element by element, >and >>> avoid modifying lists (or anything else). E.g. this function might >be: >>> >>> fn (a) := makelist (concat ('z, n), n, a); >>> >>> or >>> >>> fn (a) := map (lambda ([n], concat ('z, n)), a); >>> >>>> w(a,b,c):=block([], >>> >>>> print("c is: ",c), if(F=1) then break() else 1, >>> >>> My advice is to omit stuff that doesn't matter  in these cases, >>> block([], ...) is equivalent to block(...) and, indeed, equivalent >to >>> (...). Also the condition in an "if" doesn't need be to wrapped in >>> parentheses. >>> >>>> if (first(a)=0 and second(a)=2) then >>> >>> Variable a is always a list of 2 elements, isn't it? If so, in this >case >>> you can just write >>> >> >> Yes, a is always a list of 2 elements, g and n. >> >>> if a = [0, 2] then ... >>> >>>> return(0) >>> >>> 'return' doesn't return a value from a function, in contrast to many >>> other languages. See the documentation  ? return and ? block. >>> >>>> print("Check each element in A and B union to {1,...,n}, i.e. >union(A[i],B[i])={1,...,internal >>>> n}"), >>> >>> If you are constructing set partitions, maybe set_partitions does >the >>> job for you. >> >> Yet another function I hadn't seen yet ;) >> >>> >>>> /*should this be memoizing?*/ >>> >>> Well, memoizing functions are just an efficiency technique. >Memoization >>> could speed up some computations but won't make them different. >>> >>>> ) >>>> + u* >>>> ( >>> >>> My advice is to compute the terms separately and then combine them. >So >>> something like >>> >> >> okay, will do so >> >>> foo1 : (some complicated stuff), >>> foo2 : (more stuff), >>> foo3 : foo1 + u*foo2, >>> ... >>> >>> That's it for now  bear in mind that this stuff is mostly pretty >>> minor. The most important bit is that 'return' may not be doing >>> what you expect. >>> >> >> Thanks. I'll look at ? block and ? return again. It is fairly concise >and as a newbie I may need >> more understanding of something more fundamental... I'll definitely >check out the documentation site >> on Maxima: http://maxima.sourceforge.net/documentation.html >> >>> Hope this helps. Good luck and keep us posted. If you have >workedout >>> examples, that could help a lot. >>> >>> Robert Dodier >>> >>> >>> > >>> Don't Limit Your Business. Reach for the Cloud. >>> GigeNET's Cloud Solutions provide you with the tools and support >that >>> you need to offload your IT needs and focus on growing your >business. >>> Configured For All Businesses. Start Your Cloud Today. >>> https://www.gigenetcloud.com/ >>> _______________________________________________ >>> Maximadiscuss mailing list >>> Maximadiscuss@... >>> https://lists.sourceforge.net/lists/listinfo/maximadiscuss >>> >> >>> >>> >>>> fn(a):=block([], >>>> tmp:[], >>>> for i:1 thru length(a) do( >>>> tmp:push(concat(z,a[i]),tmp) >>>> ), >>>> reverse(tmp) >>>> ); >>> >>> A few details: >>> >>> The function length is called for each loop iterationfor long >lists this can be spendy. >>> Also the the cost of a[i] is O(i). Thus the cost of fn is >O(length(a)^2). Robert's suggestions are O(length(a)). >> >> I see. Honestly I was just trying to get it to work first ;). I will >try to make it more efficient >> too. Thanks for this explicit example! >> >>> >>> Finally, to make tmp local, you need block([tmp : []], .... ) or >block([tmp], ..., not block([], tmp : []. >> >> Oh, okay. >> >>> >>> Barton >> >> Thank you both again, >> Brett >> > > >Don't Limit Your Business. Reach for the Cloud. >GigeNET's Cloud Solutions provide you with the tools and support that >you need to offload your IT needs and focus on growing your business. >Configured For All Businesses. Start Your Cloud Today. >https://www.gigenetcloud.com/ >_______________________________________________ >Maximadiscuss mailing list >Maximadiscuss@... >https://lists.sourceforge.net/lists/listinfo/maximadiscuss  Diese Nachricht wurde von meinem AndroidMobiltelefon mit K9 Mail gesendet. 
From: edgar <edgarrft@we...>  20150712 19:26:45

Am Sun, 12 Jul 2015 12:31:02 0400 schrieb "Viktor T. Toth" <vttoth@...>: > Daniel, > > Unfortunately this is not a MAXIMA issue but a LISP (GCL vs. SBCL) > thing. See for yourself: > > $ ./maximalocal lisp gcl > Maxima branch_5_36_base_155_gb0050ec http://maxima.sourceforge.net > using Lisp GNU Common Lisp (GCL) GCL 2.6.8 > 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) load(itensor); > (%o1) /home/vttoth/dev/maxima/code/share/tensor/itensor.lisp > (%i2) icurvature([i,j,k],[l],m); > > Maxima encountered a Lisp error: > > Error in $ICURVATURE [or a callee]: $ICURVATURE [or a callee] > requires less than three arguments. > > Automatically continuing. > To enable the Lisp debugger set *debuggerhook* to nil. > (%i3) ^D > > $ ./maximalocal lisp sbcl > Maxima branch_5_36_base_155_gb0050ec http://maxima.sourceforge.net > using Lisp SBCL 1.0.54 > 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) load(itensor); > STYLEWARNING: redefining MAXIMA::$NAME in DEFUN > STYLEWARNING: redefining MAXIMA::DERIV in DEFUN > STYLEWARNING: redefining MAXIMA::SDIFF in DEFUN > STYLEWARNING: redefining MAXIMA::I$DEPENDENCIES in DEFUN > STYLEWARNING: redefining MAXIMA::$DECSYM in DEFUN > STYLEWARNING: redefining MAXIMA::$CANFORM in DEFUN > (%o1) share/tensor/itensor.lisp > (%i2) icurvature([i,j,k],[l],m); > > Maxima encountered a Lisp error: > > invalid number of arguments: 3 > > Automatically continuing. > To enable the Lisp debugger set *debuggerhook* to nil. > (%i3) ^D > > > Older Windows distributions of Maxima were compiled with GCL; more > recently, SBCL was used, with different idiosyncrasies. > > Hi Maxima list, The complete function call (the name of the function that caused the error including all of its arguments) can be easily read from the first line of the Common Lisp backtrace. The particular problem with Maxima and SBCL is that Maxima hides this information as long as the *debuggerhook* is not NIL:  transcript of Maxima session  (%i5) :lisp (setf *debuggerhook* nil) NIL (%i5) icurvature([i,j,k],[l],m); debugger invoked on a SBINT:SIMPLEPROGRAMERROR in thread #<THREAD "main thread" RUNNING {10054AEDB3}>: invalid number of arguments: 3 Type HELP for debugger help, or (SBEXT:EXIT) to exit from SBCL. restarts (invokable by number or by possiblyabbreviated name): 0: [MACSYMAQUIT] Maxima toplevel 1: [CONTINUE ] Ignore runtime option eval "(cluser::run)". 2: [ABORT ] Skip rest of eval and load options. 3: Skip to toplevel READ/EVAL/PRINT loop. 4: [EXIT ] Exit SBCL (calling #'EXIT, killing the process). ($ICURVATURE ((MLIST SIMP) $I $J $K) ((MLIST SIMP) $L) $M) [tl,external] 0]  end of Maxima transcript  The function call that caused the error is: ($ICURVATURE ((MLIST SIMP) $I $J $K) ((MLIST SIMP) $L) $M) I agree that for a Maxima novice this looks like an intimidating mess, but the real problem is that Maxima hides information. Unfortunately I have no good proposal how to solve this problem.  edgar > Original Message > From: Daniel Volinski [mailto:danielvolinski@...] > Sent: Sunday, July 12, 2015 11:58 AM > To: Maximadiscuss > Subject: [Maximadiscuss] Degradation in error report > > Hi All, > > Using wxMaxima 5.36.1 sbcl on Windows 8.1 x64 > > Browsing through some old PDF files, I discovered that the error > messages have degraded. > > In the PDF file (from several years ago) I got the following error > message: > > icurvature([i,j,k],[l],m); > > Maxima encountered a Lisp error: Error in $ICURVATURE [or a callee]: > $ICURVATURE [or a callee] requires less than three arguments. > Automatically continuing. > To enable the Lisp debugger set *debuggerhook* to nil. > > But in the latest version, the error message for the same command is: > > Maxima encountered a Lisp error: > invalid number of arguments: 3 > Automatically continuing. > To enable the Lisp debugger set *debuggerhook* to nil. > > Did you notice the missing function name? > > Is there any way to restore (or even expand) the error messages to > include at least the function name? > > Daniel Volinski >  The author of this email does not necessarily endorse the following advertisements, which are the sole responsibility of the advertiser: 
From: Viktor T. Toth <vttoth@vt...>  20150712 16:48:36

Daniel, Unfortunately this is not a MAXIMA issue but a LISP (GCL vs. SBCL) thing. See for yourself: $ ./maximalocal lisp gcl Maxima branch_5_36_base_155_gb0050ec http://maxima.sourceforge.net using Lisp GNU Common Lisp (GCL) GCL 2.6.8 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) load(itensor); (%o1) /home/vttoth/dev/maxima/code/share/tensor/itensor.lisp (%i2) icurvature([i,j,k],[l],m); Maxima encountered a Lisp error: Error in $ICURVATURE [or a callee]: $ICURVATURE [or a callee] requires less than three arguments. Automatically continuing. To enable the Lisp debugger set *debuggerhook* to nil. (%i3) ^D $ ./maximalocal lisp sbcl Maxima branch_5_36_base_155_gb0050ec http://maxima.sourceforge.net using Lisp SBCL 1.0.54 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) load(itensor); STYLEWARNING: redefining MAXIMA::$NAME in DEFUN STYLEWARNING: redefining MAXIMA::DERIV in DEFUN STYLEWARNING: redefining MAXIMA::SDIFF in DEFUN STYLEWARNING: redefining MAXIMA::I$DEPENDENCIES in DEFUN STYLEWARNING: redefining MAXIMA::$DECSYM in DEFUN STYLEWARNING: redefining MAXIMA::$CANFORM in DEFUN (%o1) share/tensor/itensor.lisp (%i2) icurvature([i,j,k],[l],m); Maxima encountered a Lisp error: invalid number of arguments: 3 Automatically continuing. To enable the Lisp debugger set *debuggerhook* to nil. (%i3) ^D Older Windows distributions of Maxima were compiled with GCL; more recently, SBCL was used, with different idiosyncrasies. Viktor Original Message From: Daniel Volinski [mailto:danielvolinski@...] Sent: Sunday, July 12, 2015 11:58 AM To: Maximadiscuss Subject: [Maximadiscuss] Degradation in error report Hi All, Using wxMaxima 5.36.1 sbcl on Windows 8.1 x64 Browsing through some old PDF files, I discovered that the error messages have degraded. In the PDF file (from several years ago) I got the following error message: icurvature([i,j,k],[l],m); Maxima encountered a Lisp error: Error in $ICURVATURE [or a callee]: $ICURVATURE [or a callee] requires less than three arguments. Automatically continuing. To enable the Lisp debugger set *debuggerhook* to nil. But in the latest version, the error message for the same command is: Maxima encountered a Lisp error: invalid number of arguments: 3 Automatically continuing. To enable the Lisp debugger set *debuggerhook* to nil. Did you notice the missing function name? Is there any way to restore (or even expand) the error messages to include at least the function name? Daniel Volinski 
From: Daniel Volinski <danielvolinski@ya...>  20150712 15:57:43

Hi All, Using wxMaxima 5.36.1 sbcl on Windows 8.1 x64 Browsing through some old PDF files, I discovered that the error messages have degraded. In the PDF file (from several years ago) I got the following error message: icurvature([i,j,k],[l],m); Maxima encountered a Lisp error: Error in $ICURVATURE [or a callee]: $ICURVATURE [or a callee] requires less than three arguments. Automatically continuing. To enable the Lisp debugger set *debuggerhook* to nil. But in the latest version, the error message for the same command is: Maxima encountered a Lisp error: invalid number of arguments: 3 Automatically continuing. To enable the Lisp debugger set *debuggerhook* to nil. Did you notice the missing function name? Is there any way to restore (or even expand) the error messages to include at least the function name? Daniel Volinski 