Fermat (computer algebra system)

Fermat (computer algebra system)

Infobox Software
name = Fermat



caption =
developer = Robert H. Lewis
latest_release_version = 3.9.7
latest_release_date = May 6 2008
programming language = C
operating_system = Mac OS X, Mac OS, Linux, Unix, Windows
genre = Computer algebra system
license = Shareware
website = http://home.bway.net/lewis/

Fermat is a shareware 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 mathbb{Z} or mathbb{Z}/n. On top of this may be attached any number of symbolic variables t_1, t_2, ..., t_n, thereby creating the polynomial ring F [t_1, t_2, ..., t_n] and its quotient field. Further, some polynomials p, q, ... involving some of the t_i can be chosen to mod out with, creating the quotient ring F(t_1, t_2, ...)/(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 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(t_1), and commands Fermat to mod out by it. This may be continued recursively, q(t_2, t_1), etc. Low level data structures are set up to facilitate arithmetic and gcd over this newly created ground field. Two special fields, GF(2^{8}) and GF(2^{16}), are more efficiently implemented at the bit level.

To help implement the Dixon resultant technique, special features have been added to the determinant function. These provide a dramatic increase in the speed of resultant calculations with systems of polynomial equations that exhibit symmetry.

Fermat provides a complete programming language. Programs and data can be saved to an ordinary text file that can be examined as such, read during a later session, or read by some other software system.

History

In an earlier version, called FFermat, 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.

Fermat was originally written in Pascal for a DEC Vax, then for 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 90,000 lines of C code.

ee also

*Comparison of computer algebra systems

External links

* [http://home.bway.net/lewis/ Fermat homepage]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Computer algebra system — A computer algebra system (CAS) is a software program that facilitates symbolic mathematics. The core functionality of a CAS is manipulation of mathematical expressions in symbolic form. Contents 1 Symbolic manipulations 2 Additional capabilities …   Wikipedia

  • Axiom (computer algebra system) — Scratchpad redirects here. For scratchpad memory, see Scratchpad RAM. Axiom Developer(s) independent group of people Stable release September 2011 Operating system cross platform …   Wikipedia

  • Magma computer algebra system — Magma Developer(s) Computational Algebra Group, School of Mathematics and Statistics, University of Sydney Stable release 2.17 8 / May 27, 2011 Operating system …   Wikipedia

  • Derive (computer algebra system) — Derive Developer(s) Texas Instruments Stable release 6.1 Development status Discontinued Written in muLISP Operatin …   Wikipedia

  • Dynamic Computer Algebra System — Dcas is a dynamic computer algebra system featuring the idea of using identities as rules for manipulation of algebra. Robert Fenichel developed a system called FAMOUS in the 1970s using the LISP programming language pursuing the same aim. A… …   Wikipedia

  • Comparison of computer algebra systems — The following tables provide a comparison of computer algebra systems (CAS). Contents 1 General 1.1 Functionality 1.2 Operating system support 2 Hand held calculator CAS …   Wikipedia

  • Programas de álgebra computacional — Anexo:Programas de álgebra computacional Saltar a navegación, búsqueda La siguiente es una lista de sistemas algebraicos de cómputo o sistemas de álgebra computacional, (CAS, del inglés computer algebra system), dentro de ellos se encuentran… …   Wikipedia Español

  • Anexo:Programas de álgebra computacional — La siguiente es una lista de sistemas algebraicos de cómputo o sistemas de álgebra computacional, (CAS, del inglés computer algebra system), dentro de ellos se encuentran programas propietarios y de código abierto (software libre): Contenido 1… …   Wikipedia Español

  • Cartesian coordinate system — Illustration of a Cartesian coordinate plane. Four points are marked and labeled with their coordinates: (2, 3) in green, (−3, 1) in red, (−1.5, −2.5) in blue, and the origin (0, 0) in purple. A Cartesian coordinate system specifies each point… …   Wikipedia

  • Maple (software) — Maple Maple interface Developer(s) Waterloo Maple (Maplesoft) Stable release 15.01 / June 21, 2011; 4 months ago (2011 06 21) …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”