Get Alternative find best software

Fermat

Computer algebra system

Fermat Description

Fermat (named after Pierre de Fermat) is a freeware 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, \dots, t_n, thereby creating the polynomial ring F and its quotient field. Further, some polynomials p, q, \dots involving some of the t_i can be chosen to mod out with, creating the quotient ring F(t_1, t_2, \dots)/(p, q, \dots). 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(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.

A list below shows Fermat alternatives which were either selected by us or voted for by users. You can filter this list by tags and platforms

Feature Selection Toolbox (FST) is software primarily for feature selection in the machine learning domain, written in C++, developed at the Institute of Information Theory and Automation (UTIA), of...

Latest version of Feature Selection Toolbox is 3.1.1 and it was released on 2012-09-09.

OMPL (Open Motion Planning Library) is a software package for computing motion plans using sampling-based algorithms. The content of the library is limited to motion planning algorithms, which means...

GROMOS is the name of a force field for molecular dynamics simulation, and a related computer software package. Both are developed at the University of Groningen, and at the Computer-Aided Chemistry...

Latest version of GROMOS is GROMOS 11 v1.3.0 and it was released on {{Start date and age|2011|05|df=yes}}.

DADiSP (Data Analysis and Display, pronounced day-disp) is a numerical computing environment developed by DSP Development Corporation which allows one to display and manipulate data series, matrices...

Latest version of DADiSP is DADiSP 6.7 B02 and it was released on 2017-01-17.

Free Studio is a freeware set of multimedia programs developed by DVDVideoSoft. The programs are available in one integrated package and also as separate downloads ("Free Studio Manager" is included...

Latest version of Free Studio is 6.6.35.323 and it was released on 2017-03-23.

Macaulay2 is a free computer algebra system developed by Daniel Grayson (UIUC) and Michael Stillman (Cornell) for computation in commutative algebra and algebraic geometry. Stillman, along with Dave...

SymPy is a Python library for symbolic computation. It provides computer algebra capabilities either as a standalone application, as a library to other applications, or live on the web as SymPy Live...

Speakeasy is a numerical computing interactive environment also featuring an interpreted programming language. It was initially developed for internal use at the Physics Division of Argonne National...

Mathcad is computer software primarily intended for the verification, validation, documentation and re-use of engineering calculations. First introduced in 1986 on DOS, it was the first to introduce...

Opera Mail (formerly known as M2) is the email and news client developed by Opera Software. It was an integrated component within the Opera web browser from version 2 through 12. With the release of...

PhysX is a proprietary realtime physics engine middleware SDK. PhysX was authored at NovodeX, an ETH Zurich spin-off. In 2004, NovodeX
was acquired by Ageia, and in February 2008, Ageia was acquired...

Latest version of PhysX is 9.17.0527 and it was released on 2017-06-29.

Skype is an instant messaging app that provides online text message and video chat services. Users may transmit both text and video messages, and may exchange digital documents such as images, text,...

Soulseek is a peer-to-peer (P2P) file-sharing network and application. The term Soulseek might refer to (1) one of the two networks, or (2) one of the three official user client interfaces. Soulseek...