Matrix r5059
Loading...
Searching...
No Matches
isSymmetric.c File Reference
#include "Mdefines.h"
#include "M5.h"
#include "idz.h"

Go to the source code of this file.

Macros

#define TEMPLATE(c)
 
#define TEMPLATE(c)
 

Functions

int dense_is_diagonal (SEXP, const char *)
 
int sparse_is_diagonal (SEXP, const char *)
 
int dense_is_symmetric (SEXP obj, const char *class, char op_ct, int exact, int checkDN)
 
int sparse_is_symmetric (SEXP obj, const char *class, char op_ct, int exact, int checkDN)
 
SEXP R_dense_is_symmetric (SEXP s_obj, SEXP s_trans, SEXP s_exact, SEXP s_checkDN)
 
SEXP R_sparse_is_symmetric (SEXP s_obj, SEXP s_trans, SEXP s_exact, SEXP s_checkDN)
 

Macro Definition Documentation

◆ TEMPLATE [1/2]

#define TEMPLATE ( c)
Value:
do { \
c##TYPE *px = c##PTR(x); \
if (c##NAME(test2)(px, (size_t) n, '\0', op_ct, '\0')) \
return 0; \
} while (0)
cholmod_common c
Definition cholmod-etc.c:5

Referenced by dense_is_symmetric(), and sparse_is_symmetric().

◆ TEMPLATE [2/2]

#define TEMPLATE ( c)
Value:
do { \
c##IF_NPATTERN( \
SEXP x = GET_SLOT(obj, Matrix_xSym); \
c##TYPE *px = c##PTR(x); \
); \
for (j = 0, k = 0; j < n; ++j) { \
kend = pp[j]; \
while (k < kend) { \
i = pi[k]; \
if (i < j) { \
if (iwork[i] == pp[i] || pi[iwork[i]] != j) \
goto done; \
c##IF_NPATTERN( \
if (c##NOT_IDEN(px[k], px[iwork[i]])) \
goto done; \
); \
++iwork[i]; \
++iwork[j]; \
++k; \
} else { \
if (pi[k] == j) \
++iwork[j]; \
k = kend; \
} \
} \
} \
} while (0)
#define GET_SLOT(x, name)
Definition Mdefines.h:72
SEXP Matrix_xSym
Definition init.c:635

Function Documentation

◆ dense_is_diagonal()

int dense_is_diagonal ( SEXP obj,
const char * class )

Definition at line 7 of file isDiagonal.c.

Referenced by dense_is_symmetric().

◆ dense_is_symmetric()

int dense_is_symmetric ( SEXP obj,
const char * class,
char op_ct,
int exact,
int checkDN )

◆ R_dense_is_symmetric()

SEXP R_dense_is_symmetric ( SEXP s_obj,
SEXP s_trans,
SEXP s_exact,
SEXP s_checkDN )

◆ R_sparse_is_symmetric()

SEXP R_sparse_is_symmetric ( SEXP s_obj,
SEXP s_trans,
SEXP s_exact,
SEXP s_checkDN )

◆ sparse_is_diagonal()

int sparse_is_diagonal ( SEXP obj,
const char * class )

Definition at line 45 of file isDiagonal.c.

Referenced by sparse_is_symmetric().

◆ sparse_is_symmetric()

int sparse_is_symmetric ( SEXP obj,
const char * class,
char op_ct,
int exact,
int checkDN )