| Line 44... |
Line 44... |
| 44 |
ans = PROTECT(NEW_OBJECT(MAKE_CLASS("lsCMatrix")));
|
44 |
ans = PROTECT(NEW_OBJECT(MAKE_CLASS("lsCMatrix")));
|
| 45 |
int n = INTEGER(xDim)[0], nz = length(Xi);
|
45 |
int n = INTEGER(xDim)[0], nz = length(Xi);
|
| 46 |
int *xj = expand_cmprPt(n, INTEGER(GET_SLOT(x, Matrix_pSym)),
|
46 |
int *xj = expand_cmprPt(n, INTEGER(GET_SLOT(x, Matrix_pSym)),
|
| 47 |
Calloc(nz, int)),
|
47 |
Calloc(nz, int)),
|
| 48 |
*xi = Memcpy(Calloc(nz, int), Xi, nz);
|
48 |
*xi = Memcpy(Calloc(nz, int), Xi, nz);
|
| 49 |
int up = CHAR(asChar(GET_SLOT(x, Matrix_uploSym)))[0] == 'U';
|
49 |
int up = uplo_P(x)[0] == 'U';
|
| 50 |
|
50 |
|
| 51 |
SET_SLOT(ans, Matrix_DimSym, duplicate(xDim));
|
51 |
SET_SLOT(ans, Matrix_DimSym, duplicate(xDim));
|
| 52 |
SET_SLOT(ans, Matrix_DimNamesSym,
|
52 |
SET_SLOT(ans, Matrix_DimNamesSym,
|
| 53 |
duplicate(GET_SLOT(x, Matrix_DimNamesSym)));
|
53 |
duplicate(GET_SLOT(x, Matrix_DimNamesSym)));
|
| 54 |
SET_SLOT(ans, Matrix_uploSym, mkString(up ? "L" : "U"));
|
54 |
SET_SLOT(ans, Matrix_uploSym, mkString(up ? "L" : "U"));
|
| Line 79... |
Line 79... |
| 79 |
int *Xi = INTEGER(GET_SLOT(x, Matrix_iSym)),
|
79 |
int *Xi = INTEGER(GET_SLOT(x, Matrix_iSym)),
|
| 80 |
*Xp = INTEGER(GET_SLOT(x, Matrix_pSym)),
|
80 |
*Xp = INTEGER(GET_SLOT(x, Matrix_pSym)),
|
| 81 |
*P, *Pinv = (int *) NULL, *Parent, *Lp;
|
81 |
*P, *Pinv = (int *) NULL, *Parent, *Lp;
|
| 82 |
double *D = Calloc(n, double), *Tx, *Xx = Calloc(Xp[n], double);
|
82 |
double *D = Calloc(n, double), *Tx, *Xx = Calloc(Xp[n], double);
|
| 83 |
|
83 |
|
| 84 |
if (CHAR(asChar(GET_SLOT(x, Matrix_uploSym)))[0] != 'U')
|
84 |
if (uplo_P(x)[0] != 'U')
|
| 85 |
error(_("Must have uplo == 'U' in x argument to lsCMatrix_chol"));
|
85 |
error(_("Must have uplo == 'U' in x argument to lsCMatrix_chol"));
|
| 86 |
SET_SLOT(ans, Matrix_uploSym, mkString("L"));
|
86 |
SET_SLOT(ans, Matrix_uploSym, mkString("L"));
|
| 87 |
SET_SLOT(ans, Matrix_diagSym, mkString("U"));
|
87 |
SET_SLOT(ans, Matrix_diagSym, mkString("U"));
|
| 88 |
SET_SLOT(ans, Matrix_DimSym, duplicate(GET_SLOT(x, Matrix_DimSym)));
|
88 |
SET_SLOT(ans, Matrix_DimSym, duplicate(GET_SLOT(x, Matrix_DimSym)));
|
| 89 |
SET_SLOT(ans, Matrix_DimNamesSym, duplicate(GET_SLOT(x, Matrix_DimNamesSym)));
|
89 |
SET_SLOT(ans, Matrix_DimNamesSym, duplicate(GET_SLOT(x, Matrix_DimNamesSym)));
|