Unfortunately the use of double precision floating point variables on a Uno will really slow things down. To make matters worse, division and square roots are long operations in floating point. It sounds like you need precision and that's a problem. If you could deal with loss of precision then switching to 64 bit long integers (using them as fixed point numbers) and using look up tables for the hard functions like sqrt would make things a lot faster. The Due can crunch 32 bit numbers in a single cycle and I believe even has op codes for operations that yield 64 bit numbers. But, it has no floating point support at all.

So, I guess my suggestion is this:

1. If precision is important to you then find a processor that does have an FPU. Some ARM Cortex chips do have FPU. You could probably use a BeagleBone Black or Raspberry Pi.

2. If you can lose some precision then use 64 bit integers. A 64 bit signed integer has a range of about +/- 9,223,372,036,854,775,808. Let's say you know that none of your numbers is ever more than +/- 8000. Then you could easily support 15 digits of precision to the right of the decimal point. That's pretty precise. Just for reference, 32 bit integers are +/- 2,147,483,648 which means if you knew you were going to stay within +/- 2000 you could have 6 digits of decimal precision. That's probably not enough though, is it? If it is then you're in luck because the Due will be really screaming fast.

If you go with #2 then precalculate a look up table of around 1024 or 2048 sqrt values. You won't have to precalculate divisions because they'll be hardware accelerated and you can probably get away with doing powers in a tricky way too. If you only need integer powers then that's pretty easy.