add error bound efficiency convergence