Введение
Компьютерная алгебраическая система
Особенности
Mathomatic способен решать, дифференцировать, упрощать, вычислять и визуализировать элементарную алгебру. Изначально он был написан на Microsoft C для MS DOS. Версии 1 и 2 были опубликованы компанией Dynacomp из Рочестера, штат Нью-Йорк, в 1987 и 1988 годах как научное программное обеспечение для DOS. Впоследствии он был выпущен как shareware, а затем как emailware, в комплекте с программой для построения графиков двухмерных уравнений. На рубеже веков Mathomatic был портирован на компилятор GNU C под Linux и стал свободным программным обеспечением. Программа построения графиков была прекращена; теперь построение двух- и трёхмерных графиков уравнений осуществляется с помощью gnuplot. Название "Mathomatic" является смешением слов "math" (математика) и "automatic" (автоматический) и было вдохновлено наименованием и автоматизацией Rog O Matic, представлявшего собой ранний эксперимент в области искусственного интеллекта. Разработка, по всей видимости, была прекращена в связи со смертью автора 24 февраля 2013 года.
Доступные платформы
Mathomatic доступен практически для всех платформ, включая Microsoft Windows с использованием MinGW. Он доступен для Mac OS X, iOS, Android, а также для Nintendo DS под управлением DSLinux и в автономном режиме. Fedora Linux, Slackware, Debian, Ubuntu, Gentoo Linux и все основные дистрибутивы BSD Unix включают Mathomatic как автоматически устанавливаемый пакет. Существует версия для JavaScript, созданная с помощью Emscripten, позволяющая запускать Mathomatic в веб-браузере. Поддержкой различных версий занимаются отдельные разработчики.
Требования
Создание из исходного кода требует компилятора C со стандартными библиотеками POSIX C. Если Mathomatic компилируется с помощью компилятора GCC C или Tiny C для Unix-подобной операционной системы, в исходный код не нужно вносить никаких изменений. Mathomatic не использует код, специфичный для компилятора, поэтому обычно легко компилируется с любым компилятором C. Использование библиотеки Mathomatic Symbolic Math Library позволяет комбинировать языки программирования и не зависит от операционной системы. Mathomatic можно портировать на любой компьютер с не менее 1 мегабайта свободной оперативной памяти. Стандартный дистрибутив Mathomatic по умолчанию требует максимум 400 мегабайт памяти, в зависимости от размера пространств уравнений и количества введенных выражений. Пространства уравнений – это массивы фиксированного размера, которые выделяются по мере необходимости, а их размер задается во время компиляции или запуска. Каждое алгебраическое выражение или уравнение, введенное в основной командной строке, хранится в пространстве уравнений. Mathomatic разработан для выполнения большинства символьных операций с помощью перемещения памяти, подобно программе на языке ассемблера. Это приводит к сбоям в работе Mathomatic при использовании нового бэкенда LLVM, который, по-видимому, несовместим со стандартной функцией C-библиотеки memmove(3). Чтобы использовать Mathomatic с компилятором C, использующим бэкенд LLVM, отключите все оптимизации с помощью "O0" в командной строке компилятора C. В противном случае регрессионные тесты будут выполняться бесконечно. Это, несомненно, ошибка оптимизации в LLVM. Чтобы помочь тем, кто пытается отладить эту ошибку оптимизации, Mathomatic завершится с ошибкой, когда LLVM оптимизирует упрощение выражения (32^.5) до 4*(2^.5) и подобных, каждый раз попадая в бесконечный цикл.