Hi,

I am pretty much done with the level 0 of sparse[1] and dense matrices[2]. 
The only problems remaining are the solvers of sparse matrices and merge 
conflicts.

I have very few references for sparse solvers right now. I am trying to use 
the earlier work of sherjil's in this domain, but I am finding it difficult 
to understand it. Plus I have been told more than once that sparse matrices 
are much less used as compared to dense matrices, so I have decided to move 
to more urgent problem of designing and implementing level 1 given the 
basics are implemented.

As for merge conflicts, I will hopefully fix them by tomorrow.

Now regarding level 1, for starting, I think that level 1 will consist 
primarily of two classes, Sparse and Dense. The point of these classes is 
to "collect" all the methods in [1] and [2]. The data structure of the 
dense class will be list of lists and for sparse it will be CSR. The choice 
of CSR is because of the following two reasons--

   - _csrtodok from sparsearith.py is quite effective
   - CSR takes significantly less space than DOK

I feel that we don't need to worry about the equivalent of 
_handle_creation_matrix in level 1. The data structures should be the same 
as in Level 0. The level 1 will just collect all methods and define things 
operations __add__, __mul__  using densearith and sparsearith.

This level  as I saw it at present should work like this-

   - Given a matrix like [[1, 2], [3, 4]] and  operations like add([[1, 2 
   ], [3, 4]], [[4, 5], [6, 7]], ZZ)
   - Coerce all elements [[ZZ(1), ZZ(2)], [ZZ(3), ZZ(4)]], [[ZZ(4), ZZ(5)], 
   [ZZ(6), ZZ(7)]]
   - call add from densearith.

I feel the second step here might cause speed issues.

-Saurabh

[1] https://github.com/sympy/sympy/pull/2206
[2] https://github.com/sympy/sympy/pull/2248

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to