4 | | ||[http://git.sagemath.org/sage.git/commit/?id=f0afa2bdb49ac40d6a9b8ad013b4e1e672f171c8 f0afa2b]||{{{Initial implementation in matrix/matrix_weak_popov.pyx}}}|| |

5 | | ||[http://git.sagemath.org/sage.git/commit/?id=46c14d8fc6728ec30a0798bf6a0d48acfe0af8dd 46c14d8]||{{{Renamed to more apropriate weak_popov.pyx, added to module_list.py modules list.}}}|| |

6 | | ||[http://git.sagemath.org/sage.git/commit/?id=44b5b83f7e1f6607f68571d112f19dce11a85f3d 44b5b83]||{{{Hook into weak_popov_form(self) by keyword implementation, value used so far is 'cython'.}}}|| |

7 | | ||[http://git.sagemath.org/sage.git/commit/?id=60a9dbe8e754e7cebf4da0d3913a721e52c4ce48 60a9dbe]||{{{Added boolean keyword 'transposition' to mark computation of a matrix U such that U*A=A.wpf(). This is to check correctness of a computation. If B = copy(A) and after A.weak_popov_form() U.is_invertible()==True and A.is_weak_popov()==True then A is in weak popov form and is unimodular equivalent to B its origin.}}}|| |

| 5 | |

| 6 | || [http://git.sagemath.org/sage.git/commit/?id=f0afa2bdb49ac40d6a9b8ad013b4e1e672f171c8 f0afa2b] || `Initial implementation in matrix/matrix_weak_popov.pyx` || |

| 7 | || [http://git.sagemath.org/sage.git/commit/?id=46c14d8fc6728ec30a0798bf6a0d48acfe0af8dd 46c14d8] || `Renamed to more apropriate weak_popov.pyx, added to module_list.py modules list.` || |

| 8 | || [http://git.sagemath.org/sage.git/commit/?id=44b5b83f7e1f6607f68571d112f19dce11a85f3d 44b5b83] || `Hook into weak_popov_form(self) by keyword implementation, value used so far is 'cython'.` || |

| 9 | || [http://git.sagemath.org/sage.git/commit/?id=60a9dbe8e754e7cebf4da0d3913a721e52c4ce48 60a9dbe] || `Added boolean keyword 'transposition' to mark computation of a matrix U such that U*A=A.wpf(). This is to check correctness of a computation. If B = copy(A) and after A.weak_popov_form() U.is_invertible()==True and A.is_weak_popov()==True then A is in weak popov form and is unimodular equivalent to B its origin.` || |