this is now equal logical_and and logical_or, so it should just call that ufunc loop which uses vectorized operations