Puiseux expansions
(too old to reply)
Brent W. Baccala
2017-07-07 01:19:44 UTC
Raw Message
Hi -

I've developed some Maxima code to compute Puiseux expansions on algebraic
curves, to support a free book that I'm writing to explain the Risch
integration algorithm.

The code is conceptually an enhancement to the implicit_taylor code in
share/calculus/taylor1.mac, but the format of the return values is somewhat
different. implicit_taylor only works on uniquely defined finite branches
and only expands y itself, while puiseux can also handle ramification,
infinity, and singularities, and can expand arbitrary algebraic functions,
as well as differentials of algebraic functions.

Probably the best documentation for the code is the relevant section of the
book, which is far from finished, but the code itself is pretty stable.

I'm attaching the code along with a PDF except from that part of the book.
The book itself is open source LaTeX and is hosted on github, so any
material there can be incorporated however we see fit. I didn't include
all of the code from the book, only because I'm trying to come up with a
version of the code suitable as a loadable package.

Any suggestions on how to incorporate this code into the Maxima

Robert Dodier
2017-07-07 17:14:52 UTC
Raw Message
Brent, thanks for working on this topic.

The direction that I'd like to go with contributed packages is for the
authors to host these packages on Github or whatever site is
appropriate, and to make it easy to load the packages directly into a
Maxima installation.

I have cooked up some code to load Maxima packages from Github via
Quicklisp, which is a system for managing and installing Common Lisp
packages. See: https://github.com/robert-dodier/maxima-asdf

I know at this point Maxima has accumulated a number of
user-contributed packages. I'm not entirely opposed to including
puiseaux.mac as well, but I would prefer at this point that it and
other such packages be maintained independently.


Robert Dodier
Robert Dodier
2017-07-07 20:46:51 UTC
Raw Message
That sounds fine, since I've already got a Github site setup for the book.
I'll concoct something to auto-generate the puiseux.mac file from the book's
LaTeX source.
OK, great. If you're inspired perhaps you can create an ASDF
system description file for your package, as described in the
maxima-asdf readme.
There should be some coding guidelines. In particular, I'm not sure how to
best incorporate a test suite, and is it appropriate to use the namespaces
About test cases, usually what people do is to create a separate script
which contains an even number of expressions. The first expression in
each two is the test input and the second is the expected output.
Conventionally the script is named rtest_something.mac. Then
batch("rtest_something.mac", test); runs the test. You can look at
all the rtest*.mac scripts in maxima/tests to see examples.

About namespaces, unfortunately I think it has too many idiosyncrasies.
I still think there is a need for a way to avoid name collisions but
namespaces is, at best, unfinished. I should probably put more
thought into it. Or you or anyone else can too, I certainly would
appreciate the help.


Robert Dodier