X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;ds=inline;f=dev4%2Fpsychlops%2Fcore%2Fmath%2Futil.cs;fp=dev4%2Fpsychlops%2Fcore%2Fmath%2Futil.cs;h=20886e0e89425e183aef746a6bee56f5b7ebded9;hb=70d45b57ef59585bb8b82123d054014255d260ca;hp=338423ad5726cfd28567230e098c23db77353a0d;hpb=c37e9a5c4af3c1917504ba88864ebcd6c536a0d5;p=psychlops%2Fsilverlight.git diff --git a/dev4/psychlops/core/math/util.cs b/dev4/psychlops/core/math/util.cs index 338423a..20886e0 100644 --- a/dev4/psychlops/core/math/util.cs +++ b/dev4/psychlops/core/math/util.cs @@ -5,20 +5,20 @@ namespace Psychlops public static class Math { - public static readonly double PI = 3.14159265, E = 2.718281828459045, LOG2E = 1.44269504088896340736; + public const double PI = 3.14159265, E = 2.718281828459045, LOG2E = 1.44269504088896340736; public static Random random_generator; static Math() { random_generator = new Random(); } - public static double max(double val1, double val2) + public static T max(T val1, T val2) where T : IComparable { - return val1 > val2 ? val1 : val2; + return val1.CompareTo(val2) > 0 ? val1 : val2; } - public static double min(double val1, double val2) + public static T min(T val1, T val2) where T : IComparable { - return val1 < val2 ? val1 : val2; + return val1.CompareTo(val2) < 0 ? val1 : val2; } public static void shuffle(X[] array, int n) { @@ -41,6 +41,14 @@ namespace Psychlops { return System.Math.Abs(x); } + public static double floor(double x) + { + return System.Math.Floor(x); + } + public static double ceil(double x) + { + return System.Math.Ceiling(x); + } public static double sin(double x) { return System.Math.Sin(x); @@ -53,6 +61,26 @@ namespace Psychlops { return System.Math.Tan(x); } + public static double asin(double x) + { + return System.Math.Asin(x); + } + public static double acos(double x) + { + return System.Math.Acos(x); + } + public static double atan(double x) + { + return System.Math.Atan(x); + } + public static double atan(double y, double x) + { + return System.Math.Atan2(y, x); + } + public static double atan2(double y, double x) + { + return System.Math.Atan2(y, x); + } public static double sqrt(double x) { return System.Math.Sqrt(x); @@ -69,11 +97,10 @@ namespace Psychlops { return log(val) * LOG2E; } - /*public static int round(double val) + public static double round(double val) { - double integer_part, particle = modf(val, &integer_part); - return ((particle < 0.5 | (particle == 0.5 && (int)integer_part % 2 == 0)) ? (int)integer_part : (int)integer_part + 1); - }*/ + return System.Math.Round(val); + } public static double radius(double x, double y) {