Java Algebra System (JAS) Project
Java HTML Makefile Shell Ruby Propeller Spin
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
commons-math_adapter adjust log4j path Jul 25, 2018
doc update Jul 25, 2018
examples reduce logging Jul 20, 2018
images work around for mathlibre Mar 28, 2016
jlinalg_adapter adjust log4j path Jul 25, 2018
jython fix jython PATH Apr 23, 2018
meditor fix version Mar 27, 2018
mpi convert from log4j 1-api to 2-api Jul 25, 2018
mpj switch tests to mpje Jul 25, 2018
spin models for p/d GB Jan 25, 2004
src/edu/jas add intersection Jul 25, 2018
trc/edu/jas reduce output Jul 25, 2018
.gitignore factory for GB algorithms Jun 3, 2010
COPYING GPLed and some info Feb 27, 2005
COPYING.jas update year Jan 7, 2018
COPYING.lgpl updates and samples Feb 19, 2006
COPYING.lgpl.jas update year Jan 7, 2018
GBManifest.MF change Vendor-ID Jun 11, 2017
Makefile for distribution Jul 25, 2018
README update year Jan 7, 2018
build.gradle change properties Jan 31, 2016
build.xml for distribution Jul 25, 2018
buildfile mention m2 repository Jan 1, 2017
html.css update text Jul 29, 2015
index.html fixed typo Mar 5, 2014
intro.html update Apr 10, 2016
ivy.xml add repository Jan 22, 2017
ivysettings.xml add repository Jan 22, 2017
jas fix log4j2 jars Mar 3, 2016 fix classpath option Feb 10, 2017 fix classpath option Feb 10, 2017 update Nov 4, 2012 add svn keywords Aug 27, 2016
navigate.html update Jul 19, 2015
pom.xml update dependency and build Jul 20, 2018
sample.jythonrc cleanup Jan 1, 2016
settings.gradle change properties Jan 31, 2016


JAS: Java Algebra System

Version 2.6, 2018

by Heinz Kredel, University of Mannheim, kredel at

Copyright (c) 2000-2018 by Heinz Kredel.

Programms released under GPL or LGPL, see COPYING.jas or COPYING.lgpl.jas.

Web home-page:


A Java JDK 1.8.

Documentation see index.html.

Required libraries are log4j-core-2.5.jar, log4j-api-2.5.jar, log4j-1.2-api-2.5.jar 
(from Apache Log4j2, or mylog.jar, droidlog.jar) 
and junit-4.12.jar, hamcrest-core-1.3.jar (from Junit for tests in trc) 


> java  -cp {other_jar_files}:jas-<version>-bin.jar:. <sample class>

for example
> java -cp ../lib/log4j-core-2.5.jar:../lib/log4j-api-2.5.jar:../lib/log4j-1.2-api-2.5.jar:jas-2.6.5428-bin.jar edu.jas.application.RunGB seq examples/trinks7.jas


> jruby examples/<some input file>.rb


> jas examples/<some input file>.rb 

for example
> ./jas examples/all_rings.rb


> jython examples/<some input file>.py 


> jas -py examples/<some input file>.py

The shell script "jas" figures out the Java, jruby, jython and JAS 
environment and runs the respective scripting interpreter. See 
>  man -l doc/jas.1
for more information. 

Compilation of your own Java files using the JAS library can be done 
with the "javac" command.

> javac -cp {other_jar_files}:jas-<version>-bin.jar:. <your sample code>

Versions and jar files

JAS is distributed in 3 jar files:

jas-<version>-bin.jar:    the Java class files 
jas-<version>    the java source code
jas-<version>    the Java doc, epydoc, jrdoc and more info files

optional jar files which require further installed packages:

jas-meditor.jar:          the interface to meditor
jas-jython.jar:           an interface for Java scripting
jas-mpj.jar:              MPI Java depending code
mylog.jar:                a substitute for log4j to use Java logging
droidlog.jar:             a substitute for log4j to use Android logging
jlinalg_adapter.jar:      an adaptor to parts of JLinAlg
commons-math_adapter.jar: an adaptor to parts of Apache commons.math

pre packaged JAS versions:

jas-java_<version>-all.deb  a Debian (wheezy) package usable in MathLibre
ruboto-irb-jas-release.apk  an Android App based on Ruboto

There are GIT repositories for the scource code, which can be cloned with

> git clone jas
> git clone jas

There is a Maven compatible repository for bytecode, source and javadocs at

groupId: edu.jas, artifactId: jas, version (for example): 2.6.5675

The version is specified by a two digit major.minor number
and a subversion revision number. For example in


"2.5"  is the JAS version number and
"5380" is the subversion revision number

The jas-*-bin.jar and jas-*-doc.jar can be generated from jas-*-src.jar.
The fastest way to get a complete JAS install, is 

> jar -xf jas-<version>
> cd <JAS version number>
> jar -xf jas-<version>-bin.jar
> jar -xf jas-<version>

If you have a working Ant with Ivy, the last two steps can be replaced by

> ant resolve
> ant compile
> ant doc

provided you have setup build.xml, ivy.xml for the required libraries.

Directory structure

.          main directory, entry to html documentation
+doc       html documentation, javadocs, jython docs, jruby docs
+edu       Java class files
+examples  examples for jython, jruby and jas
+images    images for html docs
+jython    JSR 233 scripting interface
+meditor   JSR 233 scripting interface for meditor
+mpj       MPI Java versions of distributed Groebner bases
+mpi       OpenMPI Java versions of distributed Groebner bases
+jlinalg_adaper some adapter classes to JLinAlg
+commons-math_adaper some adapter classes to Apache Commons Math3
+src       source code
+test      junit test output and log4j output
+trc       junit test sources

../lib     directory for required libraries, not included