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(); }
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); }