extern public static int GetValues(T_IJMatrix matrix, int nrows, int[] ncols, int[] rows, int[] cols, double[] values);
public extern static int HYPRE_ParaSailsBuildIJMatrix(T_Solver solver, out T_IJMatrix pij_A);
extern public static int Assemble(T_IJMatrix matrix);
extern public static int GetRowCounts(T_IJMatrix matrix, int nrows, int[] rows, int[] ncols);
extern public static int Destroy(T_IJMatrix matrix);
extern public static int Initialize(T_IJMatrix matrix);
extern static int Create8(ulong MPI_Comm, int ilower, int iupper, int jlower, int jupper, out T_IJMatrix matrix);
/// <summary> /// creates a new IJ matrix object /// </summary> public static int Create(MPI_Comm MPI_Comm, int ilower, int iupper, int jlower, int jupper, out T_IJMatrix matrix) { ulong _com8; uint _com4; // we need to convert the MPI comm in ilPSP (which is a FORTRAN MPI comm) // to a C-MPI comm: can be either 4 or 8 bytes! int sz = csMPI.Raw.MPI_Comm_f2c(MPI_Comm, out _com4, out _com8); switch (sz) { case 4: return(Create4(_com4, ilower, iupper, jlower, jupper, out matrix)); case 8: return(Create8(_com8, ilower, iupper, jlower, jupper, out matrix)); default: throw new NotImplementedException(); } }
extern public static int SetDiagOffdSizes(T_IJMatrix matrix, int[] diag_sizes, int[] offdiag_sizes);
extern public static int SetMaxOffProcElmts(T_IJMatrix matrix, int max_off_proc_elmts);
extern public static int SetRowSizes(T_IJMatrix matrix, int[] sizes);
extern public static int GetObject(T_IJMatrix matrix, out T_ParCSR_matrix mtx_object);
extern public static int GetLocalRange(T_IJMatrix matrix, ref int ilower, ref int iupper, ref int jlower, ref int jupper);
extern public static int GetObjectType(T_IJMatrix matrix, out int type);
extern public static int SetObjectType(T_IJMatrix matrix, int type);