<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;"><br class=""></div></div><div><blockquote type="cite" class=""><div class="">On 12 Sep 2021, at 13:00, <a href="mailto:haskell-cafe-request@haskell.org" class="">haskell-cafe-request@haskell.org</a> wrote:</div><div class=""><div class=""><br class="">In particular, I am a mathematician/statistician working in evolutionary<br class="">biology. I work with multivariate distributions (hardly any of those are readily<br class="">available on Hackage), I work with a lot of random numbers (the support for<br class="">random sampling is mediocre, at best; 'splitmix' is standard by now but not</div></div></blockquote><blockquote type="cite" class=""><div class=""><div class="">supported by the most important statistics library of Haskell), I work with<br class="">numerical optimization (I envy Pythonians for their libraries, although I still<br class="">prefer Haskell because what I achieve, at least I get right), I work with Markov<br class="">chains (yes, I had to write my own MCMC library in order to run proper Markov<br class="">chains), I need to plot my data (there is no superb standard plotting library<br class="">available in Haskell). By now, I do maintain library packages providing answers<br class="">to some of these problems, but it was (and is) a lot of work.<br class=""></div></div></blockquote><br class=""></div><div>I have to take issue with your statement about random sampling. I think we have a really good story with random numbers now. They are of high quality and fast. R and possibly Python and Julia by comparison still use Mersenne Twister, of lower quality, slower and without a good story for generating independent sequences for parallel computations. I maintain random-fu (sampling from distributions) and using the new random number generator it is now several times (x4?) faster than it was. Conceivably it could be made even faster.</div><div><br class=""></div><div>Please give details on where you think we can improve and better still contribute your own improvements :-)</div><div><br class=""></div><div>In terms of MCMC, I think Jared Tobin wrote some libraries but I don’t think they are maintained. I maintain an SMC library but I don’t know how much use it gets. Tom Nielsen, Henrik Nilsson and I wrote Haskell “bindings” for Stan: <a href="https://nottingham-repository.worktribe.com/output/1151875/getting-more-out-of-stan-some-ideas-from-the-haskell-bindings" class="">https://nottingham-repository.worktribe.com/output/1151875/getting-more-out-of-stan-some-ideas-from-the-haskell-bindings</a>. It would be a lot of work to e.g. re-create Stan in Haskell natively.</div><div><br class=""></div><div>I agree about plotting but inline-r makes it possible to use ggplot in R via Haskell which makes things like drawing maps with reasonable projections relatively straightforward. </div><div><br class=""></div><div>More generally, I think we have a good set of bindings for the ODE solver library SUNDIALS and also for other numeric libraries (e.g. LAPACK and BLAS). The problem we have is not enough hands working on such things.</div><div><br class=""></div><div>I now sadly return to programming in Julia.</div><div><br class=""></div><div>PS - there is probably more I could say on numerical stuff in Haskell but the above already looks like “stream of consciousness”.</div><div><br class=""></div><div><div class=""><div>Dominic Steinitz<br class=""><a href="mailto:dominic@steinitz.org" class="">dominic@steinitz.org</a><br class="">http://idontgetoutmuch.org<br class="">Twitter: @idontgetoutmuch</div><div class=""><br class=""></div></div></div><br class=""></body></html>