
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_lang_StrictMath__
#define __java_lang_StrictMath__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>


class java::lang::StrictMath : public ::java::lang::Object
{

  StrictMath();
public:
  static jint abs(jint);
  static jlong abs(jlong);
  static jfloat abs(jfloat);
  static jdouble abs(jdouble);
  static jint min(jint, jint);
  static jlong min(jlong, jlong);
  static jfloat min(jfloat, jfloat);
  static jdouble min(jdouble, jdouble);
  static jint max(jint, jint);
  static jlong max(jlong, jlong);
  static jfloat max(jfloat, jfloat);
  static jdouble max(jdouble, jdouble);
  static jdouble sin(jdouble);
  static jdouble cos(jdouble);
  static jdouble tan(jdouble);
  static jdouble asin(jdouble);
  static jdouble acos(jdouble);
  static jdouble atan(jdouble);
  static jdouble atan2(jdouble, jdouble);
  static jdouble sinh(jdouble);
  static jdouble cosh(jdouble);
  static jdouble tanh(jdouble);
private:
  static jlong getLowDWord(jlong);
  static jlong getHighDWord(jlong);
  static jdouble buildDouble(jlong, jlong);
public:
  static jdouble cbrt(jdouble);
  static jdouble exp(jdouble);
  static jdouble expm1(jdouble);
  static jdouble log(jdouble);
  static jdouble sqrt(jdouble);
  static jdouble pow(jdouble, jdouble);
  static jdouble IEEEremainder(jdouble, jdouble);
  static jdouble ceil(jdouble);
  static jdouble floor(jdouble);
  static jdouble rint(jdouble);
  static jint round(jfloat);
  static jlong round(jdouble);
  static jdouble random();
  static jdouble toRadians(jdouble);
  static jdouble toDegrees(jdouble);
private:
  static jint remPiOver2(jdouble, JArray< jdouble > *);
  static jint remPiOver2(JArray< jdouble > *, JArray< jdouble > *, jint, jint);
  static jdouble scale(jdouble, jint);
  static jdouble sin(jdouble, jdouble);
  static jdouble cos(jdouble, jdouble);
  static jdouble tan(jdouble, jdouble, jboolean);
public:
  static jdouble signum(jdouble);
  static jfloat signum(jfloat);
  static jdouble ulp(jdouble);
  static jfloat ulp(jfloat);
private:
  static ::java::util::Random * rand;
public:
  static jdouble E;
  static jdouble PI;
private:
  static jdouble TWO_16;
  static jdouble TWO_20;
  static jdouble TWO_24;
  static jdouble TWO_27;
  static jdouble TWO_28;
  static jdouble TWO_29;
  static jdouble TWO_31;
  static jdouble TWO_49;
  static jdouble TWO_52;
  static jdouble TWO_54;
  static jdouble TWO_57;
  static jdouble TWO_60;
  static jdouble TWO_64;
  static jdouble TWO_66;
  static jdouble TWO_1023;
  static JArray< jint > * TWO_OVER_PI;
  static JArray< jdouble > * PI_OVER_TWO;
  static jdouble PI_L;
  static jdouble PIO2_1;
  static jdouble PIO2_1L;
  static jdouble PIO2_2;
  static jdouble PIO2_2L;
  static jdouble PIO2_3;
  static jdouble PIO2_3L;
  static jdouble SQRT_1_5;
  static jdouble SQRT_2;
  static jdouble SQRT_3;
  static jdouble EXP_LIMIT_H;
  static jdouble EXP_LIMIT_L;
  static jdouble CP;
  static jdouble CP_H;
  static jdouble CP_L;
  static jdouble LN2;
  static jdouble LN2_H;
  static jdouble LN2_L;
  static jdouble INV_LN2;
  static jdouble INV_LN2_H;
  static jdouble INV_LN2_L;
  static jdouble LG1;
  static jdouble LG2;
  static jdouble LG3;
  static jdouble LG4;
  static jdouble LG5;
  static jdouble LG6;
  static jdouble LG7;
  static jdouble L1;
  static jdouble L2;
  static jdouble L3;
  static jdouble L4;
  static jdouble L5;
  static jdouble L6;
  static jdouble P1;
  static jdouble P2;
  static jdouble P3;
  static jdouble P4;
  static jdouble P5;
  static jdouble DP_H;
  static jdouble DP_L;
  static jdouble OVT;
  static jdouble S1;
  static jdouble S2;
  static jdouble S3;
  static jdouble S4;
  static jdouble S5;
  static jdouble S6;
  static jdouble C1;
  static jdouble C2;
  static jdouble C3;
  static jdouble C4;
  static jdouble C5;
  static jdouble C6;
  static jdouble T0;
  static jdouble T1;
  static jdouble T2;
  static jdouble T3;
  static jdouble T4;
  static jdouble T5;
  static jdouble T6;
  static jdouble T7;
  static jdouble T8;
  static jdouble T9;
  static jdouble T10;
  static jdouble T11;
  static jdouble T12;
  static jdouble PS0;
  static jdouble PS1;
  static jdouble PS2;
  static jdouble PS3;
  static jdouble PS4;
  static jdouble PS5;
  static jdouble QS1;
  static jdouble QS2;
  static jdouble QS3;
  static jdouble QS4;
  static jdouble ATAN_0_5H;
  static jdouble ATAN_0_5L;
  static jdouble ATAN_1_5H;
  static jdouble ATAN_1_5L;
  static jdouble AT0;
  static jdouble AT1;
  static jdouble AT2;
  static jdouble AT3;
  static jdouble AT4;
  static jdouble AT5;
  static jdouble AT6;
  static jdouble AT7;
  static jdouble AT8;
  static jdouble AT9;
  static jdouble AT10;
  static const jint CBRT_B1 = 715094163;
  static const jint CBRT_B2 = 696219795;
  static jdouble CBRT_C;
  static jdouble CBRT_D;
  static jdouble CBRT_E;
  static jdouble CBRT_F;
  static jdouble CBRT_G;
  static jdouble EXPM1_Q1;
  static jdouble EXPM1_Q2;
  static jdouble EXPM1_Q3;
  static jdouble EXPM1_Q4;
  static jdouble EXPM1_Q5;
public:
  static ::java::lang::Class class$;
};

#endif // __java_lang_StrictMath__
