I am not aware of any small library which does just this, but you could easily roll your own. Though not the most efficient method, implementing gaussian elimination is a straightforward task (you can even find the backtracking algorithm on google) and then you can find the rank from there.

Dennis

On Fri, Apr 24, 2015 at 6:50 AM, Mike Meyer <mwm@mired.org> wrote:
My apologies,but my use of "low-cost" was ambiguous.

I meant the cost of having it available - installation, size of the package, extra packages brought in, etc. I don't the rank calculation to be fast, or even cheap to compute, as it's not used very often, and not for very large matrices. I'd rather not have the size of the software multiplied by integers in order to get that one function.

hmatrix is highly optimized for performance and parallelization, built on top of a large C libraries with lots of functionality. Nice to have if you're doing any serious work with matrices, but massive overkill for what I need.

On Fri, Apr 24, 2015 at 3:13 AM, Alberto Ruiz <aruiz@um.es> wrote:
Hi Mike,

If you need a robust numerical computation you can try "rcond" or "rank" from hmatrix. (It is based on the singular values, I don't know if the cost is low enough for your application.)

http://en.wikipedia.org/wiki/Rank_%28linear_algebra%29#Computation

https://hackage.haskell.org/package/hmatrix-0.16.1.5/docs/Numeric-LinearAlgebra-HMatrix.html#g:10

Alberto

On 24/04/15 00:34, Mike Meyer wrote:
Noticing that diagrams 1.3 has moved from vector-space to linear, I
decided to check them both for a function to compute the rank of a
matrix. Neither seems to have it.

While I'm doing quite a bit of work with 2 and 3-element vectors, the
only thing I do with matrices is take their rank, as part of verifying
that the faces of a polyhedron actually make a polyhedron.

So I'm looking for a relatively light-weight way of doing so that will
work with a recent (7.8 or 7.10) ghc release. Or maybe getting such a
function added to an existing library. Anyone have any suggestions?

Thanks,
Mike


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe