Power Function

I was wondering the best way to make a power function for any number. I came up with the conclusion of using Newton’s root finding Method which computes is a method for finding successively better approximations to the roots (or zeroes) of a real-valued function. I was able to find that this worked perfectly on a calculator, but it didn’t work when you program it. This is because the long, double, and float data types are not long enough. A bigDecimal is needed, but the FRC Java which is Java ME doesn’t not have that class. Is there a way to work around this? Thanks a lot.

Isn’t there already a power function in Java.lang.Math?

http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Math.html#pow(double,%20double)

Yes in regular Java but not FRC version. Also in regular java its function is native so the class has no copyable code.

I suspect you did not program it correctly. Double precision floats should have adequate resolution for this.

But there may be a better way. Does the Java FRC runtime math library support logarithms and exponentiation?

If so, there’s a simple solution:

You want to compute:

power = base^x

… for any positive real base and x, correct?

To do so, substitute e^ln(base) for base to get:

power = e^(x*ln(base))

No it doesn’t have log or exponent functions. And no the number of precision has to be more than the max value of double (1.7976931348623157 *10^308). If it’s not then the program keeps running down to the base value, then get a runtime error.

http://www.chiefdelphi.com/forums/showpost.php?p=1087763&postcount=4

Ok thanks. I found it under squawk. Do you know if there are arrayLists, decimalFormat or java.net classes? Thanks again for your help.