MCPcopy Create free account
hub / github.com/PyMesh/PyMesh / import_raw_csc

Method import_raw_csc

src/Math/ZSparseMatrix.cpp:9–51  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

7using namespace PyMesh;
8
9void ZSparseMatrix::import_raw_csc(
10 size_t num_rows, size_t num_cols,
11 int* inner_idx_array, size_t inner_size,
12 int* outer_idx_array, size_t outer_size,
13 double* value_array, size_t value_size) {
14 assert(outer_size > 1);
15 assert(inner_size == value_size);
16 assert(num_cols == outer_size - 1);
17
18 VectorI nnz(outer_size - 1);
19 for (size_t i=1; i<outer_size; i++) {
20 nnz[i-1] = outer_idx_array[i] - outer_idx_array[i-1];
21 }
22
23 resize(num_rows, num_cols);
24 reserve(value_size);
25
26 size_t col,row;
27 double val;
28 for (size_t i=0; i<outer_size-1; i++) {
29 col = i;
30 const size_t start = outer_idx_array[i];
31 const size_t end = outer_idx_array[i+1];
32 for (size_t j=start; j<end; j++) {
33 row = inner_idx_array[j];
34 val = value_array[j];
35 insert(row, col) = val;
36 }
37 }
38
39 makeCompressed();
40 assert(isCompressed());
41 assert(outer_size == get_outer_size());
42 assert(inner_size == get_inner_size());
43 assert(value_size == get_value_size());
44 for (size_t i=0; i<outer_size; i++) {
45 assert(outer_idx_array[i] == outerIndexPtr()[i]);
46 }
47 for (size_t i=0; i<inner_size; i++) {
48 assert(inner_idx_array[i] == innerIndexPtr()[i]);
49 assert(value_array[i] == valuePtr()[i]);
50 }
51}
52
53void ZSparseMatrix::import_raw_coo(
54 size_t num_rows, size_t num_cols,

Callers 1

TEST_FFunction · 0.80

Calls

no outgoing calls

Tested by 1

TEST_FFunction · 0.64