Java Algebra System Changelog

What's new in Java Algebra System 2.5.4738

Jan 6, 2014
  • 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.

New in Java Algebra System 2.5.4688 (Nov 5, 2013)

  • 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 Gröbner base programs.

New in Java Algebra System 2.5.4658 (Oct 7, 2013)

  • 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.

New in Java Algebra System 2.5.4618 (Sep 9, 2013)

  • This version contains new distributed Gröbner 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 Gröbner base computations.
  • The solvable multiplications have been simplified.
  • Fixes and improvements have been made for Jython and JRuby scripts.

New in Java Algebra System 2.5.4555 (Aug 5, 2013)

  • 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.

New in Java Algebra System 2.5.4448 (Jun 3, 2013)

  • 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.

New in Java Algebra System 2.5.4408 (May 2, 2013)

  • 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.

New in Java Algebra System 2.5.4358 (Jan 7, 2013)

  • The Java API will be more stable from now on.
  • It fixes a race condition in distributed (hybrid) Gröbner base implementations and improves the MPJ version of GB computations.
  • The GBFactory has changed, and a new option to select Gebauer & Möller 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.

New in Java Algebra System 2.4.4308 (Dec 3, 2012)

  • 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.

New in Java Algebra System 2.4.4278 (Nov 3, 2012)

  • This version contains new distributed Gröbner 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.

New in Java Algebra System 2.4.4228 (Oct 4, 2012)

  • This version contains new parts for free non-commutative Gröbner 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) Gröbner base algorithm implementations with the class GBAlgorithmBuilder; for example, a fraction free algorithm with optimization of the variable order.

New in Java Algebra System 2.4.4008 (Jul 16, 2012)

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

New in Java Algebra System 2.4.3938 (May 8, 2012)

  • 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.

New in Java Algebra System 2.4.3888 (Feb 13, 2012)

  • 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.

New in Java Algebra System 2.4.3851 (Jan 1, 2012)

  • 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.

New in Java Algebra System 2.4.3828 (Dec 19, 2011)

  • 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.

New in Java Algebra System 2.4.3788 (Oct 3, 2011)

  • 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.

New in Java Algebra System 2.3.3668 (Jun 19, 2011)

  • 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.

New in Java Algebra System 2.3.3598 (Apr 11, 2011)

  • 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.

New in Java Algebra System 2.3.3568 (Mar 21, 2011)

  • 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.

New in Java Algebra System 2.3.3538 (Feb 21, 2011)

  • 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.

New in Java Algebra System 2.3.3458 (Jan 6, 2011)

  • 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.

New in Java Algebra System 2.3.3408 (Dec 19, 2010)

  • New critial pair selection for Gröbner base comptation with syzygy based algorithm after Gebauer and Möller in class OrderedSyzPairlist. Refactoring of Gröbner 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 Gröbner base computations. Fixed univariate polynomial construction in Ideal.

New in Java Algebra System 2.3.3368 (Oct 29, 2010)

  • 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.

New in Java Algebra System 2.3.3328 (Sep 21, 2010)

  • 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.

New in Java Algebra System 2.3.3298 (Aug 30, 2010)

  • 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.

New in Java Algebra System 2.3.3248 (Aug 8, 2010)

  • 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 Gröbner 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.

New in Java Algebra System 2.3.3218 (Jul 8, 2010)

  • 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 Gröbner 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.

New in Java Algebra System 2.3.3188 (Jun 19, 2010)

  • A new factory for Gröbner base algorithm implementations is in the class GBFactory.
  • The new GBProxy is, like GCDProxy, able to run a sequential and a parallel Gröbner 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 Gröbner bases by Becker and Weispfenning to equivalent JAS implementations.