Open jhenahan opened 10 years ago
Cool! Theres some subtleties, you'll notice if you look at and stare a bit.
Just do the padded versions for now. the Blas routines only work on those versions. Its lapack that can use packed. (but yes, lets do those too!)
the docs on triangular mult, trmm and the analogous ones for hemm (hermitian mat mul) and symm (symmetric mat mult)
will help you understand a bit of whats going on
we'll also need to have types like the following
data Side = Left | Right
data Diagonal = Unit | NonUnit
data SDiagonal :: Diagonal -> * where
SUnit :: SDiagonal Unit
SNonUnit :: SDiagonal NonUnit
data UpperLower = Upper | Lower
data SUpperLower :: UpperLower ->* where
SUpper :: SupperLower Upper
SLower :: SupperLower Lower
as you might guess, Diagonal
and UpperLower
will be singletons in the padded matrix formats along with the more obvious Row vs Column Major is, and the Left Right business is part of the mat mult api's themselves
I look forward to reviewing the patch! :)
I'll keep subtleties in mind. :laughing: Thanks for the doc links.
holler and ask questions on this ticket if you get stuck or confused. I'm trying to have any "explanations" be logged on tickets so that tis easier to glue together less terrible docs that are searchable online later :)
Re: our conversation in #n-h the other day:
and the packed analogues. I'll then get to work on their versions of gemm. I may also have a go at writing the types myself if I have time tomorrow.