Added few more Math functionality for 2DFFT benchmark
[IRC.git] / Robust / src / ClassLibrary / Math.java
1 public class Math {
2
3   public static double setPI() {
4     double PI = 3.14159265358979323846;
5     return PI;
6   }
7
8   public static double fabs(double x) {
9     if (x < 0) {
10       return -x;
11     } else {
12       return x;
13     }
14   }
15
16   public static float abs(float a) {
17     if (a<0)
18       return -a;
19     else return a;
20   }
21
22   public static double max(double a, double b) {
23     if(a == b)
24       return a;
25     if(a > b) {
26       return a;
27     } else {
28       return b;
29     }
30   }
31
32   public static int imax(int a, int b) {
33     if(a == b)
34       return a;
35     if(a > b) {
36       return a;
37     } else {
38       return b;
39     }
40   }
41
42   public static int imin(int a, int b) {
43     if(a == b)
44       return a;
45     if(a > b) {
46       return b;
47     } else {
48       return a;
49     }
50   }
51
52   /** sqrt(a^2 + b^2) without under/overflow. **/
53   public static double hypot(double a, double b) {
54     double r;
55     if (fabs(a) > fabs(b)) {
56       r = b/a;
57       r = fabs(a)*sqrt(1+r*r);
58     } else if (b != 0) {
59       r = a/b;
60       r = fabs(b)*sqrt(1+r*r);
61     } else {
62       r = 0.0;
63     }
64     return r;
65   }
66
67   public static native double sin(double a);
68   public static native double cos(double a);
69   public static native double asin(double a);
70   public static native double acos(double a);
71   public static native double tan(double a);
72   public static native double atan(double a);
73   public static native double exp(double a);
74   public static native double sqrt(double a);
75   public static native double log(double a);
76   public static native double pow(double a, double b);
77
78   public static native float sinf(float a);
79   public static native float cosf(float a);
80   public static native float expf(float a);
81   public static native float sqrtf(float a);
82   public static native float logf(float a);
83   public static native float powf(float a, float b);
84 }