1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
/* PR target/56348 */
/* { dg-do compile { target ia32 } } */
/* { 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);
}
|