Rev 4970 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
/* Sparse triangular matrices in triplet format */#include "dtTMatrix.h"#include "dgTMatrix.h" /* xTMatrix_validate *//* This should be use for *BOTH* triangular and symmetric Tsparse: */SEXP tTMatrix_validate(SEXP x){SEXP val = xTMatrix_validate(x);/* checks x slot */if(isString(val))return(val);else {SEXPislot = GET_SLOT(x, Matrix_iSym),jslot = GET_SLOT(x, Matrix_jSym);int uploT = (*uplo_P(x) == 'U'),k, nnz = length(islot),*xj = INTEGER(jslot),*xi = INTEGER(islot);/* Maybe FIXME: ">" should be ">=" for diag = 'U' (uplo = 'U') */if(uploT) {for (k = 0; k < nnz; k++)if(xi[k] > xj[k])return mkString(_("uplo='U' must not have sparse entries in lower diagonal"));}else {for (k = 0; k < nnz; k++)if(xi[k] < xj[k])return mkString(_("uplo='L' must not have sparse entries in upper diagonal"));}return ScalarLogical(1);}}/* SEXP dtTMatrix_as_dtrMatrix(SEXP x) ---> now in ./TMatrix_as.c */