|
|
|
@ -482,58 +482,6 @@ final public class FastMath { |
|
|
|
|
return (float) Math.ceil(fValue); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Fast Trig functions for x86. This forces the trig functiosn to stay |
|
|
|
|
* within the safe area on the x86 processor (-45 degrees to +45 degrees) |
|
|
|
|
* The results may be very slightly off from what the Math and StrictMath |
|
|
|
|
* trig functions give due to rounding in the angle reduction but it will be |
|
|
|
|
* very very close. |
|
|
|
|
* |
|
|
|
|
* note: code from wiki posting on java.net by jeffpk |
|
|
|
|
*/ |
|
|
|
|
public static float reduceSinAngle(float radians) { |
|
|
|
|
radians %= TWO_PI; // put us in -2PI to +2PI space
|
|
|
|
|
if (Math.abs(radians) > PI) { // put us in -PI to +PI space
|
|
|
|
|
radians = radians - (TWO_PI); |
|
|
|
|
} |
|
|
|
|
if (Math.abs(radians) > HALF_PI) {// put us in -PI/2 to +PI/2 space
|
|
|
|
|
radians = PI - radians; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return radians; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns sine of an angle. |
|
|
|
|
* |
|
|
|
|
* note: code from wiki posting on java.net by jeffpk |
|
|
|
|
* |
|
|
|
|
* @param fValue |
|
|
|
|
* The angle to sine, in radians. |
|
|
|
|
* @return The sine of fValue. |
|
|
|
|
* @see java.lang.Math#sin(double) |
|
|
|
|
*/ |
|
|
|
|
public static float sin2(float fValue) { |
|
|
|
|
fValue = reduceSinAngle(fValue); // limits angle to between -PI/2 and +PI/2
|
|
|
|
|
if (Math.abs(fValue) <= Math.PI / 4) { |
|
|
|
|
return (float) Math.sin(fValue); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return (float) Math.cos(Math.PI / 2 - fValue); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns cos of an angle. |
|
|
|
|
* |
|
|
|
|
* @param fValue |
|
|
|
|
* The angle to cosine, in radians. |
|
|
|
|
* @return The cosine of fValue. |
|
|
|
|
* @see java.lang.Math#cos(double) |
|
|
|
|
*/ |
|
|
|
|
public static float cos2(float fValue) { |
|
|
|
|
return sin2(fValue + HALF_PI); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns cosine of an angle. Direct call to java.lang.Math |
|
|
|
|
* @see Math#cos(double) |
|
|
|
|