[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Axiom-developer] Re: Groebner basis

From: root
Subject: Re: [Axiom-developer] Re: Groebner basis
Date: Tue, 5 Feb 2008 22:42:13 -0500

>After installing the latest silver, I discovered that now there is the 
>chunck environment and that the input file can be stripped with
>)lisp (tangle "input.file" "chunckname")
>This greatly simplify the production of pamphlet files, since they now 
>are plain LaTeX files. The questions:

>1) (this is a little silly) given that a pamphlet is a latex file, is it 
>"morally"  wrong to call it x.tex instead of x.pamphlet? The reason for 
>this is  simply laziness: .tex files are recognized automatically by most 
>editors (I use vim), whereas to obtain the same behaviour for .pamphlet 
>you need some little hack.

No, it's not morally wrong. There are files in the current system
(e.g. src/doc/book.pamphlet) which are pure latex files. I use the
pamphlet name everywhere so you don't have to know either way.
Pamphlet files are a strict superset of latex files. I thought
about using a shorter extension than ".pamphlet" but, really, if
you're going to go to the effort to make things readable everywhere
why not make the filename readable, rather than .p or .pa or .pam, etc.

I tend to sit at an Axiom prompt while writing pamphlet files (usually
input files these days but also during the special function work). 
I run xdvi on the file in a separate process because every time the
.dvi file changes the xdvi process updates the screen. So I find the
following sequence (assigned to "register" keys in emacs) very productive:

-> )sys document foo.spad     <= uses foo.spad.pamphlet
-> )co foo                    <= generates foo.spad, foo.spad.dvi
-> )lib FOO


-> )sys document foo.input    <= uses foo.input.pamphlet
-> )read foo                  <= generates foo.input, foo.spad.dvi

and since I once did:

-> )sys xdvi foo.spad.dvi &
the foo.spad.dvi screen gets updated every time. Thus I can incrementally
change a buffer and every 10 lines or so fully remake the documentation
and the source code and test the result. It is very fast and very easy.
Note that I never have to type ".pamphlet"

>2) is it in the plan to insert the parser (gclweb, if I am not wrong) 
>inside the command
>)r file.tex
>so that there will be no need to bother with anything else than a latex 

Axiom will fully understand pamphlet files. All of the levels of
the system, including lisp, once the asdf mechanism works, all
the way up to the )whatevercommand will understand pamphlets.
If I do it right it should be trivial to make it know that .tex
files can also be used for some commands (e.g. document) and not
others (e.g. compile). The gclweb code understands pamphlet files
now. It is a small (but apparently controversial) step to eliminate
noweb completely and just let Axiom "do the right thing".

>3) which pamphlet file in the source can be taken both as example 
>and model for constructing packages/domain/category which is complete, 
>yet simple enough, and selfcontained?

src/algebra/dhmatrix.spad is the canonical example at the moment.
The algebra is very simple yet lends itself to many interesting
domains (robotics, graphics, linear algebra, etc).

The new src/algebra/special.spad has some more extensive documentation
about the details of the Ei and En functions and their Chebyshev
polynomial approximations.

list.spad.pamphlet shows both the regression testing (the
<<list.input>> chunk) and the ")help" documentation 
(the <<>> chunk) is integrated into the file. 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]