I am trying to add some functionality to the matrix kernel routines
(and I'm learning more about contributing to SAGE along the way).
Briefly, I want to make some alternative bases possible as output.  In
matrix/matrix2.pyx, there are three methods defined for a matrix:
kernel(), left_kernel() and right_kernel().

The left_kernel() function contains most of the code.
The kernel() function is defined by the single line:  kernel =
left_kernel
The right_kernel() function essentially forms the transpose and then
calls kernel() on that.

I have a new keyword added to the left_kernel() function and new code
working they way I think it should.  However, if I try the following
(not showing the use of the new keyword)

sage: a=matrix(QQ, [[1,2],[3,4]])
sage: a.right_kernel()

it would appear that that the call to kernel() in right_kernel() uses
the version of kernel() defined for dense rational matrices (as
perhaps it should), and not the modified version of left_kernel()
nearby (as the code locally might suggest one to expect).  If I edit
right_kernel() to call left_kernel() on the transpose() then I see the
effect of my modifications to the left_kernel() code.

Is it "safe" to modify right_kernel() to call left_kernel()?  As I
chase my way around, I see calls that compute kernels using algorithms
in Pari, IML, etc, so I'm hesitant to make changes with far-reaching
effects.  Thanks in advance for the advice.

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to