reduce iterative approx