If you look at the implementation in Numpy, it also calls `np.add.reduce`. However, it goes via C -> Python -> C route, which should be optimized.