Esempio n. 1
0
        public static T[] GetDiagonal <T>(this T[,] matrix, DiagonalType dType)
        {
            T[] array       = new T[Math.Min(matrix.GetLength(0), matrix.GetLength(1))];
            int rowIterator = 0;
            int colIterator = (dType == DiagonalType.Left) ? 0 : (Math.Min(matrix.GetLength(0), matrix.GetLength(1)) - 1);

            while ((dType == DiagonalType.Left) ? colIterator < Math.Min(matrix.GetLength(0), matrix.GetLength(1)) : colIterator >= 0)
            {
                array[colIterator] = matrix[rowIterator, colIterator];
                rowIterator++;
                if (dType == DiagonalType.Left)
                {
                    colIterator++;
                }
                else
                {
                    colIterator--;
                }
            }
            return(array);
        }
Esempio n. 2
0
 public static extern SparseStatus cusparseSetMatDiagType(IntPtr descrA, DiagonalType diagType);