public override DssStatus Solve(DssMatrixStructure matrixStructure, DssMatrixType matrixType, DssSystemType systemType,
                                        int rowCount, int columnCount, int nonZerosCount, int[] rowPointers, int[] columnIndices, Complex32[] values,
                                        int nRhs, Complex32[] rhs, Complex32[] solution)
        {
            if (rowCount != columnCount)
            {
                throw new ArgumentException("Matrix must be symmetric.");
            }

            if (rowPointers == null)
            {
                throw new ArgumentNullException(nameof(rowPointers));
            }

            if (columnIndices == null)
            {
                throw new ArgumentNullException(nameof(columnIndices));
            }

            if (values == null)
            {
                throw new ArgumentNullException(nameof(values));
            }

            if (rhs == null)
            {
                throw new ArgumentNullException(nameof(rhs));
            }

            if (solution == null)
            {
                throw new ArgumentNullException(nameof(solution));
            }

            if (rowCount * nRhs != rhs.Length)
            {
                throw new ArgumentException("The array arguments must have the same length.", nameof(rhs));
            }

            if (columnCount * nRhs != solution.Length)
            {
                throw new ArgumentException("The array arguments must have the same length.", nameof(solution));
            }

            var error = SafeNativeMethods.c_dss_solve((int)matrixStructure, (int)matrixType, (int)systemType,
                                                      rowCount, columnCount, nonZerosCount, rowPointers, columnIndices, values,
                                                      nRhs, rhs, solution);

            return((DssStatus)error);
        }
Пример #2
0
 public virtual DssStatus Solve(DssMatrixStructure matrixStructure, DssMatrixType matrixType, DssSystemType systemType,
                                int rowCount, int columnCount, int nonZerosCount, int[] rowPointers, int[] ColumnIndices, Complex[] values,
                                int nRhs, Complex[] rhs, Complex[] solution)
 {
     throw new NotImplementedException();
 }