Haskell Matrix Library...
Keean Schupke
k.schupke at imperial.ac.uk
Tue Jun 14 07:54:08 EDT 2005
David Roundy wrote:
>On Sun, Jun 12, 2005 at 08:00:02PM +0100, Keean Schupke wrote:
>
>
>>- Standard arithmetic operators do standard matrix operations (except
>>"/" is unimplemented - until I write a Gaussian-elimination routine)
>>
>>
>
>It would be nice to at least implement "/" for division by scalars... yes
>one could use ./ for that, but it's less nice.
>
>
Can be done... matrix division also not that hard...
>
>
>>- 'dot' operators '.*' './' do elementwise operations on matrices, and
>>are composed into a matrix level analogue of the
>> standard Numeric class hierachy.
>>- Any operation involving a scalar applies that operation to each
>>element in the matrix.
>>
>>
>
>Looks nice.
>
>
>
>>- operations in Floating that have no obvious matrix equivalents are
>>applied elementwise (sin/cos/tan)
>>
>>
>
>At least sin and cos do have matrix equivalents (imag(mexp(M)), etc)...
>
>
You learn something everyday... I guess I knew this already as I know
about the power series definitions of
sin and cos... guess I just didn't think about it too much. Would we
rather have:
sin and sinm (elementwise and matrix) - same as matlab
OR
sine and sin (elementwise and matrix) - applies matrix form as 'normal'
OR some other.
>
>
>>- operations in Floating that have matrix equivalents (exp) are applied
>>elementwise for consistancy with the other functions in the Floating
>>class.
>>
>>
>
>Okay... I don't really expect to use mexp anyways (although it *is* handy
>in quantum mechanics, if you can store the entire hamiltonian).
>
>Shouldn't this be an instance of Functor, and have the mmap be called fmap?
>I'd would lean towards making 'exp' be matrix exponentiation.
>
Ah... No.
class Functor m where
fmap :: a -> b -> m a -> m b
But the type of "mmap" is
mmap :: e -> e -> Matrix a i e -> Matrix a i e
in other words we map values to the same type, not a different type.
>
>
>>I will add features as I require them, but if anyone actually wants to
>>use it, I will consider patches and requests for features...
>>
>>
>
>I don't suppose there's a chance you could set up a public darcs repository
>for this?
>
>
>
Yes ... will do.
>>Idea's and improvements greatly appreciated...
>>
>>
>
>One thing that would really help would be a nicer show instance. As a
>corollary, a read instance would also be nice.
>
>
Definitely, had planned to do this.
Keean.
More information about the Libraries
mailing list