Mathomatic
Encyclopedia
Mathomatic is a free
, portable
, general-purpose computer algebra system
(CAS) that can symbolically
solve
, simplify, combine, and compare algebraic equation
s, perform complex number
, modular
, and polynomial
arithmetic, etc. It does some symbolic calculus
(derivative
, extrema
, Taylor series
, and polynomial integration
and Laplace transforms) and handles all elementary algebra
except logarithm
s. Trigonometric functions can be entered and manipulated using complex exponentials, with the GNU m4
preprocessor. Not currently implemented are general functions like f(x), arbitrary-precision
and interval
arithmetic, and matrices
.
The software does not include a GUI
except on the iPhone
. It is a console mode application using a color command-line interface
based on GNU readline
that runs in a terminal emulator
under any UNIX-like operating system. The console interface is very simple and requires little more than learning the basic algebra notation to get started.
There is no programming capability; the interpreter works like an algebraic calculator. Expressions and equations are entered in standard algebraic infix notation
. Operations are performed on them by entering simple English command
s.
Because all numeric arithmetic is double precision
floating point
, and round-off error
is not tracked, Mathomatic is not suitable for applications requiring high precision, such as astronomical calculations. It is useful for symbolic-numeric
calculations of about 14 decimal digits accuracy, although many results will be exact, if possible.
Mathomatic can be used as a floating point
or integer
arithmetic code generating tool, simplifying and converting equations into optimized
assignment statements in the Python
, C
, and Java
programming languages.
The Mathomatic source code can be compiled as a symbolic math library with a very simple API, which can be linked to C compatible programs that need to use the Mathomatic symbolic math engine.
. Versions 1 and 2 were published by Dynacomp of Rochester, New York in 1987 and 1988 as a scientific software product for DOS. Afterwards it was released as shareware
and then emailware, with a 2D equation graphing
program. At the turn of the century, Mathomatic was ported to the GNU C Compiler under Linux
and became free software
. The graphing program was discontinued; 2D/3D
graphing of equations is now accomplished with gnuplot
.
The name "Mathomatic" is a portmanteau of "math" and "automatic", and was inspired by the naming and automation of Rog-O-Matic
, which was an early experiment in artificial intelligence
.
using MinGW
. It is available for Mac OS X
, for the iPhone
, and for the Nintendo DS
under DSLinux
and stand-alone. Fedora Linux, Slackware
, Debian
, Ubuntu
, Gentoo Linux
, and all of the BSD Unix distributions include Mathomatic as an automatically installable package. The ports are all maintained by separate individuals.
. If compiled with the GCC
C compiler for a Unix-like
operating system, no changes need to be made to the source code.
Mathomatic can be ported to any computer with at least 1 megabyte
of free RAM
. The Mathomatic standard distribution memory requirement defaults to a maximum of 400 megabytes, depending on the size of the equation spaces and how many expressions have been entered. Equation spaces are fixed size arrays that are allocated
as needed, the size of which is set during compilation or startup. Each algebraic expression or equation entered at the main prompt is stored in an equation space.
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
, portable
Porting
In computer science, porting is the process of adapting software so that an executable program can be created for a computing environment that is different from the one for which it was originally designed...
, general-purpose computer algebra system
Computer algebra system
A computer algebra system is a software program that facilitates symbolic mathematics. The core functionality of a CAS is manipulation of mathematical expressions in symbolic form.-Symbolic manipulations:...
(CAS) that can symbolically
Symbolic computation
Symbolic computation or algebraic computation, relates to the use of machines, such as computers, to manipulate mathematical equations and expressions in symbolic form, as opposed to manipulating the approximations of specific numerical quantities represented by those symbols...
solve
Equation solving
In mathematics, to solve an equation is to find what values fulfill a condition stated in the form of an equation . These expressions contain one or more unknowns, which are free variables for which values are sought that cause the condition to be fulfilled...
, simplify, combine, and compare algebraic equation
Equation
An equation is a mathematical statement that asserts the equality of two expressions. In modern notation, this is written by placing the expressions on either side of an equals sign , for examplex + 3 = 5\,asserts that x+3 is equal to 5...
s, perform complex number
Complex number
A complex number is a number consisting of a real part and an imaginary part. Complex numbers extend the idea of the one-dimensional number line to the two-dimensional complex plane by using the number line for the real part and adding a vertical axis to plot the imaginary part...
, modular
Modular arithmetic
In mathematics, modular arithmetic is a system of arithmetic for integers, where numbers "wrap around" after they reach a certain value—the modulus....
, and polynomial
Polynomial arithmetic
Polynomial arithmetic includes basic mathematical operations such as addition, subtraction, and multiplication. These operations are defined naturally as if the variable x was an element of S. Division is defined similarly, but requires that S be a field. Examples of fields include rational...
arithmetic, etc. It does some symbolic calculus
Calculus
Calculus is a branch of mathematics focused on limits, functions, derivatives, integrals, and infinite series. This subject constitutes a major part of modern mathematics education. It has two major branches, differential calculus and integral calculus, which are related by the fundamental theorem...
(derivative
Derivative
In calculus, a branch of mathematics, the derivative is a measure of how a function changes as its input changes. Loosely speaking, a derivative can be thought of as how much one quantity is changing in response to changes in some other quantity; for example, the derivative of the position of a...
, extrema
Maxima and minima
In mathematics, the maximum and minimum of a function, known collectively as extrema , are the largest and smallest value that the function takes at a point either within a given neighborhood or on the function domain in its entirety .More generally, the...
, Taylor series
Taylor series
In mathematics, a Taylor series is a representation of a function as an infinite sum of terms that are calculated from the values of the function's derivatives at a single point....
, and polynomial integration
Integral
Integration is an important concept in mathematics and, together with its inverse, differentiation, is one of the two main operations in calculus...
and Laplace transforms) and handles all elementary algebra
Elementary algebra
Elementary algebra is a fundamental and relatively basic form of algebra taught to students who are presumed to have little or no formal knowledge of mathematics beyond arithmetic. It is typically taught in secondary school under the term algebra. The major difference between algebra and...
except logarithm
Logarithm
The logarithm of a number is the exponent by which another fixed value, the base, has to be raised to produce that number. For example, the logarithm of 1000 to base 10 is 3, because 1000 is 10 to the power 3: More generally, if x = by, then y is the logarithm of x to base b, and is written...
s. Trigonometric functions can be entered and manipulated using complex exponentials, with the GNU m4
GNU m4
GNU m4 is the GNU version of the m4 macro preprocessor. It is designed to avoid many kinds of limits found in traditional m4s: limits like maximum line lengths, maximum size of a macro, number of macros, etc...
preprocessor. Not currently implemented are general functions like f(x), arbitrary-precision
Arbitrary-precision arithmetic
In computer science, arbitrary-precision arithmetic indicates that calculations are performed on numbers whose digits of precision are limited only by the available memory of the host system. This contrasts with the faster fixed-precision arithmetic found in most ALU hardware, which typically...
and interval
Interval arithmetic
Interval arithmetic, interval mathematics, interval analysis, or interval computation, is a method developed by mathematicians since the 1950s and 1960s as an approach to putting bounds on rounding errors and measurement errors in mathematical computation and thus developing numerical methods that...
arithmetic, and matrices
Matrix (mathematics)
In mathematics, a matrix is a rectangular array of numbers, symbols, or expressions. The individual items in a matrix are called its elements or entries. An example of a matrix with six elements isMatrices of the same size can be added or subtracted element by element...
.
Features
Mathomatic excels at solving, differentiating, simplifying, and calculating elementary algebra.The software does not include a GUI
Gui
Gui or guee is a generic term to refer to grilled dishes in Korean cuisine. These most commonly have meat or fish as their primary ingredient, but may in some cases also comprise grilled vegetables or other vegetarian ingredients. The term derives from the verb, "gupda" in Korean, which literally...
except on the iPhone
IPhone
The iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007...
. It is a console mode application using a color command-line interface
Command-line interface
A command-line interface is a mechanism for interacting with a computer operating system or software by typing commands to perform specific tasks...
based on GNU readline
GNU readline
GNU readline is a software library that provides line-editing and history capabilities for interactive programs with a command-line interface, such as Bash...
that runs in a terminal emulator
Terminal emulator
A terminal emulator, terminal application, term, or tty for short, is a program that emulates a video terminal within some other display architecture....
under any UNIX-like operating system. The console interface is very simple and requires little more than learning the basic algebra notation to get started.
There is no programming capability; the interpreter works like an algebraic calculator. Expressions and equations are entered in standard algebraic infix notation
Infix notation
Infix notation is the common arithmetic and logical formula notation, in which operators are written infix-style between the operands they act on . It is not as simple to parse by computers as prefix notation or postfix notation Infix notation is the common arithmetic and logical formula notation,...
. Operations are performed on them by entering simple English command
Command (computing)
In computing, a command is a directive to a computer program acting as an interpreter of some kind, in order to perform a specific task. Most commonly a command is a directive to some kind of command line interface, such as a shell....
s.
Because all numeric arithmetic is double precision
Double precision
In computing, double precision is a computer number format that occupies two adjacent storage locations in computer memory. A double-precision number, sometimes simply called a double, may be defined to be an integer, fixed point, or floating point .Modern computers with 32-bit storage locations...
floating point
Floating point
In computing, floating point describes a method of representing real numbers in a way that can support a wide range of values. Numbers are, in general, represented approximately to a fixed number of significant digits and scaled using an exponent. The base for the scaling is normally 2, 10 or 16...
, and round-off error
Round-off error
A round-off error, also called rounding error, is the difference between the calculated approximation of a number and its exact mathematical value. Numerical analysis specifically tries to estimate this error when using approximation equations and/or algorithms, especially when using finitely many...
is not tracked, Mathomatic is not suitable for applications requiring high precision, such as astronomical calculations. It is useful for symbolic-numeric
Symbolic-numeric computation
In mathematics and computer science, symbolic-numeric computation is the use of software that combines symbolic and numeric methods to solve problems.-References:*, Dongming Wang, Lihong Zhi, Springer, 2007, ISBN 3764379839...
calculations of about 14 decimal digits accuracy, although many results will be exact, if possible.
Mathomatic can be used as a floating point
Floating point
In computing, floating point describes a method of representing real numbers in a way that can support a wide range of values. Numbers are, in general, represented approximately to a fixed number of significant digits and scaled using an exponent. The base for the scaling is normally 2, 10 or 16...
or integer
Integer (computer science)
In computer science, an integer is a datum of integral data type, a data type which represents some finite subset of the mathematical integers. Integral data types may be of different sizes and may or may not be allowed to contain negative values....
arithmetic code generating tool, simplifying and converting equations into optimized
Optimization (computer science)
In computer science, program optimization or software optimization is the process of modifying a software system to make some aspect of it work more efficiently or use fewer resources...
assignment statements in the Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...
, C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
, and Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
programming languages.
The Mathomatic source code can be compiled as a symbolic math library with a very simple API, which can be linked to C compatible programs that need to use the Mathomatic symbolic math engine.
Session examples
1-> x = (a+1)*(b+2)
- 1: x = (a + 1)*(b + 2)
1-> b ; solve for b
x
- 1: b = ------- - 2
(a + 1)
1-> code C ; output C programming language code
b = ((x/(a + 1.0)) - 2.0);
1-> variables C ; define the variables for the C compiler
double x;
double a;
double b;
1->
History
Development of Mathomatic was started in the year 1986 by George Gesslein II, as an experiment in computerized mathematics. It was originally written in Microsoft C for MS-DOSMS-DOS
MS-DOS is an operating system for x86-based personal computers. It was the most commonly used member of the DOS family of operating systems, and was the main operating system for IBM PC compatible personal computers during the 1980s to the mid 1990s, until it was gradually superseded by operating...
. Versions 1 and 2 were published by Dynacomp of Rochester, New York in 1987 and 1988 as a scientific software product for DOS. Afterwards it was released as shareware
Shareware
The term shareware is a proprietary software that is provided to users without payment on a trial basis and is often limited by any combination of functionality, availability, or convenience. Shareware is often offered as a download from an Internet website or as a compact disc included with a...
and then emailware, with a 2D equation graphing
Graph of a function
In mathematics, the graph of a function f is the collection of all ordered pairs . In particular, if x is a real number, graph means the graphical representation of this collection, in the form of a curve on a Cartesian plane, together with Cartesian axes, etc. Graphing on a Cartesian plane is...
program. At the turn of the century, Mathomatic was ported to the GNU C Compiler under Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
and became free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
. The graphing program was discontinued; 2D/3D
Three-dimensional space
Three-dimensional space is a geometric 3-parameters model of the physical universe in which we live. These three dimensions are commonly called length, width, and depth , although any three directions can be chosen, provided that they do not lie in the same plane.In physics and mathematics, a...
graphing of equations is now accomplished with gnuplot
Gnuplot
- License :Despite gnuplot's name, it is not part of or related to the GNU system and it is not distributed under the GNU General Public License .However, some GNU packages do use gnuplot....
.
The name "Mathomatic" is a portmanteau of "math" and "automatic", and was inspired by the naming and automation of Rog-O-Matic
Rog-O-Matic
Rog-O-Matic is a bot developed in 1984 that plays the computer game Rogue.Described as a "belligerent expert system", Rog-O-Matic performs well when tested against expert Rogue players, even winning the game. Because all information in Rogue is communicated to the player via ASCII text, Rog-O-Matic...
, which was an early experiment in artificial intelligence
Artificial intelligence
Artificial intelligence is the intelligence of machines and the branch of computer science that aims to create it. AI textbooks define the field as "the study and design of intelligent agents" where an intelligent agent is a system that perceives its environment and takes actions that maximize its...
.
Available platforms
Mathomatic is available for Microsoft WindowsMicrosoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
using MinGW
MinGW
MinGW , formerly mingw32, is a native software port of the GNU Compiler Collection and GNU Binutils for use in the development of native Microsoft Windows applications; MinGW can function either as a cross compiler targeting Windows or as a native toolchain run on Windows itself...
. It is available for Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
, for the iPhone
IPhone
The iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007...
, and for the Nintendo DS
Nintendo DS
The is a portable game console produced by Nintendo, first released on November 21, 2004. A distinctive feature of the system is the presence of two separate LCD screens, the lower of which is a touchscreen, encompassed within a clamshell design, similar to the Game Boy Advance SP...
under DSLinux
DSLinux
DSLinux is a port of the Linux operating system to the Nintendo DS. DSLinux was maintained until sometime in 2010.-Software:DSLinux runs a modified μClinux kernel. It is based on uCLinux 2.6.14 . It only runs in textmode and which is displayed using a custom framebuffer console driver...
and stand-alone. Fedora Linux, Slackware
Slackware
Slackware is a free and open source Linux-based operating system. It was one of the earliest operating systems to be built on top of the Linux kernel and is the oldest currently being maintained. Slackware was created by Patrick Volkerding of Slackware Linux, Inc. in 1993...
, Debian
Debian
Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...
, Ubuntu
Ubuntu (operating system)
Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...
, Gentoo Linux
Gentoo Linux
Gentoo Linux is a computer operating system built on top of the Linux kernel and based on the Portage package management system. It is distributed as free and open source software. Unlike a conventional software distribution, the user compiles the source code locally according to their chosen...
, and all of the BSD Unix distributions include Mathomatic as an automatically installable package. The ports are all maintained by separate individuals.
Requirements
Building from source requires a C compiler with the standard C librariesC standard library
The C Standard Library is the standard library for the programming language C, as specified in the ANSI C standard.. It was developed at the same time as the C POSIX library, which is basically a superset of it...
. If compiled with the GCC
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...
C compiler for a Unix-like
POSIX
POSIX , an acronym for "Portable Operating System Interface", is a family of standards specified by the IEEE for maintaining compatibility between operating systems...
operating system, no changes need to be made to the source code.
Mathomatic can be ported to any computer with at least 1 megabyte
Megabyte
The megabyte is a multiple of the unit byte for digital information storage or transmission with two different values depending on context: bytes generally for computer memory; and one million bytes generally for computer storage. The IEEE Standards Board has decided that "Mega will mean 1 000...
of free RAM
Ram
-Animals:*Ram, an uncastrated male sheep*Ram cichlid, a species of freshwater fish endemic to Colombia and Venezuela-Military:*Battering ram*Ramming, a military tactic in which one vehicle runs into another...
. The Mathomatic standard distribution memory requirement defaults to a maximum of 400 megabytes, depending on the size of the equation spaces and how many expressions have been entered. Equation spaces are fixed size arrays that are allocated
Malloc
C dynamic memory allocation refers to performing dynamic memory allocation in the C via a group of functions in the C standard library, namely malloc, realloc, calloc and free....
as needed, the size of which is set during compilation or startup. Each algebraic expression or equation entered at the main prompt is stored in an equation space.
See also
- Comparison of computer algebra systems
- Maxima – a more complete CAS with similar functionality, also free.
External links
- Mathomatic documentation Additional documentation in Italian.
- An example of Mathomatic being used for quick calculations.
- Mathematics on a UNIX workstation
- Mathomatic at MacUpdateMacUpdateMacUpdate is an Apple Macintosh and iPhone software download website, started in the late-1990s. As of summer 2009, it is the 114th fastest growing privately owned company in the USA, according to Inc. Magazine, which lists MacUpdate as the #1 fastest growing company in Michigan, and the 5th...