<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="">Hi Huw,<div class=""><br class=""></div><div class="">Thanks very much for the questions and working on hmatrix. Apologies for not having more informative answers.</div><div class=""><br class=""><div class="">
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Dominic Steinitz</div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><a href="mailto:dominic@steinitz.org" class="">dominic@steinitz.org</a></div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><a href="http://idontgetoutmuch.org" class="">http://idontgetoutmuch.org</a></div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Twitter: @idontgetoutmuch</div></div></div><div><div class=""><div class=""><br class=""><blockquote type="cite" class="">On 8 Jul 2020, at 08:18, Huw Campbell <<a href="mailto:huw.campbell@gmail.com" class="">huw.campbell@gmail.com</a>> wrote:<br class=""><br class="">Hi all,<br class=""><br class="">I've put a bit of time into hmatrix over the past week. My main<br class="">priorities at the moment are fixing bugs, segfaults, memory leaks, and<br class="">other infelicities. But after that's done I'm planning on tackling<br class="">some broader API and design issues.<br class=""><br class="">I have a few questions:<br class=""><br class="">- Why are CSR and CSC 1 indexed? The early literature uses 0 indexing<br class="">AFAICS, and it means that Ben Gamari's libsvd wrapper has to do extra<br class="">leg work reindexing before calling its C code.<br class=""></blockquote><br class="">I didn’t even know it did this. I don’t think the author (Alberto Ruiz) is subscribed to this list. We could try asking him directly.<br class=""><br class=""><blockquote type="cite" class="">- Why do we have our own mutable vector type? I would have thought the<br class="">version in<br class="">the vector package would be sufficient.<br class=""></blockquote><br class="">My guess would be that when the code was written mutable vectors were not available in vector.<br class=""><br class=""><blockquote type="cite" class="">- Should we try to move more of the library towards the general matrix<br class="">`GMatrix`? At the moment there are not very many functions which<br class="">actually use it (and it has partial record labels), and one can't<br class="">project out back to any of the underlying matrix forms.<br class=""></blockquote><br class="">I have no view on this other than to be careful about performance which reminds me: we should really do some performance measurements.<br class=""><br class=""><blockquote type="cite" class="">- Can we bring the test suites and benchmarks back into the libraries<br class="">proper? The test suite is currently lagging the major version, and on<br class="">master doesn't compile with GHC 8.6+ (I have a PR for that).<br class=""></blockquote><br class="">Yes please.<br class=""><br class=""><blockquote type="cite" class="">- CI looks like it's only testing one version of GHC, do we have a<br class="">policy on how many versions we support?<br class=""></blockquote><br class="">No policy but I guess we should aim for a few more versions.<br class=""><br class=""><blockquote type="cite" class="">- What are all of your priorities? Dominic has mentioned a few use cases around<br class="">sparse matrices people have been working on.<br class=""></blockquote><br class="">Some time ago, I created hmatrix-sundials but gave it its own repo. The idea was to have an identical interface to ODE solving so that you could switch between SUNDIALS and GSL. Roman Cheplyaka has vastly improved hmatrix-sundials and it now uses suitesparse for sparse matrices.<br class=""><br class="">In terms of priorities, my own are focussed on solving PDEs so I really need sparse matrices. And SUNDIALS is really a lot better for differential equations than GSL. I really like the statically typed matrices (the rows and columns being typed by their size). Are you thinking just about the base package or the other packages like glpk?<br class=""><br class=""><blockquote type="cite" class="">We've also spoken about github etiquette. I agreed with Dominic that<br class="">branches and pull requests are probably the best approach at the<br class="">moment. I won't merge my own PRs without input from another maintainer<br class="">at this stage, so please do have a look.<br class=""></blockquote><br class="">I am not totally convinced having a monorepo is the best way forward but I don’t feel strongly.<br class=""><br class=""><blockquote type="cite" class="">Regards,<br class="">Huw<br class="">_______________________________________________<br class="">Numeric mailing list<br class=""><a href="mailto:Numeric@haskell.org" class="">Numeric@haskell.org</a><br class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/numeric<br class=""></blockquote><br class=""></div></div></div><br class=""></div></body></html>