Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

A bit of statistics trivia for Maple and Mathematica

12 views
Skip to first unread message

Nasser M. Abbasi

unread,
Nov 19, 2009, 8:55:34 AM11/19/09
to

I did a count of the number of functions in Mathematica 7 the other day, and
I figured I should do one like this for Maple as well. So, here are some
stats, maybe some might find them interesting.

Mathematica 7:
============
The System (i.e kernel) contains 1,920 functions.
It comes with additional 35 standard packages that can be loaded using
Get[];
Total number of functions in the system and the packages combined is 2,561

Maple 12:
=======
System top level commands and what is called the standard libraries: 678
It comes with additional 116 packages that can be loaded using with();
Total number of functions in all of the above combined is 3,902


For the complete listing showing package and what functions in it in both
system are here

Maple 12
http://12000.org/my_notes/maple_functions/final.html

Mathematica 7
http://12000.org/my_notes/compare_mathematica/mma7_functions/process.html

I do not claim the above does not contain any errors. I am just a user.

May be we can get a count for some of the other CAS systems out there?

Yes, I know, counting number of functions can be misleading as an indication
of the functionality provided by the system. As one function can be
implemented to have many different options which ends up doing the work of
50 other smaller functions...but still, useful to get an idea about this.

Notice, this is just for functions that come with the system out of the box.
no third-party stuff.


--Nasser


TimDaly

unread,
Nov 19, 2009, 9:54:10 AM11/19/09
to axiom-d...@nongnu.org, da...@axiom-developer.org
On Nov 19, 8:55 am, "Nasser M. Abbasi" <n...@12000.org> wrote:
> I did a count of the number of functions in Mathematica 7 the other day, and
> I figured I should do one like this for Maple as well. So, here are some
> stats, maybe some might find them interesting.
>
> Mathematica 7:
> ============
> The System (i.e kernel) contains 1,920 functions.
> It comes with additional 35 standard packages that can be loaded using
> Get[];
> Total number of functions in the system and the packages combined is 2,561
>
> Maple 12:
> =======
> System top level commands and what is called the standard libraries: 678
> It comes with additional 116 packages that can be loaded using with();
> Total number of functions in all of the above combined is 3,902
>
> For the complete listing showing package and what functions in it in both
> system are here
>
> Maple 12http://12000.org/my_notes/maple_functions/final.html
>
> Mathematica 7http://12000.org/my_notes/compare_mathematica/mma7_functions/process....

>
> I do not claim the above does not contain any errors. I am just a user.
>
> May be we can get a count for some of the other CAS systems out there?
>
> Yes, I know, counting number of functions can be misleading as an indication
> of the functionality provided by the system. As one function can be
> implemented to have many different options which ends up doing the work of
> 50 other smaller functions...but still, useful to get an idea about this.
>
> Notice, this is just for functions that come with the system out of the box.
> no third-party stuff.
>
> --Nasser

Well, the question is not well-formed in Axiom terms since names are
overloaded by inheritance. So + for Integers is not the same function
as + for Polynomials. However, a count of the user-exposed functions
available from the top level can be shown by the command
)d op
with no chosen operation. The raw counts are:
5434 Unique functions
3052 Unique function names (e.g. + Integer, + Poly)

Roman Pearce

unread,
Nov 19, 2009, 1:55:28 PM11/19/09
to
On Nov 19, 5:55 am, "Nasser M. Abbasi" <n...@12000.org> wrote:
> I did a count of the number of functions in Mathematica 7 the other day, and
> I figured I should do one like this for Maple as well.
...

> Yes, I know, counting number of functions can be misleading as an indication
> of the functionality provided by the system. As one function can be
> implemented to have many different options which ends up doing the work of
> 50 other smaller functions...but still, useful to get an idea about this.

My knowledge of both is limited, but Mathematica does seem to put a
lot of its core functionality into options. For example, the Groebner
Walk algorithm is an option to the GroebnerBasis command (not sure
about FGLM). Maple has this as well, but there are also separate
commands to run the FGLM or Groebner walk algorithms, assuming the
input is a Groebner basis. I prefer this approach, but the option
routine is not bad either because people complain all the time that
Maple has too many commands :)

What I would love to see is a side-by-side comparison of algorithms,
organized into different domains, with some kind of subjective
rankings for generality and speed. Call it "the world's longest
flamewar" :) It would be useful and interesting though.

TimDaly

unread,
Nov 19, 2009, 2:06:57 PM11/19/09
to axiom-d...@nongnu.org, da...@axiom-developer.org

A side-by-side comparison of algorithms would be excellent.
Even a function-to-function rosetta-stone translation is great.
There are lots of fascinating things to be found.

I have compared the answers to integration for Axiom, Maple,
MMA, and Maxima on the issue of branch cuts. Curiously it
seems that Axiom and Maple make the same choice and
MMA and Maxima make the same choice, different from the
Axiom/Maple choice. Since the choice is somewhat arbitrary
it would be nice to have some flame in this area. In fact,
there seems to be no reason why this can't be a dynamic
choice.

Sage is claiming an effort to reimplement some of the
integration algorithms. I do not know in which camp they
will end up but hopefully it won't be a third camp.

How would such an effort be organized?

Tim

Nasser M. Abbasi

unread,
Nov 19, 2009, 3:06:54 PM11/19/09
to

"Roman Pearce" <rpea...@gmail.com> wrote in message
news:de393bf9-cbb7-4138-bced-


"What I would love to see is a side-by-side comparison of algorithms,
organized into different domains, with some kind of subjective
rankings for generality and speed. Call it "the world's longest
flamewar" :) It would be useful and interesting though."

Nice that would be nice. May be some CAS expert can do this, over my head
myself as not my area, but I would think this is kind'a hard to do given
that both of the big players here (Maple and Mathematica) are closed
sources?

The best one can do is read the functions documentation and may be some bits
of things here and there to get some idea, but the details of the algorithms
inside the cover will always be hard to get to I would think.

Speaking of integration, it seems like the coming Mathematica release has
developed new algorithms for numerical integration:

"Oh, yes, another algorithm breakthrough area: NIntegrate. We've developed a
whole bunch of new algorithms for handling functions that oscillate."

reference: Wolfram presentation at the International Mathematica User
Conference 2009

http://blog.wolfram.com/2009/11/12/the-rd-pipeline-for-mathematica/#more-2172

Very interesting to view/read if you have not seen it yet.

--Nasser


Dave

unread,
Nov 19, 2009, 3:04:28 PM11/19/09
to
Roman Pearce wrote:

> What I would love to see is a side-by-side comparison of algorithms,
> organized into different domains, with some kind of subjective
> rankings for generality and speed. Call it "the world's longest
> flamewar" :) It would be useful and interesting though.

Well, if you want a flame war, how about the popularity of Mathematica vs Sage,
based on the posting to the respective public forums?

http://alpha.sagenb.org/home/pub/3/

--
I respectfully request that this message is not archived by companies as
unscrupulous as 'Experts Exchange' . In case you are unaware,
'Experts Exchange' take questions posted on the web and try to find
idiots stupid enough to pay for the answers, which were posted freely
by others. They are leeches.

David N. Williams

unread,
Nov 19, 2009, 3:22:54 PM11/19/09
to
TimDaly wrote:
> [...]

>
> I have compared the answers to integration for Axiom, Maple,
> MMA, and Maxima on the issue of branch cuts. Curiously it
> seems that Axiom and Maple make the same choice and
> MMA and Maxima make the same choice, different from the
> Axiom/Maple choice. Since the choice is somewhat arbitrary
> it would be nice to have some flame in this area. In fact,
> there seems to be no reason why this can't be a dynamic
> choice.

I wonder which, if any of them, follow the OpenMath standard? I
don't know how well that has caught on, but there's example info
here:

Robert M. Corless, David J. Jeffrey, Stephen M. Watt, and James
H. Davenport, "'According to Abramowitz and Stegun' or arcoth
needn't be uncouth":

http://doi.acm.org/10.1145/362001.362023
http://www.apmaths.uwo.ca/~djeffrey/Offprints/couth.pdf (preprint)

OpenMath home page:

http://www.openmath.org/index.html

OpenMath transcendental functions:

http://www.openmath.org/cocoon/openmath/cd/transc1.html
http://www.openmath.org/cocoon/openmath/cd/transc3.html

-- David

Richard Fateman

unread,
Nov 19, 2009, 4:08:28 PM11/19/09
to
David N. Williams wrote:
...

>
> I wonder which, if any of them, follow the OpenMath standard? I
> don't know how well that has caught on, but there's example info
> here:
>
> Robert M. Corless, David J. Jeffrey, Stephen M. Watt, and James
> H. Davenport, "'According to Abramowitz and Stegun' or arcoth
> needn't be uncouth":
>
> http://doi.acm.org/10.1145/362001.362023
> http://www.apmaths.uwo.ca/~djeffrey/Offprints/couth.pdf (preprint)
>
...
I suspect the point of Corless et al above is that the OpenMath
documents do not provide a standard for branch cuts, but should. (I've
complained about related issues years ago. ... OpenMath originally
defined stuff like cosine by, essentially, "oh everyone knows what
cosine is". Apparently it hasn't gotten much better -- just waving a
hand in the direction of A&S.)

I see no special reason for a well-established system to change in order
to conform to the OpenMath "standard". The nice thing about standards is
that there are so many of them. Perhaps DLMF from NIST will eventually
appear.

The functionality for Maxima, incidentally, includes all the functions
in Common Lisp, which can be address by prepending a "?". There are
quite a few in ANSI Standard Common Lisp. Maybe something similar in
Reduce and Axiom.

Dave

unread,
Nov 19, 2009, 7:23:51 PM11/19/09
to

I suspect counting functions would be *very* misleading, since as you say, a
function can do a small task, or a huge one given tons of options.

AES

unread,
Nov 19, 2009, 7:53:24 PM11/19/09
to
In article
<de393bf9-cbb7-4138...@b25g2000prb.googlegroups.com>,
Roman Pearce <rpea...@gmail.com> wrote:

>
> What I would love to see is a side-by-side comparison of algorithms,
> organized into different domains, with some kind of subjective
> rankings for generality and speed. Call it "the world's longest
> flamewar" :) It would be useful and interesting though.

But as I understand it, the posts would not be allowed to appear on
comp.soft-sys.math.mathematica . . .???

Nasser Abbasi

unread,
Nov 19, 2009, 8:45:37 PM11/19/09
to
On Nov 19, 6:23 pm, Dave <f...@coo.com> wrote:

> Nasser M. Abbasi wrote:

> > Yes, I know, counting number of functions can be misleading as an indication
> > of the functionality provided by the system. As one function can be
> > implemented to have many different options which ends up doing the work of
> > 50 other smaller functions...but still, useful to get an idea about this.

>
> I suspect counting functions would be *very* misleading, since as you say, a
> function can do a small task, or a huge one given tons of options.

Yes Dave. But it depends on the context, would you not agree?

Basic Mathematical functions for example can't really be combined into
a higher level function.

One would expect a CAS to contain for example, the basic trig
functions, sin, cos, tan, etc... and those can't be made into one
function which takes some option, as in

trig_function(method->sin, angle=...)

That would not work.

Same for the special functions. So a count is useful in this case
becuase one can see which system has more support for special
functions by counting.

For example Mathematica for Bessel has

BesselI, BesselJ, BesselJZero, BesselK, BesselY, BesselYZero,
SphericalBesselJ, SphericalBesselY

while maple has

BesselI, BesselJ, BesselJZeros, BesselK, BesselY, BesselYZeros

For Legendre, Mathematica has LegendreP, LegendreQ and Maple also has
the same 2 functions. So, by counting I see right away which system
has more support for special functions or if the support is the same
or not.

The point is, depending on the context, a count of functions can be
useful as in the above, but in another area it might not give an
indication of the functionality. Here is an example where counting is
misleading:

Take the numerical solution to an ODE.

Mathematica has NDSolve[] while Matlab for example has many functions
for numerical solution for an ode (ode23, ode45, ode113, ode15s,
ode23s, ode23t, ode23tb etc..) where the user needs to select the one
to use. And for a pde it even has a toolbox dedicated just for pde's.

While in Mathematica, pretty much all of this is done by just this one
overworked function NDSOlve[]. A super function. I happen to prefer in
this case the super function solution, and then use options to adjust
its behavior as it makes one more familiar with the API. Others might
prefer the Matlab approach.

So, in this case, function counting would not favor Mathematica
against Matlab even though the functionalities are pretty much the
same.

--Nasser

Dave

unread,
Nov 20, 2009, 11:07:12 AM11/20/09
to

So any attempt at counting functions is going to need a *lot* of human
interaction and analysis, before those integers are of any use whatsoever. The
person doing the function counting would need to be very familiar with both
packages.

There have been various papers comparing the mathematical packages. I doubt
there is any perfect way to do this, but personally I believe counting functions
would come well down the list of 'best' ways.

I think you should also note that at least on an individual basis, you will
probably uses only 10% of the functionality of the big packages. What suites
you, may not be appropriate for someone else.

For me at least, from once a fan of Mathematica, I've come to realise that's it
use in industry is so small that it's hardly worth knowing once you leave
academia. (If you do not believe that, do a search of jobs in places like
monster.com, and see how many companies want Mathematica knowledge. Then compare
it to MATLAB). Whilst I can't say I know companies are beating down the doors to
get Sage, I do see that being more attractive to me personally, as its a tool
you can work with companies, show them results on a browser, and let them make
changes in the browser. That's great if you work with companies thousands of
miles away. That beats Mathematica any day.

Dave

Nasser M. Abbasi

unread,
Nov 20, 2009, 11:36:08 AM11/20/09
to

"Dave" <f...@coo.com> wrote in message news:4b06...@212.67.96.135...

>Whilst I can't say I know companies are beating down the doors to get Sage,
>I do see that being more attractive to me personally, as its a tool you can
>work with companies, show them results on a browser, and let them make
>changes in the browser. That's great if you work with companies thousands
>of miles away. That beats Mathematica any day.
>
> Dave
>

I do not understand what you mean by make change in the browser? can you
give a link to where one can do this now?

Can one in Sage make a demo and have someone else run it on their end
without having sage installed on their computer? i.e. I want to email
someone a file, and have them run on on their end without having sage
installed?

With Mathematica, I can do that. There is a free Mathematica player (like a
free pdf reader) which once installed on your system, then one can run any
mathematica demo by just double clicking on it. I have written few, here is
a link to some I have:
http://12000.org/my_notes/mma_demos/index.htm

If I can do that in sage, I would be very interested to learn it. Please
point me to a link where I can run a Sage simulation without having to have
sage installed.

But last time I looked at it, I could not do that in Sage without having to
have it installed on the PC. (no one would download 800 MB file to windows
to install, just to run some code someone else send them? May be this
changed?

And I can't do this in Matlab nor in Maple, and I certainly not going to try
Java again. Only now in Mathematica I can do this.

And Wolfram says in the next version of Mathemtica, they will have this
player as a browser plug-in, which means one can run the Mathematica code
inside the browser by clicking on a mathematica demo file. Reference:

http://blog.wolfram.com/2009/11/12/the-rd-pipeline-for-mathematica/#more-2172

Quote:

"And here's a big direction: embedding the Mathematica interface into
things.Making Mathematica notebooks be smooth plug-ins.

Coming very soon is a complete browser plug-in for all the common browsers
and platforms, so you can seamlessly run a Mathematica notebook inside a web
browser.

So that if you click on a .nb or a .nbp file, it'll just automatically
download a plug-in-typically a version of Mathematica Player-and it'll just
open in the frame of your browser.

The same idea is coming for example for PowerPoint. So right in the middle
of a PowerPoint presentation, you can have a live Mathematica notebook, with
Manipulate and everything."

I think this is very interesting.

As far as jobs is concerned, I think you will find that jobs that require
any CAS tool to be very limited, it does not matter which CAS system it is.

If I am only looking for a job, I would not be learning Mathematica nor
Sage, I would be learning power point and HTML ;)

Any way, it will be interesting to come back and see where things will be 10
years from now !

Best,
--Nasser


Dave

unread,
Nov 20, 2009, 2:00:33 PM11/20/09
to
Nasser M. Abbasi wrote:
> "Dave" <f...@coo.com> wrote in message news:4b06...@212.67.96.135...
>
>> Whilst I can't say I know companies are beating down the doors to get Sage,
>> I do see that being more attractive to me personally, as its a tool you can
>> work with companies, show them results on a browser, and let them make
>> changes in the browser. That's great if you work with companies thousands
>> of miles away. That beats Mathematica any day.
>>
>> Dave
>>
>
> I do not understand what you mean by make change in the browser? can you
> give a link to where one can do this now?


Sure. Create yourself an account on

http://www.sagenb.org/

You do not need to download anything, as you will be using a server hosted
somewhere else. The admin of the server will probably put limits on the amount
of RAM and CPU time you can use, so there are advantages to having a local
server. If it's local, you just connect your browser to

http://localhost:8000

> Can one in Sage make a demo and have someone else run it on their end
> without having sage installed on their computer? i.e. I want to email
> someone a file, and have them run on on their end without having sage
> installed?

Yes.

In fact, neither you nor the other person need to have Sage installed.

There needs to be a Sage server, but that can be on your machine, his, or a a
publicly accessible Sage server thousands of miles away.

The communication can be via HTTPS, using encrypted traffic, so it is suitable
for commercial purposes, where standard HTTP does not offer sufficient security.

It goes without saying, if the information is highly confidential, it would be
unwise to run it on a public server. The admin of the system could read your files.

I should add at this point my knowledge of using Sage is *very* minimal. But I
do spend some of my spare time developing it. My aim it to get better Solaris
support.

Sage now runs fine on Solaris (SPARC) though building it is a bit tricky. It's
not running well on OpenSolaris, though I hope to fix that, as I just bought a
Sun Ultra 27 with a quad core 3.33 GHz Xeon and 12 GB RAM!

> With Mathematica, I can do that. There is a free Mathematica player (like a
> free pdf reader) which once installed on your system, then one can run any
> mathematica demo by just double clicking on it. I have written few, here is
> a link to some I have:
> http://12000.org/my_notes/mma_demos/index.htm

Sage works as a client/server just like a normal web site. You do not need to
download anything to read HTML.

> If I can do that in sage, I would be very interested to learn it. Please
> point me to a link where I can run a Sage simulation without having to have
> sage installed.

See above.

> But last time I looked at it, I could not do that in Sage without having to
> have it installed on the PC. (no one would download 800 MB file to windows
> to install, just to run some code someone else send them? May be this
> changed?

I do not think it has ever been like that. I think you mis-understood the
concept. But I may be wrong. I know it does not work like that now.

There will be more limitations using a public server. If you want someone else
to be able to run some CPU intensive stuff you wrote, then you would need to
install your own Sage server, and give them access to that.

> And I can't do this in Matlab nor in Maple, and I certainly not going to try
> Java again. Only now in Mathematica I can do this.

But the Mathematica solution is limited, as the other person can not change the
code. But in Sage, you can allow others to edit your notebooks.

> And Wolfram says in the next version of Mathemtica, they will have this
> player as a browser plug-in, which means one can run the Mathematica code
> inside the browser by clicking on a mathematica demo file. Reference:
>
> http://blog.wolfram.com/2009/11/12/the-rd-pipeline-for-mathematica/#more-2172
>
> Quote:
>
> "And here's a big direction: embedding the Mathematica interface into
> things.Making Mathematica notebooks be smooth plug-ins.
>
> Coming very soon is a complete browser plug-in for all the common browsers
> and platforms, so you can seamlessly run a Mathematica notebook inside a web
> browser.

Run yes, but due to license restrictions, I very much doubt Wolfram Research
will let anyone you choose make any changes they want.

> As far as jobs is concerned, I think you will find that jobs that require
> any CAS tool to be very limited, it does not matter which CAS system it is.

Jobs requiring skills in MATLAB are quite common in engineering.

> If I am only looking for a job, I would not be learning Mathematica nor
> Sage, I would be learning power point and HTML ;)

Sage does not have its own langague like MATLAB, Maple or Mathematica. Sage uses
Python. So you would need to learn Python, for which there are many jobs!!

> Any way, it will be interesting to come back and see where things will be 10
> years from now !

Yes, it will. I hope none of the commercial vendors go out of business, as
competition always enhances products. I doubt modern CPUs would be as good as
they are, if there was not the competition between Intel and AMD.

Richard Fateman

unread,
Nov 20, 2009, 2:21:06 PM11/20/09
to
I am curious as to how much of the use of Sage is simply as a front end
to Maxima.

Sage includes much esoterica of little use to most scientists and
engineers, and otherwise has (historically, at least) sent most
of the computations to a slow, out-of-date, version of the Maxima
system. An up-to-date, faster, and smaller system running just Maxima
is freely available, and it runs natively on many systems, including
Windows.

RJF

Dave

unread,
Nov 20, 2009, 3:29:15 PM11/20/09
to
Richard Fateman wrote:
> I am curious as to how much of the use of Sage is simply as a front end
> to Maxima.

Richard, I realise you have a problem with Sage. I know rivalry between
academics can be very intense. Perhaps that is the reason, I do not know. I've
met many academics who like nothing more that to see someone elses projects
fail. Perhaps it is jealousy, I do not know and do not care too much.

Sage does act as a front end to Maxima, but around 100 other packages too, so
Maxima is a very small part of Sage.

> Sage includes much esoterica of little use to most scientists and
> engineers,

So how do you explain the quite high activity on the sage-support mailing list?
The graphs shown earlier clearly show there is a lot of interest in Sage.

> and otherwise has (historically, at least) sent most
> of the computations to a slow, out-of-date, version of the Maxima
> system.

The version of Maxima is Sage is 5.19.1, which was added only 3 months ago, so
whilst I'm not saying that is the latest, it is not that old either.

I opened the ticket in Sage to get Maxima updated myself

http://trac.sagemath.org/sage_trac/ticket/6699


> An up-to-date, faster, and smaller system running just Maxima
> is freely available, and it runs natively on many systems, including
> Windows.
>
> RJF

Fine if all you want is Maxima's functionality.

Richard Fateman

unread,
Nov 20, 2009, 8:08:52 PM11/20/09
to
Dave wrote:
> Richard Fateman wrote:
>> I am curious as to how much of the use of Sage is simply as a front
>> end to Maxima.
>
> Richard, I realise you have a problem with Sage. I know rivalry between
> academics can be very intense. Perhaps that is the reason, I do not
> know. I've met many academics who like nothing more that to see someone
> elses projects fail. Perhaps it is jealousy, I do not know and do not
> care too much.
>
> Sage does act as a front end to Maxima, but around 100 other packages
> too, so Maxima is a very small part of Sage.

To repeat,

I am curious as to how much of the use of Sage is simply as a front end

to Maxima. What does the presence of 100 other packages have to do with
the statistics I am curious about? Perhaps you have no way of telling,
in which case you could have just held your tongue.

>
>> Sage includes much esoterica of little use to most scientists and
>> engineers,
>
> So how do you explain the quite high activity on the sage-support
> mailing list?

I don't read the sage support mailing list. Can you perhaps provide
some statistics on the number of questions that relate to support of
features that ultimately result in a question being sent to Maxima?

Can you perhaps also determine what percentage of (unique) users are
essentially using Sage as a replacement for Matlab-like calculations or
Maxima-like calculations, and who are using it for (say) number theory,
group theory, or pure-math stuff of one sort or another?

The graphs shown earlier clearly show there is a lot of
> interest in Sage.

Could this be related to the enormous effort being put into advertising
Sage?


>
>> and otherwise has (historically, at least) sent most
>> of the computations to a slow, out-of-date, version of the Maxima system.
>
> The version of Maxima is Sage is 5.19.1, which was added only 3 months
> ago, so whilst I'm not saying that is the latest, it is not that old
> either.

Historically, Sage used a byte-code interpreted Lisp to run an outdated
version of Maxima. Sage finally is coming up to speed. That's nice.


>
> I opened the ticket in Sage to get Maxima updated myself
>
> http://trac.sagemath.org/sage_trac/ticket/6699
>

Thanks for your contribution to this effort.

>
>> An up-to-date, faster, and smaller system running just Maxima
>> is freely available, and it runs natively on many systems, including
>> Windows.

Sage still doesn't run natively on Windows, I guess.

>>
>> RJF
>
> Fine if all you want is Maxima's functionality.

That seems to be the case for some people, who don't need 100 extra
packages :)

>

Richard Fateman

unread,
Nov 21, 2009, 12:54:47 PM11/21/09
to
Dave wrote:
...

>
> Richard, I realise you have a problem with Sage. I know rivalry between
> academics can be very intense. Perhaps that is the reason, I do not
> know. I've met many academics who like nothing more that to see someone
> elses projects fail. Perhaps it is jealousy, I do not know and do not
> care too much.

Dave, I know that rivalry between systems can be very intense. Perhaps
that is the reason that Harald Schilly, a Sage implementer, in his new
(Nov 19, 2009) Survey of Sage Users (on Sage-Support) asks his audience
a kind of peculiar question about what software they "know". He oddly
omits the several free computer algebra systems that are available. I
assume that it is because he is trying to promulgate the impression that
Sage is the only free system software alternative to Mathematica and
Maple. He also omits the (to me) logical entries for other possible
programming language familiarity, e.g. C, C++, Java, PHP, Ruby, Perl,
and Lisp, among others.

The question, for those interested in the details, looks like this:


Software
* Which software do you know?
(Expert means, that you use it extensively and you can explain it to
others.)
I know it well, I'm expert // I know it, but no expert //Heard of, but
never used // Don't know, never heard of

Sage
Mathematica
Magma
Maple
Matlab
Octave/Scilab
Numpy/Scipy
R
SPSS, SAS, ...
Microsoft Windows
Mac OS X
Linux
Python

................
Presuming it is entirely innocent that Harald omits Axiom and its
variant forks, Reduce, and Maxima from this list, it would be easy
enough to change the survey, and correct the omissions.

Richard Fateman

unread,
Nov 21, 2009, 2:25:39 PM11/21/09
to
Dave wrote:
....

>
> Sage does act as a front end to Maxima, but around 100 other packages
> too, so Maxima is a very small part of Sage.
>
>> Sage includes much esoterica of little use to most scientists and
>> engineers,
>
> So how do you explain the quite high activity on the sage-support
> mailing list? The graphs shown earlier clearly show there is a lot of
> interest in Sage.

I just joined Sage-support. There are 3488 messages on it. While I am
sure that the 100 other packages allow you to claim that Maxima is only
a small part of Sage, a search for the keyword "maxima" in sage-support
comes up with 2620 messages. While I suppose some of them might merely
be hits on the mathematical concept (e.g. like minima), the ones that I
looked at refer to the maxima computer algebra system, typically
pointing out that one computation or another is just a call to maxima,
for good or ill. One recent thread in fact asks about running "just maxima".

So, the explanation of the activity on the sage-support mailing list
seems to be largely a discussion of (a) how Maxima does or does not do
something, (b) how Sage accesses or fails to access the relevant
facility in Maxima, (c) how Sage's version of Maxima is the same as or
different from the stand-alone version, or how different Lisp systems
affect memory etc.

Of course some of the other discussion on sage-support that does not
mention maxima may be a discussion of a maxima facility implicitly. Some
of it may discuss facilities that perhaps are available in Sage but
could just as easily be found in maxima. 2D and 3D plotting come to mind.

I don't mind that Sage uses Maxima. However, if Sage users discover a
bug in a Maxima functionality (e.g. integration, solve), it would be
nice if Sage enthusiasts were encouraged to fix the bug in the most
natural way, which would be to look at the (free, open-source) Maxima
code, and offer a replacement. Instead, the plan seems to be to have
summer projects to rewrite every piece of Maxima from scratch in Python.

\begin{sarcasm}
I'm sure that academic rivalry plays no role in not mentioning Maxima in
the survey, and I'm sure that the Python code will be fast, efficient,
robust, and bug-free.
\end{sarcasm}

RJF

clicl...@freenet.de

unread,
Nov 22, 2009, 7:53:48 PM11/22/09
to

Richard Fateman schrieb:

>
> I don't mind that Sage uses Maxima. However, if Sage users discover a
> bug in a Maxima functionality (e.g. integration, solve), it would be
> nice if Sage enthusiasts were encouraged to fix the bug in the most
> natural way, which would be to look at the (free, open-source) Maxima
> code, and offer a replacement. Instead, the plan seems to be to have
> summer projects to rewrite every piece of Maxima from scratch in
> Python.
>
> \begin{sarcasm}
> I'm sure that academic rivalry plays no role in not mentioning Maxima > in the survey, and I'm sure that the Python code will be fast,
> efficient, robust, and bug-free.
> \end{sarcasm}
>

How many man years would be needed to implement in Python a system
functionally roughly equivalent to Maxima? (Without integrated kernel
functions to solve polynomial systems of equations, to calculate
definite integrals by Mellin convolution of Meijer-G functions, or to
manipulate hypergeometric and other special functions, this would still
fall way short of the symbolic functionality characteristic of MMA and
Maple, of course.)

Martin.

Richard Fateman

unread,
Nov 22, 2009, 8:12:30 PM11/22/09
to
clicl...@freenet.de wrote:
d bug-free.
>> \end{sarcasm}
>>
>
> How many man years would be needed to implement in Python a system
> functionally roughly equivalent to Maxima?
1. It obvious depends on who is doing the work, and

2. what you mean by "implement".

Wolfram started with a
small team of very smart people who were very productive coders.
(Apparently all their code has since been discarded, but who knows.
I know 2 of them, and they were very good.)
The team grew considerably, and I would think that by about Mathematica
3.0, one might reasonably claim it was roughly on a par with Maxima, but
of course with its own quirks and bugs.

If you have only summer high-school students, you will probably never
get there.


I think that somewhere in the Macsyma literature there is a claim of a
few hundred "man" years. But some of those years, e.g. of the late
William A. Martin, MIT Prof, should have some kind of multiplier for
super-programming. MIT tends to attract students who are pretty good
programmers, undergrads and grads, so I don't know how to calibrate them.
You could look at lines of code, I suppose, and guess.

Another way of implementation way would be to write a lisp system in Python.

Or even simpler, if you remove the word "python" and replace it with
"lisp", in your question above, then the job is already done.


(Without integrated kernel
> functions to solve polynomial systems of equations,

huh? Maxima doesn't have this? what is an "integrated kernel function"?
something written in Lisp? Like the Groebner basis package? Algsys?
Resultants?

to calculate
> definite integrals by Mellin convolution of Meijer-G functions,

dunno, how does the specint package rate? It's been in Maxima for 35
years. It uses hypergeometric functions, not Meijer-G functions.

or to
> manipulate hypergeometric and other special functions, this would still
> fall way short of the symbolic functionality characteristic of MMA and
> Maple, of course.

There seems to be some activity on this front in Maxima, too.

RJF
)
>
> Martin.

clicl...@freenet.de

unread,
Nov 22, 2009, 10:26:42 PM11/22/09
to

Richard Fateman schrieb:

> clicl...@freenet.de wrote:
> >
> > How many man years would be needed to implement in Python a system
> > functionally roughly equivalent to Maxima?
>
> 1. It obvious depends on who is doing the work, and
>
> 2. what you mean by "implement".
>
> Wolfram started with a
> small team of very smart people who were very productive coders.
> (Apparently all their code has since been discarded, but who knows.
> I know 2 of them, and they were very good.)
> The team grew considerably, and I would think that by about
> Mathematica 3.0, one might reasonably claim it was roughly on a par
> with Maxima, but of course with its own quirks and bugs.
>
> If you have only summer high-school students, you will probably never
> get there.

In fact, that was my feeling when I asked about the man years. So a few
hundred it is.

>
> I think that somewhere in the Macsyma literature there is a claim of a
> few hundred "man" years. But some of those years, e.g. of the late
> William A. Martin, MIT Prof, should have some kind of multiplier for
> super-programming. MIT tends to attract students who are pretty good
> programmers, undergrads and grads, so I don't know how to calibrate
> them. You could look at lines of code, I suppose, and guess.
>
> Another way of implementation way would be to write a lisp system in
> Python.
>
> Or even simpler, if you remove the word "python" and replace it with
> "lisp", in your question above, then the job is already done.

Yes :). But according to your words, this kind of interfacing is not
what the Sage people are trying to do, or no longer exclusively trying
to do.

What then is the size of Maxima in lines of code, or kilobytes of code?
Just the mathematics, excluding plotting and all windows-oriented
user-interface stuff?

>
> > (Without integrated kernel
> > functions to solve polynomial systems of equations,
>
> huh? Maxima doesn't have this? what is an "integrated kernel
> function"? something written in Lisp? Like the Groebner basis
> package? Algsys? Resultants?

My knowledge background is what I observe on this group, I haven't tried
Maxima myself. In the course of one of Peter Nachtwey's questions, it
turned out that Maxima's equation solver couldn't handle something like
the calculation of the intersection of two circles (I will try to find
his post if it is of interest). I don't care about the method used or
what language the code is written in or if some library is perhaps
loaded automatically, I only noted the fact the Maxima's solver just
couldn't do it. If it could, I would consider this feature an integrated
kernel function.

>
> to calculate
> > definite integrals by Mellin convolution of Meijer-G functions,
>
> dunno, how does the specint package rate? It's been in Maxima for 35
> years. It uses hypergeometric functions, not Meijer-G functions.

Again I am referring to results that are returned automatically when the
user types in the Maxima equivalent of
INT(some_function(x),x,lower_bound,upper_bound). That is, he doesn't
have to know about the mathematical tools available to Maxima, and to
decide which of them to apply in his particular case. Is this how the
specint package works?

>
> > or to
> > manipulate hypergeometric and other special functions, this would
> > still fall way short of the symbolic functionality characteristic of
> > MMA and Maple, of course.
>
> There seems to be some activity on this front in Maxima, too.

Nice!

Martin.

Nasser M. Abbasi

unread,
Nov 23, 2009, 12:04:09 PM11/23/09
to

"Dave" <f...@coo.com> wrote in message news:4b06...@212.67.96.135...
> Nasser M. Abbasi wrote:

>>
>> I do not understand what you mean by make change in the browser? can you
>> give a link to where one can do this now?
>
>

> Sure. Create yourself an account on
>
> http://www.sagenb.org/
>

>


>> Can one in Sage make a demo and have someone else run it on their end
>> without having sage installed on their computer? i.e. I want to email
>> someone a file, and have them run on on their end without having sage
>> installed?
>
> Yes.
>
> In fact, neither you nor the other person need to have Sage installed.
>

Dave,

I went to the above, and logged in. And I clicked on may be 20 files, all I
see is static files or an animated gifs.

I could not find one where I actually can interact with.

Do you have a direct link to a Sage demo where I can actually interact with
it (like I can with Mathematica demo) and not just "view" an animated gif or
a print out of the code? (The search box on the above server does not work,
the server keeps crashing)

thanks,
--Nasser


Richard Fateman

unread,
Nov 23, 2009, 7:21:34 PM11/23/09
to
Richard Fateman wrote:
....

>
> I just joined Sage-support. There are 3488 messages on it. While I am
> sure that the 100 other packages allow you to claim that Maxima is only
> a small part of Sage, a search for the keyword "maxima" in sage-support
> comes up with 2620 messages.
....


The above message requires some repair. My thought was that of 3488
messages, having 2620 involve Maxima was a huge proportion, but that's
what appeared there. This is a mistake because the 3488 number was of
DISCUSSIONS not messages. In fact there are about 16500 separate
messages, with an average of about 4.8 messages per discussion. and so
Maxima is mentioned in only about 1/6 of all sage-support messages, much
less than 2/3. But still considerable.

Apologies for injecting some confusion here.

RJF

RJF

Nasser M. Abbasi

unread,
Nov 23, 2009, 10:13:27 PM11/23/09
to

"Nasser M. Abbasi" <n...@12000.org> wrote in message
news:heef8i$nja$1...@aioe.org...

>
> "Dave" <f...@coo.com> wrote in message news:4b06...@212.67.96.135...
>> Nasser M. Abbasi wrote:
>
>>>
>>> I do not understand what you mean by make change in the browser? can you
>>> give a link to where one can do this now?
>>
>>
>
>> Sure. Create yourself an account on
>>
>> http://www.sagenb.org/
>>
>
>>
>>> Can one in Sage make a demo and have someone else run it on their end
>>> without having sage installed on their computer? i.e. I want to email
>>> someone a file, and have them run on on their end without having sage
>>> installed?
>>
>> Yes.
>>
>> In fact, neither you nor the other person need to have Sage installed.
>>
>

hi Dave,

I really think what you said above is not correct.

Here is the sage interact wiki where it has collection of interact source
code collection:

http://wiki.sagemath.org/interact

and it says:

"Sage Interactions
This is a collection of pages demonstrating the use of the interact command
in Sage. It should be easy to just scroll through and copy/paste examples
into sage notebooks."

The sage server you gave a link to before, is just a place where people
can't post their sage code.

So, one must have sage installed on their computer to run these. These are
the steps needed (on windows);

1. Download Sun virtual box (virtual machine).
2. install it.
3. download sage (800 MB)
4. boot up the virtual machine, point it to sage vm.
5. bring up sage notebook server.
6. bring up web browser.
7. login to the sage server running in the VM
8. open a new notebook
9. copy the code from the above web site and paste it into the open notebook
10. run the code.

I think it is much simpler with mathematica:
1. Download the Mathematica player
2. install it
3. click on the notebook and the player opens it.

And with a mathematica browser plug-in coming, this will be even less steps.

btw, I did look at the sage interactions, they are really good. I am just
taking here about the fact that it is not as convenience to run them as
Mathematica demos at this time.

I do not know about the functionalities of Sage interact. It would be nice
if someone could make a list to compare the functionalities of Sage
interacts with Mathematica Manipulate in terms of what can and can't be done
with them. This would be very useful.

--Nasser


Dave

unread,
Nov 23, 2009, 11:27:09 PM11/23/09
to
Nasser M. Abbasi wrote:

>>> In fact, neither you nor the other person need to have Sage installed.
>>>
>
> hi Dave,
>
> I really think what you said above is not correct.
>
> Here is the sage interact wiki where it has collection of interact source
> code collection:
>
> http://wiki.sagemath.org/interact
>
> and it says:
>
> "Sage Interactions
> This is a collection of pages demonstrating the use of the interact command
> in Sage. It should be easy to just scroll through and copy/paste examples
> into sage notebooks."
>
> The sage server you gave a link to before, is just a place where people
> can't post their sage code.

No, that is not true. Have you created yourself an account? What is your user name?

1) I created an account at

http://www.sagenb.org/

(username is drkirkby)

2) Computed 100!
The server at http://www.sagenb.org/ gives me the answer as

93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

I do NOT have Sage installed on this machine at all. The computation was done on
the server at http://www.sagenb.org/.

3) I gave the worksheet the name 'factorial'

4) Click "Share", which lets others edit the worksheet.

5) Enter the list of user names I want to let edit that worksheet. I do not know
what your user name might be, but there appears to be no 'nasser', as the list
of people with accounts I can share with include the following

nahua1705, nahuel, NaHydroxide, Naiden, naijuzz, naikaustubh, nailgun,
nairnkennedy, nakajor, Naksent, nalakamenik, nalenev, name123333, nami, naminx,
namnamnamnam, nampu, nan., nand, nandan, nandhasa, nandini, nandix,
nandomedeiros, naniteswarm, nanyka, naokoken, napier, napo, narah, narasimha,
narayanan_giri, narayanasparta, narny, narouie, naruneo, naruse_5hun, nasa,
nasfad, nash, nasokt, nasq, nasqret, Nasrien, nassboy, nat12

> So, one must have sage installed on their computer to run these. These are
> the steps needed (on windows);
>
> 1. Download Sun virtual box (virtual machine).
> 2. install it.
> 3. download sage (800 MB)
> 4. boot up the virtual machine, point it to sage vm.
> 5. bring up sage notebook server.
> 6. bring up web browser.
> 7. login to the sage server running in the VM
> 8. open a new notebook
> 9. copy the code from the above web site and paste it into the open notebook
> 10. run the code.

I do not understand why you need to do any of this. You can copy/paste the code
examples into the Sage server, and run it there. There is no need to have Sage
installed on your machine.

Of course, if you want to do lengthy CPU intensive computations, then you will
not be able to do that on that server, as there are limits on RAM and CPU time
you can use.


> I think it is much simpler with mathematica:
> 1. Download the Mathematica player

Which is a pretty damm big download.

> 2. install it

I suspect you need admin rights to do that.

> 3. click on the notebook and the player opens it.

The only advantage I can see that the player has over the Sage server, is that
to use the Sage server, you need Internet access. If you need to give someone a
piece of code for them to run on a Windows computer, while they have no internet
access, then they would need to install Sage in a virtual machine as you say.

> And with a mathematica browser plug-in coming, this will be even less steps.

But the player is very limited. People can play with the controls, but they do
not have the ability to make arbitrary changes to the code. But if I share my
Sage notebook with you, and we both have acccounts on the same server, then you
can make arbitrary changes.

> btw, I did look at the sage interactions, they are really good. I am just
> taking here about the fact that it is not as convenience to run them as
> Mathematica demos at this time.

To me, Sage is more convenient, as you only need a browser. You only need to
install the server locally if

* You need a lot of CPU/RAM
* You need confidentiality
* You need to work without internet access.

> I do not know about the functionalities of Sage interact. It would be nice
> if someone could make a list to compare the functionalities of Sage
> interacts with Mathematica Manipulate in terms of what can and can't be done
> with them. This would be very useful.
>
> --Nasser

I'm no expert on this. I have used Sage very little. I am more interested in
getting Sage to work well on Solaris. However, I would agree, there needs to be
more documentation on helping those port their Mathematica code to Sage. You are
not the first to ask for this, and I doubt you will be the last. Even a cross
reference, like:

Sin[] -> sin()
Cos[] -> cos()
Manipulate[] -> interact()

would be useful.

Nasser M. Abbasi

unread,
Nov 24, 2009, 1:08:31 AM11/24/09
to

"Dave" <f...@coo.com> wrote in message news:4b0b...@212.67.96.135...

>
> No, that is not true. Have you created yourself an account? What is your
> user name?
>

I login as guest.

> 1) I created an account at
>
> http://www.sagenb.org/
>
> (username is drkirkby)
>
> 2) Computed 100!
> The server at http://www.sagenb.org/ gives me the answer as
> 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
>
> I do NOT have Sage installed on this machine at all. The computation was
> done on the server at http://www.sagenb.org/.
>
> 3) I gave the worksheet the name 'factorial'
>
> 4) Click "Share", which lets others edit the worksheet.
>
> 5) Enter the list of user names I want to let edit that worksheet. I do
> not know what your user name might be, but there appears to be no
> 'nasser', as the list of people with accounts I can share with include the
> following
>
>

I see. So let me make sure I understand.

Person A writes some code and post it on a server running Sage. Person B
must have an account to run this code and person A must make person B also
into a "share" list for A.

What if I want to have some code that anyone can run on the server (but not
edit the code) and without that someone having an account on the server? is
this possible? it will be like running a Java applet. Any one with internet
access can run it. It is not convenient that some one must have an account
and login and I must have them on my share list for them to run some code I
have.

But I think I now know the idea.


> You are not the first to ask for this, and I doubt you will be the last.
> Even a cross reference, like:
>
> Sin[] -> sin()
> Cos[] -> cos()
> Manipulate[] -> interact()
>
> would be useful.
>

The thing I find a bit confusing about Sage, is that I do not know what Sage
is.

I mean, I know Sage provides an interface to many other systems. It is a set
that contains other systems (subsets).

But when one says "this is a Sage function", then what does that mean? does
this function belong to one of the subsets (R, maxima, numpy, GAP, etc...)
in the set, or is there a set that sits outside all those subsets and belong
to the Sage set only? And how does one know which is which? is there is a
naming convention? or is there a context involved to tell one which set they
are currently in? What if there are 2 functions with the same name in 2
subsets, what happens when one loads them both?

I am sure all this is explained somewhere, one day I need to try to search
for a Sage document that talks about this, I have many links, but no time to
read, too much school work at this time.

--Nasser


Dave

unread,
Nov 24, 2009, 7:25:43 AM11/24/09
to
Nasser M. Abbasi wrote:
> "Dave" <f...@coo.com> wrote in message news:4b0b...@212.67.96.135...
>
>> No, that is not true. Have you created yourself an account? What is your
>> user name?
>>
>
> I login as guest.

That is what is limiting you then. You will I believe need to create an account,
which will take you all of about 20 seconds. You do not need to give your
address, orginaisation, and you might not need to give an email address either
(I can't be sure on that one). Certainly, the sign-up process is not long.

There are various Sage servers around the world, on various continents.

> I see. So let me make sure I understand.
>
> Person A writes some code and post it on a server running Sage. Person B
> must have an account to run this code and person A must make person B also
> into a "share" list for A.
>
> What if I want to have some code that anyone can run on the server (but not
> edit the code) and without that someone having an account on the server? is
> this possible? it will be like running a Java applet. Any one with internet
> access can run it. It is not convenient that some one must have an account
> and login and I must have them on my share list for them to run some code I
> have.
>
> But I think I now know the idea.


Nasser,

As I said earlier, I am not a Sage user. Questions about how to use Sage would
be better asked on sage-s...@googlegroups.com after subscribing at

http://groups.google.com/group/sage-support

I have only limited knowledge. It may be possible to let others run the code in
the *exact* way you want. It may not be, but if you could make an argument why
it would be preferable to let code in this way, someone might implement it, it
it is not already implemented.

To me, it is easier to create an account on a Sage server than it is to install
Mathematica player, which wont for example work on a Blackberry, PDA, mobile
phone or a machine running Solaris.

I note WRI are going to implement a browser plugin, though I wonder if that will
work on any platform. Given Mathematica does not run on a Blackberry, I wonder
if it is technically possible for the browser plugin to work on them. I suspect
not.

The only way to run code on a Blackberry would be to use the Wolfram servers,
which is the way Sage works. There is no server you could run on your own
Blackberry, but you could run on a public server.

I am working on the port of Sage to Solaris, then intend using Sage once it runs
well on Solaris and OpenSolaris. My main motivation is I want a system where I
can share results with others, let others change data, and do this in a way
acceptable to commercial companies. For most companies I have worked with,
buying Mathematica is not an option. The ability to let them make changes,
without purchasing a license, whilst using a secure is more acceptable.


> The thing I find a bit confusing about Sage, is that I do not know what Sage
> is.
>
> I mean, I know Sage provides an interface to many other systems. It is a set
> that contains other systems (subsets).

Again, it is better if you ask these questions on sage-s...@googlegroups.com.
I'm certainly not the person to ask. I very rarely answer question on
sage-s...@googlegroups.com as my knowledge of Sage is too limited.

If you want to know about issues with Sage specific to Solaris, I am probably
the best person to ask. If you want to know about the issues specific building
Sage on HP-UX, then I am certainly the best person to ask. But I do not believe
you even run Solaris or HP-UX, so I'm not really the best person to answer any
questions you may have.

PS
There is no port of Sage planned to HP-UX, though I do test some Sage code on
HP-UX, as testing on multiple platforms often highlights problems that are
common to all platforms, but which has not been noticed on others.

Dave

0 new messages