Ферма (система компьютерной алгебры)
Разработчики) | Роберт Х. Льюис |
---|---|
Стабильная версия | 6,5
/ 25 июня 2021 г |
Написано в | С |
Операционная система | macOS , классическая Mac OS , Linux , Unix , Windows |
Тип | Система компьютерной алгебры |
Лицензия | Бесплатное ПО , GPL с 4 августа 2018 г. |
Веб-сайт | дом |
Ферма (названная в честь Пьера де Ферма ) — программа, разработанная профессором Робертом Х. Льюисом из Фордхэмского университета . Это система компьютерной алгебры , в которой вычисляемые элементы могут быть целыми числами (произвольного размера), рациональными числами , действительными числами , комплексными числами , модульными числами, конечного поля элементами , полиномами от многих переменных , рациональными функциями или полиномами по модулю других полиномов. Основными областями применения являются арифметика многомерных рациональных функций и матричная алгебра над кольцами многомерных многочленов или рациональных функций. Ферма не занимается упрощением трансцендентных функций или символической интеграцией .
Сеанс с Ферма обычно начинается с выбора рационального или модульного «режима» для создания поля заземления (или кольца заземления). как или . Поверх этого может быть присоединено любое количество символьных переменных. тем самым создавая полиномиальное кольцо и его факторполе. Далее, некоторые полиномы с участием некоторых из может быть выбран для моддинга, создавая факторкольцо Наконец, можно разрешить полиномы Лорана как с отрицательными, так и с положительными показателями. Как только вычислительное кольцо создано таким образом, все вычисления выполняются с элементами этого кольца. Вычислительное кольцо можно изменить позже в ходе сеанса.
Полиномиальные процедуры gcd , вызывающие друг друга высокорекурсивным образом, занимают около 7000 строк кода.
Fermat имеет обширные встроенные примитивы для манипуляций с массивами и матрицами, такие как подматрица , разреженная матрица , определитель , нормализация , сокращение столбца, эшелон строк , нормальная форма Смита и обратная матрица . Это стабильно быстрее, чем некоторые известные системы компьютерной алгебры, особенно в многомерном полиномиальном НОД. Это также эффективно с точки зрения использования пространства.
Основным элементом данных в Ферма является многомерная рациональная функция или кволином. Числитель и знаменатель представляют собой многочлены, не имеющие общего делителя. Полиномы реализуются рекурсивно как общие связанные списки, в отличие от некоторых систем, которые реализуют полиномы как списки мономов . Чтобы реализовать (большинство) конечных полей, пользователь находит неприводимый монический полином в символьной переменной, скажем и приказывает Ферма уйти от него. Это можно продолжать рекурсивно, и т. д. Структуры данных низкого уровня настраиваются для облегчения арифметических операций и gcd над этим вновь созданным основным полем . Два специальных поля, и более эффективно реализуются на битовом уровне.
История [ править ]
Благодаря Windows 10 и благодаря Богдану Раду теперь (май 2021 г.) можно запускать Fermat Linux в Windows. См. главную веб-страницу http://home.bway.net/lewis.
Последний раз Fermat обновлялся 20 мая 2020 г. (Mac и Linux; последняя версия Windows: 1 ноября 2011 г.).
В более ранней версии, называемой FFermat (Float Fermat), базовым типом чисел являются с плавающей запятой 18-значные числа . Эта версия допускает методы численных вычислений, имеет обширные графические возможности, не содержит сложных полиномиальных алгоритмов НОД и доступна только для Mac OS 9.
Первоначально Fermat был написан на языке Паскаля для DEC VAX , затем в 1985–1996 годах для классической Mac OS . Он был портирован на Microsoft Windows в 1998 году. В 2003 году он был переведен на C и портирован на Linux (машины Intel) и Unix (Sparc/Sun). Это около 98 000 строк кода C.
FFermat и (старого) Windows Fermat Pascal Исходный код стал доступен общественности под ограничительной лицензией.
Руководство было тщательно переработано и обновлено 25 июля 2011 г. (последняя небольшая редакция в июне 2016 г., по всей видимости, еще одна редакция от 25 марта 2020 г.).