MaplePrimes Commons General Technical Discussions

The primary forum for technical discussions.

I would like to announce a new unofficial record computation of the MRB constant that was finished on Sun 21 Sep 2014 18:35:06.

I really would like to see someone beat it with Maple!

It took 1 month 27 days 2 hours 45 minutes 15 seconds. I computed 3,014,991 digits of the MRB constant, (confirming my previous 2,00,000 or more digit computation was actually accurate to 2,009,993 digits), with Mathematica 10.0. I Used my version of Richard Crandall's code:



(*Fastest (at MRB's end) as of 25 Jul 2014.*)


prec = 3000000;(*Number of required decimals.*)ClearSystemCache[];

T0 = SessionTime[];

expM[pre_] := 

  Module[{a, d, s, k, bb, c, n, end, iprec, xvals, x, pc, cores = 12, 

    tsize = 2^7, chunksize, start = 1, ll, ctab, 

    pr = Floor[1.005 pre]}, chunksize = cores*tsize;

   n = Floor[1.32 pr];

   end = Ceiling[n/chunksize];

   Print["Iterations required: ", n];

   Print["end ", end];

   Print[end*chunksize]; d = ChebyshevT[n, 3];

   {b, c, s} = {SetPrecision[-1, 1.1*n], -d, 0};

   iprec = Ceiling[pr/27];

   Do[xvals = Flatten[ParallelTable[Table[ll = start + j*tsize + l;

        x = N[E^(Log[ll]/(ll)), iprec];

        pc = iprec;

        While[pc < pr, pc = Min[3 pc, pr];

         x = SetPrecision[x, pc];

         y = x^ll - ll;

         x = x (1 - 2 y/((ll + 1) y + 2 ll ll));];(*N[Exp[Log[ll]/ll],

        pr]*)x, {l, 0, tsize - 1}], {j, 0, cores - 1}, 

       Method -> "EvaluationsPerKernel" -> 4]];

    ctab = ParallelTable[Table[c = b - c;

       ll = start + l - 2;

       b *= 2 (ll + n) (ll - n)/((ll + 1) (2 ll + 1));

       c, {l, chunksize}], Method -> "EvaluationsPerKernel" -> 2];

    s += ctab.(xvals - 1);

    start += chunksize;

    Print["done iter ", k*chunksize, " ", SessionTime[] - T0];, {k, 0,

      end - 1}];

   N[-s/d, pr]];

t2 = Timing[MRBtest2 = expM[prec];]; DateString[]


MRBtest2 - MRBtest2M



I used a six core Intel(R) Core(TM) i7-3930K CPU @ 3.20 GHz 3.20 GHz with 64 GB of RAM of which only 16 GB was used.

t2 From the computation was {1.961004112059*10^6, Null}.




For all real a, the partial sums sn= sum((-1)^k (k^(1/k) -a), k=1..n) are bounded so that their limit points form an interval [-1.+  the MRB constant +a, MRB constant] of length 1-a, where the MRB constant is limit(sum((-1)^k*(k^(1/k)), k = 1 ..2*N),N=infinity).

For all complex z, the upper limit point of  sn= sum((-1)^k (k^(1/k) -z), k=1..n) is the  the MRB constant.

We see that maple knows the basics of this because when we enter sum((-1)^k*(k^(1/k)-z), k = 1 .. n) 

maple gives

sum((-1)^k*(k^(1/k)-z), k = 1 .. n)

you can change help of older maple version to 18 by this command:


for example if you download DirectSearch optimization package it's help don't open in maple 18 because in maple 18 .hdb converted to .help and you can do this convert by HelpTools:-Database:-ConvertAll():

DirectSearch version 2 created for maple 13 and i converted it's help to 18.

after i typed this command maple 18 wrote: 

"Converting G:\\Program Files\\Maple 18\\lib\\DirectSearch.hdb to G:\\Program Files\\Maple 18\\lib\\"
Warning, .hdb help databases are deprecated, 'G:\Program Files\Maple 18\lib\DirectSearch.hdb' will not be used, see ?HelpTools,Migrate help page for more information.

and when try again it worked properly and DirectSearch help opened.

Some years ago member William Fish started a long discussion in part about a numeric integral involving high parameter (high oscillation) Bessel J0. That numeric integration task appeared in a Bitwise Magazine article.

At that time even obtaining numeric results involved extra effort such as handling real and imaginary components of the integrand separately, and requesting particular methods (sometimes hacked, to bump up the subinterval limit, for very high parameter values).

That led to a post where I showed that the result could be obtained quickly by using a fast compiled BesselJ (J0) from an external library along with a modified low-level call to a particular evalf/Int solver.

And sometime after that a numeric result for the real & imaginary split integrand became much more readily (if not quickly) available by using a new `maxintervals` option of evalf/Int to specify the maximal number of subintervals for the particular solver.

Maple 18 has its own compiled implementations of the Bessel functions for "hardware" (double) precision arguments. So now the numeric evaluations of the integrand are computed much faster.

Using Maple 18.00 on 64bit Windows 7 the same numeric results obtain in under a second, in a simple, single call to evalf,Int.


  evalf(Int(BesselJ(0, 50001*x)*x*exp(I*(355*x^2*1/2)), x = .35 .. 1))
memory used=9.28MiB, alloc change=32.00MiB, cpu time=437.00ms, real time=441.00ms, gc time=0ns

                           -8                 -8  
             3.181753502 10   - 7.798301124 10   I


  evalf(Int(BesselJ(0, 10000*x)*x*exp(I*(355*x^2*1/2)), x = .35 .. 1))
memory used=6.83MiB, alloc change=32.00MiB, cpu time=218.00ms, real time=211.00ms, gc time=15.60ms

                            -7                 -7  
             -2.007752340 10   + 4.275388462 10   I


Of course the ramifications of fast, compiled Bessel functions at double precision extend much farther than just this one example. But I like seeing the speed improvement in terms of a concrete example.


Yesterday afternoon, we updated MaplePrimes. The purpose of the update was primarily to squash some bugs and improve user experience.

Highlights of the update include:

  • The ordering of replies has been corrected, as described in this post by Carl Love.

  • We fixed a problem whereby some members were unable to attach a file to a question or post.

  • Flagging a comment now works correctly.

  • Broken images that were appearing on some of our older posts have been restored. In addition, some older posts had incorrect dates, and these have been restored.

  • Some embedded links to user profiles or messages were resulting in errors, and have been corrected.

  • After receiving a badge, members will now be notified via a pop-up message.

A number of other small improvements were made as well.

As always, thank you for letting us know when you encounter a problem, and please continue to do so. We take note of everything that you report, and we try our best to prioritize and take care of the issues.


Voting is now open for the next individual prize to be awarded as part of the Möbius App Challenge.  The winner will receive an Xbox One Prize Pack! 

Here are the finalist Apps:

Note that, if you ever have any problems viewing Apps in your browser, or simply want to work offline, you can always download a Möbius App and view it in Maple or the free Maple Player. To download a Möbius App, follow the link to the App and then click on the Download button near the top left of the page.

You can vote for your favorite through our Facebook page or, if you’re not on Facebook, send an email with your vote to

And remember, we are now accepting entries for the next quarterly prize. You could win a Music Prize Pack, including the 64GB 5th Generation Apple iPod Touch, Sennheiser In-Ear Noise Cancelling Headphones and the Bose SoundLink Bluetooth Speaker III!  See the Möbuis App Challenge for details.

Voting closes April 25th, 2014.

I'll start with a quick positive.  One of the great advantages of upgraded software is the wealth of new features that we all get to play around with.  .. and then I will counter that with a great disadvantage, and that is, we all just about get familiar and comfortable with all the new features then BAM! a new version is released.  Of course we're then mesmorized once again by all the new bells and whistles and maybe even a couple of great celebrations occur with nice small updates throughout the year.  The other downside is that even though a large number of bugs may have been fixed a number of new ones are broght in with those new features. 

A side effect of a fast release is there are fewer and fewer applications associated with a release, and that is apparent in the application center.  Although mobius apps and the maple cloud may have also had some impact on that as well.

Now this is pale in comparison to book writers who scramble to keep their books current with new software.  I will quote a section from the introduction in the book Essential Maple 7 which highlights the problems the author had way back then .. I can't imagine how they feel now but here's the passage ...

"Indeed, one reason that there was so much time between the first and second
editions of this book is precisely that Maple has been evolving so rapidly in the
last few years, too rapidly for me to revise this book (much less complete my
others) while coping with my other duties."

That just hits the nail on the head, if you think Maple was evolving fast back then, the furious rate that upgrades are released now I would think authors have an almost impossible task to keep up. 

There are many that would agree with the author, that Maple is advancing so rapidly that we barely have time to gather our thoughts.  Maybe a solution is that we should slow down and create a much more polished piece of software, but again the caveat to that is our competition might just jump out in front.  However the norm today is that each new year represents a new release of software and we all celebrate when that happens.  If life seemed rushed back when Maple 7 was released I can't imagine what it'll be like 10 years from now when Maple 28 rolls around. 


It seems that


Limit(N+(sum((-1)^n*Sum(1/n^x, x = 1 .. N), n = 1 .. infinity)), N = infinity)=log(2)

 evalf(300+sum((-1)^n*(Sum(1/n^x, x = 1 .. 300)), n = 1 .. infinity), 30)



 sum(1/n^x, x = 1 .. infinity)



I just wanted to remind everyone that this quarter's Möbius App Challenge closes on March 31st.  The next prize to be awarded is an Xbox One Prize Pack.  Video games are supposed to be good for the brain, after all, so really, you owe it to yourself to enter.

To enter the contest, all you need to do is:

1) Create an interactive App in Maple

2) While in Maple, log-in to the MapleCloud through the MapleCloud palette.

3) Click on the Send Document to the Cloud button

4) Set the group to "Mobius@admin", then hit send.

The group is moderated, so it won't appear instantly, but once approved it will appear on the Möbius Project server, where people can interact with it through a web browser, in Maple, or download it for use with the free Maple Player.

Here are the full contest details and more information on creating and submitting Apps.

Good luck!


In this post we present the solution with Maple to the logical problem of "Gardens Puzzle"

The Puzzle:

Five friends have their gardens next to one another, where they grow three kinds of crops: fruits (apple, pear, nut, cherry), vegetables (carrot, parsley, gourd, onion) and flowers (aster, rose, tulip, lily).

1. They grow 12 different varieties.
2. Everybody grows exactly 4 different varieties
3. Each variety is at least in one garden.
4. Only one variety is in 4 gardens.
5. Only in one garden are all 3 kinds of crops.
6. Only in one garden are all 4 varieties of one kind of crops.
7. Pear is only in the two border gardens.
8. Paul's garden is in the middle with no lily.
9. Aster grower doesn't grow vegetables.
10. Rose growers don't grow parsley.
11. Nuts grower has also gourd and parsley.
12. In the first garden are apples and cherries.
13. Only in two gardens are cherries.
14. Sam has onions and cherries.
15. Luke grows exactly two kinds of fruit.
16. Tulip is only in two gardens.
17. Apple is in a single garden.
18. Only in one garden next to Zick's is parsley.
19. Sam's garden is not on the border.
20. Hank grows neither vegetables nor asters.
21. Paul has exactly three kinds of vegetable.

Who has which garden and what is grown where?


About methods of solution. At first I just wanted to generate all variations and using conditions 1 .. 21 to find all solutions. But even if we use the condition that everybody grows exactly 4 different varieties then the total number variants equals  5!^2*binomial(12,4)^5=427945522455000000

So from the very beginning using some of the conditions 1 .. 21 we maximally reduce the number of possible variants. For example from the conditions 11, 18 and 6 implies that only in one garden are all 4 varieties of flowers. Next we pass through these variants and using conditions 1 .. 21 and finally come to a unique solution:


Fruits:={apple, pear, nut, cherry}:

Vegetables:={carrot, parsley, gourd, onion}:

Flowers:={aster, rose, tulip, lily}:




Set2:=Fruits union Vegetables union Flowers minus {nut,gourd,parsley} minus {apple,cherry,rose}:

Garden2:={seq({nut,gourd,parsley} union {Set2[i]}, i=1..nops(Set2))}:

Set3:=Vegetables union Flowers minus {parsley}:

Garden3:={seq({apple,cherry,pear} union {Set3[i]}, i=1..nops(Set3))}:

Set4:=combinat[choose](Fruits union Vegetables union Flowers minus {onion,cherry} minus {apple,parsley,pear,nut}, 2):

Garden4:={seq({onion,cherry} union Set4[i], i=1..nops(Set4))}:

Set5:=Fruits union Vegetables union Flowers minus {apple, cherry,nut,parsley}:

Garden5:=combinat[choose](Set5, 4):



for s1 in Garden1 do

for s2 in Garden2 do

for s3 in Garden3 do

for s4 in Garden4 do

for s5 in Garden5 do

s:=[s1,s2,s3,s4,s5]: s_4:=combinat[choose](s,4): m:=0: n:=0: k:=0: p:=0: q:=0:

for i in s do

if `intersect`(i,Fruits)<>{} and `intersect`(i,Vegetables)<>{} and `intersect`(i,Flowers)<>{} then m:=m+1: fi:

if pear in i then n:=n+1: fi:

if tulip in i then k:=k+1: fi:

if aster in i and `intersect`(i,Vegetables)<>{} then p:=p+1: fi:

if i=Fruits or i=Vegetables or i=Flowers then q:=q+1: fi:


if nops(`union`(op(s)))=12 and nops(`union`(seq(`intersect`(op(s_4[j])), j=1..nops(s_4))))=1 and m=1 and n=2 and k=2 and p=0 and q=1 then S:=[op(S),[s1,s2,s3,s4,s5]]: fi:

od: od: od: od: od:







for l in L do

for s in S do

sol:=[seq([op(l[i]),s[i]], i=1..5)]:

gad1:=op(select(has,sol,parsley)): gad2:=op(select(has,sol,Zick)):

if abs(gad1[1]-gad2[1])=1 and convert([seq(((pear in sol[i][3] implies (sol[i][1]=1 or sol[i][1]=5)) and (sol[i][2]=Paul implies (not lily in sol[i][3])) and (sol[i][1]=1 implies (apple in sol[i][3] and cherry in sol[i][3])) and (sol[i][2]=Sam implies (onion in sol[i][3] and cherry in sol[i][3])) and (sol[i][2]=Luke implies nops(`intersect`(sol[i][3],Fruits))=2) and (sol[i][2]=Hank implies (`intersect`(sol[i][3],Vegetables)={} and not aster in sol[i][3])) and (sol[i][2]=Paul implies nops(`intersect`(sol[i][3],Vegetables))=3)), i=1..5)], `and`) then Sol:=[op(Sol), sol]: fi:


od: od:

for i in Sol do





For some time I have been running into the problem where uploaded worksheets that are inlined into a Mapleprimes post get gridlines shown, even when they are not specified or shown in the original worksheet. This is a problem because quite often the gridlines make an inlined plot unattractive.

I believe that Mapleprimes uses some version of MapleNet as a mechanism for inlining uploaded worksheets.

It seems that the Standard GUI and/or MapleNet have special handling for gridlines in the sense that they actually distinguish between PLOT structures generated without the `gridlines` option versus those created with `gridlines=false`.  I believe that this has something to do with the persistence of various plot qualities in an output region which (perhaps for historical reasons?)  allow re-execution of a plot input command to produce a plot output rendering that remembers whether gridlines are visible.

If the second plot below does indeed get rendered here in Primes without gridlines visible then one workaround is evident: adding `gridlines=false` instead of omitting the option.





I'll submit a bug report against MapleNet.


Maple 18, document mode. Please try this:


Now, as the cursor is right after the "m" above, hiting the ESC key to autocomplete, nothing happens. Only a beep, meaning Maple does not know about the variable name I wanted to expand to, which is "some_long_name". What I do now is manually add a space by  pushing the ")" away, like this:

  f(som )

And now put the mouse back in front of the "m" and now hit ESC. Maple now can see the name I wanted.

Really? This is very bad design. You might ask, why did I close the () first? Well, I like to start by writing () then fill it in, or it can be that I am changing things, and wanted to write a new name, and the () was allready there. I use name autocomplete alot, and it is very annoying to not be able to use it if happens that there is a ")" or "]" right next to the name.

Having to keep pushing the ")" away, so that Maple can see the name makes no sense since ")" can't part of a name.

In Mathematica it just works. I can do

someLongName = 3;

Then in a new cell,

f[som] and hit CTRL-K  when mouse at the letter "m" just typed it in, and it will autocomplete.  I did not have to push "]" away first.

Please Maple, fix your user interface so it is less awkward and annoying to use. This is version 18 of the software, and not version 1.


A post to conjure up some interest.  Nasa seeks coders to hunt asteroids

Just going out on a limb here but any of the three M's would have a good chance here.  A good opportunity to create some code.  Maple could port it to C code then compiled for speed.  On a smaller scale it would be an interesting challenge.  On the larger scale not sure if Maple would be best suited for the task.  Opinions?

This is one of my favorite events of the year. When we launch a new release of Maple, I get to see the work of so many talented individuals at Maplesoft come together in a form that I am sure will delight, and maybe even surprise you.

We are holding true to our principles with Maple 18. Hundreds of new mathematical algorithms further strengthen a computational engine that will help you tackle your toughest challenges. The user interface experience continues to become smarter, allowing you to focus on getting results without fighting with syntax. Connectivity options are again becoming richer.

A personal favorite of mine is the newly enhanced Explore functionality, which allows you to, with a couple of clicks, go from a mathematical expression to an interactive Math App. Math Apps allow you to explore the parameter space of the expression, gain insight into its behavior and even, in conjunction with Maple T.A., produce a gradeable Möbius App that allows you to assess a student’s interaction with the app and hence their understanding of the underlying concepts. The expanded Explore functionality is just part of a collection of advancements in Maple 18 that support The Möbius Project.

Overall, the new features of Maple 18 are quite numerous and I won’t try to list them all here. However, I do want to mention a few areas that have received special attention:

  • Statistics: Maple 18 includes lots of enhancements to statistics computations and visualization, such as new time series functionality that allows you to find patterns, make forecasts, and visualize time-based data. For the classroom, a new Student Statistics package, together with a range of bundled Math Apps, provide a simplified and interactive environment for instructors and students alike.

  • Physics: This package for representing and computing with concepts from general relativity to quantum mechanics continues to grow by leaps and bounds, with over 500 enhancements just in this release alone. We are convinced that this is the best computational environment available for researchers in this area.

  • Engineering: Key enhancements for control analysis, signal processing, and code generation to Python and Perl are just a few of the new features that engineers will note and appreciate. There’s even import/export for STL graphics files, which, amongst other things, means you can now print out your favorite Maple plots on a 3-D printer!

I think you will agree that Maple 18 exemplifies all the effort and attention that we have put into it.  And there’s more to come - this release is just the start of a stream of product announcements that you can expect from us in the coming months. Stay tuned!

It is a relatively recent innovation that complex-number computations can be done in the evalhf environment. When combined with plots:-densityplot, this makes escape-time fractals in the complex domain very easy to plot. This fractal is based on the Collatz problem. This Wikipedia article has a high-resolution picture of this fractal. I've switched the real and imaginary axes and reversed the direction of the real axis purely for asthetic reasons.


Collatz:= proc(b,a)  #Axes switched
local z:= -a+b*I, k;  #real part negated
     for k to 31 while abs(Im(z)) < 1 do
          z:= (1+4*z-(1+2*z)*cos(Pi*z))/4
     end do;
     k #escape time
end proc:

#Test evalhf'ability:



     jpeg, plotoutput= "C:/Users/Carl/desktop/Collatz.jpg",
     plotoptions="height= 1024, width= 1024, quality= 95"


          -1..1, # imaginary range
          -0.5..4.5, #negative of real range
          colorstyle= HUE, grid= [1024, 1024], style= patchnogrid,
          labels= [Im,-Re], labelfont= [TIMES, BOLD, 14],
          axes= boxed,
          caption= cat("      Happy New Year ",                  

          captionfont= [HELVETICA, BOLDOBLIQUE, 18]

memory used=24.08MiB, alloc change=24.00MiB, cpu time=7.78s, real time=7.79s



4 5 6 7 8 9 10 Last Page 6 of 75