Hi Ed. I am now faster than trunk per spin, even if I replaces the cr72.py file. 10000 iterations: BRANCH: 1 0.000 0.000 4.060 4.060 <string>:1(<module>) 1 0.016 0.016 4.060 4.060 pf:427(single) 10000 0.028 0.000 4.038 0.000 pf:413(calc) 10000 0.133 0.000 4.010 0.000 relax_disp.py:994(func_CR72_full) 10000 0.301 0.000 3.803 0.000 relax_disp.py:545(calc_CR72_chi2) 10003 1.629 0.000 2.862 0.000 cr72.py:101(r2eff_CR72) 70043 0.647 0.000 0.647 0.000 {method 'reduce' of 'numpy.ufunc' objects} 10000 0.042 0.000 0.572 0.000 core.py:1701(masked_where) 30006 0.061 0.000 0.395 0.000 fromnumeric.py:1621(sum) 30006 0.040 0.000 0.305 0.000 _methods.py:23(_sum) 10000 0.142 0.000 0.269 0.000 chi2.py:72(chi2_rankN) 30000 0.267 0.000 0.267 0.000 {method 'outer' of 'numpy.ufunc' objects} 10000 0.026 0.000 0.262 0.000 {method 'view' of 'numpy.ndarray' objects} 20006 0.032 0.000 0.250 0.000 fromnumeric.py:2132(amin) TRUNK, with new CR72. 1 0.000 0.000 6.585 6.585 <string>:1(<module>) 1 0.016 0.016 6.585 6.585 pf:427(single) 10000 0.026 0.000 6.562 0.001 pf:413(calc) 10000 0.133 0.000 6.536 0.001 relax_disp.py:908(func_CR72_full) 10000 0.601 0.000 6.327 0.001 relax_disp.py:456(calc_CR72_chi2) 30003 3.153 0.000 4.907 0.000 cr72.py:101(r2eff_CR72) 180042 1.356 0.000 1.356 0.000 {method 'reduce' of 'numpy.ufunc' objects} 90006 0.165 0.000 1.108 0.000 fromnumeric.py:1621(sum) 90006 0.109 0.000 0.792 0.000 _methods.py:23(_sum) 30000 0.423 0.000 0.775 0.000 chi2.py:32(chi2) 60006 0.096 0.000 0.647 0.000 fromnumeric.py:2132(amin) 60006 0.074 0.000 0.483 0.000 _methods.py:19(_amin) 30003 0.044 0.000 0.350 0.000 fromnumeric.py:2048(amax) TRUNK, with original CR72. 1 0.000 0.000 5.994 5.994 <string>:1(<module>) 1 0.018 0.018 5.994 5.994 pf:427(single) 10000 0.027 0.000 5.971 0.001 pf:413(calc) 10000 0.142 0.000 5.944 0.001 relax_disp.py:908(func_CR72_full) 10000 0.639 0.000 5.722 0.001 relax_disp.py:456(calc_CR72_chi2) 30003 3.093 0.000 4.205 0.000 cr72.py:100(r2eff_CR72) 120036 1.051 0.000 1.051 0.000 {method 'reduce' of 'numpy.ufunc' objects} 30000 0.455 0.000 0.830 0.000 chi2.py:32(chi2) 60003 0.113 0.000 0.755 0.000 fromnumeric.py:1621(sum) 60003 0.078 0.000 0.580 0.000 _methods.py:23(_sum) 30003 0.049 0.000 0.382 0.000 fromnumeric.py:2048(amax) 30003 0.048 0.000 0.350 0.000 fromnumeric.py:2132(amin) 30003 0.045 0.000 0.333 0.000 _methods.py:15(_amax) 30003 0.041 0.000 0.302 0.000 _methods.py:19(_amin) 60003 0.061 0.000 0.061 0.000 {isinstance} 20002 0.061 0.000 0.061 0.000 {method 'flatten' of 'numpy.ndarray' objects} 50046 0.048 0.000 0.048 0.000 {range}