recursive summation