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}
(151) 
_{Sep}

_{Oct}

_{Nov}

_{Dec}

S  M  T  W  T  F  S 







1

2

3

4

5

6

7
(1) 
8

9
(3) 
10
(3) 
11
(1) 
12
(7) 
13
(8) 
14
(13) 
15
(18) 
16
(13) 
17
(11) 
18
(17) 
19
(25) 
20
(22) 
21
(10) 
22
(2) 
23
(16) 
24
(5) 
25
(11) 
26
(10) 
27
(10) 
28
(26) 

From: Robert Dodier <robert.dodier@gm...>  20140225 20:32:39

On 20140225, Norman Beam <ephemeris@...> wrote: > /Users/norman/.maxima/binary/binarysbcl/share/draw/grcommon.fasl" > {1005780B23}> > is a fasl file compiled with SBCL 1.1.14, and can't be loaded into SBCL > 1.1.15. I see that file is in the cache of compiled files which Maxima maintains  just nuke (rm rf, be careful I guess) ~/.maxima/binary and Maxima will recompile that stuff (using the current version of Lisp). HTH Robert Dodier 
From: Norman Beam <ephemeris@gr...>  20140225 20:16:34

Robert, Thanks for the prompts reply! If I parse this correctly I've bumped into the versioning getting out of line with SBCL? (%i3) :lisp (load "/opt/local/share/maxima/5.30.0/share/draw/draw.lisp"); ;; loading #P"/Users/norman/.maxima/binary/binarysbcl/share/draw/grcommon.fasl" Maxima encountered a Lisp error: #<SBSYS:FDSTREAM for "file /Users/norman/.maxima/binary/binarysbcl/share/draw/grcommon.fasl" {1005780B23}> is a fasl file compiled with SBCL 1.1.14, and can't be loaded into SBCL 1.1.15. Automatically continuing. To enable the Lisp debugger set *debuggerhook* to nil. ; ; compilation unit aborted ; caught 1 fatal ERROR condition (%i3) Anything clever I can do or do I just have to trick ports into using the older version of SBCL? Best regards, Norman On 2/25/14 2:06 PM, Robert Dodier wrote: > On 20140225, Norman Beam <ephemeris@...> wrote: > >> loadfile: failed to load /opt/local/share/maxima/5.30.0/share/draw/draw.lisp > In the command line user interface, can you try: > > (%i1) :lisp (load "/opt/local/share/maxima/5.30.0/share/draw/draw.lisp") > > I think that might give a more specific error message. > > best > > Robert Dodier > > >  > Flowbased realtime traffic analytics software. Cisco certified tool. > Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer > Customize your own dashboards, set traffic alerts and generate reports. > Network behavioral analysis & security monitoring. Allinone tool. > http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk > _______________________________________________ > Maximadiscuss mailing list > Maximadiscuss@... > https://lists.sourceforge.net/lists/listinfo/maximadiscuss > 
From: Robert Dodier <robert.dodier@gm...>  20140225 19:07:16

On 20140225, Norman Beam <ephemeris@...> wrote: > loadfile: failed to load /opt/local/share/maxima/5.30.0/share/draw/draw.lisp In the command line user interface, can you try: (%i1) :lisp (load "/opt/local/share/maxima/5.30.0/share/draw/draw.lisp") I think that might give a more specific error message. best Robert Dodier 
From: Norman Beam <ephemeris@gr...>  20140225 17:06:10

I need a suggestion on how to debug this. I run wxmaxima under OSX 10.8.5 having built it with the port command. To use the draw2d() command I've always had to start by loading draw. This worked fine until I updated wxmaxima this morning. Now it won't return when I enter load(draw); I uninstalled and rebuilt wxmaxima and see the same problem. I downloaded the current wxmaxima 13.04.0/Maxima 5.30.0 prebuilt binary from sourceforge and get the same result with wxmaxima hanging with 'Reading Maxima output' displayed in the status field at the bottom of the wxmaxima window. I tried it from xmaxima and see this: (%i2) load(draw); ;; loading #P"/Users/norman/.maxima/binary/binarysbcl/share/draw/grcommon.fasl" ; ; compilation unit aborted ; caught 1 fatal ERROR condition ; ; compilation unit aborted ; caught 1 fatal ERROR condition loadfile: failed to load /opt/local/share/maxima/5.30.0/share/draw/draw.lisp  an error. To debug this try: debugmode(true); (%i3) The file draw.lisp seems to be there. Any clues how I might debug this problem? Thanks in advance. Norman 
From: Raymond Toy <toy.raymond@gm...>  20140225 02:39:05

>>>>> "Edwin" == Edwin Woollett <woollett@...> writes: [snip] Edwin> By the way, I think it is important for users to see all Edwin> the information quad_qags returns for the outer Edwin> integration, since this can give a clue to potential Edwin> problems. (I use this return information in my nint Edwin> package, for example, for both one and two dimensional Edwin> integrals.) For multiple integrals, I would treat the returned values with some suspicion because it doesn't include any information from the inner integrals. The returned accuracy may be way more accurate than is warranted from the accuracy of the inner integrals. Ray 
From: Raymond Toy <toy.raymond@gm...>  20140225 00:40:14

>>>>> "Robert" == Robert Dodier <robert.dodier@...> writes: Robert> On 20140221, Raymond Toy <toy.raymond@...> wrote: >> Suggestions on what I should do? Should I revert the change? >> Should we just say you have to quote the inner calls to >> quadpack? The former is not so nice since some bug was fixed, >> but the latter is not nice either since that's an incompatible >> change. Robert> Well, I can see advantages either way, but I am learning Robert> towards reverting the change. Maxima has a general policy I'll revert soon. Got to find the bug that originated this change so I can mark it as open again. Ray 
From: Raymond Toy <toy.raymond@gm...>  20140225 00:37:25

>>>>> "Volker" == Volker van Nek <volkervannek@...> writes: Volker> Am 18.02.2014 22:56, schrieb Robert Dodier: >> On 20140218, Volker van Nek <volkervannek@...> wrote: >> >>> Bill Gosper stopped maintaining the code. I am not sure if I >>> should contact him. >> >> Well, I think there's no harm in trying. If he responds, >> terrific, if not, no loss. Volker> In a first step I will try to convince the development Volker> team of my contribution. Volker> I have uploaded new code (and some comments) for fppi1 Volker> resp. comppi which I regard as a bugfix and an Volker> improvement. Volker> I performed tests in which I compared the original code Volker> from Bill Gosper, the revision I made in 2007 and todays Volker> code. Thanks for the update. These look really nice and I'm excited that these match the published values very closely. And the comments on the algorithms helps to understand the code too. Nice! Note, however, that some care needs to be exercised when comparing with base 10 results. I noticed this just the other day when investigating something unrelated. Consider this: fpprec:32$ cos(bfloat(float(%pi/4))); 7.0710678118654754604974576799218b1 Now consider rounding this bfloat answer to 16 digits. You would get 0.7071067811865475 since ..46 is less than half. However, the correctly rounded result is: float(cos(bfloat(float(%pi/4)))); 0.7071067811865476 Note the difference in the last digit. This is because bfloats and floats are binary so the rounding happens on bits, not digits and when rounding digits, we may not get the same answer as when rounding bits. Volker> 1. %pi rounded to $fpprec: Volker> For each $fpprec from 10 to 5010 I compared Volker> string(bfloat(%pi)) to the string of the bigfloat I parsed Volker> in from a published reference file Volker> (http://digitsofpi.com/Top200000DigitsOfPi.htm). With Volker> bfloat(parse_string($fpprec+10_digits_read_from_file)) I Volker> rounded the reference number to current $fpprec. I Volker> compared rounded not truncated numbers. Volker> Todays code: No difference. All bfloat(%pi) correctly Volker> rounded to $fpprec. Original code: 1849 times the last Volker> digit was different, 2642 times the last 2 digits were Volker> different, Volker> 281 times the last 3, Volker> 23 times the last 4, Volker> 3 times the last 5, 1 time the last 6 and 1 time the Volker> last 7. Volker> $fpprec = 199990, last 20 characters: Reference : Volker> "2304687661585748313508b0" Todays code : Volker> "2304687661585748313508b0" Original code: Volker> "2304687661585748313042b0" Volker> 2. Consistency of todays code  example: Volker> Digits 199970 to 200000 (behind 3.) from Volker> Top200000DigitsOfPi.htm: 4687661585 7483135080 Volker> 1444759928 With $fpprec from 199982 to 199991 Volker> substring(string( bfloat(%pi) ), 199973) results: Volker> "46876615857b0" "468766158575b0" "4687661585748b0" Volker> "46876615857483b0" "468766158574831b0" Volker> "4687661585748314b0" "46876615857483135b0" Volker> "468766158574831351b0" "4687661585748313508b0" Volker> "4687661585748313508b0" Volker> 3. Timing results: Volker> fpprec : 199990$ :lisp (time (progn (fppi1) 0)) Volker> With GCL: Original code: real time : 104.870 secs Revision Volker> 2007 (tested with Maxima 5.32.0): real time : 8.200 secs Volker> Todays code: real time : 6.760 secs Volker> Since 2007 there is a GCL and a nonGCL version by Raymond Volker> Toy. I improved the GCL version and now everyone but SBCL Volker> gets benefit from this new code. Maybe some more timing Volker> tests (other environments, more details) have to be done. Volker> rmaxima l ecl u 5.32.0 real time : 13.162 secs rmaxima Volker> l ecl < Todays code real time : 11.367 secs Volker> rmaxima l ccl u 5.32.0 took 213,457 milliseconds Volker> (213.457 seconds) to run. rmaxima l ccl took 117,132 Volker> milliseconds (117.132 seconds) to run. Volker> rmaxima l clisp u 5.32.0 Real time: 20.232536f0 sec. Volker> rmaxima l clisp Real time: 18.960596f0 sec. Volker> rmaxima l cmucl u 5.32.0 Volker> The absolute value of 199990 exceeds limit 100000. > Volker> fpprec : 100000$ Volker> ; 10.68f0 seconds of real time Volker> rmaxima l cmucl Volker> ; 8.54f0 seconds of real time I think some of these results would be useful comments in the code. Otherwise future maintainers are left wondering why exactly some lisps use one version and some another. A commit message including this info is good too, but I find it an annoyance to go through git log (or git blame) to find the actual commit message. Ray 
From: Leo Butler <l_butler@us...>  20140224 23:34:39

> >From mailnull Mon Feb 24 22:36:36 2014 > ReceivedSPF: pass (sogmx1.v43.ch3.sourceforge.com: domain of charter.net designates 216.33.127.80 as permitted sender) clientip=216.33.127.80; envelopefrom=woollett@...; helo=mta11.charter.net; > From: Edwin Woollett <woollett@...> > CC: <maximadiscuss@...> > Date: Mon, 24 Feb 2014 14:26:35 0800 > ContentType: text/plain; format=flowed; charset="iso88591"; > replytype=original > > ok, let's see if I can get all the parentheses in the right place: > I want the outer integral to be [x,0,20], > the inner integral to be [th,0,2*%pi], and I want to see the > error codes on the outer integral evaluation return: > ( I always use display2d:false) >  > Maxima 5.31.2 http://maxima.sourceforge.net > using Lisp GNU Common Lisp (GCL) GCL 2.6.8 (a.k.a. GCL) > > (%i1) fpprintprec:8$ > > (%i2) (a : float(1/sqrt(2)), > b : float(1/sqrt(3)), > p : 1 + b, > q : 1  b, > y : 1, > t4 : p*y/2, > D2 : (x^2 + y^2 + a*q*x*y*(cos(th) + b*sin(th)))^(3/2), > myexpr : x*exp(x)*t4/D2); > > (%o2) 0.788675*x*%e^x/(x^2+0.298858*(0.57735*sin(th)+cos(th))*x+1)^(3/2) > > (%i3) > quad_qags(lambda([x],quad_qags(lambda([th],myexpr),th,0,2*%pi)[1]),x,0,20); > > quad_qags: Cannot numerically evaluate lambda([th],myexpr) at 3.1415927 > quad_qags: Cannot numerically evaluate > lambda([x],quad_qags(lambda([th],myexpr),th,0,2*%pi)[1]) at 10.0 >  an error. To debug this try: debugmode(true); >  > So, something about your mintegrate code is getting past this bottleneck. Yes, what is causing problems with your example is the inner lambda function, (%i32) quad_qags(lambda([x],quad_qags(myexpr,th,0,2*%pi)[1]),x,0,20); (%o32) [1.239759885044744,1.1742369241882211e8,147,0] If you look at the output of mintegrate, you see it ensures that `myexpr' is substituted into the inner lambda function, so your error does not happen. > > By the way, I think it is important for users to see all the information > quad_qags returns for the outer integration, since this can give a clue to > potential problems. (I use this return information in my nint package, for > example, for both one and two dimensional integrals.) Yes, agreed. A way to do that would be to define an interface (function) to the scalar quad_* functions, which returns the numerical integral, and also pushes the remaining information into a hash array. Or maybe it does something more intelligent...where that depends on the definition of intelligent. It would not be to difficult to do something along those lines. Leo > > Here is what the code I posted does: > > (%i17) > mintegrate(myexpr,[x,th],[0,0],[2*%pi,20],%quad_qags,[epsrel=1e8,epsabs=0.0,limit=100]); > > (%o17) %quad_qags(lambda([th], > %quad_qags( > lambda([x], > .7886751345948129*x*%e^x > /(x^2 > +.2988584907226844 > *(.5773502691896258 > *sin(th) > +cos(th))*x+1) > ^(3/2)),x,0,2*%pi, > epsrel = 1.e8,epsabs = 0.0, > limit = 100)),th,0,20, > epsrel = 1.e8,epsabs = 0.0,limit = 100) > (%i18) ''%; > > (%o18) 3.904464256327696 > > Leo > 
From: Edwin Woollett <woollett@ch...>  20140224 22:26:33

ok, let's see if I can get all the parentheses in the right place: I want the outer integral to be [x,0,20], the inner integral to be [th,0,2*%pi], and I want to see the error codes on the outer integral evaluation return: ( I always use display2d:false)  Maxima 5.31.2 http://maxima.sourceforge.net using Lisp GNU Common Lisp (GCL) GCL 2.6.8 (a.k.a. GCL) (%i1) fpprintprec:8$ (%i2) (a : float(1/sqrt(2)), b : float(1/sqrt(3)), p : 1 + b, q : 1  b, y : 1, t4 : p*y/2, D2 : (x^2 + y^2 + a*q*x*y*(cos(th) + b*sin(th)))^(3/2), myexpr : x*exp(x)*t4/D2); (%o2) 0.788675*x*%e^x/(x^2+0.298858*(0.57735*sin(th)+cos(th))*x+1)^(3/2) (%i3) quad_qags(lambda([x],quad_qags(lambda([th],myexpr),th,0,2*%pi)[1]),x,0,20); quad_qags: Cannot numerically evaluate lambda([th],myexpr) at 3.1415927 quad_qags: Cannot numerically evaluate lambda([x],quad_qags(lambda([th],myexpr),th,0,2*%pi)[1]) at 10.0  an error. To debug this try: debugmode(true);  So, something about your mintegrate code is getting past this bottleneck. By the way, I think it is important for users to see all the information quad_qags returns for the outer integration, since this can give a clue to potential problems. (I use this return information in my nint package, for example, for both one and two dimensional integrals.) Ted &&&&&&&&&&&&&&&&&&&&&&&&&  Original Message  From: Leo Butler To: Edwin Woollett Cc: maximadiscuss@... Sent: Sunday, February 23, 2014 3:14 PM Subject: Re: [Maximadiscuss] Naive Use of the Lambda Function with QuadpackDouble Integrals > From: Edwin Woollett <woollett@...> > Date: Sun, 23 Feb 2014 12:48:39 0800 > ContentType: text/plain; charset="usascii" > > I have been following the discussion of quadpack numerical double > integrals with the present state of Maxima with interest, particularly > the code written by Leo Butler. > > My lack of knowledge about the use of the anonymous lambda function > in this context is an opportunity, for me, to learn something new. > > I was trying to help a college classmate with setting up the calulation > of a large number of double numerical integrals needed to compute the > mass profile of a thin galaxy disc, predicted by a very unusual model. >  > > How can I get the explicit (x,th) dependent expression myexpr used > inside > this lambda function to work in this context? Here is what the code I posted does: (%i17) mintegrate(myexpr,[x,th],[0,0],[2*%pi,20],%quad_qags,[epsrel=1e8,epsabs=0.0,limit=100]); (%o17) %quad_qags(lambda([th], %quad_qags( lambda([x], .7886751345948129*x*%e^x /(x^2 +.2988584907226844 *(.5773502691896258 *sin(th) +cos(th))*x+1) ^(3/2)),x,0,2*%pi, epsrel = 1.e8,epsabs = 0.0, limit = 100)),th,0,20, epsrel = 1.e8,epsabs = 0.0,limit = 100) (%i18) ''%; (%o18) 3.904464256327696 Leo 
From: Leo Butler <l_butler@us...>  20140224 20:46:41

> Hi, > > I'm still trying to understand Maxima's binding rules. > I cannot understand the difference between the following two cases. > given > > f(x,a):=a*x; > > Case I > b:1; > h:lambda([t]:f(t,''b)); > > /* gives lambda([t]:f(t,1)) */ '' is a *reader* macro, which means that it is acted upon before Maxima starts evaluation of the input. Ref:  Operator: '' The quotequote operator '''' (two single quote marks) modifies evaluation in input expressions. Applied to a general expression <expr>, quotequote causes the value of <expr> to be substituted for <expr> in the input expression. > > but > Case II > h:block([c:1],lambda([t]:f(t,''c))); > > /* gives lambda([t]:f(t,c)) */ > > AFIAR, in case II, the global variable c is saved and replaced by 1 > within 'block' > Why isn't c replaced by 1 as in case I ? c is not bound when the reader encounters ''c, so ''c results in c. Try c:3$ h:block([c:1],lambda([t]:f(t,''c))); To see what I mean. The '' operator can be a real pain to understand because it causes Maxima to do substitutions out of the normal order. Btw, lambda([t]:f(t,b)) is almost surely a typo (the : is Maxima's assignment operator). Leo 
From: Helmut Jarausch <jarausch@ig...>  20140224 18:57:26

Hi, I'm still trying to understand Maxima's binding rules. I cannot understand the difference between the following two cases. given f(x,a):=a*x; Case I b:1; h:lambda([t]:f(t,''b)); /* gives lambda([t]:f(t,1)) */ but Case II h:block([c:1],lambda([t]:f(t,''c))); /* gives lambda([t]:f(t,c)) */ AFIAR, in case II, the global variable c is saved and replaced by 1 within 'block' Why isn't c replaced by 1 as in case I ? Many thanks for some explanation, Helmut 
From: Barton Willis <willisb@un...>  20140224 01:08:16

> Also, sometimes 'expand' is needed at the end to convince Maxima to simplify stuff*(foo + bar). Trick: define a simplifying object whose sole simplification is expansion: (%i2) load(simplifying)$ (%i3) simp_expanded(e) := (e : expand(e), simpfuncall('expanded,e))$ (%i4) simplifying('expanded,'simp_expanded)$ (%i5) apply1(a.a.a.b.b.b, boson_rule); (%o5) b . b . b . a . a . a+2*(b . b . a . a+3*(b . a)+1)+2*(b . b . a . a+b . a)+5*(b . b . a . a)+4*(b . a+1)+6*(b . a) (%i6) apply1(expand(%),boson_rule); (%o6) b . b . b . a . a . a+9*(b . b . a . a)+18*(b . a)+6 (%i7) apply1(expand(%),boson_rule); (%o7) b . b . b . a . a . a+9*(b . b . a . a)+18*(b . a)+6 Using an expanded object, only one application to apply1 is needed :) (%i8) apply1 (expanded(a.a.a.b.b.b), boson_rule); (%o8) expanded(b . b . b . a . a . a+9*(b . b . a . a)+18*(b . a)+6) Barton 
From: Robert Dodier <robert.dodier@gm...>  20140223 23:52:32

On 20140220, Mark <zeitlinie@...> wrote: > Let's say I have two atoms a and b, they can be noncommutatively > multiplied, and should satisfy the rule > > a.b = b.a + 1 > > now it is (far too) simple to > > tellsimp(a.b,b.a+1); > > But this will only apply the rule to > a.b > The generic case of any product, with any number and order of a and b, > is not expanded according to a.b = b.a + 1. > > How would one do this? I think I figured it out (after several attempts of varying success). As you have observed, the problem is that Maxima won't match a pattern with 2 operands to an expression with more than 2. I've worked around that by regrouping any instance of a.b so that it matches (function FOO in the code). Also, I set a couple of global flags  dotexptsimp=false so that products aren't rolled up into exponents and dotdistrib=true so that stuff.(b.a + 1) is expanded automatically. Also, sometimes 'expand' is needed at the end to convince Maxima to simplify stuff*(foo + bar). There's more that could be said but anyway let's just see some examples. load ("boson.mac"); a.b; => b . a + 1 a.a.b.b; => a . a . b . b apply1 (a.a.b.b, boson_rule); => b . b . a . a+2*(b . a+1)+2*b . a expand (apply1 (a.a.b.b, boson_rule)); => b . b . a . a+4*b . a+2 ev (%, dotexptsimp=true); => b^^2 . a^^2+4*b . a+2 /* http://arxiv.org/pdf/quantph/0507206.pdf example on p 8 */ expand (apply1 (a.b.a.a.b.a.a.b, boson_rule)); => b . b . b . a . a . a . a . a+9*b . b . a . a . a . a+18*b . a . a . a+6*a . a ev (%, dotexptsimp=true); => b^^3 . a^^5+9*b^^2 . a^^4+18*b . a^^3+6*a^^2 The main problem solved here is that Maxima needs encouragement to group nary operands by twos. It is plausible that functionality might be incorporated into automaticallygenerated rules  I'll think about that. best Robert Dodier PS. $ cat boson.mac dotexptsimp : false; dotdistrib : true; tellsimp (a . b, b . a + 1); matchdeclare (aa, lambda ([e], not atom(e) and op(e) = ".")); defrule (boson_rule, aa, apply (".", FOO (args (aa)))); FOO (l) := collect (for i thru length (l) do if i < length (l) and l[i] = 'a and l[i + 1] = 'b then (emit (a . b), i : i + 1) else emit (l[i])); collect (e) ::= buildq ([e], block([stuff : []], e, stuff)); emit (x) := push (x, stuff); push (xx, yy) ::= buildq ([xx, yy], yy : append (yy, [xx])); 
From: Leo Butler <l_butler@us...>  20140223 23:14:59

> From: Edwin Woollett <woollett@...> > Date: Sun, 23 Feb 2014 12:48:39 0800 > ContentType: text/plain; charset="usascii" > > I have been following the discussion of quadpack numerical double > integrals with the present state of Maxima with interest, particularly > the code written by Leo Butler. > > My lack of knowledge about the use of the anonymous lambda function > in this context is an opportunity, for me, to learn something new. > > I was trying to help a college classmate with setting up the calulation > of a large number of double numerical integrals needed to compute the > mass profile of a thin galaxy disc, predicted by a very unusual model. >  > > How can I get the explicit (x,th) dependent expression myexpr used inside > this lambda function to work in this context? Here is what the code I posted does: (%i17) mintegrate(myexpr,[x,th],[0,0],[2*%pi,20],%quad_qags,[epsrel=1e8,epsabs=0.0,limit=100]); (%o17) %quad_qags(lambda([th], %quad_qags( lambda([x], .7886751345948129*x*%e^x /(x^2 +.2988584907226844 *(.5773502691896258 *sin(th) +cos(th))*x+1) ^(3/2)),x,0,2*%pi, epsrel = 1.e8,epsabs = 0.0, limit = 100)),th,0,20, epsrel = 1.e8,epsabs = 0.0,limit = 100) (%i18) ''%; (%o18) 3.904464256327696 Leo 
From: Volker van Nek <volkervannek@gm...>  20140223 21:44:50

Steve and Robert, thanks for your help. I am not familiar with terminal editors like /usr/bin/vim, so the F file option might be a good alternative. I will give it a try. Volker Am 23.02.2014 20:53, schrieb Robert Dodier: > On 20140223, Steve Haflich <shaflich@...> wrote: > >> If you omit the m argument, git will try to connect to your local editor >> server (emacs, vim, whatever) providing a commit message template. > > For example, in a bash shell (typical Linux environment), I think one > could enter > > EDITOR=$whatever git commit > > where whatever=/usr/bin/vim or something. > > HTH > > Robert Dodier > > >  > Managing the Performance of CloudBased Applications > Take advantage of what the Cloud has to offer  Avoid Common Pitfalls. > Read the Whitepaper. > http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk > _______________________________________________ > Maximadiscuss mailing list > Maximadiscuss@... > https://lists.sourceforge.net/lists/listinfo/maximadiscuss > 
From: Robert Dodier <robert.dodier@gm...>  20140223 20:51:17

On 20140223, Sean Lake <odysseus9672@...> wrote: > fun : n/(2*%pi*sigt * sigr) * exp( 1/(2*sigt^2) * ( n*logtheta  log( thetasee^n + exp(n*logr) / Da^n ) )^2  1/(2*sigr^2) * ( logr  mu_r )^2 ); > integrate( fun, logr, minf, inf ); > > Is n positive, negative or zero? > > pos; > Is mu_r positive, negative or zero? > > pos; > Binding stack exhausted. Well, that's a bug  a little debugging indicates that Maxima gets stuck in LIMIT calling SIMPLIMIT calling SIMPLIMLN calling LIMIT ... If you have time, can you enter a bug report about this problem: http://sourceforge.net/p/maxima/bugs You will need to create a Sourceforge login in order to create a bug report  sorry for the bother. I find that I can avoid error by asserting that various constants are positive. I don't know why that avoids the problem. assume (n > 0, mu_r > 0, sigr > 0, sigt > 0); integrate (fun, logr, minf, inf); => ('integrate noun expression) Sorry I can't be more helpful, Robert Dodier 
From: Edwin Woollett <woollett@ch...>  20140223 20:48:44

I have been following the discussion of quadpack numerical double integrals with the present state of Maxima with interest, particularly the code written by Leo Butler. My lack of knowledge about the use of the anonymous lambda function in this context is an opportunity, for me, to learn something new. I was trying to help a college classmate with setting up the calulation of a large number of double numerical integrals needed to compute the mass profile of a thin galaxy disc, predicted by a very unusual model. These double integrals all depend on four or five parameters: a, b, c, p, q, and y. The eventual goal was to define a function for each type of integral and then sum the values for a range of values of y from zero to, say, 10. If I remain in a purely interactive mode, as a start, and consider a typical double integral calculation using quadpack, it goes like this:  Maxima 5.31.2 http://maxima.sourceforge.net using Lisp GNU Common Lisp (GCL) GCL 2.6.8 (a.k.a. GCL) (%i1) (a : float(1/sqrt(2)), b : float(1/sqrt(3)), p : 1 + b, q : 1  b, y : 1, t4 : p*y/2, D2 : (x^2 + y^2 + a*q*x*y*(cos(th) + b*sin(th)))^(3/2), myexpr : x*exp(x)*t4/D2); (%o1) 0.78867513459481*x*%e^x/(x^2+0.29885849072268 *(0.57735026918963*sin(th)+cos(th))*x+1) ^(3/2) (%i2) quad_qags(quad_qags(myexpr,th,0,2*%pi)[1],x,0,20)[1]; quad_qags: Cannot numerically evaluate 0.78867513459481*x*%e^x/(x^2+0.29885849072268 *(0.57735026918963*sin(th)+cos(th))*x +1) ^(3/2) at 3.141592653589793  an error. To debug this try: debugmode(true); (%i3) quad_qags(quad_qags('lambda([x,th], myexpr),th,0,2*%pi)[1],x,0,20)[1]; quad_qags: Cannot numerically evaluate quad_qags(lambda([x,th],myexpr),th,0,2*%pi,epsrel = 1.0E8, epsabs = 0.0,limit = 200)[ 1] at 10.0  an error. To debug this try: debugmode(true); (%i4) quad_qags(quad_qags('lambda([x,th], ''myexpr),th,0,2*%pi)[1],x,0,20)[1]; quad_qags: Cannot numerically evaluate errexp1 at 10.0  an error. To debug this try: debugmode(true); (%i5) quad_qags(quad_qags('lambda([x,th], ev(myexpr)),th,0,2*%pi)[1],x,0,20)[1]; quad_qags: Cannot numerically evaluate quad_qags(lambda([x,th],ev(myexpr)),th,0,2*%pi,epsrel = 1.0E8, epsabs = 0.0,limit = 200)[ 1] at 10.0  an error. To debug this try: debugmode(true); (%i7) quad_qags(quad_qags('lambda([x,th], ev(myexpr,eval)),th,0,2*%pi)[1],x,0,20)[1]; quad_qags: Cannot numerically evaluate quad_qags(lambda([x,th],ev(myexpr,eval)),th,0,2*%pi,epsrel = 1.0E8, epsabs = 0.0,limit = 200)[ 1] at 10.0  an error. To debug this try: debugmode(true); (%i8) myexpr; (%o8) 0.78867513459481*x*%e^x/(x^2+0.29885849072268 *(0.57735026918963*sin(th)+cos(th))*x+1) ^(3/2)  How can I get the explicit (x,th) dependent expression myexpr used inside this lambda function to work in this context? Ted Woollett 
From: Robert Dodier <robert.dodier@gm...>  20140223 19:53:58

On 20140223, Steve Haflich <shaflich@...> wrote: > If you omit the m argument, git will try to connect to your local editor > server (emacs, vim, whatever) providing a commit message template. For example, in a bash shell (typical Linux environment), I think one could enter EDITOR=$whatever git commit where whatever=/usr/bin/vim or something. HTH Robert Dodier 
From: Barton Willis <willisb@un...>  20140223 13:47:34

> Given some function f(t,p). I'd like to write a function (macro?) > which generates the function t>f(t,p0) for some given p0. Try the buildq macro; example (pfa = partial function application) (%i1) pfa(f, yo) := block([x : gensym()], buildq([x, g : f(x,yo)], lambda([x], g))); (%o1) pfa(f,yo):=block([x:gensym()],buildq([x,g:f(x,yo)],lambda([x],g))) Testthe function argument is purely symbolic (%i2) pfa(g,2014); (%o2) lambda([g33825],g(g33825,2014)) Apply this function to 42 (%i3) %(42); (%o3) g(42,2014) Function argument is a lambda form (%i4) pfa(lambda([p,q], p^2 + q^2),%pi); (%o4) lambda([g33826],g33826^2+%pi^2) Evaluation at 1 yields %pi^2 + 1 (%i5) %(1); (%o5) %pi^2+1 Function argument defined locally as a lambda form (%i6) pfa(g,2014), g : lambda([p,q],p+q); (%o6) lambda([g33827],g33827+2014) And the reason for the gensym is pfa(g,x) =/= lambda([x], g(x,x)); example (%i7) pfa(g,x); (%o7) lambda([g33828],g(g33828,x)) (%i8) pfa(lambda([x,y],x+y),x); (%o8) lambda([g33829],x+g33829) Enter ?? buildq to read the user documentation. Barton 
From: Steve Haflich <shaflich@gm...>  20140223 13:43:48

If you omit the m argument, git will try to connect to your local editor server (emacs, vim, whatever) providing a commit message template. Of course the editor must be set up, and you need to be familiar with that editor on whichever host you are using, so instead you can compose the message in a file and use the F filename option to git commit. Git is a complex system that can be overwhelming unless one wants to devote long study to it (except for the simple, vanilla operations). But it is very well self documenting. Every git command accepts the help option e.g. "git commit help" which will emit many pages of options. You would have found the F option that way. 
From: Helmut Jarausch <jarausch@ig...>  20140223 12:44:20

Hi, I still don't understand the mechanism of quoting. Given some function f(t,p). I'd like to write a function (macro?) which generates the function t>f(t,p0) for some given p0. Among others I've tried F(p):= block(return(lambda([t],f(t,''p)))); but F(1) still doesn't return lambda([t],f(t,1)) What am I missing? Many thanks for your help, Helmut 
From: Volker van Nek <volkervannek@gm...>  20140223 11:45:56

Am 23.02.2014 01:31, schrieb Robert Dodier: > On 20140222, Volker van Nek <volkervannek@...> wrote: > >> I have uploaded new code (and some comments) for fppi1 resp. comppi >> which I regard as a bugfix and an improvement. >> >> I performed tests in which I compared the original code from Bill >> Gosper, the revision I made in 2007 and todays code. > > Looks good to me. Thanks & keep up the good work. > > As an aside, I think that it might make sense to paste some/all of the > test results into the commit log. It might forestall some questions > about the commit (or it might not  YMMV). Just something to consider. > I know that my commit comments are always quite short. My knowledge about git is limited. I only know git commit a m "bla" and I don't know how to make formatting (line breaks etc.) inside of "bla". How can I create a commit.log? Can someone help with a command or with a reference where I can read that? Thanks Volker > best > > Robert Dodier > > >  > Managing the Performance of CloudBased Applications > Take advantage of what the Cloud has to offer  Avoid Common Pitfalls. > Read the Whitepaper. > http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk > _______________________________________________ > Maximadiscuss mailing list > Maximadiscuss@... > https://lists.sourceforge.net/lists/listinfo/maximadiscuss > 
From: Sean Lake <odysseus9672@gm...>  20140223 11:20:24

Thought I should add: Maxima 5.32.1 http://maxima.sourceforge.net using Lisp SBCL 1.1.14 On Feb 23, 2014, at 3:18, Sean Lake <odysseus9672@...> wrote: > Hello all, > The following commands make for some odd errors. I'm trying to sum over an irrelevant degree of freedom in a quasi lognormal 2d distribution. I don't actually expect Maxima to be able to do the integral, but would be pleasantly surprised if it could. Regardless, it shouldn't produce an error. > > fun : n/(2*%pi*sigt * sigr) * exp( 1/(2*sigt^2) * ( n*logtheta  log( thetasee^n + exp(n*logr) / Da^n ) )^2  1/(2*sigr^2) * ( logr  mu_r )^2 ); > integrate( fun, logr, minf, inf ); > > Is n positive, negative or zero? > > pos; > Is mu_r positive, negative or zero? > > pos; > INFO: Binding stack guard page unprotected > Binding stack guard page temporarily disabled: proceed with caution > Maxima encountered a Lisp error: > > Binding stack exhausted. > > PROCEED WITH CAUTION. > > Automatically continuing. > To enable the Lisp debugger set *debuggerhook* to nil. > INFO: Binding stack guard page reprotected 
From: Sean Lake <odysseus9672@gm...>  20140223 11:18:44

Hello all, The following commands make for some odd errors. I'm trying to sum over an irrelevant degree of freedom in a quasi lognormal 2d distribution. I don't actually expect Maxima to be able to do the integral, but would be pleasantly surprised if it could. Regardless, it shouldn't produce an error. fun : n/(2*%pi*sigt * sigr) * exp( 1/(2*sigt^2) * ( n*logtheta  log( thetasee^n + exp(n*logr) / Da^n ) )^2  1/(2*sigr^2) * ( logr  mu_r )^2 ); integrate( fun, logr, minf, inf ); Is n positive, negative or zero? pos; Is mu_r positive, negative or zero? pos; INFO: Binding stack guard page unprotected Binding stack guard page temporarily disabled: proceed with caution Maxima encountered a Lisp error: Binding stack exhausted. PROCEED WITH CAUTION. Automatically continuing. To enable the Lisp debugger set *debuggerhook* to nil. INFO: Binding stack guard page reprotected 
From: Helmut Jarausch <jarausch@ig...>  20140223 11:15:04

Hi, is it possible to use Maxima's source debugging with WxMaxima? For me, if Maxima hits a break point I cannot enter anything in WxMaxima. What am I missing? Many thanks for a hint, Helmut 