00001 #ifndef MATRIX_DGCBMATRIX_H
00002 #define MATRIX_DGCBMATRIX_H
00003
00004 #include "Mutils.h"
00005 #include "R_ldl.h"
00006 #include "triplet_to_col.h"
00007 #include <R_ext/Lapack.h>
00008
00009 SEXP dgBCMatrix_validate(SEXP x);
00010 void cscb_tri(enum CBLAS_UPLO upper, enum CBLAS_DIAG unit,
00011 SEXP A, const int Parent[], SEXP AI);
00012 void cscb_syrk(enum CBLAS_UPLO uplo, enum CBLAS_TRANSPOSE trans,
00013 double alpha, SEXP A,
00014 double beta, SEXP C);
00015 int cscb_ldl(SEXP A, const int Parent[], SEXP L, SEXP D);
00016 void cscb_trmm(enum CBLAS_SIDE side, enum CBLAS_UPLO uplo,
00017 enum CBLAS_TRANSPOSE transa, enum CBLAS_DIAG diag,
00018 double alpha, SEXP A, double B[], int m, int n, int ldb);
00019 void cscb_trsm(enum CBLAS_UPLO uplo, enum CBLAS_TRANSPOSE transa,
00020 enum CBLAS_DIAG diag, double alpha, SEXP A,
00021 int m, int n, double B[], int ldb);
00022 void cscb_trcbm(enum CBLAS_SIDE side, enum CBLAS_UPLO uplo,
00023 enum CBLAS_TRANSPOSE transa, enum CBLAS_DIAG diag,
00024 double alpha, SEXP A, SEXP B);
00025 void cscb_trcbsm(enum CBLAS_SIDE side, enum CBLAS_UPLO uplo,
00026 enum CBLAS_TRANSPOSE transa, enum CBLAS_DIAG diag,
00027 double alpha, SEXP A, const int Parent[], SEXP B);
00028 void cscb_cscbm(enum CBLAS_TRANSPOSE transa, enum CBLAS_TRANSPOSE transb,
00029 double alpha, SEXP A, SEXP B, double beta, SEXP C);
00030 void cscb_mm(enum CBLAS_SIDE side, enum CBLAS_TRANSPOSE transa,
00031 int m, int n, int k, double alpha, SEXP A,
00032 const double B[], int ldb, double beta, double C[], int ldc);
00033 SEXP dgBCMatrix_to_dgCMatrix(SEXP A);
00034 SEXP dgBCMatrix_to_dgTMatrix(SEXP A);
00035
00036 #endif