Buggy code:
; private static long [ ] PI_O_4_BITS = new long [ ] { ( 3373259426L << 32 ) | 560513588L , ( 3301335691L << 32 ) | 2161908945L } ; private static final double [ ] EIGHTHES = new double [ ] { 0 , 0.125 , 0.25 , 0.375 , 0.5 , 0.625 , 0.75 , 0.875 , 1.0 , 1.125 , 1.25 , 1.375 , 1.5 , 1.625 } ; private static final double [ ] CBRTTWO = new double [ ] { 0.6299605249474366 , 0.7937005259840998 , 1.0 , 1.2599210498948732 , 1.5874010519681994 } ; private FastMath ( ) { } public static double sqrt ( final double a ) { } public static double cosh ( double x ) { } public static double sinh ( double x ) { } public static double tanh ( double x ) { } public static double acosh ( final double a ) { } public static double asinh ( double a ) { } public static double atanh ( double a ) { } public static double signum ( final double a ) { } public static double nextUp ( final double a ) { } public static double random ( ) { } public static double exp ( double x ) { } private static double exp ( double x , double extra , double [ ] hiPrec ) { } public static double expm1 ( double x ) { } private static double expm1 ( double x , double [ ] hiPrecOut ) { } private static double slowexp ( final double x , final double [ ] result ) { } private static void split ( final double d , final double [ ] split ) { } private static void resplit ( final double [ ] a ) { } private static void splitMult ( double [ ] a , double [ ] b , double [ ] ans ) { } private static void splitAdd ( final double [ ] a , final double [ ] b , final double [ ] ans ) { } private static void splitReciprocal ( final double [ ] in , final double [ ] result ) { } private static void quadMult ( final double [ ] a , final double [ ] b , final double [ ] result ) { } private static double expint ( int p , final double [ ] result ) { } public static double log ( final double x ) { } private static double log ( final double x , final double [ ] hiPrec ) { } public static double log1p ( final double x ) { } public static double log10 ( final double x ) { } public static double pow ( double x , double y ) { } private static double [ ] slowLog ( double xi ) { } private static double slowSin ( final double x , final double [ ] result ) { } private static double slowCos ( final double x , final double [ ] result ) { } private static void buildSinCosTables ( ) { } private static double polySine ( final double x ) { } private static double polyCosine ( double x ) { } private static double sinQ ( double xa , double xb ) { } private static double cosQ ( double xa , double xb ) { } private static double tanQ ( double xa , double xb , boolean cotanFlag ) { } private static void reducePayneHanek ( double x , double [ ] result ) { } public static double sin ( double x ) { } public static double cos ( double x ) { } public static double tan ( double x ) { } public static double atan ( double x ) { } private static double atan ( double xa , double xb , boolean leftPlane ) { } public static double atan2 ( double y , double x ) { } public static double asin ( double x ) { } public static double acos ( double x ) { } public static double cbrt ( double x ) { } public static double toRadians ( double x ) { } public static double toDegrees ( double x ) { } public static int abs ( final int x ) { } public static long abs ( final long x ) { } public static float abs ( final float x ) { } public static double abs ( double x ) { } public static double ulp ( double x ) { } public static double nextAfter ( double d , double direction ) { } public static double floor ( double x ) { } public static double ceil ( double x ) { } public static double rint ( double x ) { } public static long round ( double x ) { } public static int round ( final float x ) { } public static int min ( final int a , final int b ) { } public static long min ( final long a , final long b ) { } public static float min ( final float a , final float b ) { } public static double min ( final double a , final double b ) { } public static int max ( final int a , final int b ) { } public static long max ( final long a , final long b ) { } public static float max ( final float a , final float b ) { <START_BUG> return a <= b ? b : Float . isNaN ( ( a + b ) ) ? Float . NaN : b ; <END_BUG> } public static double max ( final double a , final double b ) { } }

Fix:
return a <= b ? b : Float . isNaN ( ( a + b ) ) ? Float . NaN : a ;