Java Algebra System

Software Screenshot:
Java Algebra System
Software Details:
Version: 2.5.5065
Upload Date: 17 Feb 15
Developer: Heinz Kredel
Distribution Type: Freeware
Downloads: 76

Rating: 4.0/5 (Total Votes: 1)

Java Algebra System (or JAS for short) is an open source, freely distributed, object-oriented, multi-threaded and type safe computer algebra software that supports Linux kernel-based operating systems.

Implemented in the Java programming language

The project features a well designed and fully functional software library that uses generic types to make algebraic computations using the JVM (Java Virtual Machine) runtime infrastructure. It is implemented in the Java programming language.

Can be used interactively, interpreted via JRuby and Jython

The software is designed to be used interactively, interpreted via JRuby (Java Ruby) or Jython (Java Python) front-end, or as any other Java software package. An Android App also exists, based on Ruboto (jruby for Android).

Getting started with Java Algebra System

For your convenience, the Java Algebra System software is distributed as both a pre-built binary file in the JAR format, as well as a source package. While the JAR file allows you to use Java Algebra System in your project(s) right away, the source package lets you hack the code and optimize it.

To view the usage message of the app, run the ‘java -jar jas-2.5.5065-bin.jar‘ command in a terminal emulator software, making sure that you are in the location where you’ve save the JAR file. The usage message looks like this: “Usage: RunGB [ seq | seq+ | par | par+ | dist | dist+ | disthyb | disthyb+ | cli[port] ] < file > #procs/#threadsPerNode [machinefile] [check] [nolog]”

Runs on any operating system where Java is available

Being written in the Java programming language, the Java Algebra System software can run on any computer operating system where the Java Runtime Environment (JRE) technology is available, including GNU/Linux, Microsoft Windows, BSD, Solaris, and Mac OS X. It is currently supported on 64 and 32-bit computer platforms.

What is new in this release:

  • This version adds a new package edu.jas.fd for solvable polynomial common divisor computation.
  • It will contain algorithms for (non-unique) factorization domains.
  • There are methods for polynomial pseudo remainder computation over Ore domains in class FDUtil.
  • More methods for common divisors are included, but not yet finished.
  • The MPJ and MPI implementations have been further converged and cleaned.
  • Javadocs for the JLinAlg adapter classes are published.

What is new in version 2.5.4688:

  • New solvable local residue ring SolvableLocalResidue as solvable quotient field modulo an ideal. New generic solvable polynomials QLRSolvablePolynomial with abstacted generic coefficients fom solvable quotient, local oder local-residue rings. Implement corresponding interfaces QuotPair and QuotPairFactory in respective classes. Adjust and extend scripting examples for the new classes. Removed differences and clean-up different versions of Run*GB stand alone Grobner base programs.

What is new in version 2.5.4658:

  • The Android version of JAS, based on Ruboto (JRuby for Android), is now available with signed code and can be directly installed.
  • This release contains new algorithms for least common multiples and a trial greatest common divisor in solvable polynomial rings.
  • Additionally, the Apel-Lassner canonical simplifier for solvable quotients is available.
  • Some refactoring was required to break package dependency cycles.
  • More Findbugs issues have been solved.
  • Java 5 compatibility has been dropped.

What is new in version 2.5.4618:

  • This version contains new distributed Grobner base algorithms based on the Java bindings of OpenMPI similarly to the MPJ version.
  • Since both MPI and MPJ are not thread-safe, a work-around was developed to split the transport layer to allow selection of TCP/IP sockets or MPI/MPJ channels for transport.
  • The socket-based distributed hash table now implements the clear() method, which solves non-specific errors in iterated distributed Grobner base computations.
  • The solvable multiplications have been simplified.
  • Fixes and improvements have been made for Jython and JRuby scripts.

What is new in version 2.5.4555:

  • This version adds new algorithms for solvable polynomial rings over solvable local rings in classes LocalSolvablePolynomialRing and LocalSolvablePolynomial and new scripting examples for such solvable polynomial rings.
  • The handling of non-commutative relations of solvable polynomials has been refactored to implement and use an interface RelationGenerator.
  • Some more Findbugs and Eclipse issues and several problems with jruby of Android have been fixed and improved.

What is new in version 2.5.4448:

  • This version brings new algorithms for recursive solvable polynomial rings and new solvable polynomial rings with solvable quotient coefficients.
  • This rings feature non-commutative multiplication of variables with coefficients.
  • There are new scripting examples for recursive solvable polynomial rings and solvable polynomials with solvable quotient coefficients.

What is new in version 2.5.4408:

  • This version provides new algorithms for ideals in solvable polynomial rings in class SolvableIdeal, and new structures for solvable polynomial rings in classes SolvableQuotient, SolvableResidue, and the corresponding factories SolvableQuotientRing and SolvableResidueRing.
  • There is a new theme for Ruby rdoc documentation, and the scripts have been adapted to a newer version of jruby (1.7.3).
  • Some small fixes and improvements are included.

What is new in version 2.5.4358:

  • The Java API will be more stable from now on.
  • It fixes a race condition in distributed (hybrid) Grobner base implementations and improves the MPJ version of GB computations.
  • The GBFactory has changed, and a new option to select Gebauer & Moller critical pair handling in GBAlgorithmBuilder was added.
  • The default precision of BigDecimal was changed to DECIMAL128.
  • The GreatestCommonDivisorHensel implementation is improved by using integer evaluation points and further optimizations.

What is new in version 2.4.4308:

  • This version provides mostly performance optimizations, small improvements, and fixes.
  • The optimizations include combined methods for polynomials like scaleSubtractMultiple(b, g, a, e, S) to compute the expression "b x^g this - a x^e S" in one rush.
  • There is now a first version of a JAS Android App.
  • The app uses its JRuby scripting interface and runs within the Ruby IRB Android app Ruboto.

What is new in version 2.4.4278:

  • This version contains new distributed Grobner base algorithms based on MPI as communication middle-ware.
  • The implementation uses the MPJ (MPI Java) API and can be run with either MPJ Express or FastMPJ.
  • The implementing classes are GroebnerBaseDistributedMPJ for the pure distributed version, and GroebnerBaseDistributedHybridMPJ for the distributed and multi-threaded version.

What is new in version 2.4.4228:

  • This version contains new parts for free non-commutative Grobner base computation and polynomial reduction.
  • It consists of a new interface WordGroebnerBase and new classes WordGroebnerBaseAbstract and WordGroebnerBaseSeq.
  • The jython and jruby access to non-commutative polynomials is provided with the classes WordPolyRing and WordIdeal.
  • Additionally, there is an improved way to select (commutative) Grobner base algorithm implementations with the class GBAlgorithmBuilder; for example, a fraction free algorithm with optimization of the variable order.

What is new in version 2.4.4008:

  • This version adds more JRuby examples, bugfixes for right module Grobner bases and multiple roots computation, and bugfixes for meaningful problems spotted by findbugs.

What is new in version 2.4.3938:

  • This version refactors and fixes algorithms for Wu-Ritt characteristic sets in the class CharacteristicSetWu. Unit tests are in CharSetTest.
  • Jython and JRuby script access to characteristic set algorithms in methods CS(), isCS(), and csReduction().
  • Small fixes and improvements.

What is new in version 2.4.3888:

  • Refactoring to simplify type parameters and loosen type conditions.
  • A new package edu.jas.ufdroot to remove cyclic package dependencies again.
  • Improved selection of factorization implementations in FactorFactory classes and better suited constructors of the factorization implementations.
  • Small fixes and improvements.

What is new in version 2.4.3851:

  • This version implements modular variants and parallel proxy versions of resultant algorithms, cleans and fills missing methods in GreatestCommonDivisor* classes in the edu.jas.ufd package, fixes ModLong to ModInteger conversion, and adds small fixes, improvements, and refactorings of methods to the right classes.

What is new in version 2.4.3828:

  • Switched to Java 7 for development.
  • JAS will still compile and run on Java 6 and Java 5.
  • A new online repositoriy for JAS on Google code which contains a bug-tracker.
  • Definition of variables for polynomial ring generators in the jython and jruby scripting interface.
  • More JRuby examples.

What is new in version 2.4.3788:

  • Release 2.4 updates all depending packages to the latest version and prepares for JAS 3.0. Updates for Jython 2.5.2 and JRuby 1.6.4. A new index of all algorithms from the book Algorithms for Computer Algebra by Geddes & Czapor & Labahn to their JAS equivalents. Small improvements and fixes again in multivariate integral polynomial factorization.

What is new in version 2.3.3668:

  • Experimental ideal complex root computation was added in the complexAlgebraicRoots() method in the PolyUtilApp class.
  • Simple isolating interval refinement for real and complex roots was implemented.
  • Alternative factoring of univariate polynomials over algebraic number fields via prime ideal decomposition was added in the FactorAlgebraicPrim class.
  • Parsing of complex numbers was improved.
  • Term orders are forced in some situations. Further small improvements and fixes were made.

What is new in version 2.3.3598:

  • Multivariate algebraic ring / field extensions using class ResidueRing. Jruby and Jython versions and examples of the extension field builder. Small improvements and bug fixes for latest Eclipse and Java 1.7 version.

What is new in version 2.3.3568:

  • Easy to use construction of towers of extension fields in class ExtensionFieldBuilder with methods for algebraic and transcendental field extensions.
  • Improvements in real and complex algebraic numbers.
  • Improved polynomial parser for recursive representations.
  • Small bug fixes.

What is new in version 2.3.3538:

  • New class HenselMultUtil for multivariate Hensel lifting. Will be used in polyomial factorization in the future. Some parts of greatest common divisor using multivariate Hensel lifting. The JAS source (r3408) compiles on Apache Harmony 6.0 (r991881). The unit tests pass with the exception of test cases involving object serialization.

What is new in version 2.3.3458:

  • The package structure was cleaned up and all cyclic package dependencies were removed.
  • Factory parsing parts were split from GenPolynomialTokenizer to RingFactoryTokenizer.
  • Some artificial code was required to use solvable polynomials as ring elements because solvable polynomials cannot implement RingElem.
  • This resulted in cases of incorrect method dispatch for the multiply() method due to compiler optimizations.
  • A workaround to detect and repair this is now implemented in the GenPolynomial class.

What is new in version 2.3.3408:

  • New critial pair selection for Grobner base comptation with syzygy based algorithm after Gebauer and Moller in class OrderedSyzPairlist. Refactoring of Grobner base classes to optionally use the new pair selection. Back port of some JDK 1.6 constructs to be again compatible with JDK 1.5. Small improvements in Kronecker factor combination in class FactorAbstract. Fixed race condition in ThreadPool and improved termination detection in Terminator. Fixes in parallel reduced Grobner base computations. Fixed univariate polynomial construction in Ideal.

What is new in version 2.3.3368:

  • Multivariate Taylor series expansion interface and implementation.
  • An improved multivariate power series for standard base computation.
  • Methods have been refactored to better suited classes, and classes have been moved to decouple packages, e.g. Quotient* to the package edu.jas.ufd.
  • Small bugs and cosmetic issues have been fixed.

What is new in version 2.3.3328:

  • Multivariate power series in classes MultiVarPowerSeries and MultiVarPowerSeriesRing.
  • Mora's tangent cone reduction algorithm and standard base computation for power series in package edu.jas.ps.
  • Iterator over exponent vectors.

What is new in version 2.3.3298:

  • This release features iterators for finite and some infinite structures, and the finite and infinite Cartesian products of them.
  • Constructors were fixed to comply with the (new) Java memory model.
  • There were also small bugfixes and improvements, more meaningful exceptions, and some renaming.

What is new in version 2.3.3248:

  • Improved the polynomial parser to accept rational numbers denoted with decimal points and to accept BigDecimal coefficients. Removed the use of the underscore for algebriac number coefficients in the polynomial parser. Now every recursive call of parse() from a ring factory is triggered by braces which can be nested to any depth. Fixed synchronization bug in solvable polynomial relation tables and a parallelization bug in parallel solvable polynomial Grobner base computation. Added remaining parts for the factorization in polynomial rings of characteristic p > 0. Changed the script rpresentaton of AN (AlgebraicNumbers). Use of unbounded thread pools to avoid dead-locks.

What is new in version 2.3.3218:

  • The code was downgraded for the Java 5 language and run-time system for use with systems relying on older Java versions, for example MathPiper and GeoGebra.
  • The edu.jas.kern.TimeStatus class was added to provide user feedback for long running tasks via the checkTime() method.
  • Some missing extGB() methods were implemented.
  • GBFactory was added for the selection of appropriate Grobner base implementations.
  • The isFinite() method was added for all ElemFactorys and usage in SquarefreeFactory.
  • Some missing parts were added for the factorization in polynomial rings of characteristic p > 0 and ideal decomposition.

What is new in version 2.3.3188:

  • A new factory for Grobner base algorithm implementations is in the class GBFactory.
  • The new GBProxy is, like GCDProxy, able to run a sequential and a parallel Grobner base computation concurrently.
  • Primitive element computation is implemented via normalPositionFor() in the methods primitiveElement() together with several conversion methods convertToPrimitiveElem().
  • There is a new index of all algorithms from the book Grobner bases by Becker and Weispfenning to equivalent JAS implementations.

Requirements:

  • Oracle Java Standard Edition Runtime Environment

Screenshots

java-algebra-system_1_69219.png

Similar Software

NetworkX
NetworkX

20 Feb 15

Anagram Solver
Anagram Solver

3 Jun 15

Fractal Fr0st
Fractal Fr0st

3 Jun 15

BoolStuff
BoolStuff

20 Feb 15

Comments to Java Algebra System

Comments not found
Add Comment
Turn on images!