| /* PR target/56348 */ |
| /* { dg-do compile { target ia32 } } */ |
| /* { dg-require-effective-target fpic } */ |
| /* { dg-options "-O2 -fPIC -mfpmath=sse -msse2" } */ |
| |
| typedef unsigned int size_t; |
| |
| extern double fabs (double __x) __attribute__ ((__nothrow__, __leaf__)) |
| __attribute__ ((__const__)); |
| |
| typedef struct cholmod_sparse_struct |
| { |
| size_t ncol; |
| void *p; |
| } cholmod_sparse; |
| |
| int cholmod_l_reallocate_sparse (size_t, cholmod_sparse *, void *); |
| |
| int |
| cholmod_l_drop (double tol, cholmod_sparse * A) |
| { |
| double aij; |
| double *Ax; |
| long long *Ap, *Ai, *Anz; |
| long long packed, i, j, nrow, ncol, p, pend, nz, values; |
| Ap = A->p; |
| ncol = A->ncol; |
| nz = 0; |
| for (j = 0; j < ncol; j++) |
| for (; p < pend; p++) |
| { |
| i = Ai[p]; |
| aij = Ax[p]; |
| if (i <= j && (fabs (aij) > tol || ((aij) != (aij)))) |
| nz++; |
| } |
| Ap[ncol] = nz; |
| cholmod_l_reallocate_sparse (nz, A, 0); |
| } |