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