internal cs CreateSparse(CompressedColumnStorage<T> matrix, List<GCHandle> handles) { var A = new cs(); A.m = matrix.RowCount; A.n = matrix.ColumnCount; A.nz = -1; // CSC format. A.nzmax = matrix.NonZerosCount; A.p = InteropHelper.Pin(matrix.ColumnPointers, handles); A.i = InteropHelper.Pin(matrix.RowIndices, handles); A.x = InteropHelper.Pin(matrix.Values, handles); return A; }
public static extern int cs_di_sprealloc(ref cs A, int nzmax);
public static extern IntPtr /* css* */ cs_ci_schol(int order, ref cs A);
public static extern IntPtr /* csn* */ cs_ci_lu(ref cs A, ref css S, double tol);
public static extern int cs_ci_lusol(int order, ref cs A, IntPtr /* double* */ b, double tol);
public static extern IntPtr /* csd* */ cs_di_ddone(ref csd D, ref cs C, IntPtr /* void* */ w, int ok);
public static extern IntPtr /* int* */ cs_di_idone(IntPtr /* int* */ p, ref cs C, IntPtr /* void* */ w, int ok);
public static extern int cs_di_spsolve(ref cs L, ref cs B, int k, IntPtr /* int* */ xi, IntPtr /* double* */ x, IntPtr /* int* */ pinv, int lo);
public static extern IntPtr /* cs* */ cs_di_symperm(ref cs A, IntPtr /* int* */ pinv, int values);
public static extern IntPtr /* cs* */ cs_di_permute(ref cs A, IntPtr /* int* */ pinv, IntPtr /* int* */ q, int values);
public static extern int cs_di_dropzeros(ref cs A);
public static extern int cs_di_droptol(ref cs A, double tol);
public static extern IntPtr /* csd* */ cs_di_dmperm(ref cs A, int seed);
public static extern IntPtr /* csn* */ cs_di_chol(ref cs A, ref css S);
public static extern IntPtr /* int* */ cs_di_amd(int order, ref cs A);
public static extern int cs_di_scatter(ref cs A, int j, double beta, IntPtr /* int* */ w, IntPtr /* double* */ x, int mark, ref cs C, int nz);
public static extern int cs_di_reach(ref cs G, ref cs B, int k, IntPtr /* int* */ xi, IntPtr /* int* */ pinv);
public static extern int cs_di_updown(ref cs L, int sigma, ref cs C, IntPtr /* int* */ parent);
public static extern int cs_di_ereach(ref cs A, int k, IntPtr /* int* */ parent, IntPtr /* int* */ s, IntPtr /* int* */ w);
public static extern IntPtr /* int* */ cs_di_counts(ref cs A, IntPtr /* int* */ parent, IntPtr /* int* */ post, int ata);
public static extern IntPtr /* csn* */ cs_di_ndone(ref csn N, ref cs C, IntPtr /* void* */ w, IntPtr /* void* */ x, int ok);
public static extern int cs_di_dfs(int j, ref cs G, int top, IntPtr /* int* */ xi, IntPtr /* int* */ pstack, IntPtr /* int* */ pinv);
public static extern IntPtr /* cs* */ cs_ci_transpose(ref cs A, int values);
public static extern IntPtr /* int* */ cs_di_etree(ref cs A, int ata);
public static extern int cs_ci_qrsol(int order, ref cs A, IntPtr /* double* */ b);
public static extern int cs_di_fkeep(ref cs A, [MarshalAs(UnmanagedType.FunctionPtr)] dfkeep fkeep, IntPtr /* void* */ other);
public static extern IntPtr /* csn* */ cs_ci_qr(ref cs A, ref css S);
public static extern IntPtr /* int* */ cs_di_maxtrans(ref cs A, int seed);
public static extern IntPtr /* css* */ cs_ci_sqr(int order, ref cs A, int qr);
public static extern IntPtr /* csd* */ cs_di_scc(ref cs A);