Hi, My work is almost done as far as dense matrix is concerned[1]. I have now divided all the stuff into three files densearith, densetools and densesolve. Here are some key points--
- mulmatmat is not selecting rows and cols and multiplying them as done in the last commit. It turns out that col function is too expensive. So I just replaced it with the old workaround by applying zip on second matrix and then multiplying rows and cols. It seems that selecting a column is not very efficient in the new model. Not atleast in current col function. - I am not able to apply domains on complex numbers. - I have two functions lowertriangle and uppertriangle that, given a matrix, returns a upper triangle matrix and lower triangle matrix by having appropriate elements reduced to zeros by matrix operations. These were actually created to be used by some other functions but it didn't turned out to be used anywhere. I am not sure about the utility of them now. I feel they can be used in solving equations - There is a test failure in the LU_inverse. The thing is it calculates the 0th and 2nd columns correctly but not the the first column. Others pass - In some places like in LU, I have to use QQ(x)/QQ(y) to avoid the truncating of decimal part when the division is not perfect(e.g. 2.3 to 2). It does not seems to be the right way to do it. Anyone please see if there is some other way to do it. - I think this level should be used as in the tests. Each each is forced to have a type best, -Saurabh [1] https://github.com/sympy/sympy/pull/2248 On Monday, July 15, 2013 1:22:50 PM UTC+5:30, Saurabh Jha wrote: > > I have managed to implement a function to calculate rref of a matrix. It's > not using any particular reference, but it does seems to work. Please have > a look[1]. I am now working on the final pieces of dense matrix, LU and QR > decompositions, inverse and determinant(relatively easy because of rref) > and a solve. I am also implement hessian and matrix derivatives. > > A very rough outline of solve is this-- > > if we have some equations like-- > > a1x + b1y + c1z = d (1) > a2x + b2y + c2z = d (2) > a3x + b3y + c3z = d (3) > > if ncol > nrow + 1, return underdetermined and return infinite solutions > checking with rowdiv, if (1), (2), (3) are complete multiples of each > other (both left hand side and right hand side), return infinite solutions > if (1), (2), (3) are partial multiples(only left hand side), return no > solution. > else -- calculate rref and return solution. > > > The only concern is that rref is slower than older rref. The new profiles > can be found in [2] > > I am not sure if I have missed something. I would request others to please > point the functions I missed right now. > > [1] https://github.com/sympy/sympy/pull/2248 > [2] > http://sympymatrix.blogspot.in/2013/07/profile-of-new-rref-function-and-some.htm > -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sympy+unsubscr...@googlegroups.com. To post to this group, send email to sympy@googlegroups.com. Visit this group at http://groups.google.com/group/sympy. For more options, visit https://groups.google.com/groups/opt_out.