Matrix r4655
|
#include "version.h"
#include <string.h>
#include <stdint.h>
#include <limits.h>
#include <float.h>
#include <R.h>
#include <Rinternals.h>
#include "Msymbols.h"
#include "utils.h"
Go to the source code of this file.
Macros | |
#define | Matrix_Domain "Matrix" |
#define | Matrix_CallocThreshold 8192 |
#define | Matrix_ErrorBufferSize 4096 |
#define | MATRIX_INT_FAST64_MIN LLONG_MIN |
#define | MATRIX_INT_FAST64_MAX LLONG_MAX |
#define | STRICT_R_HEADERS |
#define | _(String) (String) |
#define | dngettext(Domain, String, StringP, N) ((N == 1) ? String : StringP) |
#define | Matrix_Calloc(_VAR_, _N_, _CTYPE_) |
#define | Matrix_Free(_VAR_, _N_) |
#define | GET_SLOT(x, what) R_do_slot(x, what) |
#define | SET_SLOT(x, what, value) R_do_slot_assign(x, what, value) |
#define | MINOF(x, y) ((x < y) ? x : y) |
#define | MAXOF(x, y) ((x < y) ? y : x) |
#define | FIRSTOF(x, y) (x) |
#define | SECONDOF(x, y) (y) |
#define | ISNA_PATTERN(_X_) (0) |
#define | ISNA_LOGICAL(_X_) ((_X_) == NA_LOGICAL) |
#define | ISNA_INTEGER(_X_) ((_X_) == NA_INTEGER) |
#define | ISNA_REAL(_X_) (ISNAN(_X_)) |
#define | ISNA_COMPLEX(_X_) (ISNAN((_X_).r) || ISNAN((_X_).i)) |
#define | ISNZ_PATTERN(_X_) ((_X_) != 0) |
#define | ISNZ_LOGICAL(_X_) ((_X_) != 0) |
#define | ISNZ_INTEGER(_X_) ((_X_) != 0) |
#define | ISNZ_REAL(_X_) ((_X_) != 0.0) |
#define | ISNZ_COMPLEX(_X_) ((_X_).r != 0.0 || (_X_).i != 0.0) |
#define | STRICTLY_ISNZ_PATTERN(_X_) ( ISNZ_PATTERN(_X_)) |
#define | STRICTLY_ISNZ_LOGICAL(_X_) (!ISNA_LOGICAL(_X_) && ISNZ_LOGICAL(_X_)) |
#define | STRICTLY_ISNZ_INTEGER(_X_) (!ISNA_INTEGER(_X_) && ISNZ_INTEGER(_X_)) |
#define | STRICTLY_ISNZ_REAL(_X_) (!ISNA_REAL( _X_) && ISNZ_REAL( _X_)) |
#define | STRICTLY_ISNZ_COMPLEX(_X_) (!ISNA_COMPLEX(_X_) && ISNZ_COMPLEX(_X_)) |
#define | NOTREAL_PATTERN(_X_) 0 |
#define | NOTREAL_LOGICAL(_X_) 0 |
#define | NOTREAL_INTEGER(_X_) 0 |
#define | NOTREAL_REAL(_X_) 0 |
#define | NOTREAL_COMPLEX(_X_) (_X_.i != 0.0) |
#define | NOTCONJ_PATTERN(_X_, _Y_) ((_X_ != 0) != (_Y_ != 0)) |
#define | NOTCONJ_LOGICAL(_X_, _Y_) (_X_ != _Y_) |
#define | NOTCONJ_INTEGER(_X_, _Y_) (_X_ != _Y_) |
#define | NOTCONJ_REAL(_X_, _Y_) ((ISNAN(_X_)) ? !ISNAN(_Y_) : ISNAN(_Y_) || _X_ != _Y_) |
#define | NOTCONJ_COMPLEX(_X_, _Y_) |
#define | INCREMENT_PATTERN(_X_, _Y_) |
#define | INCREMENT_LOGICAL(_X_, _Y_) |
#define | INCREMENT_INTEGER(_X_, _Y_) |
#define | INCREMENT_REAL(_X_, _Y_) |
#define | INCREMENT_COMPLEX(_X_, _Y_) |
#define | ASSIGN_REAL(_X_, _Y_) do { _X_ = _Y_ ; } while (0) |
#define | ASSIGN_COMPLEX(_X_, _Y_) do { _X_.r = _Y_.r; _X_.i = _Y_.i; } while (0) |
#define | SCALE1_REAL(_X_, _A_) do { _X_ *= _A_; } while (0) |
#define | SCALE1_COMPLEX(_X_, _A_) do { _X_.r *= _A_; _X_.i *= _A_; } while (0) |
#define | SCALE2_REAL(_X_, _A_) do { _X_ /= _A_; } while (0) |
#define | SCALE2_COMPLEX(_X_, _A_) do { _X_.r /= _A_; _X_.i /= _A_; } while (0) |
#define | PACKED_AR21_UP(i, j) ((R_xlen_t) ((i) + ((Matrix_int_fast64_t) (j) * ( (j) + 1)) / 2)) |
#define | PACKED_AR21_LO(i, j, m2) ((R_xlen_t) ((i) + ((Matrix_int_fast64_t) (j) * ((m2) - (j) - 1)) / 2)) |
#define | PACKED_LENGTH(m) ((R_xlen_t) ((m) + ((Matrix_int_fast64_t) (m) * ( (m) - 1)) / 2)) |
#define | SHOW(...) __VA_ARGS__ |
#define | HIDE(...) |
#define | ERROR_INVALID_TYPE(_X_, _FUNC_) |
#define | ERROR_INVALID_CLASS(_X_, _FUNC_) |
#define | VALID_NONVIRTUAL_MATRIX |
#define | VALID_NONVIRTUAL_VECTOR |
#define | VALID_NONVIRTUAL VALID_NONVIRTUAL_MATRIX, VALID_NONVIRTUAL_VECTOR |
#define | VALID_NONVIRTUAL_SHIFT(i, pToInd) ((i >= 5) ? 0 : ((i >= 4) ? pToInd != 0 : ((i >= 2) ? 57 : 59))) |
#define | VALID_DENSE |
#define | VALID_CSPARSE |
#define | VALID_RSPARSE |
#define | VALID_TSPARSE |
#define | VALID_DIAGONAL "ndiMatrix", "ldiMatrix", "idiMatrix", "ddiMatrix", "zdiMatrix" |
Typedefs | |
typedef long long | Matrix_int_fast64_t |
Functions | |
void * | alloca (size_t) |
SEXP | newObject (const char *) |
void | validObject (SEXP, const char *) |
char | typeToKind (SEXPTYPE) |
SEXPTYPE | kindToType (char) |
size_t | kindToSize (char) |
int | DimNames_is_trivial (SEXP) |
int | DimNames_is_symmetric (SEXP) |
void | symDN (SEXP, SEXP, int) |
void | revDN (SEXP, SEXP) |
SEXP | get_symmetrized_DimNames (SEXP, int) |
SEXP | get_reversed_DimNames (SEXP) |
void | set_symmetrized_DimNames (SEXP, SEXP, int) |
void | set_reversed_DimNames (SEXP, SEXP) |
Variables | |
Rcomplex | Matrix_zzero |
Rcomplex | Matrix_zone |
Rcomplex | Matrix_zna |
#define _ | ( | String | ) | (String) |
Definition at line 44 of file Mdefines.h.
#define ASSIGN_COMPLEX | ( | _X_, | |
_Y_ | |||
) | do { _X_.r = _Y_.r; _X_.i = _Y_.i; } while (0) |
Definition at line 181 of file Mdefines.h.
#define ASSIGN_REAL | ( | _X_, | |
_Y_ | |||
) | do { _X_ = _Y_ ; } while (0) |
Definition at line 179 of file Mdefines.h.
#define dngettext | ( | Domain, | |
String, | |||
StringP, | |||
N | |||
) | ((N == 1) ? String : StringP) |
Definition at line 45 of file Mdefines.h.
#define ERROR_INVALID_CLASS | ( | _X_, | |
_FUNC_ | |||
) |
Definition at line 208 of file Mdefines.h.
#define ERROR_INVALID_TYPE | ( | _X_, | |
_FUNC_ | |||
) |
Definition at line 204 of file Mdefines.h.
#define FIRSTOF | ( | x, | |
y | |||
) | (x) |
Definition at line 99 of file Mdefines.h.
#define GET_SLOT | ( | x, | |
what | |||
) | R_do_slot(x, what) |
Definition at line 85 of file Mdefines.h.
#define HIDE | ( | ... | ) |
Definition at line 202 of file Mdefines.h.
#define INCREMENT_COMPLEX | ( | _X_, | |
_Y_ | |||
) |
Definition at line 173 of file Mdefines.h.
#define INCREMENT_INTEGER | ( | _X_, | |
_Y_ | |||
) |
Definition at line 155 of file Mdefines.h.
#define INCREMENT_LOGICAL | ( | _X_, | |
_Y_ | |||
) |
Definition at line 147 of file Mdefines.h.
#define INCREMENT_PATTERN | ( | _X_, | |
_Y_ | |||
) |
Definition at line 143 of file Mdefines.h.
#define INCREMENT_REAL | ( | _X_, | |
_Y_ | |||
) |
Definition at line 169 of file Mdefines.h.
#define ISNA_COMPLEX | ( | _X_ | ) | (ISNAN((_X_).r) || ISNAN((_X_).i)) |
Definition at line 106 of file Mdefines.h.
#define ISNA_INTEGER | ( | _X_ | ) | ((_X_) == NA_INTEGER) |
Definition at line 104 of file Mdefines.h.
#define ISNA_LOGICAL | ( | _X_ | ) | ((_X_) == NA_LOGICAL) |
Definition at line 103 of file Mdefines.h.
#define ISNA_PATTERN | ( | _X_ | ) | (0) |
Definition at line 102 of file Mdefines.h.
#define ISNA_REAL | ( | _X_ | ) | (ISNAN(_X_)) |
Definition at line 105 of file Mdefines.h.
#define ISNZ_COMPLEX | ( | _X_ | ) | ((_X_).r != 0.0 || (_X_).i != 0.0) |
Definition at line 112 of file Mdefines.h.
#define ISNZ_INTEGER | ( | _X_ | ) | ((_X_) != 0) |
Definition at line 110 of file Mdefines.h.
#define ISNZ_LOGICAL | ( | _X_ | ) | ((_X_) != 0) |
Definition at line 109 of file Mdefines.h.
#define ISNZ_PATTERN | ( | _X_ | ) | ((_X_) != 0) |
Definition at line 108 of file Mdefines.h.
#define ISNZ_REAL | ( | _X_ | ) | ((_X_) != 0.0) |
Definition at line 111 of file Mdefines.h.
#define Matrix_Calloc | ( | _VAR_, | |
_N_, | |||
_CTYPE_ | |||
) |
Definition at line 66 of file Mdefines.h.
#define Matrix_CallocThreshold 8192 |
Definition at line 7 of file Mdefines.h.
#define Matrix_Domain "Matrix" |
Definition at line 6 of file Mdefines.h.
#define Matrix_ErrorBufferSize 4096 |
Definition at line 8 of file Mdefines.h.
#define Matrix_Free | ( | _VAR_, | |
_N_ | |||
) |
Definition at line 77 of file Mdefines.h.
#define MATRIX_INT_FAST64_MAX LLONG_MAX |
Definition at line 29 of file Mdefines.h.
#define MATRIX_INT_FAST64_MIN LLONG_MIN |
Definition at line 28 of file Mdefines.h.
#define MAXOF | ( | x, | |
y | |||
) | ((x < y) ? y : x) |
Definition at line 98 of file Mdefines.h.
#define MINOF | ( | x, | |
y | |||
) | ((x < y) ? x : y) |
Definition at line 97 of file Mdefines.h.
#define NOTCONJ_COMPLEX | ( | _X_, | |
_Y_ | |||
) |
Definition at line 139 of file Mdefines.h.
#define NOTCONJ_INTEGER | ( | _X_, | |
_Y_ | |||
) | (_X_ != _Y_) |
Definition at line 135 of file Mdefines.h.
#define NOTCONJ_LOGICAL | ( | _X_, | |
_Y_ | |||
) | (_X_ != _Y_) |
Definition at line 133 of file Mdefines.h.
#define NOTCONJ_PATTERN | ( | _X_, | |
_Y_ | |||
) | ((_X_ != 0) != (_Y_ != 0)) |
Definition at line 131 of file Mdefines.h.
#define NOTCONJ_REAL | ( | _X_, | |
_Y_ | |||
) | ((ISNAN(_X_)) ? !ISNAN(_Y_) : ISNAN(_Y_) || _X_ != _Y_) |
Definition at line 137 of file Mdefines.h.
#define NOTREAL_COMPLEX | ( | _X_ | ) | (_X_.i != 0.0) |
Definition at line 129 of file Mdefines.h.
#define NOTREAL_INTEGER | ( | _X_ | ) | 0 |
Definition at line 127 of file Mdefines.h.
#define NOTREAL_LOGICAL | ( | _X_ | ) | 0 |
Definition at line 126 of file Mdefines.h.
#define NOTREAL_PATTERN | ( | _X_ | ) | 0 |
Definition at line 125 of file Mdefines.h.
#define NOTREAL_REAL | ( | _X_ | ) | 0 |
Definition at line 128 of file Mdefines.h.
#define PACKED_AR21_LO | ( | i, | |
j, | |||
m2 | |||
) | ((R_xlen_t) ((i) + ((Matrix_int_fast64_t) (j) * ((m2) - (j) - 1)) / 2)) |
Definition at line 196 of file Mdefines.h.
#define PACKED_AR21_UP | ( | i, | |
j | |||
) | ((R_xlen_t) ((i) + ((Matrix_int_fast64_t) (j) * ( (j) + 1)) / 2)) |
Definition at line 194 of file Mdefines.h.
#define PACKED_LENGTH | ( | m | ) | ((R_xlen_t) ((m) + ((Matrix_int_fast64_t) (m) * ( (m) - 1)) / 2)) |
Definition at line 198 of file Mdefines.h.
#define SCALE1_COMPLEX | ( | _X_, | |
_A_ | |||
) | do { _X_.r *= _A_; _X_.i *= _A_; } while (0) |
Definition at line 186 of file Mdefines.h.
#define SCALE1_REAL | ( | _X_, | |
_A_ | |||
) | do { _X_ *= _A_; } while (0) |
Definition at line 184 of file Mdefines.h.
#define SCALE2_COMPLEX | ( | _X_, | |
_A_ | |||
) | do { _X_.r /= _A_; _X_.i /= _A_; } while (0) |
Definition at line 191 of file Mdefines.h.
#define SCALE2_REAL | ( | _X_, | |
_A_ | |||
) | do { _X_ /= _A_; } while (0) |
Definition at line 189 of file Mdefines.h.
#define SECONDOF | ( | x, | |
y | |||
) | (y) |
Definition at line 100 of file Mdefines.h.
#define SET_SLOT | ( | x, | |
what, | |||
value | |||
) | R_do_slot_assign(x, what, value) |
Definition at line 86 of file Mdefines.h.
#define SHOW | ( | ... | ) | __VA_ARGS__ |
Definition at line 201 of file Mdefines.h.
#define STRICT_R_HEADERS |
Definition at line 33 of file Mdefines.h.
#define STRICTLY_ISNZ_COMPLEX | ( | _X_ | ) | (!ISNA_COMPLEX(_X_) && ISNZ_COMPLEX(_X_)) |
Definition at line 122 of file Mdefines.h.
#define STRICTLY_ISNZ_INTEGER | ( | _X_ | ) | (!ISNA_INTEGER(_X_) && ISNZ_INTEGER(_X_)) |
Definition at line 118 of file Mdefines.h.
#define STRICTLY_ISNZ_LOGICAL | ( | _X_ | ) | (!ISNA_LOGICAL(_X_) && ISNZ_LOGICAL(_X_)) |
Definition at line 116 of file Mdefines.h.
#define STRICTLY_ISNZ_PATTERN | ( | _X_ | ) | ( ISNZ_PATTERN(_X_)) |
Definition at line 114 of file Mdefines.h.
Definition at line 120 of file Mdefines.h.
#define VALID_CSPARSE |
Definition at line 257 of file Mdefines.h.
#define VALID_DENSE |
Definition at line 250 of file Mdefines.h.
#define VALID_DIAGONAL "ndiMatrix", "ldiMatrix", "idiMatrix", "ddiMatrix", "zdiMatrix" |
Definition at line 278 of file Mdefines.h.
#define VALID_NONVIRTUAL VALID_NONVIRTUAL_MATRIX, VALID_NONVIRTUAL_VECTOR |
Definition at line 244 of file Mdefines.h.
#define VALID_NONVIRTUAL_MATRIX |
Definition at line 220 of file Mdefines.h.
#define VALID_NONVIRTUAL_SHIFT | ( | i, | |
pToInd | |||
) | ((i >= 5) ? 0 : ((i >= 4) ? pToInd != 0 : ((i >= 2) ? 57 : 59))) |
Definition at line 247 of file Mdefines.h.
#define VALID_NONVIRTUAL_VECTOR |
Definition at line 240 of file Mdefines.h.
#define VALID_RSPARSE |
Definition at line 264 of file Mdefines.h.
#define VALID_TSPARSE |
Definition at line 271 of file Mdefines.h.
typedef long long Matrix_int_fast64_t |
Definition at line 27 of file Mdefines.h.
|
extern |
int DimNames_is_symmetric | ( | SEXP | dn | ) |
Definition at line 14 of file attrib.c.
References equal_character_vectors().
Referenced by dense_is_symmetric(), R_DimNames_is_symmetric(), and sparse_is_symmetric().
int DimNames_is_trivial | ( | SEXP | dn | ) |
Definition at line 6 of file attrib.c.
Referenced by get_reversed_DimNames(), get_symmetrized_DimNames(), R_Matrix_as_matrix(), R_revDN(), R_symDN(), set_reversed_DimNames(), and set_symmetrized_DimNames().
SEXP get_reversed_DimNames | ( | SEXP | obj | ) |
Definition at line 120 of file attrib.c.
References DimNames_is_trivial(), GET_SLOT, Matrix_DimNamesSym, and revDN().
SEXP get_symmetrized_DimNames | ( | SEXP | obj, |
int | J | ||
) |
Definition at line 108 of file attrib.c.
References DimNames_is_trivial(), GET_SLOT, Matrix_DimNamesSym, and symDN().
Referenced by dense_marginsum(), dgCMatrix_dgeMatrix_matmult(), dspMatrix_matmult(), dsyMatrix_matmult(), and sparse_marginsum().
size_t kindToSize | ( | char | kind | ) |
Definition at line 46 of file objects.c.
References _.
Referenced by diagonal_as_dense(), index_as_dense(), and sparse_as_dense().
SEXPTYPE kindToType | ( | char | kind | ) |
Definition at line 28 of file objects.c.
References _.
Referenced by bindArgs(), coerceArgs(), CsparseMatrix_subscript_1ary(), CsparseMatrix_subscript_1ary_mat(), dense_as_kind(), diagonal_as_dense(), diagonal_as_kind(), diagonal_as_sparse(), diagonalMatrix_subscript_1ary(), diagonalMatrix_subscript_1ary_mat(), index_as_dense(), index_as_sparse(), matrix_as_dense(), packedMatrix_subscript_1ary(), packedMatrix_subscript_1ary_mat(), R_dense_diag_set(), R_sparse_diag_set(), RsparseMatrix_subscript_1ary(), RsparseMatrix_subscript_1ary_mat(), sparse_as_dense(), sparse_as_kind(), sparse_diag_get(), sparse_skewpart(), sparse_symmpart(), unpackedMatrix_subscript_1ary(), unpackedMatrix_subscript_1ary_mat(), vector_as_dense(), and vector_as_sparse().
SEXP newObject | ( | const char * | what | ) |
Definition at line 4 of file objects.c.
Referenced by bind(), BunchKaufman_expand(), BunchKaufman_solve(), CHD2M(), CHF2M(), Cholesky_solve(), cholmod_dense_as_sexp(), cholmod_factor_as_sexp(), cholmod_sparse_as_sexp(), cholmod_triplet_as_sexp(), CHS2M(), CR2spV(), Csparse_subassign(), CXS2M(), dense_as_general(), dense_as_kind(), dense_as_packed(), dense_as_sparse(), dense_as_unpacked(), dense_band(), dense_diag_set(), dense_force_symmetric(), dense_skewpart(), dense_symmpart(), dense_transpose(), denseLU_solve(), dgCMatrix_dgeMatrix_matmult(), dgCMatrix_orf(), dgCMatrix_trf(), dgeMatrix_matmult(), dgeMatrix_trf_(), diagonal_as_dense(), diagonal_as_kind(), diagonal_as_sparse(), diagonalMatrix_subscript_2ary(), dpoMatrix_trf_(), dppMatrix_trf_(), dspMatrix_matmult(), dspMatrix_trf_(), dsyMatrix_matmult(), dsyMatrix_trf_(), dtCMatrix_solve(), dtpMatrix_matmult(), dtrMatrix_matmult(), dtrMatrix_solve(), index_as_dense(), index_as_sparse(), indMatrix_subscript_2ary(), matrix_as_dense(), R_diagonal_matmult(), sparse_as_Csparse(), sparse_as_dense(), sparse_as_general(), sparse_as_kind(), sparse_as_Rsparse(), sparse_as_Tsparse(), sparse_band(), sparse_diag_set(), sparse_drop0(), sparse_force_symmetric(), sparse_marginsum(), sparse_skewpart(), sparse_symmpart(), sparse_transpose(), sparseLU_solve(), sparseQR_matmult(), Tsparse_aggregate(), vector_as_dense(), and vector_as_sparse().
void revDN | ( | SEXP | dest, |
SEXP | src | ||
) |
Definition at line 68 of file attrib.c.
Referenced by get_reversed_DimNames(), R_revDN(), and set_reversed_DimNames().
void set_reversed_DimNames | ( | SEXP | obj, |
SEXP | dn | ||
) |
Definition at line 142 of file attrib.c.
References DimNames_is_trivial(), Matrix_DimNamesSym, revDN(), and SET_SLOT.
Referenced by dense_transpose(), and sparse_transpose().
void set_symmetrized_DimNames | ( | SEXP | obj, |
SEXP | dn, | ||
int | J | ||
) |
Definition at line 132 of file attrib.c.
References DimNames_is_trivial(), Matrix_DimNamesSym, SET_SLOT, and symDN().
Referenced by dense_as_general(), dense_band(), dense_force_symmetric(), dense_skewpart(), dense_symmpart(), diagonal_as_dense(), diagonal_as_sparse(), dpCMatrix_trf(), dpoMatrix_trf_(), dppMatrix_trf_(), dspMatrix_trf_(), dsyMatrix_trf_(), matrix_as_dense(), sparse_as_general(), sparse_band(), sparse_force_symmetric(), sparse_skewpart(), sparse_symmpart(), vector_as_dense(), and vector_as_sparse().
void symDN | ( | SEXP | dest, |
SEXP | src, | ||
int | J | ||
) |
Definition at line 37 of file attrib.c.
Referenced by dgCMatrix_dgCMatrix_matmult(), dgeMatrix_matmult(), get_symmetrized_DimNames(), R_symDN(), and set_symmetrized_DimNames().
char typeToKind | ( | SEXPTYPE | type | ) |
Definition at line 11 of file objects.c.
References _.
Referenced by matrix_as_dense(), matrix_as_sparse(), R_dense_diag_set(), R_sparse_diag_set(), vector_as_dense(), and vector_as_sparse().
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().
Rcomplex Matrix_zna |
Definition at line 95 of file Mdefines.h.
Rcomplex Matrix_zone |
Definition at line 95 of file Mdefines.h.
|
extern |
Definition at line 26 of file init.c.
Referenced by dense_skewpart(), dgeMatrix_matmult(), dspMatrix_matmult(), and R_init_Matrix().