This is the old version implemented in JDK 1.5.
Introduction. The Java Algebra System (JAS) is an object oriented, type safe and multi-threaded approach to computer algebra. JAS provides a well designed software library using generic types for algebraic computations implemented in the Java programming language. The library can be used as any other Java software package or it can be used interactively or interpreted through an jython (Java Python) front end. The focus of JAS is at the moment on commutative and solvable polynomials, Groebner bases and applications. By the use of Java as implementation language JAS is 64-bit and multi-core cpu ready.
The library contains at the moment of the following packages:
RingElem
and RingFactory
.
BigRational
, BigInteger
or BigComplex
.
GenPolynomial
, GenSolvablePolynomial
and others such as AlgebraicNumber
and
a polynomial parser GenPolynomialTokenizer
.
GenVector
or ModuleList
.
ReductionSeq
, GroebnerBaseAbstract
,
GroebnerBaseSeq
, GroebnerBaseParallel
and GroebnerBaseDistributed
.
ModGroebnerBase
or SolvableSyzygy
.
Ideal
or SolvableIdeal
.
ThreadPool
, DistThreadPool
or DistHashTable
(part of this package has become obsolete with JDK 1.5).
This page contains documentation and the implementation for the new version which is designed using type parameters and requires Java 5 (JDK 1.5). The old version for JDK 1.4 can be found here.
Getting started with JAS, a users guide.
JAS interface and class design and API documentation by javadoc (uptodate), as jas-doc.jar. Some design considerations for the new generic version.
README and COPYING (GPL) or COPYING.lgpl (LGPL)
At the PPPJ 2006 conference in Mannheim I presented the design of the jas types, classes and implementation "On the Design of a Java Computer Algebra System" (slides).
At the A3L conference in Passau, 2005 I gave some background information on the development of jas "A Systems Perspective on A3L" (slides).
The history of the jas project can be found in the Web-Log.
jas.jar execute with
java -jar jas.jar RunGB <args>
Execution of RunGB or other classes with main() method. Contains class and java files.
jas-run.jar execute with
java -jar jas-run.jar <RungGB args>
Execution of RunGB. Contains class and java files.
Required libraries:
lib/log4j.jar (from Apache Log4j),
lib/junit.jar (from Junit),
lib/tnj.jar (for Thread and Network Programming).
In case you have the first two ones, just ensure they are in the correct location
(./lib/
).
The last one you most likely do not have and you must download it.
Installation:
Download the libraries and put them in a directory lib
.
Create an empty directory test
for the output of log4j.
Unit tests can be run with the "test" target for ant, e.g.
ant test
The test units work mainly with generated random polynomials.
The parameters are choosen such that the resulting Groebner bases
are not to hard to compute.
However some random polynomials may be to big and the running time
may occasionally be several minutes (but not hours).
On the other hand random polynomials may sometimes be zero or one.
If such input does not make sense the test will fail. I.e. some
tests will fail from time to time, but not for repeated execution
of the test. So if a test fails rerun the test a few times.
jas.py (imported by other Python files).
To install jas with jython you have to add the above libraries (log4j.jar, junit.jar, tnj.jar and jas.jar) to the Java classpath.
This can be done best when included in a .jythonrc
file, e.g.
sample.jythonrc.
If this does not help finding the jas classes, try to put the jas.jar also into the CLASSPATH or to unpack the jar into the directory you are starting jython (also to get the correct version of .py files).
Commutative: trinks.py, katsura.py
Solvable: wa_32.py, u_sl_3_prod.py, u_sl_3.py
Modules: armbruster.py, syz.py, syzy2.py
For execution with RunGB.
Commutative: gbks.jas, katsura2.jas, katsura3.jas, katsura4.jas, katsura5.jas, katsura5s.jas, katsura5w.jas, katsura6.jas, katsura6w.jas, katsura7.jas, katsura8.jas, rose.jas, trinks6.jas, trinks7.jas, vw.jas,
Solvable: kw_18.jas, ore_t.jas, sgb.jas, u_sl_3.jas, wa_1.jas, wa_32.jas, wa_34.jas, wa_39.jas, wa_41.jas, wa_61.jas
Last modified: Wed May 30 22:05:16 CEST 2007
$Id: index.html 781 2006-03-11 14:57:25Z kredel $