Implementing a computer algebra system in Haskell

作者:

Highlights:

摘要

There are basically two kinds of mathematical computation, numerical and symbolic. Numerical algorithms are usually implemented in strongly typed languages, and compiled with a view to efficiency. Symbolic algorithms are mostly written for interpreters in untyped languages. Therefore, symbolic mathematics is usually slow, and bug ridden. Since symbolic algorithms are usually more difficult to implement, there are also very few computer algebra systems. This paper presents a computer algebra system that is both fast, and implemented in a strongly typed language, and designed to accept compiled extensions. The authors describe a scheme to achieve these goals without creating difficulties for the end-user. The reason for creating this new computer algebra system is to make feasible mixed computation, i.e., programming software that needs both numerical computation and computer algebra. For instance, Finite Element Methods require a lot of number crunching as well as computer algebra to perform triangularization, manipulating shape functions, etc. Mixed computation requires speed and safety that interpreted computer algebra cannot provide.

论文关键词:Computer algebra,Mixed computation,Functional programming,Haskell

论文评审过程:Available online 3 March 2007.

论文官网地址:https://doi.org/10.1016/j.amc.2007.02.126