9 if (TYPEOF(s) != STRSXP)
10 error(
_(
"argument '%s' is not of type \"%s\""),
13 error(
_(
"argument '%s' has length %d"),
15 const char *type = CHAR(STRING_ELT(s, 0));
16 if (type[0] ==
'\0' || type[1] !=
'\0')
17 error(
_(
"argument '%s' (\"%s\") does not have string length %d"),
41 error(
_(
"argument '%s' (\"%s\") is not \"%s\", \"%s\", \"%s\", \"%s\", \"%s\", or \"%s\""),
42 ARGNAME, type,
"M",
"O",
"1",
"I",
"F",
"E");
53 if (TYPEOF(s) != STRSXP)
54 error(
_(
"argument '%s' is not of type \"%s\""),
57 error(
_(
"argument '%s' has length %d"),
59 const char *type = CHAR(STRING_ELT(s, 0));
60 if (type[0] ==
'\0' || type[1] !=
'\0')
61 error(
_(
"argument '%s' (\"%s\") does not have string length %d"),
75 error(
_(
"argument '%s' (\"%s\") is not \"%s\", \"%s\", or \"%s\""),
88 int *pdim = INTEGER(dim), m = pdim[0], n = pdim[1];
90 return ScalarReal(0.0);
93 double norm, *work = NULL;
95 work = (
double *) R_alloc((
size_t) m,
sizeof(double));
96#ifdef MATRIX_ENABLE_ZMATRIX
97 if (TYPEOF(x) == CPLXSXP)
99 F77_CALL(zlange)(&t, &m, &n, COMPLEX(x), &m, work
FCONE);
103 F77_CALL(dlange)(&t, &m, &n, REAL(x), &m, work
FCONE);
106 return ScalarReal(norm);
114 int n = INTEGER(dim)[1];
116 return ScalarReal(0.0);
119 char ul = *CHAR(STRING_ELT(uplo, 0));
122 double norm, *work = NULL;
123 if (t ==
'O' || t ==
'I')
124 work = (
double *) R_alloc((
size_t) n,
sizeof(double));
125#ifdef MATRIX_ENABLE_ZMATRIX
126 if (TYPEOF(x) == CPLXSXP)
128 F77_CALL(zlansy)(&t, &ul, &n, COMPLEX(x), &n, work
FCONE FCONE);
132 F77_CALL(dlansy)(&t, &ul, &n, REAL(x), &n, work
FCONE FCONE);
135 return ScalarReal(norm);
143 int n = INTEGER(dim)[1];
145 return ScalarReal(0.0);
148 char ul = CHAR(STRING_ELT(uplo, 0))[0];
151 double norm, *work = NULL;
152 if (t ==
'O' || t ==
'I')
153 work = (
double *) R_alloc((
size_t) n,
sizeof(double));
154#ifdef MATRIX_ENABLE_ZMATRIX
155 if (TYPEOF(x) == CPLXSXP)
157 F77_CALL(zlansp)(&t, &ul, &n, COMPLEX(x), work
FCONE FCONE);
161 F77_CALL(dlansp)(&t, &ul, &n, REAL(x), work
FCONE FCONE);
164 return ScalarReal(norm);
172 int n = INTEGER(dim)[0];
174 return ScalarReal(0.0);
177 char ul = CHAR(STRING_ELT(uplo, 0))[0];
180 char di = CHAR(STRING_ELT(diag, 0))[0];
183 double norm, *work = NULL;
185 work = (
double *) R_alloc((
size_t) n,
sizeof(double));
186#ifdef MATRIX_ENABLE_ZMATRIX
187 if (TYPEOF(x) == CPLXSXP)
189 F77_CALL(zlantr)(&t, &ul, &di, &n, &n, COMPLEX(x), &n, work
FCONE FCONE FCONE);
193 F77_CALL(dlantr)(&t, &ul, &di, &n, &n, REAL(x), &n, work
FCONE FCONE FCONE);
196 return ScalarReal(norm);
204 int n = INTEGER(dim)[0];
206 return ScalarReal(0.0);
209 char ul = CHAR(STRING_ELT(uplo, 0))[0];
212 char di = CHAR(STRING_ELT(diag, 0))[0];
215 double norm, *work = NULL;
217 work = (
double *) R_alloc((
size_t) n,
sizeof(double));
218#ifdef MATRIX_ENABLE_ZMATRIX
219 if (TYPEOF(x) == CPLXSXP)
221 F77_CALL(zlantp)(&t, &ul, &di, &n, COMPLEX(x), work
FCONE FCONE FCONE);
228 return ScalarReal(norm);
236 int *pdim = INTEGER(dim), m = pdim[0], n = pdim[1];
238 error(
_(
"%s(%s) is undefined: '%s' is not square"),
"rcond",
"x",
"x");
240 return(ScalarReal(R_PosInf));
246 double * work = (
double *) R_alloc((
size_t) 4 * n,
sizeof(double));
247#ifdef MATRIX_ENABLE_ZMATRIX
248 if (TYPEOF(x) == CPLXSXP) {
249 double *rwork = (
double *) R_alloc((
size_t) 2 * n,
sizeof(double));
251 F77_CALL(zlange)(&t, &n, &n, COMPLEX(x), &n, work
FCONE);
252 F77_CALL(zgecon)(&t, &n, COMPLEX(y), &n, &norm, &rcond,
253 (Rcomplex *) work, rwork, &info
FCONE);
256 int *iwork = (
int *) R_alloc((
size_t) n,
sizeof(int ));
258 F77_CALL(dlange)(&t, &n, &n, REAL(x), &n, work
FCONE);
259 F77_CALL(dgecon)(&t, &n, REAL(y), &n, &norm, &rcond,
260 (
double *) work, iwork, &info
FCONE);
261#ifdef MATRIX_ENABLE_ZMATRIX
266 return ScalarReal(rcond);
274 int n = INTEGER(dim)[0];
276 return(ScalarReal(R_PosInf));
279 char ul = CHAR(STRING_ELT(uplo, 0))[0];
286#ifdef MATRIX_ENABLE_ZMATRIX
287 if (TYPEOF(x) == CPLXSXP) {
288 double * work = (
double *) R_alloc((
size_t) 4 * n,
sizeof(double));
290 F77_CALL(zlansy)(&t, &ul, &n, COMPLEX(x), &n, work
FCONE FCONE);
291 F77_CALL(zsycon)( &ul, &n, COMPLEX(y), &n, INTEGER(pivot), &norm, &rcond,
292 (Rcomplex *) work, &info
FCONE);
295 double * work = (
double *) R_alloc((
size_t) 2 * n,
sizeof(double));
296 int *iwork = (
int *) R_alloc((
size_t) n,
sizeof(int ));
298 F77_CALL(dlansy)(&t, &ul, &n, REAL(x), &n, work
FCONE FCONE);
299 F77_CALL(dsycon)( &ul, &n, REAL(y), &n, INTEGER(pivot), &norm, &rcond,
300 (
double *) work, iwork, &info
FCONE);
301#ifdef MATRIX_ENABLE_ZMATRIX
306 return ScalarReal(rcond);
314 int n = INTEGER(dim)[0];
316 return(ScalarReal(R_PosInf));
319 char ul = CHAR(STRING_ELT(uplo, 0))[0];
326#ifdef MATRIX_ENABLE_ZMATRIX
327 if (TYPEOF(x) == CPLXSXP) {
328 double * work = (
double *) R_alloc((
size_t) 4 * n,
sizeof(double));
330 F77_CALL(zlansp)(&t, &ul, &n, COMPLEX(x), work
FCONE FCONE);
331 F77_CALL(zspcon)( &ul, &n, COMPLEX(y), INTEGER(pivot), &norm, &rcond,
332 (Rcomplex *) work, &info
FCONE);
335 double * work = (
double *) R_alloc((
size_t) 2 * n,
sizeof(double));
336 int *iwork = (
int *) R_alloc((
size_t) n,
sizeof(int ));
338 F77_CALL(dlansp)(&t, &ul, &n, REAL(x), work
FCONE FCONE);
339 F77_CALL(dspcon)( &ul, &n, REAL(y), INTEGER(pivot), &norm, &rcond,
340 (
double *) work, iwork, &info
FCONE);
341#ifdef MATRIX_ENABLE_ZMATRIX
346 return ScalarReal(rcond);
354 int n = INTEGER(dim)[0];
356 return(ScalarReal(R_PosInf));
359 char ul = CHAR(STRING_ELT(uplo, 0))[0];
365#ifdef MATRIX_ENABLE_ZMATRIX
366 if (TYPEOF(x) == CPLXSXP) {
367 double * work = (
double *) R_alloc((
size_t) 4 * n,
sizeof(double));
368 double *rwork = (
double *) R_alloc((
size_t) n,
sizeof(double));
370 F77_CALL(zlansy)(&t, &ul, &n, COMPLEX(x), &n, work
FCONE FCONE);
371 F77_CALL(zpocon)( &ul, &n, COMPLEX(y), &n, &norm, &rcond,
372 (Rcomplex *) work, rwork, &info
FCONE);
375 double * work = (
double *) R_alloc((
size_t) 3 * n,
sizeof(double));
376 int *iwork = (
int *) R_alloc((
size_t) n,
sizeof(int ));
378 F77_CALL(dlansy)(&t, &ul, &n, REAL(x), &n, work
FCONE FCONE);
379 F77_CALL(dpocon)( &ul, &n, REAL(y), &n, &norm, &rcond,
380 (
double *) work, iwork, &info
FCONE);
381#ifdef MATRIX_ENABLE_ZMATRIX
386 return ScalarReal(rcond);
394 int n = INTEGER(dim)[0];
396 return(ScalarReal(R_PosInf));
399 char ul = CHAR(STRING_ELT(uplo, 0))[0];
405#ifdef MATRIX_ENABLE_ZMATRIX
406 if (TYPEOF(x) == CPLXSXP) {
407 double * work = (
double *) R_alloc((
size_t) 4 * n,
sizeof(double));
408 double *rwork = (
double *) R_alloc((
size_t) n,
sizeof(double));
410 F77_CALL(zlansp)(&t, &ul, &n, COMPLEX(x), work
FCONE FCONE);
411 F77_CALL(zppcon)( &ul, &n, COMPLEX(y), &norm, &rcond,
412 (Rcomplex *) work, rwork, &info
FCONE);
415 double * work = (
double *) R_alloc((
size_t) 3 * n,
sizeof(double));
416 int *iwork = (
int *) R_alloc((
size_t) n,
sizeof(int ));
418 F77_CALL(dlansp)(&t, &ul, &n, REAL(x), work
FCONE FCONE);
419 F77_CALL(dppcon)( &ul, &n, REAL(y), &norm, &rcond,
420 (
double *) work, iwork, &info
FCONE);
421#ifdef MATRIX_ENABLE_ZMATRIX
426 return ScalarReal(rcond);
434 int n = INTEGER(dim)[0];
436 return(ScalarReal(R_PosInf));
439 char ul = CHAR(STRING_ELT(uplo, 0))[0];
442 char di = CHAR(STRING_ELT(diag, 0))[0];
447#ifdef MATRIX_ENABLE_ZMATRIX
448 if (TYPEOF(x) == CPLXSXP) {
449 double * work = (
double *) R_alloc((
size_t) 4 * n,
sizeof(double));
450 double *rwork = (
double *) R_alloc((
size_t) n,
sizeof(double));
451 F77_CALL(ztrcon)(&t, &ul, &di, &n, COMPLEX(x), &n, &rcond,
455 double * work = (
double *) R_alloc((
size_t) 3 * n,
sizeof(double));
456 int *iwork = (
int *) R_alloc((
size_t) n,
sizeof(int ));
457 F77_CALL(dtrcon)(&t, &ul, &di, &n, REAL(x), &n, &rcond,
459#ifdef MATRIX_ENABLE_ZMATRIX
464 return ScalarReal(rcond);
472 int n = INTEGER(dim)[0];
474 return(ScalarReal(R_PosInf));
477 char ul = CHAR(STRING_ELT(uplo, 0))[0];
480 char di = CHAR(STRING_ELT(diag, 0))[0];
485#ifdef MATRIX_ENABLE_ZMATRIX
486 if (TYPEOF(x) == CPLXSXP) {
487 double * work = (
double *) R_alloc((
size_t) 4 * n,
sizeof(double));
488 double *rwork = (
double *) R_alloc((
size_t) n,
sizeof(double));
489 F77_CALL(ztpcon)(&t, &ul, &di, &n, COMPLEX(x), &rcond,
493 double * work = (
double *) R_alloc((
size_t) 3 * n,
sizeof(double));
494 int *iwork = (
int *) R_alloc((
size_t) n,
sizeof(int ));
495 F77_CALL(dtpcon)(&t, &ul, &di, &n, REAL(x), &rcond,
497#ifdef MATRIX_ENABLE_ZMATRIX
502 return ScalarReal(rcond);
#define GET_SLOT(x, what)
SEXP dsyMatrix_rcond(SEXP obj, SEXP trf, SEXP type)
SEXP dspMatrix_norm(SEXP obj, SEXP type)
SEXP dtrMatrix_rcond(SEXP obj, SEXP type)
static char La_norm_type(SEXP s)
SEXP dtpMatrix_rcond(SEXP obj, SEXP type)
SEXP dpoMatrix_rcond(SEXP obj, SEXP trf, SEXP type)
SEXP dgeMatrix_norm(SEXP obj, SEXP type)
SEXP dppMatrix_rcond(SEXP obj, SEXP trf, SEXP type)
SEXP dsyMatrix_norm(SEXP obj, SEXP type)
SEXP dtpMatrix_norm(SEXP obj, SEXP type)
SEXP dgeMatrix_rcond(SEXP obj, SEXP trf, SEXP type)
SEXP dtrMatrix_norm(SEXP obj, SEXP type)
static char La_rcond_type(SEXP s)
SEXP dspMatrix_rcond(SEXP obj, SEXP trf, SEXP type)