6 public static class Math
\r
8 public static readonly double PI = 3.14159265, E = 2.718281828459045, LOG2E = 1.44269504088896340736;
\r
9 public static Random random_generator;
\r
12 random_generator = new Random();
\r
15 public static double max(double val1, double val2)
\r
17 return val1 > val2 ? val1 : val2;
\r
19 public static double min(double val1, double val2)
\r
21 return val1 < val2 ? val1 : val2;
\r
23 public static void shuffle<X>(X[] array, int n)
\r
27 for(int i = 1; i < n; i++){
\r
30 array[i] = array[a];
\r
36 public static double mod(double lhs, double rhs)
\r
38 return lhs - System.Math.Floor(lhs/rhs)*rhs;
\r
40 public static double abs(double x)
\r
42 return System.Math.Abs(x);
\r
44 public static double sin(double x)
\r
46 return System.Math.Sin(x);
\r
48 public static double cos(double x)
\r
50 return System.Math.Cos(x);
\r
52 public static double tan(double x)
\r
54 return System.Math.Tan(x);
\r
56 public static double sqrt(double x)
\r
58 return System.Math.Sqrt(x);
\r
60 public static double exp(double x)
\r
62 return System.Math.Exp(x);
\r
64 public static double log(double x)
\r
66 return System.Math.Log(x);
\r
68 public static double log2(double val)
\r
70 return log(val) * LOG2E;
\r
72 /*public static int round(double val)
\r
74 double integer_part, particle = modf(val, &integer_part);
\r
75 return ((particle < 0.5 | (particle == 0.5 && (int)integer_part % 2 == 0)) ? (int)integer_part : (int)integer_part + 1);
\r
78 public static double radius(double x, double y)
\r
80 return System.Math.Sqrt(x * x + y * y);
\r
83 public static double random()
\r
85 return (random_generator.NextDouble());
\r
87 public static int random(int x)
\r
89 return (int)((random_generator.NextDouble()) * x);
\r
91 public static double random(double x)
\r
93 return (random_generator.NextDouble()) * x;
\r
95 public static double random(double x, double y)
\r
97 return (random_generator.NextDouble()) * (y-x) + x;
\r
101 public static double gaussian(double x, double sigma)
\r
103 return exp(- (x*x) / (2*sigma*sigma));
\r