Thank you Dag, I will look into it. Is there any documentation about ufunc? Is this the file core/src/umath/ufunc_object.c
Massimo On May 22, 2012, at 1:47 PM, Dag Sverre Seljebotn wrote: > On 05/22/2012 04:54 PM, Massimo DiPierro wrote: >> For now I will be doing this: >> >> import numpy >> import time >> >> a=numpy.zeros(2000000) >> b=numpy.zeros(2000000) >> c=1.0 >> >> # naive solution >> t0 = time.time() >> for i in xrange(len(a)): >> a[i] += c*b[i] >> print time.time()-t0 >> >> # possible solution >> n=100000 >> t0 = time.time() >> for i in xrange(0,len(a),n): >> a[i:i+n] += c*b[i:i+n] >> print time.time()-t0 >> >> the second "possible" solution appears 1000x faster then the former >> in my tests and uses little extra memory. It is only 2x slower than >> b*=c. >> >> Any reason not to do it? > > No, this is perfectly fine, you just manually did what numexpr does. > > > On 05/22/2012 04:47 PM, Massimo DiPierro wrote: >> Thank you. I will look into numexpr. >> >> Anyway, I do not need arbitrary expressions. If there were >> something like >> >> numpy.add_scaled(a,scale,b) >> >> with support for scale in int, float, complex, this would be > sufficient for me. > > But of course, few needs *arbitrary* expressions -- it's just that the > ones they want are not already compiled. > > It's the last 5% functionality that's different for everybody... > > (But the example you mention could make a nice ufunc; so an > alternative > for you would be to look at the C implementation of np.add and try to > submit a pull request for numpy.add_scaled) > > Dag > _______________________________________________ > NumPy-Discussion mailing list > [email protected] > http://mail.scipy.org/mailman/listinfo/numpy-discussion _______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
