Re: sparsearray bug?
- To: mathgroup at smc.vnet.net
- Subject: [mg101663] Re: sparsearray bug?
- From: Bill Rowe <readnews at sbcglobal.net>
- Date: Tue, 14 Jul 2009 05:32:11 -0400 (EDT)
On 7/12/09 at 5:48 AM, wicher.bergsma at googlemail.com (wpb) wrote: >Dividing a SparseArray by another can be needed eg in the following >situation: A is a sparse matrix, b and c nonsparse vectors and we >want to compute A.(b/c). Seems to be best to numerically to put >everything in SparseArray form I think... Why? I very much doubt computing b/c for two non-sparse vectors will execute faster when b and c are made into SparseArray objects than the obvious solution. The advantage of a SparseArray over a normal implementation comes from not needing to specifically store the zero elements. If all of the elements of an array are non-zero, the storage requirements for a the SparseArray form will be higher than the simple list form. And whether b and c are SparseArray objects or not, each element of b and c needs to be accessed to compute b/c. It is hard to see how having b and c as SparseArray objects could reduce the execution time. The only reason I can see for not mixing SparseArray objects with normal lists would be if Mathematica did not allow this. But In[22]:= s = SparseArray[Thread[Table[{n, n}, {n, 5}] -> RandomReal[1, {5}]]]; s.RandomInteger[100, {5}] Out[23]= {24.3707,25.5166,5.77052,23.7288,15.5728} clearly demonstrates it is acceptable to mix SparseArray objects with normal lists.