Jump to content

GiNaC: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
update version
Rbk (talk | contribs)
verify some references are still valid, convert to https
 
(22 intermediate revisions by 19 users not shown)
Line 1: Line 1:
{{Short description|Computer algebra system}}
{{Infobox software
{{Infobox software
| name = GiNaC
| name = GiNaC
Line 4: Line 5:
| screenshot =
| screenshot =
| caption =
| caption =
| developer = Christian Bauer, Alexander Frink, Richard B. Kreckel, Alexei Sheplyakov, et al.
| developer = Christian Bauer, Richard B. Kreckel, Alexei Sheplyakov, Jens Vollinga, et al.
| released = {{Start date and age|1999|11|26|df=yes}}<ref>{{cite web|title=GiNaC News & Announcements|url=http://www.ginac.de/News.html|accessdate=29 October 2011}}</ref>
| released = {{Start date and age|1999|11|26|df=yes}}<ref>{{cite web|title=GiNaC News & Announcements|url=https://www.ginac.de/News.html|accessdate=1 February 2024}}</ref>
| latest release version = 1.7.4
| latest release version = 1.8.7
| latest release date = {{Start date and age|2018|02|19|df=yes}}
| latest release date = {{Start date and age|2023|08|12|df=yes}}
| programming language = [[C++11]]
| programming language = [[C++11]]
| operating system = [[Cross-platform]]
| operating system = [[Cross-platform]]
Line 15: Line 16:
}}
}}


'''GiNaC''' is a [[free software|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 is not Unix".<ref>{{cite web|title=GiNaC's mini-FAQ|url=http://www.ginac.de/FAQ.html#whynotacas|accessdate=29 October 2011}}</ref>
'''GiNaC''' is a [[free software|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".<ref>{{cite web|title=GiNaC's mini-FAQ|url=https://www.ginac.de/FAQ.html#whynotacas|accessdate=1 February 2024}}</ref>


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 computation|symbolic]] [[algorithm]]s directly in [[C++]], which is GiNaC's implementation [[programming language]]. 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.
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 computation|symbolic]] [[algorithm]]s 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 [[Class Library for Numbers|CLN]] library for implementing [[arbitrary-precision arithmetic]]. Symbolically, it can do multivariate polynomial arithmetic, [[polynomial factorization|factor polynomials]], compute [[Greatest common divisor|GCD]]s, expand [[Laurent series|series]], and compute with [[Matrix (mathematics)|matrices]]. It is equipped to handle certain [[Noncommutative ring|noncommutative algebras]] which are extensively used in [[Theoretical physics|theoretical]] [[Particle physics|high energy physics]]: [[Clifford Algebra|Clifford algebras]], [[Special unitary group#The group SU(3)|SU(3)]] [[Lie algebra]]s, and [[Electromagnetic tensor|Lorentz tensors]]. Due to this, it is extensively used in [[dimensional regularization]] computations – but it is not restricted to physics.
GiNaC uses the [[Class Library for Numbers|CLN]] library for implementing [[arbitrary-precision arithmetic]]. Symbolically, it can do multivariate polynomial arithmetic, [[polynomial factorization|factor polynomials]], compute [[Greatest common divisor|GCD]]s, expand [[Laurent series|series]], and compute with [[Matrix (mathematics)|matrices]]. It is equipped to handle certain [[Noncommutative ring|noncommutative algebras]] which are extensively used in [[Theoretical physics|theoretical]] [[Particle physics|high energy physics]]: [[Clifford Algebra|Clifford algebras]], [[Special unitary group#The group SU(3)|SU(3)]] [[Lie algebra]]s, and [[Electromagnetic tensor|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 software|open-source]] projects: there is a symbolic extension for [[GNU Octave]],<ref>{{Cite web| title=Octave 'symbolic' package | url=http://octave.sourceforge.net/symbolic/ | accessdate=2011-10-05}}</ref> a simulator for [[magnetic resonance imaging]],<ref>{{Cite web |url=http://www.jemris.org/download.shtml |archive-url=https://web.archive.org/web/20101219141144/http://www.jemris.org/download.shtml |dead-url=yes |archive-date=2010-12-19 |title=JEMRIS – MRI simulations software |accessdate=2011-10-05 |df= }}</ref> and since May 2009, [http://pynac.org/ Pynac], a [[Fork (software development)|fork]] of GiNaC, provides the backend for symbolic expressions in [[SageMath]].<ref>{{Cite web| url=https://github.com/pynac/pynac/wiki/FAQ-list | title=Pynac FAQ | accessdate=2015-09-27}}</ref>
GiNaC is the symbolic foundation in several [[Open-source software|open-source]] projects: there is a symbolic extension for [[GNU Octave]],<ref>{{Cite web| title=Octave 'symbolic' package | url=http://octave.sourceforge.net/symbolic/ | accessdate=2011-10-05}}</ref> a simulator for [[magnetic resonance imaging]],<ref>{{Cite web |url=http://www.jemris.org/download.shtml |archive-url=https://web.archive.org/web/20101219141144/http://www.jemris.org/download.shtml |url-status=dead |archive-date=2010-12-19 |title=JEMRIS – MRI simulations software |accessdate=2011-10-05 }}</ref> and since May 2009, [http://pynac.org/ Pynac], a [[Fork (software development)|fork]] of GiNaC, provides the backend for symbolic expressions in [[SageMath]].<ref>{{Cite web| url=https://github.com/pynac/pynac/wiki/FAQ-list | title=Pynac FAQ | accessdate=2015-09-27}}</ref>


==See also==
==See also==
{{Portal|Free software}}
{{Portal|Free and open-source software}}
*[[Comparison of computer algebra systems]]
*[[Comparison of computer algebra systems]]



Latest revision as of 17:13, 3 February 2024

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; 15 months ago (2023-08-12)
Repository
Written inC++11
Operating systemCross-platform
TypeMathematical software
LicenseGPL
Websitewww.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]

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

[edit]

References

[edit]
  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.
[edit]