SPROUT_CONSTEXPR typename sprout::float_promote<ArithmeticType1, ArithmeticType2>::type equal_temperament_value(ArithmeticType1 i, ArithmeticType2 div) { typedef typename sprout::float_promote<ArithmeticType1, ArithmeticType2>::type type; using sprout::pow; return pow(type(2), type(i) / type(div)); }