123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #ifndef EMBEDDED
- c_float* csc_to_dns(csc *M)
- {
- c_int i, j = 0;
- c_int idx;
-
- c_float *A = (c_float *)c_calloc(M->m * M->n, sizeof(c_float));
-
- for (idx = 0; idx < M->p[M->n]; idx++)
- {
-
- i = M->i[idx];
-
- while (M->p[j + 1] <= idx) {
- j++;
- }
-
- A[j * (M->m) + i] = M->x[idx];
- }
- return A;
- }
- c_int is_eq_csc(csc *A, csc *B, c_float tol) {
- c_int j, i;
-
- if (A->n != B->n) return 0;
- for (j = 0; j < A->n; j++) {
-
- if (A->p[j] != B->p[j]) return 0;
- for (i = A->p[j]; i < A->p[j + 1]; i++) {
- if ((A->i[i] != B->i[i]) ||
- (c_absval(A->x[i] - B->x[i]) > tol)) {
- return 0;
- }
- }
- }
- return 1;
- }
- #endif
|