someone wrote:
>
> > I will look at it. My impression from your messages was that
> > you want to work out some problems.
>
> Right. Apart from the speed issues that I did not consider
> to be very urgent there was at least one main point I'd like
> to improve: the package constructor. This feels much to long
> especially when one need to do package calling.
>
> MatrixManipulation(R: Field, Row: FiniteLinearAggregate(R), Col:
> FiniteLinearAggregate(R), M: MatrixCategory(R,Row,Col))
>
> Actually, the current functions have only M as input/output type.
> The R, Row, Col are solely used to define M. My attempt to build
> something like:
>
> MatrixManipulation(M: MatrixCategory(R,Row,Col))
>
> has failed so far.
Yes, currently you need to explicitly pass R,Row,Col trough all
types. So, if you need some type at the bottom, you need to
propagate it from top.
> At some point I need to tell the details of M.
> I'm not sure if it would even be possible to build:
>
> MatrixManipulation(M: MatrixLikeObjectThatAllowsExtractionOfSubrectangles)
>
You can define new category with operations like subMatrix,
verticalConctat and horizontalConcat and then build your
package basing it on those operations. But for efficiency
we want to deal with elements, not with one element matrices.
So w need R inside the package. Actually, getting R is not
hard (we could export from M function to give us R). Problem
is that element accessors have R in their signature and
compiler should check that R used to create matrix domain
is the same as R used in calls to accessors. Current system
allows checking this at compile time.
--
Waldek Hebisch
[email protected]
--
You received this message because you are subscribed to the Google Groups
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/fricas-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.