The R Project SVN R-packages

Rev

Rev 1787 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1787 Rev 1862
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)));