Пример #1
0
        public void argSortIndexes(VoidPtr ip, npy_intp m, VoidPtr sortData, npy_intp startingIndex, NPY_SORTKIND kind, int DivSize, int IntpDivSize)
        {
            var data = sortData.datap as System.Numerics.Complex[];

            var argSortDouble = new ArgSortData_COMPLEX[m];

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

            for (int i = 0; i < m; i++)
            {
                argSortDouble[i] = new ArgSortData_COMPLEX(i, data[i + adjustedIndex]);
            }

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

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

            for (int i = 0; i < m; i++)
            {
                _ip[i + (ip.data_offset >> IntpDivSize)] = argSortDouble[i].index - startingIndex;
            }
        }
Пример #2
0
            public int CompareTo(object obj)
            {
                ArgSortData_COMPLEX cv = obj as ArgSortData_COMPLEX;

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