|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef blas_PRODUIT_MATRICE_VECTEUR_HH |
|
|
#define blas_PRODUIT_MATRICE_VECTEUR_HH |
|
|
|
|
|
#include <c_interface_base.h> |
|
|
#include <complex> |
|
|
extern "C" |
|
|
{ |
|
|
#include "blas.h" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void ssytrd_(char *uplo, const int *n, float *a, const int *lda, float *d, float *e, float *tau, float *work, int *lwork, int *info ); |
|
|
void dsytrd_(char *uplo, const int *n, double *a, const int *lda, double *d, double *e, double *tau, double *work, int *lwork, int *info ); |
|
|
void sgehrd_( const int *n, int *ilo, int *ihi, float *a, const int *lda, float *tau, float *work, int *lwork, int *info ); |
|
|
void dgehrd_( const int *n, int *ilo, int *ihi, double *a, const int *lda, double *tau, double *work, int *lwork, int *info ); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void sgetc2_(const int* n, float *a, const int *lda, int *ipiv, int *jpiv, int*info ); |
|
|
void dgetc2_(const int* n, double *a, const int *lda, int *ipiv, int *jpiv, int*info ); |
|
|
#ifdef HAS_LAPACK |
|
|
#endif |
|
|
} |
|
|
|
|
|
#define MAKE_STRING2(S) #S |
|
|
#define MAKE_STRING(S) MAKE_STRING2(S) |
|
|
|
|
|
#define CAT2(A,B) A##B |
|
|
#define CAT(A,B) CAT2(A,B) |
|
|
|
|
|
|
|
|
template<class real> class blas_interface; |
|
|
|
|
|
|
|
|
static char notrans = 'N'; |
|
|
static char trans = 'T'; |
|
|
static char nonunit = 'N'; |
|
|
static char lower = 'L'; |
|
|
static char right = 'R'; |
|
|
static char left = 'L'; |
|
|
static int intone = 1; |
|
|
|
|
|
|
|
|
|
|
|
#define SCALAR float |
|
|
#define SCALAR_PREFIX s |
|
|
#include "blas_interface_impl.hh" |
|
|
#undef SCALAR |
|
|
#undef SCALAR_PREFIX |
|
|
|
|
|
|
|
|
#define SCALAR double |
|
|
#define SCALAR_PREFIX d |
|
|
#include "blas_interface_impl.hh" |
|
|
#undef SCALAR |
|
|
#undef SCALAR_PREFIX |
|
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
|
|
|