# helper method to sure that the global limit is reset back
old = BigDecimal.limit(l)
yield
ensure
BigDecimal.limit(old)
end
old = BigDecimal.mode(BigDecimal::ROUND_MODE)
BigDecimal.mode(BigDecimal::ROUND_MODE, r)
yield
ensure
BigDecimal.mode(BigDecimal::ROUND_MODE, old)
end
end