Dear User:

This archive contains files which provide Grobner basis support for
the free computer algebra system Maxima. The older versions of the
package are distributed with Maxima in the subfolder of the Maxima
installation tree, like:

maxima/5.xx.x/share/contrib/Grobner

This version is meant to be a backward-compatible replacement for this
package. It features an implementation of the Faugere's F4 algorithm.

== INSTALLATION INSTRUCTIONS ==

In order to use the package, 
 1. Copy the files in this directory to your favorite location;
   or better, checkout the contents of this repository with SVN.
 2. Edit the file "grobner.mac" to modify the location of the Lisp
   files, to reflect your choice made in previous step.
 3. Start your Maxima and load the file "grobner.mac"
 4. Optionally, compile the Lisp files, so that the next file
    you load "grobner.mac", the compiled (.fasl) versions of
    the files will be loaded. The compilation instructions
    vary slightly depending on Lisp version.

This version has been verified to work under this Maxima version:

----------------------------------------------------------------
Maxima 5.34.1 http://maxima.sourceforge.net
using Lisp SBCL 1.2.4-1.fc21
----------------------------------------------------------------

It should also be portable across other ANSI Common Lisp implementations.

The file grobner.demo is a Macsyma-style demo file for most of the operations
provided by the package. In order to run it, go to the Maxima level and
type:

demo("grobner.demo");

or

batch("grobner.demo");

and watch the demonstration.

Maxima documentation for this package has not been written yet, but
there is a sizable amount of documentation in the LISP source.

== COMPILATION INSTRUCTIONS FOR SBCL ==

=== When using ASDF (preferred way):
----------------------------------------------------------------
* (require :asdf)
* (load "ngrobner.asd")
* (asdf:install-system :ngrobner)
----------------------------------------------------------------
The compiled files (extension .fasl for SBCL) will be typically
placed in a standard location determined by the ASDF configuration. On my system it is:
----------------------------------------------------------------
/home/marek/.cache/common-lisp/sbcl-1.2.4-1.fc21-linux-x64/home/marek/Repos/MaximaGrobner/branches/f4grobner/
----------------------------------------------------------------
given that the SVN repository was copied to /home/marek/Repos/MaximaGrobner.

=== When not using ASDF (for whatever reason):

Step 1. Start SBCL in the directory which is a copy of this directory.
Step 2. Execute Lisp commands:
----------------------------------------------------------------
* (load "ngrobner-package.lisp")
* (ngrobner::compile-ngrobner)
----------------------------------------------------------------

The resulting compiled files (extension .fasl for SBCL) will end up in
the same folder as the Lisp files. Then can be moved any directory
where Maxima can find them, as determined by the variable
file_search_lisp. This variable needs to be modified in "grobner.mac"
accordingly. After that, every time you load "grobner.mac" the
compiled version will be used.

== 5AM TESTS ==

The system is set up for using the FiveAM unit testing framework.
One performs the tests by loading a single file:
----------------------------------------------------------------
* (load "5am-tests")
----------------------------------------------------------------
Note that this requires ASDF and QuickLisp being installed.

== ADDITIONAL COMMENTS ==

The files were derived the sources of a package CGBlisp, version 2,
also authored by me, which will eventually be released at my Web site
(see below).  An older version of CGBlisp is available at the Web
site.

Enjoy.
--Marek Rychlik

5-24-2002
Revised: 1-25-2009
Revised: 1-25-2015

E-mail: rychlik@u.arizona.edu
URL: http://marekrychlik.com