A purely functional computer algebra system embedded in Haskell
From MaRDI portal
Abstract: We demonstrate how methods in Functional Programming can be used to implement a computer algebra system. As a proof-of-concept, we present the computational-algebra package. It is a computer algebra system implemented as an embedded domain-specific language in Haskell, a purely functional programming language. Utilising methods in functional programming and prominent features of Haskell, this library achieves safety, composability, and correctness at the same time. To demonstrate the advantages of our approach, we have implemented advanced Gr"{o}bner basis algorithms, such as Faug`{e}re's and , in a composable way.
Recommendations
- Towards an Implementation of a Computer Algebra System in a Functional Language
- Implementing a computer algebra system in Haskell
- Computer Aided Systems Theory – EUROCAST 2005
- Certifying properties of an efficient functional program for computing Gröbner bases
- scientific article; zbMATH DE number 1484290
Cited in
(10)- Integrating functional programming and symbolic computation.
- Functional programming concepts and straight-line programs in computer algebra
- scientific article; zbMATH DE number 2125610 (Why is no real title available?)
- computational-algebra
- scientific article; zbMATH DE number 53817 (Why is no real title available?)
- scientific article; zbMATH DE number 1484290 (Why is no real title available?)
- Towards an Implementation of a Computer Algebra System in a Functional Language
- scientific article; zbMATH DE number 5785597 (Why is no real title available?)
- Automatic differentiation with higher infinitesimals, or computational smooth infinitesimal analysis in Weil algebra
- Implementing a computer algebra system in Haskell
Describes a project that uses
Uses Software
This page was built for publication: A purely functional computer algebra system embedded in Haskell
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q1798330)