> Christophe Oosterlynck wrote: > > Hi, > > > I was wondering on what algorithm the wiedemann implementation in / > > devel/sage/sage/matrix/matrix2.pyx was based on. When looking at > > Wiedemann's paper from '86, in which he describes a non-deterministic > > and deterministic algorithm, it seems like the sage implementation > > uses the deterministic algorithm. But in Sage there is a krylov > > sequence being built using the iterate() matrix method, which gives > > the sequence v, v*A, v*A^2... while in the original algorithm it > > starts with using the sequence v, A*v, A²*v... > > Any knows why or on what the wiedemann implementation is based on? I'm > > trying to understand the wiedemann implementation because I need to > > implement a modified block wiedemann implementation but I'm fairly new > > to this kind of algebra. > > I know nothing of the algorithm, but this looks like it might be an > effect of left versus right operations? In Sage, things have typically > been done "from the left" (i.e., kernel gives you a left kernel, etc.). > Would that explain the difference? > > Jason
When you ask Sage for a kernel v of a matrix M, it gives you the kernel such that: v*M = 0 It is confusing because you would expect a vector v such that M*v=0, but the actual product v*M is executed like a standard vector-matrix product, nothing strange about that I think? So as long as the product between a matrix and vector behaves like normal, then the confusion around the kernel of a matrix can't be the problem I'm having because I'm just talking about a simple product between a vector and matrix. Christophe --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---
