Mathomatic
   HOME

TheInfoList



OR:

Mathomatic is a
free Free may refer to: Concept * Freedom, having the ability to do something, without having to obey anyone/anything * Freethought, a position that beliefs should be formed only on the basis of logic, reason, and empiricism * Emancipate, to procur ...
,
portable Portable may refer to: General * Portable building, a manufactured structure that is built off site and moved in upon completion of site and utility work * Portable classroom, a temporary building installed on the grounds of a school to provide a ...
, general-purpose
computer algebra system A computer algebra system (CAS) or symbolic algebra system (SAS) is any mathematical software with the ability to manipulate mathematical expressions in a way similar to the traditional manual computations of mathematicians and scientists. The de ...
(CAS) that can symbolically
solve Solve may refer to: * Sölve, viking king of Sweden * SOLVE, an American environmental organization * Solve (advertising agency) * "Solve" (song), by Japanese pop band Dream * HSwMS ''Sölve'' See also * Equation solving * Problem solving * ...
, simplify, combine and compare algebraic
equation In mathematics, an equation is a formula that expresses the equality of two expressions, by connecting them with the equals sign . The word ''equation'' and its cognates in other languages may have subtly different meanings; for example, in ...
s, and can perform
complex number In mathematics, a complex number is an element of a number system that extends the real numbers with a specific element denoted , called the imaginary unit and satisfying the equation i^= -1; every complex number can be expressed in the form ...
,
modular Broadly speaking, modularity is the degree to which a system's components may be separated and recombined, often with the benefit of flexibility and variety in use. The concept of modularity is used primarily to reduce complexity by breaking a sy ...
, and
polynomial In mathematics, a polynomial is an expression consisting of indeterminates (also called variables) and coefficients, that involves only the operations of addition, subtraction, multiplication, and positive-integer powers of variables. An exa ...
arithmetic, along with standard arithmetic. It can perform symbolic
calculus Calculus, originally called infinitesimal calculus or "the calculus of infinitesimals", is the mathematical study of continuous change, in the same way that geometry is the study of shape, and algebra is the study of generalizations of arithm ...
(
derivative In mathematics, the derivative of a function of a real variable measures the sensitivity to change of the function value (output value) with respect to a change in its argument (input value). Derivatives are a fundamental tool of calculus. F ...
, extrema,
Taylor series In mathematics, the Taylor series or Taylor expansion of a function is an infinite sum of terms that are expressed in terms of the function's derivatives at a single point. For most common functions, the function and the sum of its Taylor serie ...
, and polynomial
integration Integration may refer to: Biology *Multisensory integration *Path integration * Pre-integration complex, viral genetic material used to insert a viral genome into a host genome *DNA integration, by means of site-specific recombinase technology, ...
and
Laplace transform In mathematics, the Laplace transform, named after its discoverer Pierre-Simon Laplace (), is an integral transform In mathematics, an integral transform maps a function from its original function space into another function space via integra ...
s),
numerical integration In analysis, numerical integration comprises a broad family of algorithms for calculating the numerical value of a definite integral, and by extension, the term is also sometimes used to describe the numerical solution of differential equations ...
, and can handle all
elementary algebra Elementary algebra encompasses the basic concepts of algebra. It is often contrasted with arithmetic: arithmetic deals with specified numbers, whilst algebra introduces variables (quantities without fixed values). This use of variables entai ...
except
logarithm In mathematics, the logarithm is the inverse function to exponentiation. That means the logarithm of a number  to the base  is the exponent to which must be raised, to produce . For example, since , the ''logarithm base'' 10 o ...
s.
Trigonometric functions In mathematics, the trigonometric functions (also called circular functions, angle functions or goniometric functions) are real functions which relate an angle of a right-angled triangle to ratios of two side lengths. They are widely used in all ...
can be entered and manipulated using
complex exponential The exponential function is a mathematical Function (mathematics), function denoted by f(x)=\exp(x) or e^x (where the argument is written as an exponentiation, exponent). Unless otherwise specified, the term generally refers to the positiv ...
s, with the
GNU m4 m4 is a general-purpose macro processor included in most Unix-like operating systems, and is a component of the POSIX standard. The language was designed by Brian Kernighan and Dennis Ritchie for the original versions of UNIX. It is an extensio ...
preprocessor. Not currently implemented are general functions such as ''f''(''x''),
arbitrary-precision In computer science, arbitrary-precision arithmetic, also called bignum arithmetic, multiple-precision arithmetic, or sometimes infinite-precision arithmetic, indicates that calculations are performed on numbers whose digits of precision are lim ...
and interval arithmetic, as well as
matrices Matrix most commonly refers to: * ''The Matrix'' (franchise), an American media franchise ** ''The Matrix'', a 1999 science-fiction action film ** "The Matrix", a fictional setting, a virtual reality environment, within ''The Matrix'' (franchis ...
.


Features

Mathomatic is capable of solving, differentiating, simplifying, calculating, and visualizing elementary algebra. It also can perform
summation In mathematics, summation is the addition of a sequence of any kind of numbers, called ''addends'' or ''summands''; the result is their ''sum'' or ''total''. Beside numbers, other types of values can be summed as well: functions, vectors, mat ...
s,
products Product may refer to: Business * Product (business), an item that serves as a solution to a specific consumer problem. * Product (project management), a deliverable or set of deliverables that contribute to a business solution Mathematics * Produ ...
, and automated display of calculations of any length by plugging sequential or test values into any formula, then approximating and simplifying before display. Intermediate results (showing the work) may be displayed by previously typing "set debug 1" (see the session example); this works for solving and almost every command in Mathomatic. "set debug 2" shows more details about the work done. The software does not include a
GUI The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
except with the Mathomatic trademark authorized, versions for smartphones and tablets running
iOS iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also includes ...
or
Android Android may refer to: Science and technology * Android (robot), a humanoid robot or synthetic organism designed to imitate a human * Android (operating system), Google's mobile operating system ** Bugdroid, a Google mascot sometimes referred to ...
. The Mathomatic software, available on the official Mathomatic website, is authorized for use in any other type of software, due to its permissive free software license (
GNU LGPL The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
). It is available as a free
software library In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and subr ...
, and as a free console mode application that uses a color
command-line interface A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
with
pretty-print Pretty-printing (or prettyprinting) is the application of any of various stylistic text formatting, formatting conventions to text files, such as source code, markup language, markup, and similar kinds of content. These formatting conventions may ...
output that runs in a
terminal emulator A terminal emulator, or terminal application, is a computer program that emulates a video terminal within some other display architecture. Though typically synonymous with a shell or text terminal, the term ''terminal'' covers all remote termin ...
under any operating system. The console interface is simple and requires learning the basic algebra notation to start. All input and output is line-at-a-time
ASCII ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
text. By default, input is
standard input In computer programming, standard streams are interconnected input and output communication channels between a computer program and its environment when it begins execution. The three input/output (I/O) connections are called standard input (stdin ...
and output is
standard output In computer programming, standard streams are interconnected input and output communication channels between a computer program and its environment when it begins execution. The three input/output (I/O) connections are called standard input (stdin ...
. Mathomatic is typically compiled with editline or GNU readline for easier input. There is no programming capability; the interpreter works like an algebraic calculator. Expressions and equations are entered in standard algebraic
infix notation Infix notation is the notation commonly used in arithmetical and logical formulae and statements. It is characterized by the placement of operators between operands—" infixed operators"—such as the plus sign in . Usage Binary relations a ...
. Operations are performed on them by entering simple English
command Command may refer to: Computing * Command (computing), a statement in a computer language * COMMAND.COM, the default operating system shell and command-line interpreter for DOS * Command key, a modifier key on Apple Macintosh computer keyboards * ...
s. Because all numeric arithmetic is
double precision Double-precision floating-point format (sometimes called FP64 or float64) is a floating-point number format, usually occupying 64 bits in computer memory; it represents a wide dynamic range of numeric values by using a floating radix point. Flo ...
floating point In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can be ...
, and
round-off error A roundoff error, also called rounding error, is the difference between the result produced by a given algorithm using exact arithmetic and the result produced by the same algorithm using finite-precision, rounded arithmetic. Rounding errors are d ...
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 In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can be ...
or
integer An integer is the number zero (), a positive natural number (, , , etc.) or a negative integer with a minus sign (−1, −2, −3, etc.). The negative numbers are the additive inverses of the corresponding positive numbers. In the language ...
arithmetic code generating tool, simplifying and converting equations into optimized
assignment statement In computer programming, an assignment statement sets and/or re-sets the value stored in the storage location(s) denoted by a variable name; in other words, it copies a value into the variable. In most imperative programming languages, the assi ...
s in the
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
, C, and
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
programming languages. The output can be made compatible with most other mathematics programs, except
TeX Tex may refer to: People and fictional characters * Tex (nickname), a list of people and fictional characters with the nickname * Joe Tex (1933–1982), stage name of American soul singer Joseph Arrington Jr. Entertainment * ''Tex'', the Italian ...
and
MathML Mathematical Markup Language (MathML) is a mathematical markup language, an application of XML for describing mathematical notations and capturing both its structure and content. It aims at integrating mathematical formulae into World Wide Web ...
format input/output are currently not available. The ASCII characters that are allowed in Mathomatic variable names is configurable, allowing TeX format variable names. The Mathomatic source code can be compiled as a symbolic math
library A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
with an
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software Interface (computing), interface, offering a service to other pieces of software. A document or standa ...
, which can be linked to C compatible programs that need to use the Mathomatic symbolic math engine.


Session examples

Solving and code generation example, where the work is shown:
1-> x = (a+1)*(b+2)

#1: x = (a + 1)*(b + 2)

1-> set debug 1
Success.
1-> solve for b
level 1: x = (a + 1)*(b + 2)
Subtracting "(a + 1)*(b + 2)" from both sides of the equation:
level 1: x - ((a + 1)*(b + 2)) = 0
Subtracting "x" from both sides of the equation:
level 1: -1*(a + 1)*(b + 2) = -1*x
Dividing both sides of the equation by "-1":
level 1: (a + 1)*(b + 2) = x
Dividing both sides of the equation by "a + 1":
level 1: b + 2 = x/(a + 1)
Subtracting "2" from both sides of the equation:
level 1: b = (x/(a + 1)) - 2
Solve completed:
level 1: b = (x/(a + 1)) - 2
Solve successful:

           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-DOS MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few ope ...
. Versions 1 and 2 were published by Dynacomp of Rochester, New York in 1987The Software catalog: Microcomputer
sGoogle Books (6 February 2007). Retrieved 29 November 2011.
and 1988 as a scientific software product for DOS. Afterwards it was released as
shareware Shareware is a type of proprietary software that is initially shared by the owner for trial use at little or no cost. Often the software has limited functionality or incomplete documentation until the user sends payment to the software developer ...
and then emailware, with a 2D equation graphing program. At the turn of the century, Mathomatic was ported to the
GNU C Compiler The GNU Compiler Collection (GCC) is an optimizing compiler produced by the GNU Project supporting various programming languages, hardware architectures and operating systems. The Free Software Foundation (FSF) distributes GCC as free software ...
under
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
and became
free software Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
. The graphing program was discontinued; 2D/ 3D graphing of equations is now accomplished with
gnuplot gnuplot is a command-line and GUI program that can generate two- and three-dimensional plots of functions, data, and data fits. The program runs on all major computers and operating systems (Linux, Unix, Microsoft Windows, macOS, FreeDOS, an ...
. The name "Mathomatic" is a
portmanteau A portmanteau word, or portmanteau (, ) is a blend of words and was inspired by the naming and automation of ''
Rog-O-Matic Rog-O-Matic is a bot developed in 1981 to play and win the video game '' Rogue'', by four graduate students in the Computer Science Department at Carnegie-Mellon University in Pittsburgh: Andrew Appel, Leonard Hamey, Guy Jacobson and Michael Loren ...
'', which was an early experiment in
artificial intelligence Artificial intelligence (AI) is intelligence—perceiving, synthesizing, and inferring information—demonstrated by machines, as opposed to intelligence displayed by animals and humans. Example tasks in which this is done include speech re ...
. Development has ceased as a result of the death of the author on February 24, 2013.


Available platforms

Mathomatic is available for almost all platforms, including
Microsoft Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
using
MinGW MinGW ("Minimalist GNU for Windows"), formerly mingw32, is a free and open source software development environment to create Microsoft Windows applications. MinGW includes a port of the GNU Compiler Collection (GCC), GNU Binutils for Windows ( ...
. It is available for
Mac OS X macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac (computer), Mac computers. Within the market of ...
, for
iOS iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also includes ...
,Mathomatic for iOS
Itunes.apple.com. Retrieved 10 March 2012.
for
Android Android may refer to: Science and technology * Android (robot), a humanoid robot or synthetic organism designed to imitate a human * Android (operating system), Google's mobile operating system ** Bugdroid, a Google mascot sometimes referred to ...
,Mathomatic for Android
Play.google.com. Retrieved 13 July 2012.
and for the
Nintendo DS The is a handheld game console produced by Nintendo, released globally across 2004 and 2005. The DS, an initialism for "Developers' System" or "Dual Screen", introduced distinctive new features to handheld games: two LCD screens working in tan ...
under DSLinux and stand-alone.
Fedora Linux Fedora Linux is a Linux distribution developed by the Fedora Project. Fedora contains software distributed under various free and open-source licenses and aims to be on the leading edge of open-source technologies. Fedora is the upstream sourc ...
,
Slackware Slackware is a Linux distribution created by Patrick Volkerding in 1993. Originally based on Softlanding Linux System, Slackware has been the basis for many other Linux distributions, most notably the first versions of SUSE Linux distributions ...
,
Debian Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of D ...
,
Ubuntu Ubuntu ( ) is a Linux distribution based on Debian and composed mostly of free and open-source software. Ubuntu is officially released in three editions: ''Desktop'', ''Server'', and ''Core'' for Internet of things devices and robots. All the ...
,
Gentoo Linux Gentoo Linux (pronounced ) is a Linux distribution built using the Portage package management system. Unlike a binary software distribution, the source code is compiled locally according to the user's preferences and is often optimized for the ...
, and all of the main
BSD Unix The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berk ...
distributions include Mathomatic as an automatically installable package. There is a port to
JavaScript JavaScript (), often abbreviated as JS, is a programming language that is one of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of Website, websites use JavaScript on the Client (computing), client side ...
using
Emscripten Emscripten is an LLVM/Clang-based compiler that compiles C and C++ source code to WebAssembly (or to a subset of JavaScript known as asm.js, its original compilation target before the advent of WebAssembly in 2017), primarily for execution in we ...
, allowing Mathomatic to run in a
web browser A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used on ...
. The ports are all maintained by separate individuals.


Requirements

Building from source requires a
C compiler This page is intended to list all current compilers, compiler generators, interpreters, translators, tool foundations, assemblers, automatable command line interfaces ( shells), etc. Ada Compilers ALGOL 60 compilers ALGOL 68 compilers cf. ...
with the standard POSIX C libraries. If Mathomatic is compiled with the GCC C compiler or the
Tiny C Compiler The Tiny C Compiler (a.k.a. TCC, tCc, or TinyCC) is an x86, X86-64 and ARM processor C compiler initially written by Fabrice Bellard. It is designed to work for slow computers with little disk space (e.g. on rescue disks). Windows operating syste ...
for a
Unix-like A Unix-like (sometimes referred to as UN*X or *nix) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Unix-li ...
operating system, no changes need to be made to the source code. Mathomatic uses no compiler-specific code, so it will usually compile easily with any C compiler. Use of the Mathomatic Symbolic Math Library allows mixing programming languages and is operating system independent. Mathomatic can be ported to any computer with at least 1
megabyte The megabyte is a multiple of the unit byte for digital information. Its recommended unit symbol is MB. The unit prefix ''mega'' is a multiplier of (106) in the International System of Units (SI). Therefore, one megabyte is one million bytes o ...
of free
RAM Ram, ram, or RAM may refer to: Animals * A male sheep * Ram cichlid, a freshwater tropical fish People * Ram (given name) * Ram (surname) * Ram (director) (Ramsubramaniam), an Indian Tamil film director * RAM (musician) (born 1974), Dutch * Ra ...
. The Mathomatic standard distributionFound on the Mathomatic website
Mathomatic.org. Retrieved 29 November 2011.
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
array An array is a systematic arrangement of similar objects, usually in rows and columns. Things called an array include: {{TOC right Music * In twelve-tone and serial composition, the presentation of simultaneous twelve-tone sets such that the ...
s 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. Mathomatic is written to do most symbolic manipulations with memory moves, like an assembly language program. This causes Mathomatic to crash when used with the new
LLVM LLVM is a set of compiler and toolchain technologies that can be used to develop a front end for any programming language and a back end for any instruction set architecture. LLVM is designed around a language-independent intermediate represen ...
backend, which doesn't seem to like the standard C library function memmove(3). To use Mathomatic with a C compiler that uses an LLVM backend, disable all optimizations with "-O0" on the C compiler command line. Otherwise the regression tests will loop endlessly. This is most certainly an optimization bug in LLVM. To help those trying to debug this optimization error, Mathomatic will fail when LLVM optimizes the simplification of (32^.5) to 4*(2^.5), and the like, going into an endless loop every time.


See also

*
Comparison of computer algebra systems The following tables provide a comparison of computer algebra systems (CAS). A CAS is a package comprising a set of algorithms for performing symbolic manipulations on algebraic objects, a language to implement them, and an environment in which to ...
* Maxima – a more complete CAS with similar functionality, also free


References


Mathomatic on ORMS


External links

* Additional documentation in Italian fo
''Mathematics on a UNIX workstation''
*
Mathomatic
at
MacUpdate MacUpdate is a Mac software download website founded in 1996. History In the ''Inc.'' 5000 list of private American companies with the fastest revenue growth, MacUpdate was listed 319th in 2008, 114th in 2009, and 233rd in 2010. MacUpdate ...
{{Computer algebra systems 1987 software Android (operating system) software C (programming language) libraries Command-line software Computer algebra system software for Linux Computer algebra system software for macOS Computer algebra system software for Windows Cross-platform free software Embedded Linux Free computer algebra systems Free educational software Free software programmed in C IOS software Portable software Nintendo DS software