j'Abr Computer Algebra System

Overview

j'Abr is a collection of packages for computer algebra in Java. It contains the basics of a computer algebra system (CAS) and important algorithms for solving symbolic (and numerical) mathematical problems.

The j'Abr (alias jAbr) packages provide algorithms for Gröbner Bases, gcd, modular reduction, symbolic differentiation, Chinese remainder algorithm, and even algorithms for symbolically solving classes of differential equation systems. It also contains numerical and statistical algorithms like splines, interpolation, cg and Gaussian equation solving as well as function regression and for numerical solutions of differential equations. As basic data types it provides object-oriented data representation of vectors, matrices, multivariate polynomials, univariate polynomials, real numbers, rationals, integers, complex numbers, quotients, fractions, as well as symbolic values. Whereas the j'Abr architecture supports a strict separation of abstract mathematical data representation and computer implementation such that the very same data types can be supported by multiple implementational variants without change. Arbitrary modular polynomial arithmetic is possible simply by using quotients via Gröbner Bases. The j'Abr components have been implemented in Java and are available as a part of the Orbital library.

Components

j'Abr provides components of four different kinds:
  1. data types representing mathematical structures and their implementations
  2. function representations and functional compositions thereof
  3. symbolic algorithms for computational algebra
  4. additional tools like mathematical expression parsing and function plotting, miscellaneous statistical and numerical algorithms

Download

The computer algebra system components j'Abr are part of the This package has been cited in the following work by Heinz Kredel.
[Kre06]
Heinz Kredel. On the Design of a Java Computer Algebra System. In Proceedings of the 4th international symposium on Principles and practice of programming in Java, ACM International Conference Proceeding Series; Vol. 178, pages 143-152. ACM, 2006.
[pdf]

Historical Note

This computer algebra system is called j'Abr in honour of the mathematician Abu Abd-Allah ibn Musa al'Khwarizmi (≈790-850). Al'Khwarizmi has written an important treatise "Hisab al-jabr w'al-muqabala" in 830 AD about a systematic approach for the solution of quadratic expressions including geometric principles. The name "algebra" derives from the term "al-jabr" coined by Al'Khwarizmi. In his book, al-jabr describes the process of putting an algebraic equation into a form that reveals the solutions.