diff options
Diffstat (limited to 'install.txt')
-rw-r--r-- | install.txt | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/install.txt b/install.txt new file mode 100644 index 0000000..fbcc051 --- /dev/null +++ b/install.txt | |||
@@ -0,0 +1,113 @@ | |||
1 | <HEAD> | ||
2 | <TITLE>hmatrix installation</TITLE> | ||
3 | <STYLE> <!-- body{width: 600px; margin:50px auto;font-family:arial} --> </STYLE> | ||
4 | </HEAD> | ||
5 | |||
6 | |||
7 | [hmatrix]: http://code.haskell.org/hmatrix | ||
8 | [hmatrix2]: http://perception.inf.um.es/hmatrix | ||
9 | |||
10 | |||
11 | [hmatrix][hmatrix2] installation | ||
12 | ------------------------------------------------------- | ||
13 | |||
14 | This package requires the [Glasgow Haskell Compiler](http://www.haskell.org/ghc/index.html) ghc >= 6.10, and [cabal-install](http://www.haskell.org/haskellwiki/Cabal-Install), conveniently available in the [Haskell Platform](http://hackage.haskell.org/platform). | ||
15 | |||
16 | We also need the development packages for [GSL](http://www.gnu.org/software/gsl) and BLAS/[LAPACK](http://www.netlib.org/lapack). (The graphical functions also require **gnuplot** and **imagemagick**.) | ||
17 | |||
18 | |||
19 | ### Linux ################################################## | ||
20 | |||
21 | |||
22 | Ubuntu/Debian: | ||
23 | |||
24 | $ sudo apt-get install libgsl0-dev liblapack-dev | ||
25 | $ cabal install hmatrix | ||
26 | |||
27 | Arch Linux: If the automatic installation from Hackage fails, install atlas-lapack and gsl, unpack the source, change the build-type to Simple in hmatrix.cabal (line 28) and add extra-libraries: gsl lapack (line 194). | ||
28 | |||
29 | Other distributions may require additional libraries. They can be given in a **--configure-option**. | ||
30 | |||
31 | ### Mac OS/X ############################################### | ||
32 | |||
33 | |||
34 | GSL must be installed via MacPorts: | ||
35 | |||
36 | $ sudo port install gsl-devel +universal | ||
37 | $ cabal install hmatrix | ||
38 | |||
39 | (Contributed by Heinrich Apfelmus and Torsten Kemps-Benedix). | ||
40 | |||
41 | ### Windows ############################################### | ||
42 | |||
43 | |||
44 | See the [INSTALL file][install2] included in the distribution. We use this [GSL binary](http://www.miscdebris.net/blog/2009/04/20/mingw-345-binaries-of-gnu-scientific-library-112-for-use-with-mingw-and-visual-c/), and blas/lapack dlls built with g77 (contributed by Gilberto Camara). All required files are in [gsl-lapack-windows.zip][winpack]. | ||
45 | |||
46 | [install]: http://code.haskell.org/hmatrix/INSTALL | ||
47 | [install2]: http://patch-tag.com/r/aruiz/hmatrix/snapshot/current/content/pretty/INSTALL | ||
48 | [winpack]: http://perception.inf.um.es/hmatrix/gsl-lapack-windows.zip | ||
49 | |||
50 | - - - | ||
51 | |||
52 | ### Tests ############################################### | ||
53 | |||
54 | After installation we must verify that the library works as expected: | ||
55 | |||
56 | $ ghci | ||
57 | > Numeric.LinearAlgebra.Tests.runTests 20 | ||
58 | OK, passed 100 tests. | ||
59 | OK, passed 100 tests. | ||
60 | ... etc... | ||
61 | |||
62 | If you get any failure please run lapack's own tests to confirm that your version is not broken. For instance, in ubuntu 9.04, **libatlas-sse2** does not work (see this [bug report](https://bugs.launchpad.net/ubuntu/+source/atlas/+bug/368478)). If your lapack library is ok but hmatrix's tests fail please send a bug report! | ||
63 | |||
64 | If everything is ok you can reinstall the library with minimal dependencies: | ||
65 | |||
66 | $ cabal install --reinstall hmatrix -f-tests [-f-vector] [-f-binary] | ||
67 | |||
68 | - - - | ||
69 | |||
70 | ### Optimized BLAS/LAPACK ########################################## | ||
71 | |||
72 | I have successfully tested ATLAS and MKL on Linux. | ||
73 | |||
74 | ### [ATLAS](http://math-atlas.sourceforge.net/) #################### | ||
75 | |||
76 | In Ubuntu >= 9.04 we need: | ||
77 | |||
78 | $ sudo apt-get install libatlas-base-dev | ||
79 | |||
80 | In older Ubuntu/Debian versions we needed: | ||
81 | |||
82 | $ sudo apt-get install refblas3-dev lapack3-dev atlas3-base-dev | ||
83 | |||
84 | We may use a version (sse2, 3dnow, etc.) optimized for the machine. | ||
85 | |||
86 | ### Intel's MKL ############################################### | ||
87 | |||
88 | There is a free noncommercial download available from Intel's website. To use it I have added the following lines in my .bashrc configuration file: | ||
89 | |||
90 | export LD_LIBRARY_PATH=/path/to/mkl/lib/arch | ||
91 | export LIBRARY_PATH=/path/to/mkl/lib/arch | ||
92 | |||
93 | where arch = 32 or em64t. | ||
94 | |||
95 | The library must be installed with the -fmkl flag: | ||
96 | |||
97 | $ cabal install hmatrix -fmkl | ||
98 | |||
99 | - - - | ||
100 | |||
101 | ### Known problems ############################################### | ||
102 | |||
103 | - libatlas-sse2-dev in Ubuntu 9.04 is broken (see this | ||
104 | [bug report](https://bugs.launchpad.net/ubuntu/+source/atlas/+bug/368478)). Alternatively we can use libatlas-base-dev. | ||
105 | |||
106 | - On **64-bit** machines the example "minimize.hs", when run from ghci, produces a segmentation fault. It happens in the call to gsl\_multimin\_fdfminimizer_alloc, inside the C wrapper. If the program is called by runhaskell, it just terminates prematurely, producing no results. Curiously, in compiled mode the program seems to work perfectly well. | ||
107 | |||
108 | - **catch** does not work if the error is produced by a Haskell function when it is called from inside C function. | ||
109 | |||
110 | - - - | ||
111 | |||
112 | [Alberto Ruiz](http://dis.um.es/profesores/alberto) | ||
113 | |||