Example #1
0
        /// <summary>
        /// Возвратить индексы элементов массива точек, в которых компонента x наиболее близка к указанным значениям
        /// </summary>
        /// <param name="farr"></param>
        /// <param name="tmin"></param>
        /// <param name="tmax"></param>
        /// <returns></returns>
        private static Tuple <int, int> GetMinMaxIndexies(Point[] farr, double tmin, double tmax)
        {
            if (double.IsNaN(tmin))
            {
                tmin = farr[0].x;
            }
            if (double.IsNaN(tmax))
            {
                tmax = farr.Last().x;
            }
            var tmpmas = farr.Select(p => p.x).ToArray();
            var tmpvec = new Vectors(tmpmas);
            int indmin = Array.IndexOf(tmpmas, tmpvec.BinaryApproxSearch(tmin));
            int indmax = Array.IndexOf(tmpmas, tmpvec.BinaryApproxSearch(tmax));

            return(new Tuple <int, int>(indmin, indmax));
        }