55 s = x * sqrt (1.0 + r*r) ;
67 s = y * sqrt (1.0 + r*r) ;
97 double *cr,
double *ci
100 double tr, ti, r, den ;
101 if (fabs (br) >= fabs (bi))
105 tr = (ar + ai * r) / den ;
106 ti = (ai - ar * r) / den ;
112 tr = (ar * r + ai) / den ;
113 ti = (ai * r - ar) / den ;
156 double *Xold, *Zold, *Xnew, *Znew ;
160 if (xtype_out < xtype1 || xtype_out > xtype2)
188 Xnew =
CHOLMOD(malloc) (nz,
sizeof (double), Common) ;
193 for (k = 0 ; k < nz ; k++)
206 Xnew =
CHOLMOD(malloc) (nz, 2*
sizeof (double), Common) ;
211 for (k = 0 ; k < nz ; k++)
225 Xnew =
CHOLMOD(malloc) (nz,
sizeof (double), Common) ;
226 Znew =
CHOLMOD(malloc) (nz,
sizeof (double), Common) ;
229 CHOLMOD(free) (nz,
sizeof (double), Xnew, Common) ;
230 CHOLMOD(free) (nz,
sizeof (double), Znew, Common) ;
233 for (k = 0 ; k < nz ; k++)
259 *XX =
CHOLMOD(free) (nz,
sizeof (double), *XX, Common) ;
268 Xnew =
CHOLMOD(malloc) (nz, 2*
sizeof (double), Common) ;
273 for (k = 0 ; k < nz ; k++)
275 Xnew [2*k ] = Xold [k] ;
278 CHOLMOD(free) (nz,
sizeof (double), *XX, Common) ;
288 Znew =
CHOLMOD(malloc) (nz,
sizeof (double), Common) ;
293 for (k = 0 ; k < nz ; k++)
317 *XX =
CHOLMOD(free) (nz, 2*
sizeof (double), *XX, Common) ;
326 for (k = 0 ; k < nz ; k++)
328 Xold [k] = Xold [2*k] ;
332 *XX =
CHOLMOD(realloc) (nz,
sizeof (double), *XX, &nz2,
342 Xnew =
CHOLMOD(malloc) (nz,
sizeof (double), Common) ;
343 Znew =
CHOLMOD(malloc) (nz,
sizeof (double), Common) ;
346 CHOLMOD(free) (nz,
sizeof (double), Xnew, Common) ;
347 CHOLMOD(free) (nz,
sizeof (double), Znew, Common) ;
350 for (k = 0 ; k < nz ; k++)
352 Xnew [k] = Xold [2*k ] ;
353 Znew [k] = Xold [2*k+1] ;
355 CHOLMOD(free) (nz, 2*
sizeof (double), *XX, Common) ;
377 *XX =
CHOLMOD(free) (nz,
sizeof (double), *XX, Common) ;
378 *ZZ =
CHOLMOD(free) (nz,
sizeof (double), *ZZ, Common) ;
387 *ZZ =
CHOLMOD(free) (nz,
sizeof (double), *ZZ, Common) ;
395 Xnew =
CHOLMOD(malloc) (nz, 2*
sizeof (double), Common) ;
400 for (k = 0 ; k < nz ; k++)
402 Xnew [2*k ] = Xold [k] ;
403 Xnew [2*k+1] = Zold [k] ;
405 CHOLMOD(free) (nz,
sizeof (double), *XX, Common) ;
406 CHOLMOD(free) (nz,
sizeof (double), *ZZ, Common) ;
445 A->xtype = to_xtype ;
476 T->xtype = to_xtype ;
507 X->xtype = to_xtype ;
544 L->xtype = to_xtype ;
int CHOLMOD() sparse_xtype(int to_xtype, cholmod_sparse *A, cholmod_common *Common)
int CHOLMOD() divcomplex(double ar, double ai, double br, double bi, double *cr, double *ci)
#define RETURN_IF_NULL_COMMON(result)
int CHOLMOD() dense_xtype(int to_xtype, cholmod_dense *X, cholmod_common *Common)
static int change_complexity(Int nz, int xtype_in, int xtype_out, int xtype1, int xtype2, void **XX, void **ZZ, cholmod_common *Common)
int CHOLMOD() factor_xtype(int to_xtype, cholmod_factor *L, cholmod_common *Common)
#define RETURN_IF_NULL(A, result)
double CHOLMOD() hypot(double x, double y)
int CHOLMOD() triplet_xtype(int to_xtype, cholmod_triplet *T, cholmod_common *Common)
#define ERROR(status, msg)
#define RETURN_IF_XTYPE_INVALID(A, xtype1, xtype2, result)