# Related projects

## Computer Algebra Systems using Java

- ScAS is a computer algebra system developed in Scala. Scala has some more features than Java to optimally support the implementation of a computer algebra system. The basic structure of ScAS is developed in cooperation with the basic structure of JAS, see the co-authored papers in the Documentation section. ScAS is also a successor of jscl-meditor.

- jscl-meditor Java symbolic computing library and mathematical editor. The goal of this project is to provide a Java symbolic computing library and a mathematical editor acting as a front-end to the former. There are several computer algebra systems available on the market, most of them developed in other languages, mainly C/C++ and Lisp. But the benefits of using Java in symbolic computation are great. Aside from being widely used and to comply with various standards, this language has two features of concern: readability and portability.

- MathEclipse is a Java Computer Algebra system. MathEclipse has functions for arbitrary-precision integer arithmetic, matrices, vectors, finite sets, derivatives, pattern-matching rewriting rules and functional programming.

- Symja - a symbolic math system written in Java based on the MathEclipse libraries. Features: arbitrary precision integers, rationals and complex numbers, polynomials, differentiation, pattern matching and linear algebra.

- GeoGebra is dynamic mathematics software for all levels of education that joins arithmetic, geometry, algebra and calculus. On the one hand, GeoGebra is an interactive geometry system. You can do constructions with points, vectors, segments, lines, conic sections as well as functions and change them dynamically afterwards. On the other hand, equations and coordinates can be entered directly. Thus, GeoGebra has the ability to deal with variables for numbers, vectors and points, finds derivatives and integrals of functions and offers commands like Root or Extremum. These two views are characteristic of GeoGebra: an expression in the algebra view corresponds to an object in the graphics view and vice versa.

- MathPiper is a new mathematics-oriented programming language which is simple enough to be learned as a first programming language and yet powerful enough to be useful in any science, mathematics, or engineering related career. MathPiper is also a Computer Algebra System (CAS) which is similar in function to the CAS which is included in the TI 89 and TI 92 calculators.

- Jasymca: Programmable Java calculator. CAS (Computer Algebra System), provides exact and symbolic datatypes, interactive graphics display of functions. The user interface can be selected from either a Matlab/Octave/SciLab-style, or a GNU-Maxima-style. Runs on any Java SE- and ME-platform: Windows, MacOS, Linux, Cellphone, PDA and others.

- JGEX: Java Geometry Expert is an ongoing developing system which initially began in early 2004 in Wichita State Univerisity. JGEX is a system which combines our approach for visually dynamic presentation of proofs (VDDP), dynamic geometry software (DGS), automated geometry theorem prover (GTP). The VDDP part is the most distinctive part of JGEX. It is based on our work on DGS and GTP. JGEX can be used to create proofs either manually and automatically. It provides a seris of visual effects for presenting of these proofs. With the applet version of JGEX, the user may create beautiful examples and put them on the web to share with others

- JLinAlg is an open source and easy-to-use Java-library for linear algebra that is licensed under the GNU General Public License (GPL).

- The Apache Commons Mathematics Library is a library of lightweight, self-contained mathematics and statistics components addressing the most common problems not available in the Java programming language or Commons Lang.

- java.symcomp.org Java Library for SCSCP and OpenMath. The libraries `org.symcomp.openmath` and `org.symcomp.scscp` were developed in the SCIEnce Project, an Integrated Infrastructure Initiative, funded by the European Commission under the Research Infrastructures Action of Framework 6. WUPSI is a Universal Popcorn SCSCP Interface - The SCSCP Swiss Army Knife.

- The Orbital Library is a Java class library providing object-oriented representations and algorithms for logic, mathematics, and artificial intelligence. It comprises theorem proving, computer algebra, search and planning, as well as machine learning algorithms.

- Jscience Java Tools and Libraries for the Advancement of Sciences. The system is not limited to computer algebra.

## Other Open Source Computer Algebra Systems

- Singular is a Computer Algebra System for polynomial computations with special emphasis on the needs of commutative algebra, algebraic geometry, and singularity theory.

- CoCoA Computations in Commutative Algebra.

- Risa/Asir is an open source general computer algebra system.

- Pari/GP is a widely used computer algebra system designed for fast computations in number theory (factorizations, algebraic number theory, elliptic curves...), but also contains a large number of other useful functions to compute with mathematical entities such as matrices, polynomials, power series, algebraic numbers, etc., and a lot of transcendental functions.

- Reduce is an interactive system for general algebraic computations of interest to mathematicians, scientists and engineers. It has been produced by a collaborative effort involving many contributors. Its capabilities include: expansion and ordering of polynomials and rational functions; substitutions and pattern matching in a wide variety of forms; automatic and user controlled simplification of expressions; calculations with symbolic matrices; arbitrary precision integer and real arithmetic; facilities for defining new functions and extending program syntax; analytic differentiation and integration; factorization of polynomials; facilities for the solution of a variety of algebraic equations; facilities for the output of expressions in a variety of formats; facilities for generating optimized numerical programs from symbolic input; calculations with a wide variety of special functions; Dirac matrix calculations of interest to high energy physicists.

- Maxima is a system for the manipulation of symbolic and numerical expressions, including differentiation, integration, Taylor series, Laplace transforms, ordinary differential equations, systems of linear equations, polynomials, and sets, lists, vectors, matrices, and tensors. Maxima yields high precision numeric results by using exact fractions, arbitrary precision integers, and variable precision floating point numbers. Maxima can plot functions and data in two and three dimensions.

- Macaulay 2 is a software system devoted to supporting research in algebraic geometry and commutative algebra, whose creation has been funded by the National Science Foundation since 1992. Macaulay2 includes core algorithms for computing Gröbner bases and graded or multi-graded free resolutions of modules over quotient rings of graded or multi-graded polynomial rings with a monomial ordering. The core algorithms are accessible through a versatile high level interpreted user language with a powerful debugger supporting the creation of new classes of mathematical objects and the installation of methods for computing specifically with them. Macaulay2 can compute Betti numbers, Ext, cohomology of coherent sheaves on projective varieties, primary decomposition of ideals, integral closure of rings, and more.

- Axiom is a general purpose Computer Algebra system. It is useful for research and development of mathematical algorithms. It defines a strongly typed, mathematically correct type hierarchy. It has a programming language and a built-in compiler. In 2007, Axiom was forked into two different open source projects: OpenAxiom, and FriCAS.
  FriCAS is an advanced computer algebra system. Its capabilities range from calculus (integration and differentiation) to abstract algebra. It can plot functions and has integrated help system.
  OpenAxiom is an open source platform for symbolic, algebraic, and numerical computations. It offers an interactive environment, an expressive programming language, a compiler, a large set of mathematical libraries of interest to researchers and practitioners of computational sciences.

- More open source mathematical programs.

- to be continued

## Computer Algebra Systems using other Object Oriented Programing Languages

- Sage is an Open Source Mathematics Software creating a viable free open source alternative to Magma, Maple, Mathematica, and Matlab. Sage is written in Python and Cython as an interface to other open source CAS Singular, PARI/GP, GAP, gnuplot, Magma, and Maple.

- SymPy is a Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries.

- GiNaC has been developed to become a replacement engine for xloops which in the past was powered by the Maple CAS. Its design is revolutionary in a sense that contrary to other CAS it does not try to provide extensive algebraic capabilities and a simple programming language but instead accepts a given language (C++) and extends it by a set of algebraic capabilities. The name GiNaC is an iterated and recursive abbreviation for GiNaC is Not a CAS, where CAS stands for Computer Algebra System.

- Cadabra is a computer algebra system (CAS) designed specifically for the solution of problems encountered in field theory. It has extensive functionality for tensor polynomial simplification including multi-term symmetries, fermions and anti-commuting variables, Clifford algebras and Fierz transformations, implicit coordinate dependence, multiple index types and many more. The input format is a subset of TeX. Both a command-line and a graphical interface are available.

Last modified: Sat Jan 28 15:07:25 CET 2012