FriCAS

Last updated
FriCAS
Developer Waldek Hebisch + independent group of people
Stable release
1.3.10 / 9 January 2024;4 days ago (2024-01-09)
Implementation languageSPAD, Aldor, Boot, Common Lisp
OS Cross-platform
License Modified BSD License
Filename extensions .spad, .input, .as
Website 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 [1] of more than 1,000 domains and categories.

Contents

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 compiler for the Axiom CAS and its forks. FriCAS (optionally) allows running Aldor programs. Both languages share a similar syntax and a sophisticated (dependent) type system. [2] [3] [4]

FriCAS is comprehensively documented and available as source code and as a binary distribution for the most common platforms. Compiling the sources requires besides other prerequisites a Common Lisp environment (whereby many of the major implementations are supported and freely available as open source).

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 [5] at the request of Ralph Gomory, and written in Fortran. [6] 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. [7]

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) [8]

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 [9] to resolve disagreements about project goals. [10]

Examples

FriCAS has a largely complete implementation of the Risch–Bronstein–Trager algorithm. [11]

Another useful feature is stream:

)set stream calculate 5 exp_series := series(exp x, x=0) 

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

So any coefficient may be retrieved, for instance :

coefficient(exp_series,40) 

Type: Expression(Integer)


See also

Related Research Articles

<span class="mw-page-title-main">Exponential function</span> Mathematical function, denoted exp(x) or e^x

The exponential function is a mathematical function denoted by or . Unless otherwise specified, the term generally refers to the positive-valued function of a real variable, although it can be extended to the complex numbers or generalized to other mathematical objects like matrices or Lie algebras. The exponential function originated from the operation of taking powers of a number, but various modern definitions allow it to be rigorously extended to all real arguments , including irrational numbers. Its ubiquitous occurrence in pure and applied mathematics led mathematician Walter Rudin to consider the exponential function to be "the most important function in mathematics".

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 development of the computer algebra systems in the second half of the 20th century is part of the discipline of "computer algebra" or "symbolic computation", which has spurred work in algorithms over mathematical objects such as polynomials.

<span class="mw-page-title-main">Maple (software)</span> Mathematical computing environment

Maple is a symbolic and numeric computing environment as well as a multi-paradigm programming language. It covers several areas of technical computing, such as symbolic mathematics, numerical analysis, data processing, visualization, and others. A toolbox, MapleSim, adds functionality for multidomain physical modeling and code generation.

<span class="mw-page-title-main">Maxima (software)</span> Computer algebra system

Maxima is a computer algebra system (CAS) based on a 1982 version of Macsyma and is still in development today. It is written in Common Lisp and runs on all POSIX platforms such as macOS, Unix, BSD, and Linux, as well as under Microsoft Windows and Android. It is free software released under the terms of the GNU General Public License (GPL).

<span class="mw-page-title-main">Exponentiation</span> Mathematical operation

In mathematics, exponentiation is an operation involving two numbers: the base and the exponent or power. Exponentiation is written as bn, where b is the base and n is the power; this is pronounced as "b (raised) to the n". When n is a positive integer, exponentiation corresponds to repeated multiplication of the base: that is, bn is the product of multiplying n bases:

In symbolic computation, the Risch algorithm is a method of indefinite integration used in some computer algebra systems to find antiderivatives. It is named after the American mathematician Robert Henry Risch, a specialist in computer algebra who developed it in 1968.

Axiom is a free, general-purpose computer algebra system. It consists of an interpreter environment, a compiler and a library, which defines a strongly typed hierarchy.

Aldor is a programming language. It is the successor of A# as the extension language of the Axiom computer algebra system.

In calculus, symbolic integration is the problem of finding a formula for the antiderivative, or indefinite integral, of a given function f(x), i.e. to find a differentiable function F(x) such that

A is an object-oriented functional programming language distributed as a separable component of Version 2 of the Axiom computer algebra system. A# types and functions are first-class values and can be used freely together with an extensive library of data structures and other mathematical abstractions. A key design guideline for A# was suitability of compiling to portable and efficient machine code. It is distributed as free and open-source software under a BSD-like license.

<span class="mw-page-title-main">SageMath</span> Computer algebra system

SageMath is a computer algebra system (CAS) with features covering many aspects of mathematics, including algebra, combinatorics, graph theory, group theory, differentiable manifolds, numerical analysis, number theory, calculus and statistics.

The scale space representation of a signal obtained by Gaussian smoothing satisfies a number of special properties, scale-space axioms, which make it into a special form of multi-scale representation. There are, however, also other types of "multi-scale approaches" in the areas of computer vision, image processing and signal processing, in particular the notion of wavelets. The purpose of this article is to describe a few of these approaches:

<span class="mw-page-title-main">Transcendental equation</span> Equation whose side(s) describe a transcendental function

In applied mathematics, a transcendental equation is an equation over the real numbers that is not algebraic, that is, if at least one of its sides describes a transcendental function. Examples include:

The expression problem is a challenging problem in programming languages that concerns the extensibility and modularity of statically typed data abstractions. The goal is to define a data abstraction that is extensible both in its representations and its behaviors, where one can add new representations and new behaviors to the data abstraction, without recompiling existing code, and while retaining static type safety. The statement of the problem exposes deficiencies in programming paradigms and programming languages, and as of 2023 is still considered unsolved, although there are many proposed solutions.

<span class="mw-page-title-main">Computer algebra</span> Scientific area at the interface between computer science and mathematics

In mathematics and computer science, computer algebra, also called symbolic computation or algebraic computation, is a scientific area that refers to the study and development of algorithms and software for manipulating mathematical expressions and other mathematical objects. Although computer algebra could be considered a subfield of scientific computing, they are generally considered as distinct fields because scientific computing is usually based on numerical computation with approximate floating point numbers, while symbolic computation emphasizes exact computation with expressions containing variables that have no given value and are manipulated as symbols.

Stephen M. Watt, a computer scientist and mathematician, is past Dean of the Faculty of Mathematics and Professor in the David R. Cheriton School of Computer Science at the University of Waterloo, Ontario, Canada.

IBM Quantum Platform is an online platform allowing public and premium access to cloud-based quantum computing services provided by IBM. This includes access to a set of IBM's prototype quantum processors, a set of tutorials on quantum computation, and access to an interactive textbook. As of February 2021, there are over 20 devices on the service, six of which are freely available for the public. This service can be used to run algorithms and experiments, and explore tutorials and simulations around what might be possible with quantum computing.

Patrizia M. Gianni is an Italian mathematician specializing in computer algebra. She is known for her early research on Gröbner bases including her discovery of the FGLM algorithm for changing monomial orderings in Gröbner bases, and for her development of the components of the Axiom computer algebra system concerning polynomials and rational functions.

References

  1. FriCAS API
  2. Poll, Erik; Thompson, Simon (May 1998). "Adding the axioms to Axiom: Towards a system of automated reasoning in Aldor" (Monograph). Retrieved 2017-01-27.
  3. Poll, Erik; Thompson, Simon. "The Type System of Aldor" (Monograph). Retrieved 2017-01-27.
  4. Poll, Erik; Thompson, Simon. "Integrating Computer Algebra and Reasoning through the Type System of Aldor". In Hélène Kirchner; Christophe Ringeissen (eds.). Frontiers of Combining Systems. 3rd International Workshop on Frontiers of Combining Systems (FroCoS 2000). Vol. 1794. Nancy, France: Springer-Verlag Berlin. pp. 136–150. ISBN   978-3-540-67281-4 . Retrieved 2017-01-27.
  5. Fitch, John (July 23, 2012). "James Griesmer 1929--2011". ACM Communications in Computer Algebra. 46 (1/2): 10–11. doi: 10.1145/2338496.2338499 . S2CID   36788754.
  6. "Axiom Computer Algebra System". axiom-developer.org.
  7. "Richard D. Jenks Biographical Information". www.eecis.udel.edu.
  8. "EUROCAL '85 | SpringerLink". www.springer.com.
  9. "[Axiom-developer] A modest proposal". lists.nongnu.org.
  10. "History — FriCAS". fricas.github.io.
  11. "MathAction RischImplementationStatus". wiki.fricas.org. Retrieved 2021-10-03.

Related: