| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | 
							- using System;
 
- using UnityEngine;
 
- namespace XCharts.Runtime
 
- {
 
-     public static class MathUtil
 
-     {
 
-         public static double Abs(double d)
 
-         {
 
-             return d > 0 ? d : -d;
 
-         }
 
-         public static double Clamp(double d, double min, double max)
 
-         {
 
-             if (d >= min && d <= max) return d;
 
-             else if (d < min) return min;
 
-             else return max;
 
-         }
 
-         public static bool Approximately(double a, double b)
 
-         {
 
-             return Math.Abs(b - a) < Math.Max(0.000001f * Math.Max(Math.Abs(a), Math.Abs(b)), Mathf.Epsilon * 8);
 
-         }
 
-         public static double Clamp01(double value)
 
-         {
 
-             if (value < 0F)
 
-                 return 0F;
 
-             else if (value > 1F)
 
-                 return 1F;
 
-             else
 
-                 return value;
 
-         }
 
-         public static double Lerp(double a, double b, double t)
 
-         {
 
-             return a + (b - a) * Clamp01(t);
 
-         }
 
-         public static bool IsInteger(double value)
 
-         {
 
-             if (value == 0) return true;
 
-             if (value >= -1 && value <= 1) return false;
 
-             return Math.Abs(value % 1) <= (Double.Epsilon * 100);
 
-         }
 
-         public static int GetPrecision(double value)
 
-         {
 
-             if (IsInteger(value)) return 0;
 
-             int count = 1;
 
-             double intvalue = value * Mathf.Pow(10, count);
 
-             while (!IsInteger(intvalue) && count < 38)
 
-             {
 
-                 count++;
 
-                 intvalue = value * Mathf.Pow(10, count);
 
-             }
 
-             return count;
 
-         }
 
-     }
 
- }
 
 
  |