Matrix r4655
Loading...
Searching...
No Matches
Macros | Functions
validity.c File Reference
#include <math.h>
#include "Mdefines.h"
#include "validity.h"

Go to the source code of this file.

Macros

#define MK(_FORMAT_)   mkString(_FORMAT_ )
 
#define MS(_FORMAT_, ...)   Matrix_sprintf(_FORMAT_, __VA_ARGS__)
 
#define RMK(_FORMAT_)    return MK( _FORMAT_ )
 
#define RMS(_FORMAT_, ...)    return MS(_FORMAT_, __VA_ARGS__)
 
#define RMKMS(_FORMAT_, ...)    return MK(MS(_FORMAT_, __VA_ARGS__))
 
#define FRMKMS(_FORMAT_, ...)
 
#define KINDMATRIX_VALIDATE(_PREFIX_, _SEXPTYPE_)
 
#define KINDVECTOR_VALIDATE(_PREFIX_, _SEXPTYPE_)
 
#define IS_VALID(_CLASS_)
 
#define IS_VALID_SPARSE(_C_)
 

Functions

char * Dim_validate (SEXP dim)
 
SEXP R_Dim_validate (SEXP dim)
 
char * DimNames_validate (SEXP dimnames, int *pdim)
 
SEXP R_DimNames_validate (SEXP dimnames, SEXP dim)
 
SEXP R_DimNames_fixup (SEXP dimnames)
 
SEXP Matrix_validate (SEXP obj)
 
SEXP MatrixFactorization_validate (SEXP obj)
 
SEXP generalMatrix_validate (SEXP obj)
 
SEXP symmetricMatrix_validate (SEXP obj)
 
SEXP triangularMatrix_validate (SEXP obj)
 
SEXP unpackedMatrix_validate (SEXP obj)
 
SEXP packedMatrix_validate (SEXP obj)
 
SEXP CsparseMatrix_validate (SEXP obj)
 
SEXP RsparseMatrix_validate (SEXP obj)
 
SEXP TsparseMatrix_validate (SEXP obj)
 
SEXP diagonalMatrix_validate (SEXP obj)
 
SEXP indMatrix_validate (SEXP obj)
 
SEXP pMatrix_validate (SEXP obj)
 
SEXP sCMatrix_validate (SEXP obj)
 
SEXP tCMatrix_validate (SEXP obj)
 
SEXP sRMatrix_validate (SEXP obj)
 
SEXP tRMatrix_validate (SEXP obj)
 
SEXP sTMatrix_validate (SEXP obj)
 
SEXP tTMatrix_validate (SEXP obj)
 
SEXP xgCMatrix_validate (SEXP obj)
 
SEXP xsCMatrix_validate (SEXP obj)
 
SEXP xtCMatrix_validate (SEXP obj)
 
SEXP xgRMatrix_validate (SEXP obj)
 
SEXP xsRMatrix_validate (SEXP obj)
 
SEXP xtRMatrix_validate (SEXP obj)
 
SEXP xgTMatrix_validate (SEXP obj)
 
SEXP xsTMatrix_validate (SEXP obj)
 
SEXP xtTMatrix_validate (SEXP obj)
 
SEXP dpoMatrix_validate (SEXP obj)
 
SEXP dppMatrix_validate (SEXP obj)
 
SEXP corMatrix_validate (SEXP obj)
 
SEXP copMatrix_validate (SEXP obj)
 
SEXP sparseVector_validate (SEXP obj)
 
SEXP denseLU_validate (SEXP obj)
 
SEXP sparseLU_validate (SEXP obj)
 
SEXP sparseQR_validate (SEXP obj)
 
SEXP BunchKaufman_validate (SEXP obj)
 
SEXP pBunchKaufman_validate (SEXP obj)
 
SEXP Cholesky_validate (SEXP obj)
 
SEXP pCholesky_validate (SEXP obj)
 
SEXP CHMfactor_validate (SEXP obj)
 
SEXP CHMsimpl_validate (SEXP obj)
 
SEXP CHMsuper_validate (SEXP obj)
 
SEXP dCHMsimpl_validate (SEXP obj)
 
SEXP dCHMsuper_validate (SEXP obj)
 
SEXP Schur_validate (SEXP obj)
 
void validObject (SEXP obj, const char *cl)
 

Macro Definition Documentation

◆ FRMKMS

#define FRMKMS (   _FORMAT_,
  ... 
)
Value:
do { \
Matrix_Free(work, lwork); \
RMKMS(_FORMAT_, __VA_ARGS__); \
} while (0)

Definition at line 15 of file validity.c.

◆ IS_VALID

#define IS_VALID (   _CLASS_)
Value:
do { \
status = _CLASS_ ## _validate(obj); \
if (TYPEOF(status) == STRSXP) \
error(_("invalid class \"%s\" object: %s"), \
cl, CHAR(STRING_ELT(status, 0))); \
} while (0)
#define _(String)
Definition Mdefines.h:44
cholmod_common cl
Definition cholmod-etc.c:6

◆ IS_VALID_SPARSE

#define IS_VALID_SPARSE (   _C_)
Value:
do { \
IS_VALID(_C_ ## sparseMatrix); \
if (cl[0] == 'n') { \
if (cl[1] == 's') \
IS_VALID(s ## _C_ ## Matrix); \
else if (cl[1] == 't') \
IS_VALID(t ## _C_ ## Matrix); \
} else { \
if (cl[1] == 'g') \
IS_VALID(xg ## _C_ ## Matrix); \
else if (cl[1] == 's') \
IS_VALID(xs ## _C_ ## Matrix); \
else if (cl[1] == 't') \
IS_VALID(xt ## _C_ ## Matrix); \
} \
} while (0)

◆ KINDMATRIX_VALIDATE

#define KINDMATRIX_VALIDATE (   _PREFIX_,
  _SEXPTYPE_ 
)
Value:
SEXP _PREFIX_ ## Matrix_validate(SEXP obj) \
{ \
SEXP x = GET_SLOT(obj, Matrix_xSym); \
if (TYPEOF(x) != _SEXPTYPE_) \
RMKMS(_("'%s' slot is not of type \"%s\""), "x", type2char(_SEXPTYPE_)); \
return ScalarLogical(1); \
}
#define GET_SLOT(x, what)
Definition Mdefines.h:85
SEXP Matrix_xSym
Definition Msymbols.h:22
SEXP Matrix_validate(SEXP obj)
Definition validity.c:127

Definition at line 145 of file validity.c.

◆ KINDVECTOR_VALIDATE

#define KINDVECTOR_VALIDATE (   _PREFIX_,
  _SEXPTYPE_ 
)
Value:
SEXP _PREFIX_ ## sparseVector_validate(SEXP obj) \
{ \
SEXP x = PROTECT(GET_SLOT(obj, Matrix_xSym)), \
i = PROTECT(GET_SLOT(obj, Matrix_iSym)); \
UNPROTECT(2); /* i, x */ \
if (TYPEOF(x) != _SEXPTYPE_) \
RMKMS(_("'%s' slot is not of type \"%s\""), "x", type2char(_SEXPTYPE_)); \
if (XLENGTH(x) != XLENGTH(i)) \
RMKMS(_("'%s' and '%s' slots do not have equal length"), "i", "x"); \
return ScalarLogical(1); \
}
SEXP Matrix_iSym
Definition Msymbols.h:13
SEXP sparseVector_validate(SEXP obj)
Definition validity.c:970

Definition at line 1034 of file validity.c.

◆ MK

#define MK (   _FORMAT_)    mkString(_FORMAT_ )

Definition at line 5 of file validity.c.

◆ MS

#define MS (   _FORMAT_,
  ... 
)    Matrix_sprintf(_FORMAT_, __VA_ARGS__)

Definition at line 6 of file validity.c.

◆ RMK

#define RMK (   _FORMAT_)     return MK( _FORMAT_ )

Definition at line 8 of file validity.c.

◆ RMKMS

#define RMKMS (   _FORMAT_,
  ... 
)     return MK(MS(_FORMAT_, __VA_ARGS__))

Definition at line 12 of file validity.c.

◆ RMS

#define RMS (   _FORMAT_,
  ... 
)     return MS(_FORMAT_, __VA_ARGS__)

Definition at line 10 of file validity.c.

Function Documentation

◆ BunchKaufman_validate()

SEXP BunchKaufman_validate ( SEXP  obj)

Definition at line 1279 of file validity.c.

References _, GET_SLOT, Matrix_DimSym, Matrix_permSym, and RMKMS.

Referenced by pBunchKaufman_validate().

◆ CHMfactor_validate()

SEXP CHMfactor_validate ( SEXP  obj)

Definition at line 1408 of file validity.c.

References _, FRMKMS, GET_SLOT, Matrix_Calloc, Matrix_DimSym, Matrix_Free, Matrix_permSym, and RMKMS.

◆ CHMsimpl_validate()

SEXP CHMsimpl_validate ( SEXP  obj)

Definition at line 1467 of file validity.c.

References _, GET_SLOT, Matrix_DimSym, Matrix_iSym, Matrix_pSym, and RMKMS.

◆ CHMsuper_validate()

SEXP CHMsuper_validate ( SEXP  obj)

Definition at line 1588 of file validity.c.

References _, GET_SLOT, Matrix_DimSym, and RMKMS.

◆ Cholesky_validate()

SEXP Cholesky_validate ( SEXP  obj)

Definition at line 1318 of file validity.c.

References _, FRMKMS, GET_SLOT, Matrix_Calloc, Matrix_DimSym, Matrix_Free, Matrix_permSym, Matrix_xSym, RMK, and RMKMS.

◆ copMatrix_validate()

SEXP copMatrix_validate ( SEXP  obj)

Definition at line 937 of file validity.c.

References _, GET_SLOT, Matrix_DimSym, Matrix_sdSym, Matrix_uploSym, Matrix_xSym, RMK, and RMKMS.

◆ corMatrix_validate()

SEXP corMatrix_validate ( SEXP  obj)

Definition at line 912 of file validity.c.

References _, GET_SLOT, Matrix_DimSym, Matrix_sdSym, Matrix_xSym, RMK, and RMKMS.

◆ CsparseMatrix_validate()

SEXP CsparseMatrix_validate ( SEXP  obj)

Definition at line 289 of file validity.c.

References _, GET_SLOT, Matrix_DimSym, Matrix_iSym, Matrix_pSym, and RMKMS.

◆ dCHMsimpl_validate()

SEXP dCHMsimpl_validate ( SEXP  obj)

Definition at line 1706 of file validity.c.

References _, GET_SLOT, Matrix_pSym, Matrix_xSym, RMK, and RMKMS.

◆ dCHMsuper_validate()

SEXP dCHMsuper_validate ( SEXP  obj)

Definition at line 1733 of file validity.c.

References _, GET_SLOT, Matrix_xSym, RMK, and RMKMS.

◆ denseLU_validate()

SEXP denseLU_validate ( SEXP  obj)

Definition at line 1052 of file validity.c.

References _, GET_SLOT, Matrix_DimSym, Matrix_permSym, and RMKMS.

◆ diagonalMatrix_validate()

SEXP diagonalMatrix_validate ( SEXP  obj)

Definition at line 430 of file validity.c.

References _, GET_SLOT, Matrix_diagSym, Matrix_DimSym, Matrix_xSym, and RMKMS.

◆ Dim_validate()

char * Dim_validate ( SEXP  dim)

Definition at line 26 of file validity.c.

References _, and RMS.

Referenced by Matrix_validate(), and R_Dim_validate().

◆ DimNames_validate()

char * DimNames_validate ( SEXP  dimnames,
int *  pdim 
)

Definition at line 47 of file validity.c.

References _, and RMS.

Referenced by Matrix_validate(), and R_DimNames_validate().

◆ dpoMatrix_validate()

SEXP dpoMatrix_validate ( SEXP  obj)

Definition at line 862 of file validity.c.

References _, GET_SLOT, Matrix_DimSym, Matrix_xSym, and RMK.

◆ dppMatrix_validate()

SEXP dppMatrix_validate ( SEXP  obj)

Definition at line 883 of file validity.c.

References _, GET_SLOT, Matrix_DimSym, Matrix_uploSym, Matrix_xSym, and RMK.

◆ generalMatrix_validate()

SEXP generalMatrix_validate ( SEXP  obj)

Definition at line 160 of file validity.c.

References _, GET_SLOT, Matrix_factorsSym, and RMKMS.

Referenced by symmetricMatrix_validate().

◆ indMatrix_validate()

SEXP indMatrix_validate ( SEXP  obj)

Definition at line 461 of file validity.c.

References _, GET_SLOT, Matrix_DimSym, Matrix_marginSym, Matrix_permSym, and RMKMS.

◆ Matrix_validate()

SEXP Matrix_validate ( SEXP  obj)

◆ MatrixFactorization_validate()

SEXP MatrixFactorization_validate ( SEXP  obj)

Definition at line 140 of file validity.c.

References Matrix_validate().

◆ packedMatrix_validate()

SEXP packedMatrix_validate ( SEXP  obj)

Definition at line 278 of file validity.c.

References _, GET_SLOT, Matrix_DimSym, Matrix_xSym, and RMKMS.

◆ pBunchKaufman_validate()

SEXP pBunchKaufman_validate ( SEXP  obj)

Definition at line 1311 of file validity.c.

References BunchKaufman_validate().

◆ pCholesky_validate()

SEXP pCholesky_validate ( SEXP  obj)

◆ pMatrix_validate()

SEXP pMatrix_validate ( SEXP  obj)

Definition at line 501 of file validity.c.

References _, FRMKMS, GET_SLOT, Matrix_Calloc, Matrix_DimSym, Matrix_Free, Matrix_permSym, and RMKMS.

◆ R_Dim_validate()

SEXP R_Dim_validate ( SEXP  dim)

Definition at line 41 of file validity.c.

References Dim_validate().

◆ R_DimNames_fixup()

SEXP R_DimNames_fixup ( SEXP  dimnames)

Definition at line 85 of file validity.c.

◆ R_DimNames_validate()

SEXP R_DimNames_validate ( SEXP  dimnames,
SEXP  dim 
)

Definition at line 79 of file validity.c.

References DimNames_validate().

◆ RsparseMatrix_validate()

SEXP RsparseMatrix_validate ( SEXP  obj)

Definition at line 340 of file validity.c.

References _, GET_SLOT, Matrix_DimSym, Matrix_jSym, Matrix_pSym, and RMKMS.

◆ Schur_validate()

SEXP Schur_validate ( SEXP  obj)

Definition at line 1767 of file validity.c.

References _, GET_SLOT, Matrix_DimSym, Matrix_QSym, Matrix_TSym, and RMKMS.

◆ sCMatrix_validate()

SEXP sCMatrix_validate ( SEXP  obj)

Definition at line 525 of file validity.c.

References _, GET_SLOT, Matrix_iSym, Matrix_pSym, Matrix_uploSym, and RMKMS.

Referenced by tCMatrix_validate(), and xsCMatrix_validate().

◆ sparseLU_validate()

SEXP sparseLU_validate ( SEXP  obj)

◆ sparseQR_validate()

SEXP sparseQR_validate ( SEXP  obj)

◆ sparseVector_validate()

SEXP sparseVector_validate ( SEXP  obj)

Definition at line 970 of file validity.c.

References _, GET_SLOT, Matrix_iSym, Matrix_lengthSym, and RMKMS.

◆ sRMatrix_validate()

SEXP sRMatrix_validate ( SEXP  obj)

Definition at line 616 of file validity.c.

References _, GET_SLOT, Matrix_jSym, Matrix_pSym, Matrix_uploSym, and RMKMS.

Referenced by tRMatrix_validate(), and xsRMatrix_validate().

◆ sTMatrix_validate()

SEXP sTMatrix_validate ( SEXP  obj)

Definition at line 707 of file validity.c.

References _, GET_SLOT, Matrix_iSym, Matrix_jSym, Matrix_uploSym, and RMKMS.

Referenced by tTMatrix_validate(), and xsTMatrix_validate().

◆ symmetricMatrix_validate()

SEXP symmetricMatrix_validate ( SEXP  obj)

◆ tCMatrix_validate()

SEXP tCMatrix_validate ( SEXP  obj)

Definition at line 565 of file validity.c.

References _, GET_SLOT, Matrix_diagSym, Matrix_iSym, Matrix_pSym, Matrix_uploSym, RMKMS, and sCMatrix_validate().

Referenced by xtCMatrix_validate().

◆ triangularMatrix_validate()

SEXP triangularMatrix_validate ( SEXP  obj)

Definition at line 239 of file validity.c.

References _, GET_SLOT, Matrix_diagSym, Matrix_DimSym, Matrix_uploSym, and RMKMS.

◆ tRMatrix_validate()

SEXP tRMatrix_validate ( SEXP  obj)

Definition at line 656 of file validity.c.

References _, GET_SLOT, Matrix_diagSym, Matrix_jSym, Matrix_pSym, Matrix_uploSym, RMKMS, and sRMatrix_validate().

Referenced by xtRMatrix_validate().

◆ TsparseMatrix_validate()

SEXP TsparseMatrix_validate ( SEXP  obj)

Definition at line 391 of file validity.c.

References _, GET_SLOT, Matrix_DimSym, Matrix_iSym, Matrix_jSym, and RMKMS.

◆ tTMatrix_validate()

SEXP tTMatrix_validate ( SEXP  obj)

Definition at line 737 of file validity.c.

References _, GET_SLOT, Matrix_diagSym, Matrix_iSym, Matrix_jSym, Matrix_uploSym, RMKMS, and sTMatrix_validate().

Referenced by xtTMatrix_validate().

◆ unpackedMatrix_validate()

SEXP unpackedMatrix_validate ( SEXP  obj)

Definition at line 267 of file validity.c.

References _, GET_SLOT, Matrix_DimSym, Matrix_xSym, and RMKMS.

◆ validObject()

void validObject ( SEXP  obj,
const char *  cl 
)

Definition at line 1802 of file validity.c.

References cl, IS_VALID, and IS_VALID_SPARSE.

Referenced by R_subscript_1ary(), R_subscript_1ary_mat(), and R_subscript_2ary().

◆ xgCMatrix_validate()

SEXP xgCMatrix_validate ( SEXP  obj)

Definition at line 784 of file validity.c.

References _, GET_SLOT, Matrix_iSym, Matrix_xSym, and RMKMS.

Referenced by xsCMatrix_validate(), and xtCMatrix_validate().

◆ xgRMatrix_validate()

SEXP xgRMatrix_validate ( SEXP  obj)

Definition at line 810 of file validity.c.

References _, GET_SLOT, Matrix_jSym, Matrix_xSym, and RMKMS.

Referenced by xsRMatrix_validate(), and xtRMatrix_validate().

◆ xgTMatrix_validate()

SEXP xgTMatrix_validate ( SEXP  obj)

Definition at line 836 of file validity.c.

References _, GET_SLOT, Matrix_iSym, Matrix_xSym, and RMKMS.

Referenced by xsTMatrix_validate(), and xtTMatrix_validate().

◆ xsCMatrix_validate()

SEXP xsCMatrix_validate ( SEXP  obj)

Definition at line 794 of file validity.c.

References sCMatrix_validate(), and xgCMatrix_validate().

◆ xsRMatrix_validate()

SEXP xsRMatrix_validate ( SEXP  obj)

Definition at line 820 of file validity.c.

References sRMatrix_validate(), and xgRMatrix_validate().

◆ xsTMatrix_validate()

SEXP xsTMatrix_validate ( SEXP  obj)

Definition at line 846 of file validity.c.

References sTMatrix_validate(), and xgTMatrix_validate().

◆ xtCMatrix_validate()

SEXP xtCMatrix_validate ( SEXP  obj)

Definition at line 802 of file validity.c.

References tCMatrix_validate(), and xgCMatrix_validate().

◆ xtRMatrix_validate()

SEXP xtRMatrix_validate ( SEXP  obj)

Definition at line 828 of file validity.c.

References tRMatrix_validate(), and xgRMatrix_validate().

◆ xtTMatrix_validate()

SEXP xtTMatrix_validate ( SEXP  obj)

Definition at line 854 of file validity.c.

References tTMatrix_validate(), and xgTMatrix_validate().