Loading...
Searching...
No Matches
Go to the documentation of this file. 1#ifndef MATRIX_LAPACK_ETC_H
2#define MATRIX_LAPACK_ETC_H
16#include <R_ext/Lapack.h>
21#define ERROR_LAPACK_1(_ROUTINE_, _INFO_) \
24 error(_("LAPACK routine '%s': argument %d had illegal value"), \
25 #_ROUTINE_, -(_INFO_)); \
28#define ERROR_LAPACK_2(_ROUTINE_, _INFO_, _WARN_, _LETTER_) \
30 ERROR_LAPACK_1(_ROUTINE_, _INFO_); \
31 if ((_INFO_) > 0 && (_WARN_) > 0) { \
33 error (_("LAPACK routine '%s': matrix is exactly singular, %s[i,i]=0, i=%d"), \
34 #_ROUTINE_, #_LETTER_, (_INFO_)); \
36 warning(_("LAPACK routine '%s': matrix is exactly singular, %s[i,i]=0, i=%d"), \
37 #_ROUTINE_, #_LETTER_, (_INFO_)); \
41#define ERROR_LAPACK_3(_ROUTINE_, _INFO_, _WARN_, _NPROTECT_) \
43 ERROR_LAPACK_1(_ROUTINE_, _INFO_); \
44 if ((_INFO_) > 0 && (_WARN_) > 0) { \
46 error (_("LAPACK routine '%s': leading principal minor of order %d is not positive"), \
47 #_ROUTINE_, (_INFO_)); \
49 warning(_("LAPACK routine '%s': leading principal minor of order %d is not positive"), \
50 #_ROUTINE_, (_INFO_)); \
51 UNPROTECT(_NPROTECT_); \
52 return ScalarInteger(_INFO_); \
57#define ERROR_LAPACK_4(_ROUTINE_, _INFO_, _RANK_, _WARN_) \
59 ERROR_LAPACK_1(_ROUTINE_, _INFO_); \
60 if ((_INFO_) > 0 && (_WARN_) > 0) { \
62 error (_("LAPACK routine '%s': matrix is rank deficient or not positive definite, the _computed_ rank is %d"), \
63 #_ROUTINE_, (_RANK_)); \
65 warning(_("LAPACK routine '%s': matrix is rank deficient or not positive definite, the _computed_ rank is %d"), \
66 #_ROUTINE_, (_RANK_)); \