That's a great idea.
I just looked at the kernel code in matrix2.pyx. Currently there is
only left_kernel and right_kernel. I notice with bemusement that
*both* functions transpose their input then do something! Pretty
stupid.
I think the right change for your application would be to change this
line in left_kernel:
W = V.submodule(basis)
to
if echelonize:
W = V.submodule(basis)
else:
W = V.submodule_with_basis(basis)
then put an echelonize=True option in the left_kernel function header.
William
-- William
Well feel free to post here too when you have trouble, so that the process
gets documented (which is always good).
William
Just FYI, I think there is still an issue sometimes when using
user-defined bases:
http://trac.sagemath.org/sage_trac/ticket/3058
Jason