diff options
Diffstat (limited to 'README')
-rw-r--r-- | README | 62 |
1 files changed, 34 insertions, 28 deletions
@@ -1,3 +1,6 @@ | |||
1 | A simple scientific library for Haskell | ||
2 | --------------------------------------- | ||
3 | |||
1 | REQUIREMENTS | 4 | REQUIREMENTS |
2 | 5 | ||
3 | 1) GNU Scientific Library (http://www.gnu.org/software/gsl) development packages | 6 | 1) GNU Scientific Library (http://www.gnu.org/software/gsl) development packages |
@@ -7,19 +10,20 @@ REQUIREMENTS | |||
7 | 10 | ||
8 | INSTALLATION | 11 | INSTALLATION |
9 | 12 | ||
10 | (More detailed information is included in the "tutorial", | ||
11 | available in the web page of the project.) | ||
12 | |||
13 | $ runhaskell Setup.lhs configure --prefix=$HOME | 13 | $ runhaskell Setup.lhs configure --prefix=$HOME |
14 | $ runhaskell Setup.lhs build | 14 | $ runhaskell Setup.lhs build |
15 | $ runhaskell Setup.lhs haddock | 15 | $ runhaskell Setup.lhs haddock |
16 | $ runhaskell Setup.lhs install --user | 16 | $ runhaskell Setup.lhs install --user |
17 | 17 | ||
18 | See below for installation on Windows. | ||
19 | |||
18 | USING ATLAS | 20 | USING ATLAS |
19 | 21 | ||
20 | $ ln -s /usr/lib/atlas/libblas.so.3.0 $HOME/lib/hssl-0.1/ghc-6.6.1/libcblas.so | 22 | $ ln -s /usr/lib/atlas/libblas.so.3.0 $HOME/lib/hssl-0.1/ghc-6.6.1/libcblas.so |
21 | $ ln -s /usr/lib/atlas/liblapack.so.3.0 $HOME/lib/hssl-0.1/ghc-6.6.1/liblapack.so | 23 | $ ln -s /usr/lib/atlas/liblapack.so.3.0 $HOME/lib/hssl-0.1/ghc-6.6.1/liblapack.so |
22 | 24 | ||
25 | (More info in the tutorial, available from the web page of the project.) | ||
26 | |||
23 | TESTS | 27 | TESTS |
24 | 28 | ||
25 | $ runhaskell examples/tests.hs | 29 | $ runhaskell examples/tests.hs |
@@ -46,10 +50,12 @@ Prelude Numeric.LinearAlgebra> u <> d <> trans v | |||
46 | Prelude Numeric.GSL> :q | 50 | Prelude Numeric.GSL> :q |
47 | Leaving GHCi. | 51 | Leaving GHCi. |
48 | 52 | ||
53 | A few illustrative programs are included in the examples folder. | ||
54 | |||
49 | CHANGES | 55 | CHANGES |
50 | 56 | ||
51 | This is a new version of GSLHaskell. The package is (provisionally) | 57 | This is a new version of GSLHaskell. The package is provisionally |
52 | called \C{hssl} (a simple scientific library for Haskell) because only | 58 | called "hssl" (a simple scientific library for Haskell) because only |
53 | a small part of GSL is available and linear algebra is based on LAPACK. | 59 | a small part of GSL is available and linear algebra is based on LAPACK. |
54 | 60 | ||
55 | The code has been extensively refactored. There is a new internal representation | 61 | The code has been extensively refactored. There is a new internal representation |
@@ -57,35 +63,18 @@ which admits both C and Fortran matrices and avoids many transposes. | |||
57 | 63 | ||
58 | There are only minor API changes: | 64 | There are only minor API changes: |
59 | 65 | ||
60 | - the matrix product operator \C{(<>)} is now overloaded only for matrix-matrix, | 66 | - The matrix product operator (<>) is now overloaded only for matrix-matrix, |
61 | matrix-vector and vector-matrix, with the same base type. The dot product and the scaling | 67 | matrix-vector and vector-matrix, with the same base type. Dot product and scaling |
62 | of vectors or matrices is now denoted by `dot` and `scale`. Conversions from real to | 68 | of vectors or matrices is now denoted by `dot` or (<.>) and `scale` or (.*). |
63 | complex objects must be explicit. | 69 | Conversions from real to complex objects must now be explicit. |
64 | 70 | ||
65 | - Most linear algebra functions admit both real and complex objects. Utilities such as | 71 | - Most linear algebra functions admit both real and complex objects. Utilities such as |
66 | ident or constant are now polymorphic. | 72 | ident or constant are now polymorphic. |
67 | 73 | ||
68 | - Runtime errors produced by GSL or LAPACK can be handled using \C{Control.Exeception.catch}. | 74 | - Runtime errors produced by GSL or LAPACK can be handled using Control.Exeception.catch. |
69 | 75 | ||
70 | Old GSLHaskell code will work with small modifications. | 76 | Old GSLHaskell code will work with small modifications. |
71 | 77 | ||
72 | ACKNOWLEDGEMENTS | ||
73 | |||
74 | I thank Henning Thielemann and all the people in the Haskell mailing lists for their help. | ||
75 | |||
76 | - Nico Mahlo discovered a bug in the eigendecomposition wrapper. | ||
77 | |||
78 | - Frederik Eaton discovered a bug in the design of the wrappers. | ||
79 | |||
80 | - Eric Kidd has created a wiki page explaining the installation on MacOS X: | ||
81 | http://www.haskell.org/haskellwiki/GSLHaskell_on_MacOS_X | ||
82 | |||
83 | - Fawzi Mohamed discovered a portability bug in the lapack wrappers. | ||
84 | |||
85 | - Pedro E. López de Teruel fixed the interface to lapack. | ||
86 | |||
87 | - Antti Siira discovered a bug in the plotting functions. | ||
88 | |||
89 | INSTALLATION ON WINDOWS | 78 | INSTALLATION ON WINDOWS |
90 | 79 | ||
91 | 1) Download the developer files gsl-1.8-lib.zip from | 80 | 1) Download the developer files gsl-1.8-lib.zip from |
@@ -109,3 +98,20 @@ INSTALLATION ON WINDOWS | |||
109 | Unfortunately the lapack dll supplied by the R system does not include zgels_ and zgelss_, | 98 | Unfortunately the lapack dll supplied by the R system does not include zgels_ and zgelss_, |
110 | so the functions depending on them (linearSolveLS and linearSolveSVD for complex data) | 99 | so the functions depending on them (linearSolveLS and linearSolveSVD for complex data) |
111 | will produce a "non supported" runtime error. | 100 | will produce a "non supported" runtime error. |
101 | |||
102 | ACKNOWLEDGEMENTS | ||
103 | |||
104 | I thank Henning Thielemann and all the people in the Haskell mailing lists for their help. | ||
105 | |||
106 | - Nico Mahlo discovered a bug in the eigendecomposition wrapper. | ||
107 | |||
108 | - Frederik Eaton discovered a bug in the design of the wrappers. | ||
109 | |||
110 | - Eric Kidd has created a wiki page explaining the installation on MacOS X: | ||
111 | http://www.haskell.org/haskellwiki/GSLHaskell_on_MacOS_X | ||
112 | |||
113 | - Fawzi Mohamed discovered a portability bug in the lapack wrappers. | ||
114 | |||
115 | - Pedro E. López de Teruel fixed the interface to lapack. | ||
116 | |||
117 | - Antti Siira discovered a bug in the plotting functions. | ||