예제 #1
0
        /// <summary>
        /// Select axis of maximum spread and test for degenerate data sets.
        /// </summary>
        public int Select <T> (KdNode <T> target) where T : IVector
        {
            // Use the internal bounds to detect degenerate data sets.
            IVector diagonal      = target.InternalBounds.Diagonal;
            int     max_spread_id = VectorReductions.IndexNormInf(diagonal);

            // Sanity check for degenerate data-sets
            if (FloatComparison.CloseZero(diagonal[max_spread_id], FloatComparison.DefaultEps))
            {
                throw new DegenerateDatasetException();
            }

            return(max_spread_id);
        }
예제 #2
0
        public void TestIndexNormInf()
        {
            Vector a = Vector.Create(1.0, 2.0);

            Assert.AreEqual(1, VectorReductions.IndexNormInf(a));
        }