Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Mathomatic

From Wikipedia, the free encyclopedia
Computer algebra system
This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages)
The topic of this articlemay not meet Wikipedia'snotability guidelines for products and services. Please help to demonstrate the notability of the topic by citingreliable secondary sources that areindependent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to bemerged,redirected, ordeleted.
Find sources: "Mathomatic" – news ·newspapers ·books ·scholar ·JSTOR
(November 2012) (Learn how and when to remove this message)
This articlerelies excessively onreferences toprimary sources. Please improve this article by addingsecondary or tertiary sources.
Find sources: "Mathomatic" – news ·newspapers ·books ·scholar ·JSTOR
(November 2012) (Learn how and when to remove this message)
This articlecontainspromotional content. Please helpimprove it by removingpromotional language and inappropriateexternal links, and by adding encyclopedic text written from aneutral point of view.(November 2012) (Learn how and when to remove this message)
A major contributor to this article appears to have aclose connection with its subject. It may require cleanup to comply with Wikipedia's content policies, particularlyneutral point of view. Please discuss further on thetalk page.(November 2012) (Learn how and when to remove this message)
(Learn how and when to remove this message)

Mathomatic
The official Mathomatic logo
Mathomatic screenshot under Gnome Terminal
Mathomatic on a terminal emulator
Original author(s)George Gesslein II
Developer(s)George Gesslein II
Initial release1987; 38 years ago (1987)[1]
Final release
16.0.5 / 21 October 2012; 12 years ago (2012-10-21)
Written inC
Operating systemCross-platform,Unix-like
PlatformAnycomputer architecture
Service nameMathomatic
Available inEnglish
TypeComputer algebra/math system
LicenseGNU Lesser General Public License version 2.1
Websitegithub.com/mfillpot/mathomatic

Mathomatic[2] is afree,portable,general-purposecomputer algebra system (CAS) that cansymbolicallysolve, simplify, combine and compare algebraicequations, and can performcomplex number,modular, andpolynomial arithmetic, along with standard arithmetic. It can perform symboliccalculus (derivative,extrema,Taylor series, and polynomialintegration andLaplace transforms),numerical integration, and can handle allelementary algebra exceptlogarithms.Trigonometric functions can be entered and manipulated usingcomplex exponentials, with theGNU m4 preprocessor. Not currently implemented are general functions such asf(x),arbitrary-precision andinterval arithmetic, as well asmatrices.

Features

[edit]

Mathomatic is capable of solving, differentiating, simplifying, calculating, and visualizing elementary algebra.[3] It also can performsummations,products, 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 thesession 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 aGUI except with the Mathomatic trademark authorized, versions for smartphones and tablets runningiOS[4] orAndroid.[5] The Mathomatic software, available on the official Mathomatic website,[6] is authorized for use in any other type of software, due to its permissive free software license (GNU LGPL). It is available as a freesoftware library, and as a free console mode application that uses a colorcommand-line interface withpretty-print output that runs in aterminal emulator under any operating system.[3] The console interface is simple and requires learning the basic algebra notation to start. All input and output is line-at-a-timeASCII text. By default, input isstandard input and output isstandard output. Mathomatic is typically compiled with editline orGNU readline for easier input.

There is no programming capability; the interpreter works like an algebraic calculator. Expressions and equations are entered in standard algebraicinfix notation. Operations are performed on them by entering simple Englishcommands.

Because all numeric arithmetic isdouble precisionfloating point, andround-off error is not tracked, Mathomatic is not suitable for applications requiring high precision, such as astronomical calculations. It is useful forsymbolic-numeric calculations of about 14 decimal digits accuracy, although many results will be exact, if possible.

Mathomatic can be used as afloating point orinteger arithmetic code generating tool, simplifying and converting equations intooptimizedassignment statements in thePython,C, andJava programming languages. The output can be made compatible with most other mathematics programs, exceptTeX andMathML 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 mathlibrary with anAPI, which can be linked to C compatible programs that need to use the Mathomatic symbolic math engine.

Session examples

[edit]
Another set of examples, from a screenshot

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 1Success.1-> solve for blevel 1: x = (a + 1)*(b + 2)Subtracting "(a + 1)*(b + 2)" from both sides of the equation:level 1: x - ((a + 1)*(b + 2)) = 0Subtracting "x" from both sides of the equation:level 1: -1*(a + 1)*(b + 2) = -1*xDividing both sides of the equation by "-1":level 1: (a + 1)*(b + 2) = xDividing 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)) - 2Solve completed:level 1: b = (x/(a + 1)) - 2Solve successful:           x#1: b = ------- - 2        (a + 1)1-> code C ; output C programming language codeb = ((x/(a + 1.0)) - 2.0);1-> variables C ; define the variables for the C compilerdouble x;double a;double b;1->

History

[edit]

Development of Mathomatic was started in the year 1986 by George Gesslein II, as an experiment in computerized mathematics.[7] It was originally written in Microsoft C forMS-DOS. Versions 1 and 2 were published by Dynacomp of Rochester, New York in 1987[1] and 1988[8] as a scientific software product for DOS. Afterwards it was released asshareware and thenemailware, with a 2Dequation graphing program. At the turn of the century, Mathomatic was ported to theGNU C Compiler underLinux and becamefree software. The graphing program was discontinued;2D/3D graphing of equations is now accomplished withgnuplot.

The name "Mathomatic" is aportmanteau of "math" and "automatic",[3] and was inspired by the naming and automation ofRog-O-Matic, which was an early experiment inartificial intelligence.

Development has ceased as a result of the death of the author on February 24, 2013.[9]

Available platforms

[edit]

Mathomatic is available for almost all platforms, includingMicrosoft Windows usingMinGW.[10] It is available forMac OS X,[11][12] foriOS,[4] forAndroid,[5] and for theNintendo DS under DSLinux and stand-alone.[13]Fedora Linux,[14]Slackware,[15]Debian,[16]Ubuntu,[17]Gentoo Linux,[18] and all of the mainBSD Unix distributions[19][20][21] include Mathomatic as an automatically installable package. There is a port toJavaScript usingEmscripten, allowing Mathomatic to run in aweb browser.[22] The ports are all maintained by separate individuals.

Requirements

[edit]

Building from source requires aC compiler with thestandard POSIX C libraries. If Mathomatic is compiled with theGCC C compiler or theTiny C Compiler for aUnix-like 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.[23]

Mathomatic can be ported to any computer with at least 1megabyte of freeRAM. The Mathomatic standard distribution[6] 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 sizearrays that areallocated 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 newLLVM backend, which doesn't seem to like the standard C library functionmemmove(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

[edit]

References

[edit]
  1. ^abThe Software catalog: Microcomputer. sGoogle Books (6 February 2007). Retrieved 29 November 2011.
  2. ^"Mathomatic - Free Software Directory".directory.fsf.org. Retrieved28 February 2023.
  3. ^abcGeorge Gesslein II (29 June 2012)."Mathomatic User Guide".Official Mathomatic documentation. Archived fromthe original on 22 July 2012. Retrieved13 July 2012.
  4. ^abMathomatic for iOS. Itunes.apple.com. Retrieved 10 March 2012.
  5. ^abMathomatic for Android. Play.google.com. Retrieved 13 July 2012.
  6. ^abFound on the Mathomatic website. Mathomatic.org. Retrieved 29 November 2011.
  7. ^George Gesslein II (29 June 2012)."Mathomatic User Guide".Official Mathomatic documentation (history). Archived fromthe original on 22 July 2012. Retrieved13 July 2012.
  8. ^Intelligent instruments & computer. sGoogle Books. Retrieved 29 November 2011.
  9. ^"George John Gesslein II". Ithaca Journal. 26 February 2013. Retrieved6 November 2021.
  10. ^Mathomatic MS-Windows portArchived 31 January 2016 at theWayback Machine. Mathomatic.org (4 November 2011). Retrieved 29 November 2011.
  11. ^Mathomatic Mac OS X portArchived 31 January 2016 at theWayback Machine. Mathomatic.org (4 November 2011). Retrieved 29 November 2011.
  12. ^Mathomatic Mac OS X port from MacPorts
  13. ^Mathomatic ported to the Nintendo DSArchived 28 October 2007 at theWayback Machine. Blog.davr.org (22 February 1999). Retrieved 29 November 2011.
  14. ^The Mathomatic package in Fedora. Admin.fedoraproject.org. Retrieved 29 November 2011.
  15. ^Official Slackware port of Mathomatic in SlackBuilds. Slackbuilds.org. Retrieved 29 November 2011.
  16. ^All Mathomatic packages in Debian. Packages.debian.org. Retrieved 31 August 2012.
  17. ^All Mathomatic packages in Ubuntu Linux. Launchpad.net. Retrieved 29 November 2011.
  18. ^Gentoo Packages /package/sci-mathematics/mathomatic. Packages.gentoo.org (25 November 2011). Retrieved 29 November 2011.
  19. ^OpenBSD CVS tree for Mathomatic
  20. ^NetBSD pkgsrc CVS tree for Mathomatic
  21. ^FreeBSD CVS tree for Mathomatic
  22. ^"Mathomatic in JavaScript". Archived fromthe original on 14 January 2014. Retrieved4 August 2013.
  23. ^George Gesslein II (29 June 2012)."Mathomatic User Guide".Official Mathomatic documentation (developer info). Archived fromthe original on 22 July 2012. Retrieved13 July 2012.

External links

[edit]
Open-source
Proprietary
Discontinued
Retrieved from "https://en.wikipedia.org/w/index.php?title=Mathomatic&oldid=1280667791"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp