Given accurate floating point arithmetic, how to calculate $$a=\lfloor k^{\frac{m}{n}}\rfloor$$
in an efficient way? Here $k,m,n$ are positive integers and $\frac{m}{n}$ and $k^{\frac{m}{n}}$ are floating point numbers.
The problem is that rounding errors may cause an error in a. The only idea coming to my mind is to calculate $a$ in the obvious way and check if $a^\frac{n}{m}\leq k < (a+1)^\frac{n}{m}$.