Message: 29
Date: Sat, 6 Nov 2010 13:22:10 +0100
From: Roel van Dijk <vandijk.roel@gmail.com>
Subject: [Haskell-cafe] hmatrix's fitModel function crashes ghc(i)
To: Haskell Caf? <haskell-cafe@haskell.org>
Message-ID:
       <AANLkTim5eGSL_BZ+RUv-=d-Z3DB65Sc8o=cKQLTcyKT4@mail.gmail.com>
Content-Type: text/plain; charset=UTF-8

Hello,

I would like to use hmatrix to do some function fitting with the
Levenberg Marquardt algorithm. As an example I would like to fit the
very simple function "f x = a*x + b" on some data points. The problem
is that executing the 'fitModel' function crashes GHC(i) with a
segmentation fault. This makes debugging difficult. Can anyone spot
what I am doing wrong? Given all the lists of Double's it seems very
easy to make an error regarding the number of arguments with the model
function or the derivative.

Try to evaluate the 'test' function in the small program listed below.
I would expect an output of [1, 0] (y = 1*x + 0) instead of a
segmentation fault.

Relevant versions:
 - hmatrix-0.10.0.0
 - gsl-1.14
 - ghc-6.12.3 (64 bit)


Is that the 64 bit Linux ghc?

I think the problem is with the GSL random number generation through GHCi.

Try:

> module Test where
>
> Import Numeric.Container(RandDist,randomVector)
>
> seed = 0
> size = 100
>
> main = putStrLn $ show $ randomVector seed Gaussian size
 
This should work when compiled with `ghc --make` and crash when invoked in `ghci`.

I think the problem is with linking static data in GHCi on x86_64.

Hope this helps.  I seem to recall there might be a ghc trac ticket related to this but a quick search turned up nothing.

Cheers,

Vivian