FriCAS

{{Short description|Computer algebra system}}

{{Infobox programming language

|name = FriCAS

|developer = Waldek Hebisch + independent [https://fricas.github.io/contributors.html group] of people

|latest release version = 1.3.11

|latest release date = {{start date and age|df=yes|2024|07|01}}

|status = Active

|operating system = Cross-platform

|genre = Computer algebra system, Mathematical software

|license = Modified BSD License

|programming language = SPAD, Aldor, Boot, Common Lisp

|file ext = .spad, .input, .as

|website = {{URL|https://fricas.github.io/}}

}}

FriCAS is a general purpose computer algebra system with a strong focus on mathematical research and development of new algorithms. It comprises an interpreter, a compiler and a still-growing library[https://fricas.github.io/api/ FriCAS API]

of more than 1,000 domains and categories.

FriCAS provides a strongly typed high-level programming language called SPAD and a similar interactive language

that uses type-inferencing for convenience. Aldor was intentionally developed being the

next generation compile preparation for the Axiom CAS and its forks. FriCAS optionally allows running Aldor programs (aldor is not required for compiling or running fricas). Both languages

share a similar syntax and a sophisticated (dependent) type system.

{{Cite web| last1 = Poll| first1 = Erik| last2 = Thompson| first2 = Simon| title = Adding the axioms to Axiom: Towards a system of automated reasoning in Aldor| date = May 1998| format = Monograph| access-date = 2017-01-27| url = https://kar.kent.ac.uk/21662/}}

{{Cite web| last1 = Poll| first1 = Erik| last2 = Thompson| first2 = Simon| title = The Type System of Aldor| format = Monograph| access-date = 2017-01-27| url = http://www.cs.kent.ac.uk/pubs/1999/874}}

{{Cite conference| publisher = Springer-Verlag Berlin| isbn = 978-3-540-67281-4| conference = 3rd International Workshop on Frontiers of Combining Systems (FroCoS 2000)| volume = 1794| pages = 136–150|editor1= Hélène Kirchner |editor2=Christophe Ringeissen | last1 = Poll| first1 = Erik| last2 = Thompson| first2 = Simon| title = Integrating Computer Algebra and Reasoning through the Type System of Aldor| book-title = Frontiers of Combining Systems| location = Nancy, France| access-date = 2017-01-27| url = https://kar.kent.ac.uk/22041/}}

FriCAS is comprehensively documented and available as source code and as a binary distribution for the most common

platforms. Compiling the Axiom lisp resources requires besides other prerequisites a Common Lisp environment and freely available as open source). A list of (incompatible) CL implementations are supported by fricas lisp code.

FriCAS runs on many POSIX platforms such as Linux, macOS, Unix,

BSD as well as under Cygwin and

Microsoft Windows (WSL).

History

Two computer algebra systems named Scratchpad were developed by IBM. The first one was started in 1965 by James Griesmer{{Cite journal|title=James Griesmer 1929--2011|first=John|last=Fitch|date=July 23, 2012|journal=ACM Communications in Computer Algebra|volume=46|issue=1/2|pages=10–11|doi=10.1145/2338496.2338499|s2cid=36788754 |doi-access=free}} at the request of Ralph Gomory, and written in Fortran.{{Cite web|url=http://axiom-developer.org/|title=Axiom Computer Algebra System|website=axiom-developer.org}} The development of this software was stopped before any public release. The second Scratchpad, originally named Scratchpad II, was developed from 1977 on, at Thomas J. Watson Research Center, under the direction of Richard Dimick Jenks.{{Cite web|url=https://www.eecis.udel.edu/~caviness/jenks/jenksbio/|title=Richard D. Jenks Biographical Information|website=www.eecis.udel.edu}}

The design is principally due to Richard D. Jenks (IBM Research), James H. Davenport (University of Bath), Barry M. Trager (IBM Research), David Y.Y. Yun (Southern Methodist University) and Victor S. Miller (IBM Research). Early consultants on the project were David Barton (University of California, Berkeley) and James W. Thatcher (IBM Research). Implementation included Robert Sutor (IBM Research), Scott C. Morrison (University of California, Berkeley), Christine J. Sundaresan (IBM Research), Timothy Daly (IBM Research), Patrizia Gianni (University of Pisa), Albrecht Fortenbacher (Universitaet Karlsruhe), Stephen M. Watt (IBM Research and University of Waterloo), Josh Cohen (Yale University), Michael Rothstein (Kent State University), Manuel Bronstein (IBM Research), Michael Monagan (Simon Fraser University), Jonathan Steinbach (IBM Research), William Burge (IBM Research), Jim Wen (IBM Research), William Sit (City College of New York), and Clifton Williamson (IBM Research){{Cite journal|url=https://www.springer.com/gp/book/9783540159841|title=EUROCAL '85 | SpringerLink|website=www.springer.com}}

Scratchpad II was renamed Axiom when IBM decided, circa 1990, to make it a commercial product. A few years later, it was sold to NAG. In 2001, it was withdrawn from the market and re-released to Tim Daly under the Modified BSD License. In 2007, Axiom was forked as FriCAS by Waldek Hebisch following encouragement from Tim Daly{{Cite web|url=https://lists.nongnu.org/archive/html/axiom-developer/2007-06/msg00627.html|title=[Axiom-developer] A modest proposal|website=lists.nongnu.org}} to resolve disagreements about project goals.{{Cite web|url=https://fricas.github.io/history.html|title=History — FriCAS|website=fricas.github.io}}

Examples

FriCAS has a largely complete implementation of the

Risch–Bronstein–Trager algorithm.{{Cite web|title=MathAction RischImplementationStatus|url=http://wiki.fricas.org/RischImplementationStatus|access-date=2021-10-03|website=wiki.fricas.org}}

Another useful feature is stream:

)set stream calculate 5

exp_series := series(exp x, x=0)

\ \ \ \ 1+x+{{\frac{1}{2}} \ {{x}^{2}}}+{{\frac{1}{6}} \ {{x}^{3}}}+{{\frac{1}{24}} \

{{x}^{4}}}+{{\frac{1}{120}} \ {{x}^{5}}}+{O

\left(

{{{x}^{6}}}

\right)}

Type: UnivariatePuiseuxSeries(Expression(Integer),x,0)

So any coefficient may be retrieved, for instance n=40:

coefficient(exp_series,40)

\ \ \ \ \frac{1}{81591528324789773434 56112695961158942720 00000000}

Type: Expression(Integer)

See also

{{Portal|Free and open-source software}}

References

{{reflist|

refs=

}}