Fermat (computer algebra system)

Short description: Computer algebra system

This article does not cite any external source. HandWiki requires at least one external source. See citing external sources. Please help improve this article. Unsourced material may be removed in future.
Find sources: "Fermat" computer algebra system – news · newspapers · books · scholar · JSTOR (November 2012) (Learn how and when to remove this template message)

|

FermatDeveloper(s)| Robert H. Lewis

|

Stable release|

6.5 / 25 June 2021; 4 years ago (2021-06-25)

Written in| C
Operating system| macOS, Classic Mac OS, Linux, Unix, Windows
Type| Computer algebra system
License| Freeware, GPL since 4 August 2018
Website| home.bway.net/lewis/

Fermat (named after Pierre de Fermat) is a program developed by Prof. Robert H. Lewis of Fordham University. It is a computer algebra system, in which items being computed can be integers (of arbitrary size), rational numbers, real numbers, complex numbers, modular numbers, finite field elements, multivariable polynomials, rational functions, or polynomials modulo other polynomials. The main areas of application are multivariate rational function arithmetic and matrix algebra over rings of multivariate polynomials or rational functions. Fermat does not do simplification of transcendental functions or symbolic integration.

A session with Fermat usually starts by choosing rational or modular "mode" to establish the ground field (or ground ring) F as ℤ or ℤ/n. On top of this may be attached any number of symbolic variables t1,t2,…,tn, thereby creating the polynomial ring F[t1,t2,…,tn] and its quotient field. Further, some polynomials p,q,… involving some of the ti can be chosen to mod out with, creating the quotient ring F(t1,t2,…)/(p,q,…). Finally, it is possible to allow Laurent polynomials, those with negative as well as positive exponents. Once the computational ring is established in this way, all computations are of elements of this ring. The computational ring can be changed later in the session.

The polynomial gcd procedures, which call each other in a highly recursive manner, are about 7000 lines of code.

Fermat has extensive built-in primitives for array and matrix manipulations, such as submatrix, sparse matrix, determinant, normalize, column reduce, row echelon, Smith normal form, and matrix inverse. It is consistently faster than some well known computer algebra systems, especially in multivariate polynomial gcd. It is also space efficient.

The basic data item in Fermat is a multivariate rational function or quolynomial. The numerator and denominator are polynomials with no common factor. Polynomials are implemented recursively as general linked lists, unlike some systems that implement polynomials as lists of monomials. To implement (most) finite fields, the user finds an irreducible monic polynomial in a symbolic variable, say p(t1), and commands Fermat to mod out by it. This may be continued recursively, q(t2,t1), etc. Low level data structures are set up to facilitate arithmetic and gcd over this newly created ground field. Two special fields, GF(28) and GF(216), are more efficiently implemented at the bit level.

## History

With Windows 10, and thanks to Bogdan Radu, it is now possible (May 2021) to run Fermat Linux natively on Windows. See the main web page http://home.bway.net/lewis

Fermat was last updated on 20 May 2020 (Mac and Linux; latest Windows version: 1 November 2011).

In an earlier version, called FFermat (Float Fermat), the basic number type is floating point numbers of 18 digits. That version allows for numerical computing techniques, has extensive graphics capabilities, no sophisticated polynomial gcd algorithms, and is available only for Mac OS 9.

Fermat was originally written in Pascal for a DEC VAX, then for the classic Mac OS during 1985–1996. It was ported to Microsoft Windows in 1998. In 2003 it was translated into C and ported to Linux (Intel machines) and Unix (Sparc/Sun). It is about 98,000 lines of C code.

The FFermat and (old) Windows Fermat Pascal source code have been made available to the public under a restrictive license.

The manual was extensively revised and updated on 25 July 2011 (latest small revision in June 2016, apparently another revision on 25 March 2020).

## See also

* Comparison of computer algebra systems

## External links

* Windows Fermat Pascal source code
* Float Fermat Pascal source code
* Robert H. Lewis at academia.edu

* v
* t
* e

Computer algebra systems

Open-source|

* Axiom
* Cadabra
* CoCoA
* Erable
* Fermat
* FriCAS
* FORM
* GAP
* GiNaC
* Macaulay2
* Maxima
* Normaliz
* PARI/GP
* Reduce
* SageMath
* Singular
* SymPy
* Xcas/Giac
* Yacas

Proprietary|

* ClassPad Manager
* KANT
* Magma
* Maple
* Mathcad
* Mathematica
* muPAD (MATLAB symbolic math toolbox)
* SMath Studio
* TI InterActive!

Discontinued|

* CAMAL
* Derive
* LiveMath
* Macsyma
* Mathomatic
* muMATH

* Category
* List

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Fermat (computer algebra system). Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Software:Fermat_(computer_algebra_system)&oldid=454040"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template