Difference between revisions of "Applications and libraries/Mathematics"

From HaskellWiki
Jump to: navigation, search
(subsection for linear algebra)
(subsection for number representations)
Line 19: Line 19:
 
;Indexless linear algebra algorithms by Jan Skibinski, see below
 
;Indexless linear algebra algorithms by Jan Skibinski, see below
   
  +
  +
=== Number representations ===
  +
 
;[http://www.n-heptane.com/nhlab/repos/Decimal Decimal arithmetic library]
 
:An implementation of real decimal arithmetic, for cases where the binary floating point is not acceptable (for example, money).
  +
 
;[[Exact real arithmetic]]
 
:is an interesting area: it is a deep connection between numeric methods and deep theoretic fondations of algorithms (and mathematics). Its topic: ''computable real number''s raise a lot of interesting questions rooted in mathematical analysis, arithmetic, but also [http://en.wikipedia.org/wiki/Computability_theory computability theory] (see numbers-as-programs approaches). Computable reals can be achieved by many approaches -- it is not one single theory.
   
   
Line 31: Line 39:
 
;[http://haskell.org/docon/ DoCon] - Algebraic Domain Constructor
 
;[http://haskell.org/docon/ DoCon] - Algebraic Domain Constructor
 
:A Computer Algebra System
 
:A Computer Algebra System
 
;[http://www.n-heptane.com/nhlab/repos/Decimal Decimal arithmetic library]
 
:An implementation of real decimal arithmetic, for cases where the binary floating point is not acceptable (for example, money).
 
   
 
;[http://www.robtougher.com/HaskellMath/ HaskellMath]
 
;[http://www.robtougher.com/HaskellMath/ HaskellMath]
Line 40: Line 45:
 
;[http://cvs.haskell.org/darcs/numericprelude/ Numeric Prelude]
 
;[http://cvs.haskell.org/darcs/numericprelude/ Numeric Prelude]
 
:Experimental revised framework for numeric type classes.
 
:Experimental revised framework for numeric type classes.
 
;[[Exact real arithmetic]]
 
:is an interesting area: it is a deep connection between numeric methods and deep theoretic fondations of algorithms (and mathematics). Its topic: ''computable real number''s raise a lot of interesting questions rooted in mathematical analysis, arithmetic, but also [http://en.wikipedia.org/wiki/Computability_theory computability theory] (see numbers-as-programs approaches). Computable reals can be achieved by many approaches -- it is not one single theory.
 
   
 
;[http://repetae.net/john/recent/out/HsASA.html Adaptive Simulated Annealing]
 
;[http://repetae.net/john/recent/out/HsASA.html Adaptive Simulated Annealing]
Line 55: Line 57:
 
;[http://eecs.oregonstate.edu/~erwig/pfp/ Probabilistic Functional Programming]
 
;[http://eecs.oregonstate.edu/~erwig/pfp/ Probabilistic Functional Programming]
 
:The PFP library is a collection of modules for Haskell that facilitates probabilistic functional programming, that is, programming with stochastic values. The probabilistic functional programming approach is based on a data type for representing distributions. A distribution represent the outcome of a probabilistic event as a collection of all possible values, tagged with their likelihood. A nice aspect of this system is that simulations can be specified independently from their method of execution. That is, we can either fully simulate or randomize any simulation without altering the code which defines it.
 
:The PFP library is a collection of modules for Haskell that facilitates probabilistic functional programming, that is, programming with stochastic values. The probabilistic functional programming approach is based on a data type for representing distributions. A distribution represent the outcome of a probabilistic event as a collection of all possible values, tagged with their likelihood. A nice aspect of this system is that simulations can be specified independently from their method of execution. That is, we can either fully simulate or randomize any simulation without altering the code which defines it.
  +
 
;[[Sinc function]]
  +
 
;[http://repetae.net/john/recent/out/Boolean.html Boolean]
 
:A general boolean algebra class and some instances for Haskell.
  +
 
;[http://darcs.haskell.org/~lemmih/hode/ HODE]
 
:HODE is a binding to the Open Dynamics Engine. ODE is an open source, high performance library for simulating rigid body dynamics.
   
 
;[http://cvs.haskell.org/darcs/numeric-quest/ Mirror of the following numeric modules by Jan Skibinski]
 
;[http://cvs.haskell.org/darcs/numeric-quest/ Mirror of the following numeric modules by Jan Skibinski]
Line 64: Line 74:
 
* [http://web.archive.org/web/*/http://www.numeric-quest.com/haskell/ Short study of fuzzy oscillator]<em>(via Internet Archive since 10/06/2003)</em>
 
* [http://web.archive.org/web/*/http://www.numeric-quest.com/haskell/ Short study of fuzzy oscillator]<em>(via Internet Archive since 10/06/2003)</em>
 
* [http://web.archive.org/web/*/http://www.numeric-quest.com/haskell/Tensor.html N-dimensional tensors]<em>(via Internet Archive since 10/06/2003)</em>
 
* [http://web.archive.org/web/*/http://www.numeric-quest.com/haskell/Tensor.html N-dimensional tensors]<em>(via Internet Archive since 10/06/2003)</em>
 
;[[Sinc function]]
 
 
;[http://repetae.net/john/recent/out/Boolean.html Boolean]
 
:A general boolean algebra class and some instances for Haskell.
 
 
;[http://darcs.haskell.org/~lemmih/hode/ HODE]
 
:HODE is a binding to the Open Dynamics Engine. ODE is an open source, high performance library for simulating rigid body dynamics.
 

Revision as of 17:36, 19 May 2006

The copyright status of this work is not known. Please help resolve this on the talk page.

This page contains a list of libraries and tools in a certain category. For a comprehensive list of such pages, see Applications and libraries.

Libraries for numerical algorithms and mathematics

Linear algebra

GSLHaskell
High level functional interface to standard linear algebra computations and other numerical algorithms based on the GNU Scientific Library.
Wrapper to CLAPACK
Digital Signal Processing
Modules for matrix manpulation, digital signal processing, spectral estimation, and frequency estimation.
Index-aware linear algebra
Frederik Eaton's library for statically checked matrix manipulation in Haskell
Indexless linear algebra algorithms by Jan Skibinski, see below


Number representations

Decimal arithmetic library
An implementation of real decimal arithmetic, for cases where the binary floating point is not acceptable (for example, money).
Exact real arithmetic
is an interesting area: it is a deep connection between numeric methods and deep theoretic fondations of algorithms (and mathematics). Its topic: computable real numbers raise a lot of interesting questions rooted in mathematical analysis, arithmetic, but also computability theory (see numbers-as-programs approaches). Computable reals can be achieved by many approaches -- it is not one single theory.


other

Geometric Algorithms
A small Haskell library, containing algorithms for two-dimensional convex hulls, triangulations of polygons, Voronoi-diagrams and Delaunay-triangulations, the QEDS data structure, kd-trees and range-trees.
Papers by Jerzy Karczmarczuk
Some interesting uses of Haskell in mathematics, including functional differentiation, power series, continued fractions.
DoCon - Algebraic Domain Constructor
A Computer Algebra System
HaskellMath
The HaskellMath library is a sandbox for experimenting with mathematics algorithms. So far I've implemented a few quantitative finance models (Black Scholes, Binomial Trees, etc) and basic linear algebra functions. Next I might work on either computer algebra or linear programming. All comments welcome!
Numeric Prelude
Experimental revised framework for numeric type classes.
Adaptive Simulated Annealing
A Haskell interface to Lester Ingber's adaptive simulating annealing code.
Number Theory Library
Andrew Bromage's Haskell number theory library, providing operations on primes, fibonacci sequences and combinatorics.
Hmm: Haskell Metamath
Hmm is a small Haskell library to parse and verify Metamath databases.
Probabilistic Functional Programming
The PFP library is a collection of modules for Haskell that facilitates probabilistic functional programming, that is, programming with stochastic values. The probabilistic functional programming approach is based on a data type for representing distributions. A distribution represent the outcome of a probabilistic event as a collection of all possible values, tagged with their likelihood. A nice aspect of this system is that simulations can be specified independently from their method of execution. That is, we can either fully simulate or randomize any simulation without altering the code which defines it.
Sinc function
Boolean
A general boolean algebra class and some instances for Haskell.
HODE
HODE is a binding to the Open Dynamics Engine. ODE is an open source, high performance library for simulating rigid body dynamics.
Mirror of the following numeric modules by Jan Skibinski