Yeah, I memory wise it doesn't matter to sum to a double, but just trying around it seems that the mixing of float and double is very slow (at least on my comp) while if the starting array is already double there is almost no difference for summing. Generally double precision calculations should be slower though. Don't extensions like SSE2 operate either on 2 doubles or 4 floats at once and thus should be about twice as fast for floats? For add/multiply this behaviour is for me visible anyways.
Some timeings for sum and also add with different datatypes, f64 being a float64 and f32 a float32 array (times not very exact): In [20]: %timeit f32.sum(dtype='float32') 10 loops, best of 3: 70.5 ms per loop In [21]: %timeit f32.sum(dtype='float64') 10 loops, best of 3: 334 ms per loop In [22]: %timeit f64.sum(dtype='float32') 10 loops, best of 3: 329 ms per loop In [23]: %timeit f64.sum(dtype='float64') 10 loops, best of 3: 75.3 ms per loop And add (similar for multiplying): In [50]: %timeit add(f64, 1.32, f64) 10 loops, best of 3: 158 ms per loop In [51]: %timeit add(f32, 1.32, f32) 10 loops, best of 3: 78.1 ms per loop It seems here numpy picked float32 for 1.32 in the second case. If I give array([1.32], dtype='float64') performance drops to 200+ ms! Maybe this speed difference when summing to a different type is a reason for not changing the default type though. Sebastian _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion