close Warning: Can't synchronize with repository "(default)" (The repository directory has changed, you should resynchronize the repository with: trac-admin $ENV repository resync '(default)'). Look in the Trac log for more information.

source: branches/f4grobner/README@ 4402

Last change on this file since 4402 was 3766, checked in by Marek Rychlik, 8 years ago

* empty log message *

File size: 5.3 KB
Line 
1Dear User:
2
3This directory contains files which provide Grobner basis support for
4the free computer algebra system Maxima. The older versions of the
5package are distributed with Maxima in the subfolder of the Maxima
6installation tree, like:
7
8maxima/5.xx.x/share/contrib/Grobner
9
10This version is meant to be a backward-compatible replacement for this
11package. It features an implementation of the Faugere's F4 algorithm.
12
13== INSTALLATION INSTRUCTIONS ==
14
15In order to use the package,
16 1. Copy the files in this directory to your favorite location;
17 or better, checkout the contents of this repository with SVN.
18 2. Edit the file "grobner.mac" to modify the location of the Lisp
19 files, to reflect your choice made in previous step.
20 3. Start your Maxima and load the file "grobner.mac"
21 4. Optionally, compile the Lisp files, so that the next file
22 you load "grobner.mac", the compiled (.fasl) versions of
23 the files will be loaded. The compilation instructions
24 vary slightly depending on Lisp version.
25
26This version has been verified to work under this Maxima version:
27
28----------------------------------------------------------------
29Maxima 5.34.1 http://maxima.sourceforge.net
30using Lisp SBCL 1.2.4-1.fc21
31----------------------------------------------------------------
32
33It should also be portable across other ANSI Common Lisp implementations.
34
35The file grobner.demo is a Macsyma-style demo file for most of the operations
36provided by the package. In order to run it, go to the Maxima level and
37type:
38
39demo("grobner.demo");
40
41or
42
43batch("grobner.demo");
44
45and watch the demonstration.
46
47Maxima documentation for this package has not been written yet, but
48there is a sizable amount of documentation in the LISP source.
49
50== COMPILATION INSTRUCTIONS FOR SBCL ==
51
52=== When using ASDF (preferred way):
53----------------------------------------------------------------
54* (require :asdf)
55* (load "ngrobner.asd")
56* (asdf:load-system :ngrobner)
57----------------------------------------------------------------
58The compiled files (extension .fasl for SBCL) will be typically
59placed in a standard location determined by the ASDF configuration. On my system it is:
60----------------------------------------------------------------
61/home/marek/.cache/common-lisp/sbcl-1.2.4-1.fc21-linux-x64/home/marek/Repos/MaximaGrobner/branches/f4grobner/
62----------------------------------------------------------------
63given that the SVN repository was copied to /home/marek/Repos/MaximaGrobner.
64
65=== When not using ASDF (for whatever reason):
66
67Step 1. Start SBCL in the directory which is a copy of this directory.
68Step 2. Execute Lisp commands:
69----------------------------------------------------------------
70* (load "compile-me.lisp")
71----------------------------------------------------------------
72
73The resulting compiled files (extension .fasl for SBCL) will end up in
74the same folder as the Lisp files. Then can be moved any directory
75where Maxima can find them, as determined by the variable
76file_search_lisp. This variable needs to be modified in "grobner.mac"
77accordingly. After that, every time you load "grobner.mac" the
78compiled version will be used.
79
80== 5AM TESTS ==
81
82The system is set up for using the FiveAM unit testing framework.
83One performs the tests by loading a single file:
84----------------------------------------------------------------
85* (load "5am-tests")
86----------------------------------------------------------------
87Note that this requires ASDF and QuickLisp being installed.
88
89NOTE: The coverage is still minimal. The number of tests
90will increase over time.
91
92== TESTING WITH ORACLE APPROACH ==
93
94The alternative mechanism is enabled
95by doing this *BEFORE* loading/compiling NGROBNER:
96----------------------------------------------------------------
97* (push :grobner-check *features*)
98----------------------------------------------------------------
99This will enable verification of every Grobner basis computed,
100by performing Buchberger criterion, after the basis is computed.
101This is an "oracle" testing, given that the portion of the code
102required for verification of Groebner bases is correct. A significant
103test involves loading the demonstration code, like:
104----------------------------------------------------------------
105(%i1) batch("grobner.demo");
106----------------------------------------------------------------
107The failure will result in a spectacular error message.
108NOTE: For this to work (push :grobner-check *features*)
109needed to be executed before loading/compiling Lisp code.
110
111== ADDITIONAL COMMENTS ==
112
113The files were derived the sources of a package CGBlisp, version 2,
114also authored by me, which will eventually be released at my Web site
115(see below). An older version of CGBlisp is available at the Web
116site.
117
118== VIEWING DOCUMENTATION ==
119
120Various components of the system have significant documentation
121attached. This can be browsed with tools such as DOCBROWSER or
122MANIFEST. Both start a web server on a local port. A quick tutorial
123on these tools: if you have Quicklisp, you can use this one-liner to
124start MANIFEST:
125
126* (ql:quickload :manifest) (manifest:START)
127
128The port of MANIFEST server is printed.
129
130Or this one-liner to start DOCBROWSER on port 8084:
131
132* (ql:quickload :docbrowser) (docbrowser:start-docserver 8084)
133
134Enjoy.
135--Marek Rychlik
136
1375-24-2002
138Revised: 1-25-2009
139Revised: 1-25-2015
140
141E-mail: rychlik@u.arizona.edu
142URL: http://marekrychlik.com
Note: See TracBrowser for help on using the repository browser.