[Haskell-cafe] low-cost matrix rank?
Audun Skaugen
audunskaugen at gmail.com
Fri Apr 24 14:01:24 UTC 2015
What about dumping the matrix into a C array using the storable instance
of the linear package's matrices, and then use a foreign-imported svd call
from lapack? I don't know whether you can count on lapack being available
in your systems. The lapack call is very clumsy, requiring lots of pointer
inputs, but it should be doable in a few lines of code.
The rank is then the number of nonzero singular values, for some
accuracy-dependent definition of "nonzero".
På Fri, 24 Apr 2015 15:30:23 +0200, skrev Mike Meyer <mwm at mired.org>:
> The bed-and-breakfast isn't to bad, except for needing TH. But it's
> apparently not being maintained. I've started the process of >replacing
> the maintainer, but may roll my own instead.
>
> Thanks,
> Mike
>
> On Fri, Apr 24, 2015 at 8:27 AM, Dennis J. McWherter, Jr.
> <dennis at deathbytape.com> wrote:
>> 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 at 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 at 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 at haskell.org
>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
>>>
>>
>
--
Audun Skaugen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20150424/5757cb9b/attachment.html>
More information about the Haskell-Cafe
mailing list