GiNaC

Computer algebra system


title: "GiNaC" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["c++-libraries", "free-computer-algebra-systems", "free-software-programmed-in-c++"] description: "Computer algebra system" topic_path: "general/c-libraries" source: "https://en.wikipedia.org/wiki/GiNaC" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0

::summary Computer algebra system ::

::data[format=table title="Infobox software"]

FieldValue
nameGiNaC
developerChristian Bauer, Richard B. Kreckel, Alexei Sheplyakov, Jens Vollinga, et al.
released
latest release version
latest release date
programming language[property
operating systemCross-platform
genreMathematical software
license[property
::

| name = GiNaC | logo = | screenshot = | caption = | developer = Christian Bauer, Richard B. Kreckel, Alexei Sheplyakov, Jens Vollinga, et al. | released = | latest release version = | latest release date = | programming language = property|P277}} | operating system = Cross-platform | genre = Mathematical software | license = property|P275}}

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

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, a simulator for magnetic resonance imaging, and since May 2009, Pynac, a fork of GiNaC, provides the backend for symbolic expressions in SageMath.

References

References

  1. "GiNaC News & Announcements".
  2. "GiNaC's mini-FAQ".
  3. "Octave 'symbolic' package".
  4. "JEMRIS – MRI simulations software".
  5. "Pynac FAQ".

::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::

c++-librariesfree-computer-algebra-systemsfree-software-programmed-in-c++