matrix multiplication A x, x has some zeros

Hi all, I have to get Ax, A is n x n matrix, x is vector of length n. Some coords of x are zeros, so I want to economy time/cputime somehow w/o connecting sparse module from scipy. What's the easiest way to do so? Thx, D.

How big is n? On Dec 14, 2007 1:24 AM, dmitrey <dmitrey.kroshko@scipy.org> wrote:
Hi all, I have to get Ax, A is n x n matrix, x is vector of length n. Some coords of x are zeros, so I want to economy time/cputime somehow w/o connecting sparse module from scipy. What's the easiest way to do so?
Thx, D. _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion

I guess it doesn't matter, but typical n are 1...1000. However, I need to call the operation hundreds or thousands times (while running NLP solver ralg, so 4..5 * nIter times). Number of zeros can be 0...n-1 Charles R Harris wrote:
How big is n?
On Dec 14, 2007 1:24 AM, dmitrey <dmitrey.kroshko@scipy.org <mailto:dmitrey.kroshko@scipy.org>> wrote:
Hi all, I have to get Ax, A is n x n matrix, x is vector of length n. Some coords of x are zeros, so I want to economy time/cputime somehow w/o connecting sparse module from scipy. What's the easiest way to do so?
Thx, D. _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org <mailto:Numpy-discussion@scipy.org> http://projects.scipy.org/mailman/listinfo/numpy-discussion
------------------------------------------------------------------------
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion

On Fri, 14 Dec 2007, dmitrey apparently wrote:
I guess it doesn't matter, but typical n are 1...1000. However, I need to call the operation hundreds or thousands times (while running NLP solver ralg, so 4..5 * nIter times). Number of zeros can be 0...n-1
Do both A and x change every iteration? Anyway, if x is sparse I think you'll get some benefit by doing idx=N.ravel(x)!=0 A[:,idx]*x[idx] hth, Alan Isaac

Thank you for the tip, however, I expect <A,x> being vector of length n A and x change every iter. A is not sparse. Alan G Isaac wrote:
On Fri, 14 Dec 2007, dmitrey apparently wrote:
I guess it doesn't matter, but typical n are 1...1000. However, I need to call the operation hundreds or thousands times (while running NLP solver ralg, so 4..5 * nIter times). Number of zeros can be 0...n-1
Do both A and x change every iteration?
Anyway, if x is sparse I think you'll get some benefit by doing idx=N.ravel(x)!=0 A[:,idx]*x[idx]
hth, Alan Isaac
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion

idx=N.ravel(x)!=0 A[:,idx]*x[idx]
On Fri, 14 Dec 2007, dmitrey apparently wrote:
I expect <A,x> being vector of length n A and x change every iter. A is not sparse.
Still, whenever x has a lot of zeros, this should have a substantial payoff. That seems the only exploitable information you have offered in the problem. Cheers, Alan

Hi, How sparse are A, x and Ax? You probably will not find any time or operation efficiency unless A and x are relatively sparse. With the small size of n, any efficiency will typically be small in any case. As you indicate that this has to be repeated multiple times, perhaps you should look at your overall algorithm for efficiencies. Bruce On Dec 14, 2007 3:44 AM, dmitrey <dmitrey.kroshko@scipy.org> wrote:
I guess it doesn't matter, but typical n are 1...1000. However, I need to call the operation hundreds or thousands times (while running NLP solver ralg, so 4..5 * nIter times). Number of zeros can be 0...n-1
Charles R Harris wrote:
How big is n?
On Dec 14, 2007 1:24 AM, dmitrey <dmitrey.kroshko@scipy.org <mailto:dmitrey.kroshko@scipy.org>> wrote:
Hi all, I have to get Ax, A is n x n matrix, x is vector of length n. Some coords of x are zeros, so I want to economy time/cputime somehow w/o connecting sparse module from scipy. What's the easiest way to do so?
Thx, D. _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org <mailto:Numpy-discussion@scipy.org> http://projects.scipy.org/mailman/listinfo/numpy-discussion
------------------------------------------------------------------------
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion
participants (4)
-
Alan G Isaac
-
Bruce Southey
-
Charles R Harris
-
dmitrey