Ejemplo n.º 1
0
        /// <summary>
        /// For an array of monotonically increasing values, returns
        /// the index i of the largest value such that array[i] &lt;= x.
        /// If x is smaller than the first value, then -1 is returned.
        /// If x is greater than the last value, then a.Length is returned.
        /// </summary>
        public static int IndexOfLargestLessOrEqual <T>(this T[] a, T x)
            where T : IComparable
        {
            var r = new Range1i(0, a.Length - 1);

            if (x.CompareTo(a[0]) < 0)
            {
                return(-1);
            }
            if (x.CompareTo(a[r.Max]) > 0)
            {
                return(a.Length);
            }
            while (r.Size > 1)
            {
                var half = r.Center;
                if (x.CompareTo(a[half]) < 0)
                {
                    r.Max = half;
                }
                else
                {
                    r.Min = half;
                }
            }
            return(r.Min);
        }
 /// <summary></summary>
 public static FilterIntensity Deserialize(JObject json) => new FilterIntensity(Range1i.Parse((string)json["Range"]));
 /// <summary></summary>
 public FilterIntensity(Range1i range)
 {
     Range = range;
 }
Ejemplo n.º 4
0
 private void Init()
 {
     m_indexes = new Range1i(0, m_items.Length - 1);
     // m_domain = new Range1d(m_params[0], m_params[m_indexes.Max]);
 }
Ejemplo n.º 5
0
 public void Write(Range1i x)
 {
     Write(x.Min); Write(x.Max);
 }
Ejemplo n.º 6
0
 private void Init()
 {
     m_indexes = new Range1i(0, m_items.Length - 1);
 }