Exemplo n.º 1
0
        private void argQuickSortIndexes(VoidPtr ip, npy_intp m, VoidPtr sortData, npy_intp startingIndex, int DivSize, int IntpDivSize)
        {
            T[] data = sortData.datap as T[];

            var argSortData = new CArgSortData[m];

            var adjustedIndex = startingIndex + (sortData.data_offset >> DivSize);

            for (npy_intp i = 0; i < m; i++)
            {
                argSortData[i] = new CArgSortData(i, data[adjustedIndex++]);
            }

            //Array.Sort(argSortData);
            argSortData = argSortData.AsParallel().OrderBy(t => t).ToArray();

            npy_intp[] _ip = (npy_intp[])ip.datap;

            npy_intp data_offset = ip.data_offset >> IntpDivSize;

            for (int i = 0; i < m; i++)
            {
                _ip[data_offset++] = argSortData[i].index - startingIndex;
            }
        }
Exemplo n.º 2
0
            public int CompareTo(object obj)
            {
                CArgSortData cv = obj as CArgSortData;

                return(this.dvalue.CompareTo(cv.dvalue));
            }