2020-12-18 13:16:37 +0100 received badge ● Nice Answer (source) 2015-02-16 15:12:19 +0100 received badge ● Necromancer (source) 2013-11-04 05:14:40 +0100 received badge ● Supporter (source) 2011-11-10 12:36:58 +0100 answered a question Row echelon form of a matrix containing symbolic expresssions sage: P. = QQ[] sage: A = Matrix(P, 3, 4, [[1,1,2,b1], [1,0,1,b2], [2,1,3,b3]]) sage: A [ 1 1 2 b1] [ 1 0 1 b2] [ 2 1 3 b3] sage: A.echelon_form('row_reduction') [ 1 0 1 b2] [ 0 1 1 b1 - b2] [ 0 0 0 -b1 - b2 + b3]  2011-10-13 14:35:59 +0100 answered a question Solve large system of linear equations over GF(2) Hi, 20,000 x 20,000 is not large and you should be able to do it in a few seconds on a modern CPU: http://m4ri.sagemath.org/performance.html  However, Sage doesn't expose the fast code we have for this in M4RI:, cf. http://m4ri.sagemath.org/doxygen/solve_8h.html  That's why it's not as fast as it should be. Sorry, we should fix this. 2011-01-14 10:25:59 +0100 received badge ● Good Answer (source) 2011-01-14 02:56:42 +0100 received badge ● Nice Answer (source) 2011-01-14 01:40:40 +0100 received badge ● Teacher (source) 2011-01-13 11:27:31 +0100 answered a question Quotient decomposition by Groebner basis Do you mean this? sage: R. = GF(127)[] sage: p = R.random_element(degree=3) sage: Q = [R.random_element() for _ in range(R.ngens())] sage: r = p.reduce(Ideal(Q)) sage: M = (p - r).lift(Q) sage: p -r == sum([M[i]*Q[i] for i in range(len(M))]) True