GiNaC

Last updated
GiNaC
Developer(s) Christian Bauer, Richard B. Kreckel, Alexei Sheplyakov, Jens Vollinga, et al.
Initial release26 November 1999;24 years ago (1999-11-26) [1]
Stable release
1.8.7 / 12 August 2023;5 months ago (2023-08-12)
Repository
Written in C++11
Operating system Cross-platform
Type Mathematical software
License GPL
Website www.ginac.de

GiNaC is a free computer algebra system released under the GNU General Public License. The name is a recursive acronym for "GiNaC is Not a CAS" (Computer Algebra System). This is similar to the GNU acronym "GNU's not Unix". [2]

Contents

What distinguishes GiNaC from most other computer algebra systems is that it does not provide a high-level interface for user interaction. Rather, it encourages its users to write symbolic algorithms directly in C++, which is GiNaC's implementation programming language. The algebraic syntax is achieved in C++ through the use of operator overloading. The name GiNaC is also explained by its developers' perception that most "computer algebra systems" put too much emphasis on a high-level interface and too little on interoperability.

GiNaC uses the CLN library for implementing arbitrary-precision arithmetic. Symbolically, it can do multivariate polynomial arithmetic, factor polynomials, compute GCDs, expand series, and compute with matrices. It is equipped to handle certain noncommutative algebras which are extensively used in theoretical high energy physics: Clifford algebras, SU(3) Lie algebras, and Lorentz tensors. Due to this, it is extensively used in dimensional regularization computations – but it is not restricted to physics.

GiNaC is the symbolic foundation in several open-source projects: there is a symbolic extension for GNU Octave, [3] a simulator for magnetic resonance imaging, [4] and since May 2009, Pynac, a fork of GiNaC, provides the backend for symbolic expressions in SageMath. [5]

See also

Related Research Articles

<span class="mw-page-title-main">GNU Octave</span> Numerical analysis programming language

GNU Octave is a scientific programming language for scientific computing and numerical computation. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB. It may also be used as a batch-oriented language. As part of the GNU Project, it is free software under the terms of the GNU General Public License.

<span class="mw-page-title-main">Wolfram Mathematica</span> Computational software program

Wolfram Mathematica is a software system with built-in libraries for several areas of technical computing that allow machine learning, statistics, symbolic computation, data manipulation, network analysis, time series analysis, NLP, optimization, plotting functions and various types of data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other programming languages. It was conceived by Stephen Wolfram, and is developed by Wolfram Research of Champaign, Illinois. The Wolfram Language is the programming language used in Mathematica. Mathematica 1.0 was released on June 23, 1988 in Champaign, Illinois and Santa Clara, California.

A computer algebra system (CAS) or symbolic algebra system (SAS) is any mathematical software with the ability to manipulate mathematical expressions in a way similar to the traditional manual computations of mathematicians and scientists. The development of the computer algebra systems in the second half of the 20th century is part of the discipline of "computer algebra" or "symbolic computation", which has spurred work in algorithms over mathematical objects such as polynomials.

<span class="mw-page-title-main">Maple (software)</span> Mathematical computing environment

Maple is a symbolic and numeric computing environment as well as a multi-paradigm programming language. It covers several areas of technical computing, such as symbolic mathematics, numerical analysis, data processing, visualization, and others. A toolbox, MapleSim, adds functionality for multidomain physical modeling and code generation.

Macsyma is one of the oldest general-purpose computer algebra systems still in wide use. It was originally developed from 1968 to 1982 at MIT's Project MAC.

<span class="mw-page-title-main">GNU MPFR</span> C library for arbitrary-precision floating-point arithmetic

The GNU Multiple Precision Floating-Point Reliable Library is a GNU portable C library for arbitrary-precision binary floating-point computation with correct rounding, based on GNU Multi-Precision Library.

The GNU Scientific Library is a software library for numerical computations in applied mathematics and science. The GSL is written in C; wrappers are available for other programming languages. The GSL is part of the GNU Project and is distributed under the GNU General Public License.

Mathematical software is software used to model, analyze or calculate numeric, symbolic or geometric data.

<span class="mw-page-title-main">Mathomatic</span> Computer algebra system

Mathomatic is a free, portable, general-purpose computer algebra system (CAS) that can symbolically solve, simplify, combine and compare algebraic equations, and can perform complex number, modular, and polynomial arithmetic, along with standard arithmetic. It does some symbolic calculus (derivative, extrema, Taylor series, and polynomial integration and Laplace transforms), numerical integration, and handles all elementary algebra except logarithms. Trigonometric functions can be entered and manipulated using complex exponentials, with the GNU m4 preprocessor. Not currently implemented are general functions like f(x), arbitrary-precision and interval arithmetic, and matrices.

The following tables provide a comparison of numerical analysis software.

<span class="mw-page-title-main">Computer algebra</span> Scientific area at the interface between computer science and mathematics

In mathematics and computer science, computer algebra, also called symbolic computation or algebraic computation, is a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expressions and other mathematical objects. Although computer algebra could be considered a subfield of scientific computing, they are generally considered as distinct fields because scientific computing is usually based on numerical computation with approximate floating point numbers, while symbolic computation emphasizes exact computation with expressions containing variables that have no given value and are manipulated as symbols.

<span class="mw-page-title-main">PARI/GP</span> Computer algebra system

PARI/GP is a computer algebra system with the main aim of facilitating number theory computations. Versions 2.1.0 and higher are distributed under the GNU General Public License. It runs on most common operating systems.

Tensor software is a class of mathematical software designed for manipulation and calculation with tensors.

<span class="mw-page-title-main">Cadabra (computer program)</span> Computer algebra system

Cadabra is a computer algebra system designed specifically for the solution of problems encountered in classical field theory, quantum field theory and string theory.

<span class="mw-page-title-main">Normaliz</span> Computer algebra system

Normaliz is a free computer algebra system developed by Winfried Bruns, Robert Koch (1998–2002), Bogdam Ichim (2007/08) and Christof Soeger (2009–2016). It is published under the GNU General Public License version 2.

References

  1. "GiNaC News & Announcements" . Retrieved 1 February 2024.
  2. "GiNaC's mini-FAQ" . Retrieved 1 February 2024.
  3. "Octave 'symbolic' package" . Retrieved 2011-10-05.
  4. "JEMRIS – MRI simulations software". Archived from the original on 2010-12-19. Retrieved 2011-10-05.
  5. "Pynac FAQ" . Retrieved 2015-09-27.