Dear Martin, and all,
I agree with your mail,
and let me expose what I'm looking for with my students.
> I'd like to concentrate on your function "columnBasis". I think
> that the other functions are less important.
It's right for columnSpace and rowSpace.
I'd like to have also the 3 functions basis, intBasis and sumBasis
over List Vector ?? because elementry exercices are about, and
Maple and Mupad have theses functions.
> As a synonym, we probably should have - analogous to
> basis$ALGPKG, a function basis: List Col -> List Col.
> But maybe this should go into a different package, maybe.
Don't forget intBasis, and complete it with the easyest sumBais.
> VectorCollectionFunctions(R: Ring, L: Collection Vector R)
> or some such. But really, that should be done in a second step.
> + Your code can be made slightly more efficient.
I think you propose, it's right.
> columnSpace M ==
> M2 := rowEchelon M
> basis: List Col := []
> n: Integer := ncols M
> m: Integer := nrows M
> indRow: Integer := 1
> for k in 1..n while indRow <= m repeat
> if not zero?(M2.(indRow, k)) then
> basis := cons(column(M, k), basis)
> indRow := indRow + 1
> reverse! basis
> + We only need an Euclidean domain for your code (and the maths) to
> work. In fact, Integers are a prime example. Although, I must
> admit that in this case the names are slightly confusing, because we
> obtain a Q-basis of the columnSpace, where Q is the quotient field
> of R.
So this code must be after the test :
if R has EuclidianDomain
I don't understand why there are
and MATLIN MatrixLinearAlgebraFunctions package
and IMATLIN InnerMatrixLinearAlgebraFunctions
and MMATLIN InnerMatrixLinearAlgebraFunctions (with other parameters)
> The code should actually go into MATCAT$matcat.spad.pamphlet.
Indeed... Is it because MATCAT is at a higher / more mathematical level ?
But why isn't also rowEchelon in this file ?
> You also have to make it available for RectangularMatrix.
Let me understand the question !
> * if you like to invest more time, I think it would be *very* worthwhile to
> check whether we can make RectangularMatrixCategory inherit from
> MatrixCategory. As far as I can see, the only problem is that currently a
> domain having DirectProductCategory(n, R) is not a FiniteLinearAggregate R.
> But otherwise, I do not see a good reason for that restriction.
>
> In any case, that's a DIFFERENT task.
[I cut : a very nice description]
> * Finally, the above *really* suggests that we might want to have a domain
> whose elements are bases of a given vector space.
I think important to have the 3 primitives : basis, intBasis and sumBasis.
(see above) Why not a new domain, if it's necessary...
But I expect an easy call of this domain for the easy exercices of linalg.
It's the following aim for my use of axiom.
> And it does have structure:
>
> +: (%, %) -> % -- sum of two spaces
> *: (%, %) -> % -- intersection of two spaces
> 0: () -> % -- zero space
I don't understand why aldor is necessary.
> Francois, could you please write a testcase for the functions, in the form
>
> testcase "columnSpace"
> assertEquals("columnSpace nicematrix", "result")
> assertEquals("columnSpace anothernicematrix", "anotheresult")
No problem I'll go to find examples.
We can't test the equality of 2 basis, must I'll play with rank.
My axiom doesn't know testcase and assertEquals
-> )what op testcase
There are no operations containing those patterns
-> )what op assertEquals
There are no operations containing those patterns
I'm going to lunch, and I have course (13h-16h) this afternoon.
F.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
open-axiom-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/open-axiom-devel