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;
        }
Beispiel #2
0
 public static extern int cs_di_sprealloc(ref cs A, int nzmax);
Beispiel #3
0
 public static extern IntPtr /* css* */ cs_ci_schol(int order, ref cs A);
Beispiel #4
0
 public static extern IntPtr /* csn* */ cs_ci_lu(ref cs A, ref css S, double tol);
Beispiel #5
0
 public static extern int cs_ci_lusol(int order, ref cs A, IntPtr /* double* */ b, double tol);
Beispiel #6
0
 public static extern IntPtr /* csd* */ cs_di_ddone(ref csd D, ref cs C, IntPtr /* void* */ w, int ok);
Beispiel #7
0
 public static extern IntPtr /* int* */ cs_di_idone(IntPtr /* int* */ p, ref cs C, IntPtr /* void* */ w, int ok);
Beispiel #8
0
 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);
Beispiel #9
0
 public static extern IntPtr /* cs* */ cs_di_symperm(ref cs A, IntPtr /* int* */ pinv, int values);
Beispiel #10
0
 public static extern IntPtr /* cs* */ cs_di_permute(ref cs A, IntPtr /* int* */ pinv, IntPtr /* int* */ q, int values);
Beispiel #11
0
 public static extern int cs_di_dropzeros(ref cs A);
Beispiel #12
0
 public static extern int cs_di_droptol(ref cs A, double tol);
Beispiel #13
0
 public static extern IntPtr /* csd* */ cs_di_dmperm(ref cs A, int seed);
Beispiel #14
0
 public static extern IntPtr /* csn* */ cs_di_chol(ref cs A, ref css S);
Beispiel #15
0
 public static extern IntPtr /* int* */ cs_di_amd(int order, ref cs A);
Beispiel #16
0
 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);
Beispiel #17
0
 public static extern int cs_di_reach(ref cs G, ref cs B, int k, IntPtr /* int* */ xi, IntPtr /* int* */ pinv);
Beispiel #18
0
 public static extern int cs_di_updown(ref cs L, int sigma, ref cs C, IntPtr /* int* */ parent);
Beispiel #19
0
 public static extern int cs_di_ereach(ref cs A, int k, IntPtr /* int* */ parent, IntPtr /* int* */ s, IntPtr /* int* */ w);
Beispiel #20
0
 public static extern IntPtr /* int* */ cs_di_counts(ref cs A, IntPtr /* int* */ parent, IntPtr /* int* */ post, int ata);
Beispiel #21
0
 public static extern IntPtr /* csn* */ cs_di_ndone(ref csn N, ref cs C, IntPtr /* void* */ w, IntPtr /* void* */ x, int ok);
Beispiel #22
0
 public static extern int cs_di_dfs(int j, ref cs G, int top, IntPtr /* int* */ xi, IntPtr /* int* */ pstack, IntPtr /* int* */ pinv);
Beispiel #23
0
 public static extern IntPtr /* cs* */ cs_ci_transpose(ref cs A, int values);
Beispiel #24
0
 public static extern IntPtr /* int* */ cs_di_etree(ref cs A, int ata);
Beispiel #25
0
 public static extern int cs_ci_qrsol(int order, ref cs A, IntPtr /* double* */ b);
Beispiel #26
0
 public static extern int cs_di_fkeep(ref cs A, [MarshalAs(UnmanagedType.FunctionPtr)] dfkeep fkeep, IntPtr /* void* */ other);
Beispiel #27
0
 public static extern IntPtr /* csn* */ cs_ci_qr(ref cs A, ref css S);
Beispiel #28
0
 public static extern IntPtr /* int* */ cs_di_maxtrans(ref cs A, int seed);
Beispiel #29
0
 public static extern IntPtr /* css* */ cs_ci_sqr(int order, ref cs A, int qr);
Beispiel #30
0
 public static extern IntPtr /* csd* */ cs_di_scc(ref cs A);