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}
(275) 
_{Feb}

_{Mar}

_{Apr}

_{May}

_{Jun}

_{Jul}

_{Aug}

_{Sep}

_{Oct}

_{Nov}

_{Dec}

From: Gunter Königsmann <gunter@pe...>  20160710 04:45:24

> I think it varies according to the Lisp implementation. Some (? I forget > which) do show access time proportional to n, while some others (again I > forget) show constant time. I didn't know about that => Updated the documentation. Thanks a lot, and Kind regards, Gunter. 
From: Gunter Königsmann <gunter@pe...>  20160710 04:32:34

> Ok, so make pdf generates these t2p directories. Since > sharesubdirs.lisp is autogenerated by configure, we can probably > make configure ignore directories ending in .t2p. I'll look into it. Cool! Thanks! Gunter. 
From: Kris Katterjohn <katterjohn@gm...>  20160710 00:47:48

Hey everyone, A bug[1] in ABCL has prevented many things from working in Maxima and caused 62 tests to fail. Here are just a few things that would cause lisp errors when running Maxima with ABCL 1.3.3 (the current version): bfloat(%gamma) gamma_incomplete(0, 1.0b0) expintegral_e(0.0, 1.0b0) expintegral_shi(1.0b0) block([numer:true], zeta(3 + %i)) The bug is in ABCL'S COERCE and it turns out that some versions of Clisp had the same bug. This was worked around in commit 378d55 by using a different definition of the flonum type for Clisp. This same workaround also works for ABCL and I have applied the workaround in commit b1c9c0. I also adjusted the numerical tolerances of 6 tests for ABCL in commit 874e52. Now the test suite runs fine using ABCL 1.3.3. I tested this on my 64bit Linux and 32bit OpenBSD boxes using the lisponly build procedure. Cheers, Kris Katterjohn [1] http://abcl.org/trac/ticket/313 
From: Robert Dodier <robert.dodier@gm...>  20160709 20:56:46

On 20160709, Dimiter Prodanov <dimiterpp@...> wrote: > if orderlessp(lst[x], lst[y]) then ( > tl:cons(lst[x], tl), Bear in mind that cons puts the new element at the front of the list. I think you want endcons here. When I change cons > endcons, and using the second version of msort which you posted, I see that the first part of the list gets sorted correctly, but the second part isn't sorted. So I guess the recursive calls to merge aren't happening as they should  looks like the list is split up and the first part gets sorted recursively but not the second. HTH Robert Dodier PS. my version of the code w/ endcons, + debugging messages. merge (lst, start1, len1, start2, len2):=block( [ x: start1, y: start2, end1, end2, tl:[], cnt:0 ], print ("merge: input list=", lst), print ("merge: merge", mysublist(lst, start1, len1), "with", mysublist(lst, start2, len2)), end1: len1+start1, end2: len2+start2, print(" start1=", start1, " end1=",end1, " start2=", start2, " end2=",end2), while x <end1 and y <end2 do ( if orderlessp(lst[x], lst[y]) then ( tl:endcons(lst[x], tl), x:x+1 ) else ( tl:endcons(lst[y], tl), y:y+1, cnt: cnt+ end1x+1 ) ), while x<end1 do ( tl:endcons( lst[x], tl), x:x+1 ), while y<end2 do ( tl:endcons( lst[y], tl), y:y+1 ), print ("merge: merged data=", tl), x:1, for i:start1 thru end21 do ( lst[i]:tl[x], x:x+1 ), print ("merge: now list=", lst), cnt ); mysublist (l, i0, n) := makelist (l[i], i, i0, i0 + n  1); msort(lst, start, len):=block([m:0, q:0, ret:0], if len>1 and start<=len then ( m:fix((len)/2), q:lenm, print("start=", start," m=", m," q=", q," len=", len, " ", m+q), ret: msort(lst, start, m) , print("offset ", m+start), ret: ret+ msort(lst, start+m, q) + merge(lst, start, m, m+start, q) ), ret ); invcnt(lst):=block([m], display(length(lst)), m:msort(lst, 1, length(lst)), [m, lst] ); 
From: Robert Dodier <robert.dodier@gm...>  20160709 20:21:44

On 20160709, Gunter Königsmann <gunter@...> wrote: > In order to access the nth element of a list the previous n elements > have to be traversed. I think it varies according to the Lisp implementation. Some (? I forget which) do show access time proportional to n, while some others (again I forget) show constant time. The Common Lisp standard requires lists to behave as though they are linked lists, but under the hood, there might be something different going on. I guess some relatively simple tests could help distinguish what's going on for each Lisp. best Robert Dodier 
From: Raymond Toy <toy.raymond@gm...>  20160709 18:40:12

>>>>> "Raymond" == Raymond Toy <toy.raymond@...> writes: >>>>> "Gunter" == Gunter Königsmann <gunter@...> writes: Gunter> On 09.07.2016 18:58, Raymond Toy wrote: >>>>>>>> "Gunter" == Gunter Königsmann <gunter@...> Gunter> There is no trace of .t2p directories in my Gunter> share/Logic/Makefile.am share/Logic/Makefile.in in the Gunter> same folder mentions them, though: Raymond> Ok, so make pdf generates these t2p directories. Since Raymond> sharesubdirs.lisp is autogenerated by configure, we can Raymond> probably make configure ignore directories ending in Raymond> .t2p. I'll look into it. Checked something in to configure.ac to make it ignore *.t2p directories when generating the list of directories for sharesubdirs.lisp. Seems to work for me; let me know if it solves your problem. You'll need to run autoconf to regenerated configure and maybe need to run configure (or config.status recheck) again to see the effect.  Ray 
From: Raymond Toy <toy.raymond@gm...>  20160709 18:26:39

>>>>> "Gunter" == Gunter Königsmann <gunter@...> writes: Gunter> On 09.07.2016 18:58, Raymond Toy wrote: >>>>>>> "Gunter" == Gunter Königsmann <gunter@...> Gunter> There is no trace of .t2p directories in my Gunter> share/Logic/Makefile.am share/Logic/Makefile.in in the Gunter> same folder mentions them, though: Ok, so make pdf generates these t2p directories. Since sharesubdirs.lisp is autogenerated by configure, we can probably make configure ignore directories ending in .t2p. I'll look into it.  Ray 
From: Gunter Königsmann <gunter@pe...>  20160709 17:31:55

On 09.07.2016 18:58, Raymond Toy wrote: >>>>>> "Gunter" == Gunter Königsmann <gunter@...> writes: > > Gunter> Dear all, Today I tried to clean up a bit and encountered > Gunter> a problem I don't know how to handle: > > Gunter> After a > > Gunter> ./bootstrap ./configure enablesbcl enableclisp > Gunter> make j 4 > > Does j 4 actually work? I'm not sure if the makefile is really set up > to do parallel builds. > I was convinced that Ubuntu's standard build configuration for packages does do parallel builds so somebody will have thought about this: Way back there were packages with bugs that depended on the build order. But it seems like they have changed back to one process at a time => Did a new clean checkout of the maxima repo and the following: ./bootstrap ./configure enablesbcl enableccl make make pdf > > Gunter> the file src/sharesubdirs.lisp differs from the version > Gunter> in the repository. If the change were reproducible for > Gunter> every build and the changes wouldn't reference > Gunter> autogenerated directories this would be a case for adding > Gunter> the changes to this file to the repo. But this isn't the > Gunter> case. The new entries are: > > Gunter> "contrib/integration/abs_integrate.t2p" > > How were these *.t2p directories created? I don't have them. I also > don't use make j 4. Normally these things are seldom a coincidence so while waiting for the build I investigated: There is no trace of .t2p directories in my share/Logic/Makefile.am share/Logic/Makefile.in in the same folder mentions them, though: .texi.pdf: $(AM_V_TEXI2PDF)TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) I $(srcdir)' \ $(TEXI2PDF) $(AM_V_texinfo) builddir=$(@:.pdf=.t2p) o $@ $(AM_V_texidevnull) \ $< => Something in automake/autoconf/autosomething instructs the pdf target to put all temporary files here. share/Logic/Makefile contains one command that can delete the .t2p directory. But afaics it is only called on "make distclean" or similar: an ordinary "make clean" doesn't help here. Seems like my version of the autotools autogenerates the files. Ok.. ...the new checkout has built. On my system the .t2p files are generated again so I assume (as I have installed the newest version of the autotools) their existence depends on the autotools versions. The questions now are  if the fact that the .t2p directories aren't deleted automatically after the build is a bug or it it will stay this way  we add generated .texi and .pdf files to the repository: At least for share/logic/logic.texi and share/logic/logic.pdf this is the case. Currently the version that comes with the repo coincides byteperbyte with the one my system builds. But for others that might not be true which tends to be able to cause nightmares for users that want to do a "git bisect". Can we do something about this.  And (since that makes "git bisect" harder, too): Just changing the status if this file from version controlled to autogenerated by deleting it means that the file hangs around during a git bisect and has to be manually deleted every few steps. ...can we do something about this? I seem to remember adding it to .gitignore isn't enough. Don't know if I should be the one who cleans this up as I honestly am not sure about the answer of any of these questions. Kind regards, Gunter. 
From: Raymond Toy <toy.raymond@gm...>  20160709 16:59:08

>>>>> "Gunter" == Gunter Königsmann <gunter@...> writes: Gunter> Dear all, Today I tried to clean up a bit and encountered Gunter> a problem I don't know how to handle: Gunter> After a Gunter> ./bootstrap ./configure enablesbcl enableclisp Gunter> make j 4 Does j 4 actually work? I'm not sure if the makefile is really set up to do parallel builds. Gunter> the file src/sharesubdirs.lisp differs from the version Gunter> in the repository. If the change were reproducible for Gunter> every build and the changes wouldn't reference Gunter> autogenerated directories this would be a case for adding Gunter> the changes to this file to the repo. But this isn't the Gunter> case. The new entries are: Gunter> "contrib/integration/abs_integrate.t2p" How were these *.t2p directories created? I don't have them. I also don't use make j 4.  Ray 
From: Dimiter Prodanov <dimiterpp@gm...>  20160709 09:29:32

Sorry there was a mistake msort(lst, start, len):=block([m:0, q:0, ret:0], if len>1 and start<=len then ( m:fix((len)/2), q:lenm, print("start=", start," m=", m," q=", q," len=", len, " ", m+q), ret: msort(lst, start, m) , print("offset ", m+start), ret: ret+ msort(lst, start+m, q) + merge(lst, start, m, m+start, q) ), ret ); the result however is the same 
From: Gunter Königsmann <gunter@pe...>  20160709 09:22:48

In maxima declared arrays begin with the index 0, too. But lists begin with the index 1. Also it is important to note that in maxima as in any other programming language lists have one big advantage over arrays: They can easily extended by additional elements and allow for fast removal of elements. Also traversing a list with elements of varying size elementbyelement might be faster than traversing an array. But these advantages comes with the following disadvantage: In order to access the nth element of a list the previous n elements have to be traversed. The construct lst[x] therefore is quite fast for the first few list elements. But for a list containing a million elements calculating lst[x] needs a considerable amount of time. It therefore might be a good idea to convert your lists to arrays before attempting to sort them with an algorithm that was created with arrays in mind. As there were many questions about lists and their performance I have added a little more background to the following section of maxima's manual: http://maxima.sourceforge.net/docs/manual/maxima_5.html#SEC24 Kind regards, Gunter. 
From: Dimiter Prodanov <dimiterpp@gm...>  20160709 09:09:17

Dear all, I am trying to port merge sort with inversion counting from Java merge (lst, start1, len1, start2, len2):=block( [ x: start1, y: start2, end1, end2, tl:[], cnt:0 ], end1: len1+start1, end2: len2+start2, print(" start1=", start1, " end1=",end1, " start2=", start2, " end2=",end2), while x <end1 and y <end2 do ( if orderlessp(lst[x], lst[y]) then ( tl:cons(lst[x], tl), x:x+1 ) else ( tl:cons(lst[y], tl), y:y+1, cnt: cnt+ end1x+1 ) ), while x<end1 do ( tl:cons( lst[x], tl), x:x+1 ), while y<end2 do ( tl:cons( lst[y], tl), y:y+1 ), x:1, for i:start1 thru end21 do ( lst[i]:tl[x], x:x+1 ), disp(lst), cnt ); msort(lst, start, len):=block([m:0, q:0, ret:0], if len>1 and start<=len then ( m:fix(len/2), q:lenstart+1, print("start=", start," m=", m," q=", q," len=", len, " ", m+q1), ret: msort(lst, start, m) , print("offset ", m+start), ret: ret+ msort(lst, start+m, q) + merge(lst, start, m, m+start, q1) ), ret ); invcnt(lst):=block([m], display(length(lst)), m:msort(lst, 1, length(lst)), [m, lst] ); The code is direct translation from Java where it works perfectly. In Maxima the code produces output but does not give the correct result. for example invcnt([3,2,1]); the problem is in the indexing of the lists but I can't figure it out. In Java arrays start from index 0. Can someone take a look? best regards, Dimiter 
From: Gunter Königsmann <gunter@pe...>  20160709 05:26:45

Dear all, Today I tried to clean up a bit and encountered a problem I don't know how to handle: After a ./bootstrap ./configure enablesbcl enableclisp make j 4 make pdf the file src/sharesubdirs.lisp differs from the version in the repository. If the change were reproducible for every build and the changes wouldn't reference autogenerated directories this would be a case for adding the changes to this file to the repo. But this isn't the case. The new entries are: "contrib/integration/abs_integrate.t2p" "contrib/integration/abs_integrate.t2p/abs_integrate.t2d" "contrib/integration/abs_integrate.t2p/abs_integrate.t2d/pdf" "contrib/integration/abs_integrate.t2p/abs_integrate.t2d/pdf/bak" "contrib/integration/abs_integrate.t2p/abs_integrate.t2d/pdf/build" "contrib/integration/abs_integrate.t2p/abs_integrate.t2d/pdf/check_recorder" "contrib/integration/abs_integrate.t2p/abs_integrate.t2d/tex_help" "contrib/integration/abs_integrate.t2p/abs_integrate.t2d/version_test" "contrib/levin" "draw/drawutils.t2p" "draw/drawutils.t2p/drawutils.t2d" "draw/drawutils.t2p/drawutils.t2d/pdf" "draw/drawutils.t2p/drawutils.t2d/pdf/bak" "draw/drawutils.t2p/drawutils.t2d/pdf/build" "draw/drawutils.t2p/drawutils.t2d/pdf/check_recorder" "draw/drawutils.t2p/drawutils.t2d/tex_help" "draw/drawutils.t2p/drawutils.t2d/version_test" Is there a "ignore" mechanism for src/share_subdirs.lisp? Thanks a lot, and Kind regards, Gunter. 
From: Robert Dodier <robert.dodier@gm...>  20160709 03:31:32

On Thu, Jul 7, 2016 at 11:52 AM, Doug Stewart <doug.dastew@...> wrote: > > This is what I did with maxima. > This is not a question, > > I am just showing, any one that was interested > in what I was doing, what the results are so far. > > https://dl.dropboxusercontent.com/u/24993484/Z_tran%20_of_repeated_roots.pdf Hey, that's great. I'm glad to see that you were able to get some interesting results. Thanks also to Wilhelm Haager for suggesting another approach for ztransforms, I'll try to roll it into the existing package. I've daydreamed about having something like rbloggers.com which is essentially an aggregator for blogs about R. A "maximabloggers.com" or something like that could be a useful platform for disseminating reports such as these results about ztransforms. Just thinking out loud here. best Robert Dodier 
From: Kris Katterjohn <katterjohn@gm...>  20160709 00:14:59

On Thu, Jul 07, 2016 at 01:02:43PM 0700, Raymond Toy wrote: > I'm ok with this change. Not sure about the use of this variable; I > don't have the big picture in front of me, but if that variable is > definitely defvar'ed somewhere before running the tests it should be > safe. Thanks, Ray. I've committed this asis for now. Cheers, Kris Katterjohn 
From: Robert Dodier <robert.dodier@gm...>  20160708 23:39:52

> On 20160625, Robert Dodier <robert.dodier@...> wrote: > >> (3) sort data, then find locations of bin boundaries in sorted data > > I've modified the existing functions continuous_freq and discrete_freq > in share/descriptive to use that scheme. I've further modified continuous_freq and discrete_freq to accept arrays as inputs as well as lists. With these changes, these functions run fast enough to make working with "large" [1] data tolerable, although still much slower than dedicated numerical packages such as R and Octave. At any rate I hope this is useful to somebody. best Robert Dodier [1] Of course, the precise meaning of "large" depends on your computer, Lisp implementation, phase of the moon, etc. 
From: Richard Fateman <fateman@be...>  20160708 17:00:42

n*f(n1)*f((n1)^2) comes out simplified as f((n1)^2)*n*f(n1) which is not so nice. Compare to f(n^2)*n*f(n) which simplifies ton*f(n)*f(n^2) That is, the factor n should be out front. I have a fix for this. 
From: Stavros Macrakis (Σταῦρος Μακράκης) <macrakis@al...>  20160708 04:31:17

In the previous example, I should have said "numeric, rational, positive exponents". And here's a mixed case: no fractional or negative exponents, but a K exponent: declare(K,constant)$ EK2K: K+2^K+K^2$ EK2KEK2K => KK Let's make sure all these get into our test suite.... Interestingly, though I've looked, I haven't (yet?) found any cases not involving constants. On Fri, Jul 8, 2016 at 12:07 AM, Stavros Macrakis (Σταῦρος Μακράκης) < macrakis@...> wrote: > Another case, this time with only constant, positive exponents: > > declare(K,constant)$ > > E52: K+K^(5/2)+K^2$ > > E52E52 => KK > > > Again, we have K << K^2 << K^(5/2) << K, where << is orderlessp. > > On Wed, Jul 6, 2016 at 3:57 PM, Robert Dodier <robert.dodier@...> > wrote: > >> On 20160706, Stavros Macrakis <macrakis@...> wrote: >> >> > declare(K,constant)$ >> > EY: 1/2^K+K+3^K$ >> > EYEY => 1/2^K1/2^K >> >> This is an awesome test case, in addition to the terrific ones you've >> also posted. Tnx on behalf of all sentient beings. >> >> I see a few interesting things here. I wish I could spend the rest of >> the day on it but I have to go shopping (really!). >> >> One is that it seems to revolve around the placement of 1/2^K among the >> other terms. Usually term order is preserved by negation but in the case >> of EY, it causes 1/2^K to move. To see that, try EY; and then EY; >> That movement happens only if K is declared a constant, and it only >> happens if the operator is "^" instead of, say, foo. And it only seems >> to happen if it's something^(K)  unsigned exponents don't seem to >> show the same movement. >> >> Try trace(?simplus, ?plusin, ?pls, ?great); to see the simplifier >> annihilating the terms of whatever  whatever one by one. For EY  EY, >> the 1/2^K is out of place, so it doesn't get cancelled. Another example: >> try (EY)  (EY) which makes K the term which doesn't get cancelled. >> >> best >> >> Robert Dodier >> >> >> >>  >> Attend Shape: An AT&T Tech Expo July 1516. Meet us at AT&T Park in San >> Francisco, CA to explore cuttingedge tech and listen to tech luminaries >> present their vision of the future. This family event has something for >> everyone, including kids. Get more information and register today. >> http://sdm.link/attshape >> _______________________________________________ >> Maximadiscuss mailing list >> Maximadiscuss@... >> https://lists.sourceforge.net/lists/listinfo/maximadiscuss >> > > 
From: Stavros Macrakis (Σταῦρος Μακράκης) <macrakis@al...>  20160708 04:07:50

Another case, this time with only constant, positive exponents: declare(K,constant)$ E52: K+K^(5/2)+K^2$ E52E52 => KK Again, we have K << K^2 << K^(5/2) << K, where << is orderlessp. On Wed, Jul 6, 2016 at 3:57 PM, Robert Dodier <robert.dodier@...> wrote: > On 20160706, Stavros Macrakis <macrakis@...> wrote: > > > declare(K,constant)$ > > EY: 1/2^K+K+3^K$ > > EYEY => 1/2^K1/2^K > > This is an awesome test case, in addition to the terrific ones you've > also posted. Tnx on behalf of all sentient beings. > > I see a few interesting things here. I wish I could spend the rest of > the day on it but I have to go shopping (really!). > > One is that it seems to revolve around the placement of 1/2^K among the > other terms. Usually term order is preserved by negation but in the case > of EY, it causes 1/2^K to move. To see that, try EY; and then EY; > That movement happens only if K is declared a constant, and it only > happens if the operator is "^" instead of, say, foo. And it only seems > to happen if it's something^(K)  unsigned exponents don't seem to > show the same movement. > > Try trace(?simplus, ?plusin, ?pls, ?great); to see the simplifier > annihilating the terms of whatever  whatever one by one. For EY  EY, > the 1/2^K is out of place, so it doesn't get cancelled. Another example: > try (EY)  (EY) which makes K the term which doesn't get cancelled. > > best > > Robert Dodier > > > >  > Attend Shape: An AT&T Tech Expo July 1516. Meet us at AT&T Park in San > Francisco, CA to explore cuttingedge tech and listen to tech luminaries > present their vision of the future. This family event has something for > everyone, including kids. Get more information and register today. > http://sdm.link/attshape > _______________________________________________ > Maximadiscuss mailing list > Maximadiscuss@... > https://lists.sourceforge.net/lists/listinfo/maximadiscuss > 
From: Robert Dodier <robert.dodier@gm...>  20160707 21:45:14

On 20160707, Gunter Königsmann <gunter@...> wrote: > If I am not completely wrong wxMaxima shouldn't install its own index: Well, this question can be answered for sure by inspecting the list of files installed by the wxmaxima package. For packages installed via aptget one can run dpkg l or something like that. Dunno what to do for other package systems. best Robert Dodier 
From: Robert Dodier <robert.dodier@gm...>  20160707 21:39:33

On 20160707, Stavros Macrakis <macrakis@...> wrote: > This seems to be the crux of the problem: > > orderlessp(x,2^x) => true > orderlessp(K,2^K) => false <<< > orderlessp(x,2^x) => true > orderlessp(K,2^K) => true > > This comes from the 5th clause of the cond in ordfna. Agreed  I've looked at ORDFNA and I can see how it gets the different results but I don't see how to change it. best Robert Dodier 
From: Doug Stewart <doug.dastew@gm...>  20160707 21:37:40

On Thu, Jul 7, 2016 at 5:08 PM, Gunter Königsmann <gunter@...> wrote: > > > On 07.07.2016 22:37, Doug Stewart wrote: > > > > > > On Thu, Jul 7, 2016 at 3:11 PM, Stavros Macrakis (Σταῦρος Μακράκης) > > <macrakis@... <mailto:macrakis@...>> wrote: > > > > Thanks for sharing. But I don't understand why you wrote a > > dozenline Octave program to do what can be done in two lines in > > Maxima. > > > > > > Because I am an octave developer and this is going to be used in the > > control pkg for octave > I still can't help thinking about https://xkcd.com/978/ and imagining > that maxima is used to test a part of octave that might be used to test > maxima lateron... > > Kind regards, > > Gunter. > > :)  DAS <https://linuxcounter.net/user/206392.html>; 
From: Gunter Königsmann <gunter@pe...>  20160707 21:08:59

On 07.07.2016 22:37, Doug Stewart wrote: > > > On Thu, Jul 7, 2016 at 3:11 PM, Stavros Macrakis (Σταῦρος Μακράκης) > <macrakis@... <mailto:macrakis@...>> wrote: > > Thanks for sharing. But I don't understand why you wrote a > dozenline Octave program to do what can be done in two lines in > Maxima. > > > Because I am an octave developer and this is going to be used in the > control pkg for octave I still can't help thinking about https://xkcd.com/978/ and imagining that maxima is used to test a part of octave that might be used to test maxima lateron... Kind regards, Gunter. 
From: Gunter Königsmann <gunter@pe...>  20160707 21:04:12

Hey! Thanks! I never expected to happen to end up this near to the name of the thing I actually needed. Thanks a lot! and Kind regards, Gunter. On 07.07.2016 22:27, Robert Dodier wrote: > On 20160707, Gunter Königsmann <gunter@...> wrote: > >> is_y(x):=if x=y then y else 0; > >> sum( >> is_y(x), >> x,0,inf >> ); > > Well, you can write is_y as is_y(x) := y*kron_delta(x,y); and then apply > the kron_delta summation stuff I wrote a while ago. Here's what I get: > > (%i1) load ("sum_kron_delta.mac"); > (%o1) sum_kron_delta.mac > (%i2) is_y(x) := y * kron_delta(x, y) $ > (%i3) sum (is_y(x), x, 0, inf); > (%o3) (if (0 <= y) and %elementp(y, integers) then 1 else 0) y > > With assumptions on y namely assume(y > 0) and declare(y, integer) the > result simplifies to y. > > Here's a link to the current version of sum_kron_delta.mac: > https://pastebin.com/gm3uggMe > > Hope this helps, > > Robert Dodier > > >  > Attend Shape: An AT&T Tech Expo July 1516. Meet us at AT&T Park in San > Francisco, CA to explore cuttingedge tech and listen to tech luminaries > present their vision of the future. This family event has something for > everyone, including kids. Get more information and register today. > http://sdm.link/attshape > _______________________________________________ > Maximadiscuss mailing list > Maximadiscuss@... > https://lists.sourceforge.net/lists/listinfo/maximadiscuss > 
From: Doug Stewart <doug.dastew@gm...>  20160707 20:37:26

On Thu, Jul 7, 2016 at 3:11 PM, Stavros Macrakis (Σταῦρος Μακράκης) < macrakis@...> wrote: > Thanks for sharing. But I don't understand why you wrote a dozenline > Octave program to do what can be done in two lines in Maxima. > Because I am an octave developer and this is going to be used in the control pkg for octave I play with maxima when I need to understand some symbolic formulas, but now octave has been joined to python and python's symbolic capabilities. Thank again for Maxima and for all your help. > Sorry for getting the initial conditions wrong in my previous email. > > Corrected version: > > T[n,k]:=if k < 1 or k > n then 0 elseif k = 1 or k = n then 1 > else k*T[n1,k]+(nk+1)*T[n1,k1]$ > > Then > > genmatrix(T,11,10) => > > [ 1 0 0 0 0 0 0 0 0 > 0 ] > [ > ] > [ 1 1 0 0 0 0 0 0 0 > 0 ] > [ > ] > [ 1 4 1 0 0 0 0 0 0 > 0 ] > [ > ] > [ 1 11 11 1 0 0 0 0 0 > 0 ] > [ > ] > [ 1 26 66 26 1 0 0 0 0 > 0 ] > [ > ] > [ 1 57 302 302 57 1 0 0 0 > 0 ] > [ > ] > [ 1 120 1191 2416 1191 120 1 0 0 > 0 ] > [ > ] > [ 1 247 4293 15619 15619 4293 247 1 0 > 0 ] > [ > ] > [ 1 502 14608 88234 156190 88234 14608 502 1 > 0 ] > [ > ] > [ 1 1013 47840 455192 1310354 1310354 455192 47840 1013 > 1 ] > [ > ] > [ 1 2036 152637 2203488 9738114 15724248 9738114 2203488 152637 > 2036 ] > > > On Thu, Jul 7, 2016 at 2:52 PM, Doug Stewart <doug.dastew@...> > wrote: > >> This is what I did with maxima. >> This is not a question, >> >> I am just showing, any one that was interested >> in what I was doing, what the results are so far. >> >> >> https://dl.dropboxusercontent.com/u/24993484/Z_tran%20_of_repeated_roots.pdf >> >> >> >> On Tue, Jul 5, 2016 at 3:04 PM, Doug Stewart <doug.dastew@...> >> wrote: >> >>> >>> >>> On Tue, Jul 5, 2016 at 3:00 PM, Stavros Macrakis (Σταῦρος Μακράκης) < >>> macrakis@...> wrote: >>> >>>> Closedf0rm solution: coefficients are Eulerian numbers >>>> <https://oeis.org/A008292>;, easily calculated by recurrence: >>>> >>>> T[n, k] := if n<=1 then 1 else k * T[n1, k] + (nk+1) * T[n1, k1]$ >>>> >>>> Not derived ... just looked up at OEIS! >>>> >>>> You answered my next question before I asked it !!! >>> :) >>> Thanks >>> >>> >>> >>> >>> >>> >>>> On Tue, Jul 5, 2016 at 1:47 PM, Doug Stewart <doug.dastew@...> >>>> wrote: >>>> >>>>> >>>>> >>>>> On Tue, Jul 5, 2016 at 10:49 AM, wilhelm.haager@... < >>>>> wilhelm.haager@...> wrote: >>>>> >>>>>> Hi! >>>>>> >>>>>> >>>>>> Here is my suggestion for ztransform: With the aid of the package >>>>>> "simplifysum" ztransforms can easily be calculated from its definition >>>>>> (any arguments against that?): >>>>>> >>>>>> >>>>>> sum (f(kT)*z^(k)), k running from 0 to infinity >>>>>> >>>>>> >>>>>> The only drawback is the occasional interactive request for >>>>>> distinction of cases. >>>>>> >>>>>> >>>>>> load(simplify_sum)$ >>>>>> >>>>>> zt(f):= >>>>>> >>>>>> block([assume_pos:true,func:lambda([u],simplify_sum(sum(ev(u,t=k*T)*z**(k),k,0,inf)))], >>>>>> assume(z>1), >>>>>> if not mapatom(f) and op(f)="+" then map(func,f) else func(f) >>>>>> )$ >>>>>> >>>>>> >>>>>> gz(n):=factor(ratsimp(zt(ilt((n1)!/(s+a)**n,s,t)))) >>>>>> >>>>>> >>>>>> >>>>> >>>>> Wow I like this solution. >>>>> >>>>> It seems to confirm that my table is corrector, and >>>>> now I can add as many terms as I want. >>>>> Thanks >>>>> >>>>> >>>>> >>>>> >>>>> >>>>>> yields the ztransform corresponding to (n1)!/(s+a)^n >>>>>> >>>>>> >>>>>> Higher n result in timeconsuming calculations, at least up to 9 it's >>>>>> working fine. >>>>>> >>>>>> >>>>>> btw: Are there any ideas for turning off the annoying request for >>>>>> distinction of cases? It would be fine if Maxima itself could chose the >>>>>> "correct" case. >>>>>> >>>>>> (Some requests can be prevented by making assumptions: >>>>>> assume(z>1),assume_pos:true) >>>>>> >>>>>> >>>>>> Wilhelm Haager >>>>>> >>>>>> >>>>>> >>>>>> >>>>>>  >>>>>> *Von:* Doug Stewart <doug.dastew@...> >>>>>> *Gesendet:* Dienstag, 5. Juli 2016 13:50 >>>>>> *An:* Robert Dodier >>>>>> *Cc:* maximadiscuss@... >>>>>> *Betreff:* Re: [Maximadiscuss] ZTransforms >>>>>> >>>>>> >>>>>> Thanks to all who have helped. >>>>>> <https://linuxcounter.net/user/206392.html>; >>>>>> >>>>>> I can now narrow my question to this. >>>>>> >>>>>> Please see the attached file. >>>>>> >>>>>> I want to make a table of the Z Transforms of repeated roots in >>>>>> Laplace space. >>>>>> I do not know if the results in the attached file are correct or >>>>>> not!! so don't rely on them. >>>>>> >>>>>> >>>>>> this is generally how I was trying: >>>>>> >>>>>> kill(all); >>>>>> load("z_transform"); >>>>>> N:4; >>>>>> fs3:(N1)!/((s+a)^N); >>>>>> >>>>>> f32:ilt(fs3,s,t); >>>>>> f33:subst(K*T,t,f32); >>>>>> f34:apply_z_transform (z_transform (f33, K, z)); >>>>>> >>>>>> f36:ev(z*T*'diff(z/(z%e^(a*T)),z,1),nouns,ratsimp,factor); >>>>>> >>>>>> >>>>>> I would like someone who understands Maxima and 'diff's to help me >>>>>> By duplicating what I have in the table and doing a couple more. >>>>>> (or showing that I have made a mistake) >>>>>> >>>>>> Thanks for any help you can give me. >>>>>> >>>>>> I have googled and looked in all my textbooks and con not fined such >>>>>> a table. >>>>>> >>>>>> Doug Stewart >>>>>> >>>>>> I am doing this because I am a developer (minor) for GnuOctave and I >>>>>> need this table to >>>>>> implement the Impulse invariant transform from Laplace to Z space. >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>>  >>>>> DAS[image: Certificate for 206392] >>>>> >>>>> <https://linuxcounter.net/user/206392.html>; >>>>> >>>>> >>>>>  >>>>> Attend Shape: An AT&T Tech Expo July 1516. Meet us at AT&T Park in San >>>>> Francisco, CA to explore cuttingedge tech and listen to tech >>>>> luminaries >>>>> present their vision of the future. This family event has something for >>>>> everyone, including kids. Get more information and register today. >>>>> http://sdm.link/attshape >>>>> _______________________________________________ >>>>> Maximadiscuss mailing list >>>>> Maximadiscuss@... >>>>> https://lists.sourceforge.net/lists/listinfo/maximadiscuss >>>>> >>>>> >>>> >>> >>> >>>  >>> DAS[image: Certificate for 206392] >>> >>> <https://linuxcounter.net/user/206392.html>; >>> >> >> >> >>  >> DAS[image: Certificate for 206392] >> >> <https://linuxcounter.net/user/206392.html>; >> > >  DAS[image: Certificate for 206392] <https://linuxcounter.net/user/206392.html>; 