FriCAS is 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 ...
with a strong focus on mathematical research and development of new
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
s. It comprises an
interpreter, a
compiler
In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
and a still-growing
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 ...
of more than 1,000 domains and categories.
FriCAS provides a
strongly typed
In computer programming, one of the many ways that programming languages are colloquially classified is whether the language's type system makes it strongly typed or weakly typed (loosely typed). However, there is no precise technical definition o ...
high-level programming language
In computer science, a high-level programming language is a programming language with strong Abstraction (computer science), abstraction from the details of the computer. In contrast to low-level programming languages, it may use natural language ...
called SPAD and a similar interactive language
that uses
type-inferencing for convenience.
Aldor
Aldor is a programming language. It is the successor of A# as the extension language of the Axiom computer algebra system.
Aldor combines imperative, functional, and object-oriented features. It has an elaborate type system, allowing types to ...
was intentionally developed being the
next generation compiler for the Axiom CAS and its
forks
In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods ei ...
. FriCAS (optionally) allows running Aldor programs. Both languages
share a similar syntax and a sophisticated (
dependent
A dependant is a person who relies on another as a primary source of income. A common-law spouse who is financially supported by their partner may also be included in this definition. In some jurisdictions, supporting a dependant may enabl ...
)
type system
In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a type to every "term" (a word, phrase, or other set of symbols). Usually the terms are various constructs of a computer progra ...
.
FriCAS is comprehensively documented and available as
source code
In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
and as a binary
distribution Distribution may refer to:
Mathematics
*Distribution (mathematics), generalized functions used to formulate solutions of partial differential equations
* Probability distribution, the probability of a particular value or value range of a vari ...
for the most common
platforms. Compiling the sources requires besides other prerequisites a
Common Lisp
Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ''ANSI INCITS 226-1994 (S20018)'' (formerly ''X3.226-1994 (R1999)''). The Common Lisp HyperSpec, a hyperlinked HTML version, has been derived fro ...
environment (whereby
many of the major implementations are supported and freely available as
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
).
FriCAS runs on many
POSIX
The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming interf ...
platforms such as
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 ...
,
macOS
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 computers. Within the market of desktop and lapt ...
,
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
,
BSD
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 ...
as well as under
Cygwin
Cygwin ( ) is a POSIX-compatible programming and runtime environment that runs natively on Microsoft Windows. Under Cygwin, source code designed for Unix-like operating systems may be compiled with minimal modification and executed.
The Cygwin in ...
and
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 ...
(
WSL).
History
FriCAS is a descendant of
Axiom
An axiom, postulate, or assumption is a statement that is taken to be true, to serve as a premise or starting point for further reasoning and arguments. The word comes from the Ancient Greek word (), meaning 'that which is thought worthy or f ...
which itself has its origin in Scratchpad, a project that started in 1965 by James Griesmer
at
IBM laboratories.
For more details see
Axiom/History.
Examples
FriCAS has a rather complete implementation of the
Risch–Bronstein–Trager algorithm, but it is still incomplete.
Another useful feature is
stream
A stream is a continuous body of water, body of surface water Current (stream), flowing within the stream bed, bed and bank (geography), banks of a channel (geography), channel. Depending on its location or certain characteristics, a 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
*
List 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 ...
References
External links
FriCAS HomepageFriCAS WikiSandBox: Try FriCAS onlineDocumentation at fricas.github.io* Source code repositories
SourceForgeGitHubRosetta stone (pdf)Rosetta stone (some other formats)Rosetta Stone (html)rosettacode.org, SPADForum: fricas-develFriCAS Jupyter Kernel (jfricas/src)FriCAS Jupyter (pypi)
Related:
AxiomOpenAxiom*
A# programming language
*
Aldor
Aldor is a programming language. It is the successor of A# as the extension language of the Axiom computer algebra system.
Aldor combines imperative, functional, and object-oriented features. It has an elaborate type system, allowing types to ...
programming language
{{DEFAULTSORT:FriCAS (Computer Algebra System)
Common Lisp (programming language) software
Computer algebra system software for Linux
Free computer algebra systems
Free software programmed in Lisp
Software using the BSD license