New vectorized bp, using numpy