38 #define CPUTIME ((double) (clock ( )) / CLOCKS_PER_SEC)
43 cholmod_dense *x, *b, *r ;
45 double one [2] = {1,0}, m1 [2] = {-1,0} ;
48 A = cholmod_read_sparse (stdin, &c) ;
49 cholmod_print_sparse (A,
"A", &c) ;
50 if (A == NULL || A->stype == 0)
52 cholmod_free_sparse (&A, &c) ;
56 b = cholmod_ones (A->nrow, 1, A->xtype, &c) ;
58 L = cholmod_analyze (A, &c) ;
59 cholmod_factorize (A, L, &c) ;
60 x = cholmod_solve (CHOLMOD_A, L, b, &c) ;
62 printf(
"Time: %12.4f \n", t1-t0);
63 r = cholmod_copy_dense (b, &c) ;
64 cholmod_sdmult (A, 0, m1, one, x, r, &c) ;
65 printf (
"norm(b-Ax) %8.1e\n",
66 cholmod_norm_dense (r, 0, &c)) ;
67 cholmod_free_factor (&L, &c) ;
68 cholmod_free_sparse (&A, &c) ;
69 cholmod_free_dense (&r, &c) ;
70 cholmod_free_dense (&x, &c) ;
71 cholmod_free_dense (&b, &c) ;