Введение
Компьютерная алгебра система Фермат (названа в честь Пьера де Ферма) - программа, разработанная профессором Робертом Льюисом из Фордхэмского университета. Это компьютерная алгебраическая система, в которой вычисляемые элементы могут быть целыми числами (произвольного размера), рациональными числами, реальными числами, комплексными числами, модульными числами, конечными элементами поля, многомерными многочленами, рациональными функциями или многочленами модулем других многочленов. Основными областями применения являются многовариантная арифметика рациональных функций и матричная алгебра над кольцами многовариантных полиномов или рациональных функций. Ферма не делает упрощение трансцендентных функций или символической интеграции. Сеанс с Ферма обычно начинается с выбора рационального или модульного "режима" для установления поля основания (или кольца основания) как или На вершине этого может быть прикреплено любое количество символических переменных, тем самым создавая кольцо многочлена и его поле коэффициента. Кроме того, некоторые полиномы, включающие некоторые из числа, могут быть выбраны для модификации, создавая кольцо квот. Наконец, можно разрешить полиномы Лоранта, те, которые имеют как отрицательные, так и положительные показатели. Как только вычислительное кольцо установлено таким образом, все вычисления являются элементами этого кольца. Вычислительное кольцо может быть изменено позже в сессии. Процедуры многочленного gcd, которые называют друг друга в высоко рекурсивном порядке, составляют около 7000 строк кода. Фермат имеет обширные встроенные примитивы для матричных и матричных манипуляций, таких как субматрица, разреженная матрица, детерминант, нормализация, уменьшение столбца, эшелон ряда, нормальная форма Смита и обратная матрица. Он постоянно быстрее, чем некоторые известные компьютерные алгебраические системы, особенно в многомерных многочленных gcd. Также она экономит пространство. Основной элемент данных в Ферма является многомерной рациональной функцией или кволиномиалом. Числитель и знаменатель - это многочлены без общего делителя. Полиномы реализуются рекурсивно как общие связанные списки, в отличие от некоторых систем, которые реализуют полиномы как списки мономов. Для реализации (большинства) конечных полей пользователь находит нередуцируемый монологический полином в символической переменной, скажем, и приказывает Ферма модифицировать его. Это может быть продолжено рекурсивно и т. д. Для облегчения работы с арифметикой и вычислениями на основе данных низкого уровня созданы структуры данных для этого недавно созданного наземного поля. Два специальных поля, и более эффективно реализуются на уровне битов.
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) as or On top of this may be attached any number of symbolic variables thereby creating the polynomial ring and its quotient field. Further, some polynomials involving some of the can be chosen to mod out with, creating the quotient ring 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 and commands Fermat to mod out by it. This may be continued recursively, etc. Low level data structures are set up to facilitate arithmetic and gcd over this newly created ground field. Two special fields, and are more efficiently implemented at the bit level.
История
С Windows 10 и благодаря Bogdan Radu теперь можно (май 2021) запускать Fermat Linux на Windows. Смотрите главную веб-страницу http://home. - Хорошо. net/lewis Fermat был последний раз обновлен 20 мая 2020 года (Mac и Linux; последняя версия Windows: 1 ноября 2011 года). В более ранней версии, называемой FFermat (Float Fermat), базовым типом чисел являются числа с плавающей запятой из 18 цифр. Эта версия позволяет использовать методы численных вычислений, имеет обширные графические возможности, не имеет сложных алгоритмов многочленного счисления и доступна только для Mac OS 9. Первоначально Fermat был написан на языке Pascal для DEC VAX, затем для классической Mac OS в 1985-1996 годах. Он был портирован на Microsoft Windows в 1998 году. В 2003 году он был переведен на C и портирован на Linux (машины Intel) и Unix (Sparc/Sun). Это около 98 000 строк C-кода. Источник FFermat и (старый) Windows Fermat Pascal был доступен общественности на основе ограничительной лицензии. Руководство было тщательно пересмотрено и обновлено 25 июля 2011 года (последняя небольшая переработка в июне 2016 года, очевидно, еще одна переработка 25 марта 2020 года).
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).