6 SEXP
class = PROTECT(R_do_MAKE_CLASS(what)), obj = R_do_new_object(
class);
23 error(
_(
"unexpected type \"%s\" in '%s'"), type2char(type), __func__);
41 error(
_(
"unexpected kind \"%c\" in '%s'"), kind, __func__);
54 return sizeof(double);
56 return sizeof(Rcomplex);
58 error(
_(
"unexpected kind \"%c\" in '%s'"), kind, __func__);
65 if (!IS_S4_OBJECT(obj))
68 int ivalid = R_check_class_etc(obj,
valid);
78 if (IS_S4_OBJECT(obj)) {
80 int ivalid = R_check_class_etc(obj,
valid);
85 return (
cl[2] ==
'd') ?
'n' :
cl[0];
87 switch (TYPEOF(obj)) {
104 if (!IS_S4_OBJECT(obj))
107 int ivalid = R_check_class_etc(obj,
valid);
111 const char *
cl =
valid[ivalid];
112 return (
cl[3] !=
'M') ?
'g' : ((
cl[2] ==
'd') ?
'i' :
cl[1]);
117 if (!IS_S4_OBJECT(obj))
120 int ivalid = R_check_class_etc(obj,
valid);
124 const char *
cl =
valid[ivalid];
152#define RETURN_AS_STRSXP(_C_) \
156 return mkString(""); \
158 char s[] = { c, '\0' }; \
159 return mkString(s); \
#define VALID_NONVIRTUAL_MATRIX
#define VALID_NONVIRTUAL_SHIFT(i, pToInd)
static const char * valid[]
const char * Matrix_nonvirtual(SEXP obj, int strict)
SEXP R_Matrix_repr(SEXP obj)
SEXP R_Matrix_kind(SEXP obj)
SEXP newObject(const char *what)
char Matrix_kind(SEXP obj)
size_t kindToSize(char kind)
#define RETURN_AS_STRSXP(_C_)
char Matrix_shape(SEXP obj)
SEXP R_Matrix_shape(SEXP obj)
char Matrix_repr(SEXP obj)
char typeToKind(SEXPTYPE type)
SEXPTYPE kindToType(char kind)
SEXP R_Matrix_nonvirtual(SEXP obj, SEXP strict)