mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-08 17:59:00 +08:00
add symv bench
This commit is contained in:
parent
22b9de1849
commit
7485aa6d57
154
bench/btl/actions/action_symv.hh
Normal file
154
bench/btl/actions/action_symv.hh
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
//=====================================================
|
||||||
|
// File : action_symv.hh
|
||||||
|
// Author : L. Plagne <laurent.plagne@edf.fr)>
|
||||||
|
// Copyright (C) EDF R&D, lun sep 30 14:23:19 CEST 2002
|
||||||
|
//=====================================================
|
||||||
|
//
|
||||||
|
// This program is free software; you can redistribute it and/or
|
||||||
|
// modify it under the terms of the GNU General Public License
|
||||||
|
// as published by the Free Software Foundation; either version 2
|
||||||
|
// of the License, or (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program; if not, write to the Free Software
|
||||||
|
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
//
|
||||||
|
#ifndef ACTION_SYMV
|
||||||
|
#define ACTION_SYMV
|
||||||
|
#include "utilities.h"
|
||||||
|
#include "STL_interface.hh"
|
||||||
|
#include <string>
|
||||||
|
#include "init/init_function.hh"
|
||||||
|
#include "init/init_vector.hh"
|
||||||
|
#include "init/init_matrix.hh"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
template<class Interface>
|
||||||
|
class Action_symv {
|
||||||
|
|
||||||
|
public :
|
||||||
|
|
||||||
|
// Ctor
|
||||||
|
|
||||||
|
BTL_DONT_INLINE Action_symv( int size ):_size(size)
|
||||||
|
{
|
||||||
|
MESSAGE("Action_symv Ctor");
|
||||||
|
|
||||||
|
// STL matrix and vector initialization
|
||||||
|
|
||||||
|
typename Interface::stl_matrix tmp;
|
||||||
|
init_matrix<pseudo_random>(A_stl,_size);
|
||||||
|
init_matrix<pseudo_random>(tmp,_size);
|
||||||
|
init_vector<pseudo_random>(B_stl,_size);
|
||||||
|
init_vector<null_function>(X_stl,_size);
|
||||||
|
init_vector<null_function>(resu_stl,_size);
|
||||||
|
|
||||||
|
STL_interface<typename Interface::real_type>::ata_product(tmp,A_stl,_size);
|
||||||
|
|
||||||
|
// generic matrix and vector initialization
|
||||||
|
|
||||||
|
Interface::matrix_from_stl(A_ref,A_stl);
|
||||||
|
Interface::matrix_from_stl(A,A_stl);
|
||||||
|
Interface::vector_from_stl(B_ref,B_stl);
|
||||||
|
Interface::vector_from_stl(B,B_stl);
|
||||||
|
Interface::vector_from_stl(X_ref,X_stl);
|
||||||
|
Interface::vector_from_stl(X,X_stl);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// invalidate copy ctor
|
||||||
|
|
||||||
|
Action_symv( const Action_symv & )
|
||||||
|
{
|
||||||
|
INFOS("illegal call to Action_symv Copy Ctor");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Dtor
|
||||||
|
|
||||||
|
BTL_DONT_INLINE ~Action_symv( void ){
|
||||||
|
|
||||||
|
MESSAGE("Action_symv Dtor");
|
||||||
|
|
||||||
|
// deallocation
|
||||||
|
|
||||||
|
Interface::free_matrix(A,_size);
|
||||||
|
Interface::free_vector(B);
|
||||||
|
Interface::free_vector(X);
|
||||||
|
|
||||||
|
Interface::free_matrix(A_ref,_size);
|
||||||
|
Interface::free_vector(B_ref);
|
||||||
|
Interface::free_vector(X_ref);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// action name
|
||||||
|
|
||||||
|
static inline std::string name( void )
|
||||||
|
{
|
||||||
|
return "symv_" + Interface::name();
|
||||||
|
}
|
||||||
|
|
||||||
|
double nb_op_base( void ){
|
||||||
|
return 2.0*_size*_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
BTL_DONT_INLINE void initialize( void ){
|
||||||
|
|
||||||
|
Interface::copy_matrix(A_ref,A,_size);
|
||||||
|
Interface::copy_vector(B_ref,B,_size);
|
||||||
|
Interface::copy_vector(X_ref,X,_size);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
BTL_DONT_INLINE void calculate( void ) {
|
||||||
|
BTL_ASM_COMMENT("#begin symv");
|
||||||
|
Interface::symv(A,B,X,_size);
|
||||||
|
BTL_ASM_COMMENT("end symv");
|
||||||
|
}
|
||||||
|
|
||||||
|
BTL_DONT_INLINE void check_result( void ){
|
||||||
|
|
||||||
|
// calculation check
|
||||||
|
|
||||||
|
Interface::vector_to_stl(X,resu_stl);
|
||||||
|
|
||||||
|
STL_interface<typename Interface::real_type>::symv(A_stl,B_stl,X_stl,_size);
|
||||||
|
|
||||||
|
typename Interface::real_type error=
|
||||||
|
STL_interface<typename Interface::real_type>::norm_diff(X_stl,resu_stl);
|
||||||
|
|
||||||
|
if (error>1.e-5){
|
||||||
|
INFOS("WRONG CALCULATION...residual=" << error);
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private :
|
||||||
|
|
||||||
|
typename Interface::stl_matrix A_stl;
|
||||||
|
typename Interface::stl_vector B_stl;
|
||||||
|
typename Interface::stl_vector X_stl;
|
||||||
|
typename Interface::stl_vector resu_stl;
|
||||||
|
|
||||||
|
typename Interface::gene_matrix A_ref;
|
||||||
|
typename Interface::gene_vector B_ref;
|
||||||
|
typename Interface::gene_vector X_ref;
|
||||||
|
|
||||||
|
typename Interface::gene_matrix A;
|
||||||
|
typename Interface::gene_vector B;
|
||||||
|
typename Interface::gene_vector X;
|
||||||
|
|
||||||
|
|
||||||
|
int _size;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
@ -11,5 +11,9 @@
|
|||||||
|
|
||||||
#include "action_trisolve.hh"
|
#include "action_trisolve.hh"
|
||||||
|
|
||||||
|
#include "action_symv.hh"
|
||||||
|
#include "action_symm.hh"
|
||||||
|
#include "action_syr2.hh"
|
||||||
|
|
||||||
// #include "action_lu_solve.hh"
|
// #include "action_lu_solve.hh"
|
||||||
|
|
||||||
|
@ -15,21 +15,23 @@ find_path(ATLAS_INCLUDES
|
|||||||
find_file(ATLAS_LIB libatlas.so.3 PATHS /usr/lib $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
find_file(ATLAS_LIB libatlas.so.3 PATHS /usr/lib $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
||||||
find_library(ATLAS_LIB atlas PATHS $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
find_library(ATLAS_LIB atlas PATHS $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
||||||
|
|
||||||
find_file(ATLAS_CBLAS libcblas.so.3 PATHS /usr/lib $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
# find_file(ATLAS_CBLAS libcblas.so.3 PATHS /usr/lib $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
||||||
find_library(ATLAS_CBLAS cblas PATHS $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
# find_library(ATLAS_CBLAS cblas PATHS $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
||||||
|
|
||||||
# find_file(ATLAS_LAPACK liblapack_atlas.so.3 PATHS /usr/lib $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
# find_file(ATLAS_LAPACK liblapack_atlas.so.3 PATHS /usr/lib $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
||||||
# find_library(ATLAS_LAPACK lapack_atlas PATHS $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
# find_library(ATLAS_LAPACK lapack_atlas PATHS $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
||||||
|
|
||||||
find_file(ATLAS_LAPACK liblapack.so.3 PATHS /usr/lib/atlas $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
# find_file(ATLAS_LAPACK liblapack.so.3 PATHS /usr/lib/atlas $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
||||||
# find_library(ATLAS_LAPACK lapack PATHS $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
# find_library(ATLAS_LAPACK lapack PATHS $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
||||||
|
|
||||||
find_file(ATLAS_F77BLAS libf77blas.so.3 PATHS /usr/lib $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
# find_file(ATLAS_F77BLAS libf77blas.so.3 PATHS /usr/lib $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
||||||
find_library(ATLAS_F77BLAS f77blas PATHS $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
# find_library(ATLAS_F77BLAS f77blas PATHS $ENV{ATLASDIR} ${LIB_INSTALL_DIR})
|
||||||
|
|
||||||
if(ATLAS_LIB AND ATLAS_CBLAS AND ATLAS_LAPACK AND ATLAS_F77BLAS)
|
# if(ATLAS_LIB AND ATLAS_CBLAS AND ATLAS_LAPACK AND ATLAS_F77BLAS)
|
||||||
set(ATLAS_LIBRARIES ${ATLAS_LIB} ${ATLAS_CBLAS} ${ATLAS_LAPACK} ${ATLAS_F77BLAS})
|
set(ATLAS_LIBRARIES ${ATLAS_LIB} ${ATLAS_LAPACK}
|
||||||
endif(ATLAS_LIB AND ATLAS_CBLAS AND ATLAS_LAPACK AND ATLAS_F77BLAS)
|
# ${ATLAS_CBLAS} ${ATLAS_LAPACK} ${ATLAS_F77BLAS}
|
||||||
|
)
|
||||||
|
# endif(ATLAS_LIB AND ATLAS_CBLAS AND ATLAS_LAPACK AND ATLAS_F77BLAS)
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
include(FindPackageHandleStandardArgs)
|
||||||
find_package_handle_standard_args(ATLAS DEFAULT_MSG
|
find_package_handle_standard_args(ATLAS DEFAULT_MSG
|
||||||
|
@ -33,11 +33,11 @@
|
|||||||
// min matrix size for matrix vector product bench
|
// min matrix size for matrix vector product bench
|
||||||
#define MIN_MV 5
|
#define MIN_MV 5
|
||||||
// max matrix size for matrix vector product bench
|
// max matrix size for matrix vector product bench
|
||||||
#define MAX_MV 1024
|
#define MAX_MV 2048
|
||||||
// min matrix size for matrix matrix product bench
|
// min matrix size for matrix matrix product bench
|
||||||
#define MIN_MM 5
|
#define MIN_MM 5
|
||||||
// max matrix size for matrix matrix product bench
|
// max matrix size for matrix matrix product bench
|
||||||
#define MAX_MM 1024
|
#define MAX_MM 2048
|
||||||
// min matrix size for LU bench
|
// min matrix size for LU bench
|
||||||
#define MIN_LU 5
|
#define MIN_LU 5
|
||||||
// max matrix size for LU bench
|
// max matrix size for LU bench
|
||||||
|
@ -26,33 +26,42 @@ extern "C"
|
|||||||
{
|
{
|
||||||
#include "cblas.h"
|
#include "cblas.h"
|
||||||
|
|
||||||
void sgemm_(const char *transa, const char *transb, const int *m, const int *n, const int *k,
|
// #ifdef PUREBLAS
|
||||||
const float *alpha, const float *a, const int *lda, const float *b, const int *ldb,
|
#include "blas.h"
|
||||||
const float *beta, float *c, const int *ldc);
|
// #endif
|
||||||
|
|
||||||
void sgemv_(const char *trans, const int *m, const int *n, const float *alpha,
|
// void sgemm_(const char *transa, const char *transb, const int *m, const int *n, const int *k,
|
||||||
const float *a, const int *lda, const float *x, const int *incx,
|
// const float *alpha, const float *a, const int *lda, const float *b, const int *ldb,
|
||||||
const float *beta, float *y, const int *incy);
|
// const float *beta, float *c, const int *ldc);
|
||||||
|
//
|
||||||
void sscal_(const int *n, const float *alpha, const float *x, const int *incx);
|
// void sgemv_(const char *trans, const int *m, const int *n, const float *alpha,
|
||||||
|
// const float *a, const int *lda, const float *x, const int *incx,
|
||||||
void saxpy_(const int *n, const float *alpha, const float *x, const int *incx,
|
// const float *beta, float *y, const int *incy);
|
||||||
float *y, const int *incy);
|
//
|
||||||
|
// void ssymv_(const char *trans, const char* uplo,
|
||||||
void strsv_(const char *uplo, const char *trans, const char *diag, const int *n,
|
// const int* N, const float* alpha, const float *A,
|
||||||
const float *a, const int *lda, float *x, const int *incx);
|
// const int* lda, const float *X, const int* incX,
|
||||||
|
// const float* beta, float *Y, const int* incY);
|
||||||
void scopy_(const int *n, const float *x, const int *incx, float *y, const int *incy);
|
//
|
||||||
|
// void sscal_(const int *n, const float *alpha, const float *x, const int *incx);
|
||||||
|
//
|
||||||
|
// void saxpy_(const int *n, const float *alpha, const float *x, const int *incx,
|
||||||
|
// float *y, const int *incy);
|
||||||
|
//
|
||||||
|
// void strsv_(const char *uplo, const char *trans, const char *diag, const int *n,
|
||||||
|
// const float *a, const int *lda, float *x, const int *incx);
|
||||||
|
//
|
||||||
|
// void scopy_(const int *n, const float *x, const int *incx, float *y, const int *incy);
|
||||||
|
|
||||||
// Cholesky Factorization
|
// Cholesky Factorization
|
||||||
// #include "mkl_lapack.h"
|
// #include "mkl_lapack.h"
|
||||||
void spotrf_(const char* uplo, const int* n, float *a, const int* ld, int* info);
|
// void spotrf_(const char* uplo, const int* n, float *a, const int* ld, int* info);
|
||||||
void dpotrf_(const char* uplo, const int* n, double *a, const int* ld, int* info);
|
// void dpotrf_(const char* uplo, const int* n, double *a, const int* ld, int* info);
|
||||||
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 ssytrd_(char *uplo, const int *n, float *a, const int *lda, float *d, float *e, float *tau, float *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 sgehrd_( const int *n, int *ilo, int *ihi, float *a, const int *lda, float *tau, float *work, int *lwork, int *info );
|
||||||
|
|
||||||
// LU row pivoting
|
// LU row pivoting
|
||||||
void sgetrf_(const int* m, const int* n, float *a, const int* ld, int* ipivot, int* info);
|
// void sgetrf_(const int* m, const int* n, float *a, const int* ld, int* ipivot, int* info);
|
||||||
// LU full pivoting
|
// LU full pivoting
|
||||||
void sgetc2_(const int* n, float *a, const int *lda, int *ipiv, int *jpiv, int*info );
|
void sgetc2_(const int* n, float *a, const int *lda, int *ipiv, int *jpiv, int*info );
|
||||||
#ifdef HAS_LAPACK
|
#ifdef HAS_LAPACK
|
||||||
@ -85,6 +94,11 @@ public :
|
|||||||
cblas_dgemv(CblasColMajor,CblasTrans,N,N,1.0,A,N,B,1,0.0,X,1);
|
cblas_dgemv(CblasColMajor,CblasTrans,N,N,1.0,A,N,B,1,0.0,X,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void symv(gene_matrix & A, gene_vector & B, gene_vector & X, int N)
|
||||||
|
{
|
||||||
|
cblas_dsymv(CblasColMajor,CblasLower,CblasTrans,N,N,1.0,A,N,B,1,0.0,X,1);
|
||||||
|
}
|
||||||
|
|
||||||
static inline void matrix_matrix_product(gene_matrix & A, gene_matrix & B, gene_matrix & X, int N){
|
static inline void matrix_matrix_product(gene_matrix & A, gene_matrix & B, gene_matrix & X, int N){
|
||||||
cblas_dgemm(CblasColMajor,CblasNoTrans,CblasNoTrans,N,N,N,1.0,A,N,B,N,0.0,X,N);
|
cblas_dgemm(CblasColMajor,CblasNoTrans,CblasNoTrans,N,N,N,1.0,A,N,B,N,0.0,X,N);
|
||||||
}
|
}
|
||||||
@ -112,13 +126,13 @@ public :
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static const float fone = 1;
|
static float fone = 1;
|
||||||
static const float fzero = 0;
|
static float fzero = 0;
|
||||||
static const char notrans = 'N';
|
static char notrans = 'N';
|
||||||
static const char trans = 'T';
|
static char trans = 'T';
|
||||||
static const char nonunit = 'N';
|
static char nonunit = 'N';
|
||||||
static const char lower = 'L';
|
static char lower = 'L';
|
||||||
static const int intone = 1;
|
static blasint intone = 1;
|
||||||
|
|
||||||
template<>
|
template<>
|
||||||
class C_BLAS_interface<float> : public f77_interface_base<float>
|
class C_BLAS_interface<float> : public f77_interface_base<float>
|
||||||
@ -139,6 +153,14 @@ public :
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void symv(gene_matrix & A, gene_vector & B, gene_vector & X, int N){
|
||||||
|
#ifdef PUREBLAS
|
||||||
|
ssymv_(&lower, &N,&fone,A,&N,B,&intone,&fzero,X,&intone);
|
||||||
|
#else
|
||||||
|
cblas_ssymv(CblasColMajor,CblasLower,N,1.0,A,N,B,1,0.0,X,1);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
static inline void atv_product(gene_matrix & A, gene_vector & B, gene_vector & X, int N){
|
static inline void atv_product(gene_matrix & A, gene_vector & B, gene_vector & X, int N){
|
||||||
#ifdef PUREBLAS
|
#ifdef PUREBLAS
|
||||||
sgemv_(&trans,&N,&N,&fone,A,&N,B,&intone,&fzero,X,&intone);
|
sgemv_(&trans,&N,&N,&fone,A,&N,B,&intone,&fzero,X,&intone);
|
||||||
|
670
bench/btl/libs/C_BLAS/blas.h
Normal file
670
bench/btl/libs/C_BLAS/blas.h
Normal file
@ -0,0 +1,670 @@
|
|||||||
|
#ifndef BLAS_H
|
||||||
|
#define BLAS_H
|
||||||
|
|
||||||
|
#define BLASFUNC(FUNC) FUNC##_
|
||||||
|
|
||||||
|
#ifdef __WIN64__
|
||||||
|
typedef long long BLASLONG;
|
||||||
|
typedef unsigned long long BLASULONG;
|
||||||
|
#else
|
||||||
|
typedef long BLASLONG;
|
||||||
|
typedef unsigned long BLASULONG;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int BLASFUNC(xerbla)(char *, int *info, int);
|
||||||
|
|
||||||
|
float BLASFUNC(sdot) (int *, float *, int *, float *, int *);
|
||||||
|
float BLASFUNC(sdsdot)(int *, float *, float *, int *, float *, int *);
|
||||||
|
|
||||||
|
double BLASFUNC(dsdot) (int *, float *, int *, float *, int *);
|
||||||
|
double BLASFUNC(ddot) (int *, double *, int *, double *, int *);
|
||||||
|
double BLASFUNC(qdot) (int *, double *, int *, double *, int *);
|
||||||
|
|
||||||
|
#if defined(F_INTERFACE_GFORT) && !defined(__64BIT__)
|
||||||
|
int BLASFUNC(cdotu) (int *, float * , int *, float *, int *);
|
||||||
|
int BLASFUNC(cdotc) (int *, float *, int *, float *, int *);
|
||||||
|
void BLASFUNC(zdotu) (double *, int *, double *, int *, double *, int *);
|
||||||
|
void BLASFUNC(zdotc) (double *, int *, double *, int *, double *, int *);
|
||||||
|
void BLASFUNC(xdotu) (double *, int *, double *, int *, double *, int *);
|
||||||
|
void BLASFUNC(xdotc) (double *, int *, double *, int *, double *, int *);
|
||||||
|
#elif defined(F_INTERFACE_F2C) || \
|
||||||
|
defined(F_INTERFACE_PGI) || \
|
||||||
|
defined(F_INTERFACE_GFORT) || \
|
||||||
|
(defined(F_INTERFACE_PATHSCALE) && defined(__64BIT__))
|
||||||
|
void BLASFUNC(cdotu) (float *, int *, float * , int *, float *, int *);
|
||||||
|
void BLASFUNC(cdotc) (float *, int *, float *, int *, float *, int *);
|
||||||
|
void BLASFUNC(zdotu) (double *, int *, double *, int *, double *, int *);
|
||||||
|
void BLASFUNC(zdotc) (double *, int *, double *, int *, double *, int *);
|
||||||
|
void BLASFUNC(xdotu) (double *, int *, double *, int *, double *, int *);
|
||||||
|
void BLASFUNC(xdotc) (double *, int *, double *, int *, double *, int *);
|
||||||
|
#else
|
||||||
|
float BLASFUNC(cdotu) (int *, float *, int *, float *, int *);
|
||||||
|
float BLASFUNC(cdotc) (int *, float *, int *, float *, int *);
|
||||||
|
double BLASFUNC(zdotu) (int *, double *, int *, double *, int *);
|
||||||
|
double BLASFUNC(zdotc) (int *, double *, int *, double *, int *);
|
||||||
|
double BLASFUNC(xdotu) (int *, double *, int *, double *, int *);
|
||||||
|
double BLASFUNC(xdotc) (int *, double *, int *, double *, int *);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int BLASFUNC(saxpy) (int *, float *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(daxpy) (int *, double *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(qaxpy) (int *, double *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(caxpy) (int *, float *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(zaxpy) (int *, double *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(xaxpy) (int *, double *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(caxpyc)(int *, float *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(zaxpyc)(int *, double *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(xaxpyc)(int *, double *, double *, int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(scopy) (int *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(dcopy) (int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(qcopy) (int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(ccopy) (int *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(zcopy) (int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(xcopy) (int *, double *, int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(sswap) (int *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(dswap) (int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(qswap) (int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(cswap) (int *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(zswap) (int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(xswap) (int *, double *, int *, double *, int *);
|
||||||
|
|
||||||
|
float BLASFUNC(sasum) (int *, float *, int *);
|
||||||
|
float BLASFUNC(scasum)(int *, float *, int *);
|
||||||
|
double BLASFUNC(dasum) (int *, double *, int *);
|
||||||
|
double BLASFUNC(qasum) (int *, double *, int *);
|
||||||
|
double BLASFUNC(dzasum)(int *, double *, int *);
|
||||||
|
double BLASFUNC(qxasum)(int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(isamax)(int *, float *, int *);
|
||||||
|
int BLASFUNC(idamax)(int *, double *, int *);
|
||||||
|
int BLASFUNC(iqamax)(int *, double *, int *);
|
||||||
|
int BLASFUNC(icamax)(int *, float *, int *);
|
||||||
|
int BLASFUNC(izamax)(int *, double *, int *);
|
||||||
|
int BLASFUNC(ixamax)(int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(ismax) (int *, float *, int *);
|
||||||
|
int BLASFUNC(idmax) (int *, double *, int *);
|
||||||
|
int BLASFUNC(iqmax) (int *, double *, int *);
|
||||||
|
int BLASFUNC(icmax) (int *, float *, int *);
|
||||||
|
int BLASFUNC(izmax) (int *, double *, int *);
|
||||||
|
int BLASFUNC(ixmax) (int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(isamin)(int *, float *, int *);
|
||||||
|
int BLASFUNC(idamin)(int *, double *, int *);
|
||||||
|
int BLASFUNC(iqamin)(int *, double *, int *);
|
||||||
|
int BLASFUNC(icamin)(int *, float *, int *);
|
||||||
|
int BLASFUNC(izamin)(int *, double *, int *);
|
||||||
|
int BLASFUNC(ixamin)(int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(ismin)(int *, float *, int *);
|
||||||
|
int BLASFUNC(idmin)(int *, double *, int *);
|
||||||
|
int BLASFUNC(iqmin)(int *, double *, int *);
|
||||||
|
int BLASFUNC(icmin)(int *, float *, int *);
|
||||||
|
int BLASFUNC(izmin)(int *, double *, int *);
|
||||||
|
int BLASFUNC(ixmin)(int *, double *, int *);
|
||||||
|
|
||||||
|
float BLASFUNC(samax) (int *, float *, int *);
|
||||||
|
double BLASFUNC(damax) (int *, double *, int *);
|
||||||
|
double BLASFUNC(qamax) (int *, double *, int *);
|
||||||
|
float BLASFUNC(scamax)(int *, float *, int *);
|
||||||
|
double BLASFUNC(dzamax)(int *, double *, int *);
|
||||||
|
double BLASFUNC(qxamax)(int *, double *, int *);
|
||||||
|
|
||||||
|
float BLASFUNC(samin) (int *, float *, int *);
|
||||||
|
double BLASFUNC(damin) (int *, double *, int *);
|
||||||
|
double BLASFUNC(qamin) (int *, double *, int *);
|
||||||
|
float BLASFUNC(scamin)(int *, float *, int *);
|
||||||
|
double BLASFUNC(dzamin)(int *, double *, int *);
|
||||||
|
double BLASFUNC(qxamin)(int *, double *, int *);
|
||||||
|
|
||||||
|
float BLASFUNC(smax) (int *, float *, int *);
|
||||||
|
double BLASFUNC(dmax) (int *, double *, int *);
|
||||||
|
double BLASFUNC(qmax) (int *, double *, int *);
|
||||||
|
float BLASFUNC(scmax) (int *, float *, int *);
|
||||||
|
double BLASFUNC(dzmax) (int *, double *, int *);
|
||||||
|
double BLASFUNC(qxmax) (int *, double *, int *);
|
||||||
|
|
||||||
|
float BLASFUNC(smin) (int *, float *, int *);
|
||||||
|
double BLASFUNC(dmin) (int *, double *, int *);
|
||||||
|
double BLASFUNC(qmin) (int *, double *, int *);
|
||||||
|
float BLASFUNC(scmin) (int *, float *, int *);
|
||||||
|
double BLASFUNC(dzmin) (int *, double *, int *);
|
||||||
|
double BLASFUNC(qxmin) (int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(sscal) (int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(dscal) (int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(qscal) (int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(cscal) (int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zscal) (int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xscal) (int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(csscal)(int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zdscal)(int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xqscal)(int *, double *, double *, int *);
|
||||||
|
|
||||||
|
float BLASFUNC(snrm2) (int *, float *, int *);
|
||||||
|
float BLASFUNC(scnrm2)(int *, float *, int *);
|
||||||
|
|
||||||
|
double BLASFUNC(dnrm2) (int *, double *, int *);
|
||||||
|
double BLASFUNC(qnrm2) (int *, double *, int *);
|
||||||
|
double BLASFUNC(dznrm2)(int *, double *, int *);
|
||||||
|
double BLASFUNC(qxnrm2)(int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(srot) (int *, float *, int *, float *, int *, float *, float *);
|
||||||
|
int BLASFUNC(drot) (int *, double *, int *, double *, int *, double *, double *);
|
||||||
|
int BLASFUNC(qrot) (int *, double *, int *, double *, int *, double *, double *);
|
||||||
|
int BLASFUNC(csrot) (int *, float *, int *, float *, int *, float *, float *);
|
||||||
|
int BLASFUNC(zdrot) (int *, double *, int *, double *, int *, double *, double *);
|
||||||
|
int BLASFUNC(xqrot) (int *, double *, int *, double *, int *, double *, double *);
|
||||||
|
|
||||||
|
int BLASFUNC(srotg) (float *, float *, float *, float *);
|
||||||
|
int BLASFUNC(drotg) (double *, double *, double *, double *);
|
||||||
|
int BLASFUNC(qrotg) (double *, double *, double *, double *);
|
||||||
|
int BLASFUNC(crotg) (float *, float *, float *, float *);
|
||||||
|
int BLASFUNC(zrotg) (double *, double *, double *, double *);
|
||||||
|
int BLASFUNC(xrotg) (double *, double *, double *, double *);
|
||||||
|
|
||||||
|
int BLASFUNC(srotmg)(float *, float *, float *, float *, float *);
|
||||||
|
int BLASFUNC(drotmg)(double *, double *, double *, double *, double *);
|
||||||
|
|
||||||
|
int BLASFUNC(srotm) (int *, float *, int *, float *, int *, float *);
|
||||||
|
int BLASFUNC(drotm) (int *, double *, int *, double *, int *, double *);
|
||||||
|
int BLASFUNC(qrotm) (int *, double *, int *, double *, int *, double *);
|
||||||
|
|
||||||
|
/* Level 2 routines */
|
||||||
|
|
||||||
|
int BLASFUNC(sger)(int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(dger)(int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(qger)(int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(cgeru)(int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(cgerc)(int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(zgeru)(int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(zgerc)(int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(xgeru)(int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(xgerc)(int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(sgemv)(char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(dgemv)(char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(qgemv)(char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(cgemv)(char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zgemv)(char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xgemv)(char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(strsv) (char *, char *, char *, int *, float *, int *,
|
||||||
|
float *, int *);
|
||||||
|
int BLASFUNC(dtrsv) (char *, char *, char *, int *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
int BLASFUNC(qtrsv) (char *, char *, char *, int *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
int BLASFUNC(ctrsv) (char *, char *, char *, int *, float *, int *,
|
||||||
|
float *, int *);
|
||||||
|
int BLASFUNC(ztrsv) (char *, char *, char *, int *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
int BLASFUNC(xtrsv) (char *, char *, char *, int *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(stpsv) (char *, char *, char *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(dtpsv) (char *, char *, char *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(qtpsv) (char *, char *, char *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(ctpsv) (char *, char *, char *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(ztpsv) (char *, char *, char *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xtpsv) (char *, char *, char *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(strmv) (char *, char *, char *, int *, float *, int *,
|
||||||
|
float *, int *);
|
||||||
|
int BLASFUNC(dtrmv) (char *, char *, char *, int *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
int BLASFUNC(qtrmv) (char *, char *, char *, int *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
int BLASFUNC(ctrmv) (char *, char *, char *, int *, float *, int *,
|
||||||
|
float *, int *);
|
||||||
|
int BLASFUNC(ztrmv) (char *, char *, char *, int *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
int BLASFUNC(xtrmv) (char *, char *, char *, int *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(stpmv) (char *, char *, char *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(dtpmv) (char *, char *, char *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(qtpmv) (char *, char *, char *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(ctpmv) (char *, char *, char *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(ztpmv) (char *, char *, char *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xtpmv) (char *, char *, char *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(stbmv) (char *, char *, char *, int *, int *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(dtbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(qtbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(ctbmv) (char *, char *, char *, int *, int *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(ztbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(xtbmv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(stbsv) (char *, char *, char *, int *, int *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(dtbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(qtbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(ctbsv) (char *, char *, char *, int *, int *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(ztbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(xtbsv) (char *, char *, char *, int *, int *, double *, int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(ssymv) (char *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(dsymv) (char *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(qsymv) (char *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(csymv) (char *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zsymv) (char *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xsymv) (char *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(sspmv) (char *, int *, float *, float *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(dspmv) (char *, int *, double *, double *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(qspmv) (char *, int *, double *, double *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(cspmv) (char *, int *, float *, float *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zspmv) (char *, int *, double *, double *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xspmv) (char *, int *, double *, double *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(ssyr) (char *, int *, float *, float *, int *,
|
||||||
|
float *, int *);
|
||||||
|
int BLASFUNC(dsyr) (char *, int *, double *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
int BLASFUNC(qsyr) (char *, int *, double *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
int BLASFUNC(csyr) (char *, int *, float *, float *, int *,
|
||||||
|
float *, int *);
|
||||||
|
int BLASFUNC(zsyr) (char *, int *, double *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
int BLASFUNC(xsyr) (char *, int *, double *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(ssyr2) (char *, int *, float *,
|
||||||
|
float *, int *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(dsyr2) (char *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(qsyr2) (char *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(csyr2) (char *, int *, float *,
|
||||||
|
float *, int *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(zsyr2) (char *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(xsyr2) (char *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(sspr) (char *, int *, float *, float *, int *,
|
||||||
|
float *);
|
||||||
|
int BLASFUNC(dspr) (char *, int *, double *, double *, int *,
|
||||||
|
double *);
|
||||||
|
int BLASFUNC(qspr) (char *, int *, double *, double *, int *,
|
||||||
|
double *);
|
||||||
|
int BLASFUNC(cspr) (char *, int *, float *, float *, int *,
|
||||||
|
float *);
|
||||||
|
int BLASFUNC(zspr) (char *, int *, double *, double *, int *,
|
||||||
|
double *);
|
||||||
|
int BLASFUNC(xspr) (char *, int *, double *, double *, int *,
|
||||||
|
double *);
|
||||||
|
|
||||||
|
int BLASFUNC(sspr2) (char *, int *, float *,
|
||||||
|
float *, int *, float *, int *, float *);
|
||||||
|
int BLASFUNC(dspr2) (char *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *);
|
||||||
|
int BLASFUNC(qspr2) (char *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *);
|
||||||
|
int BLASFUNC(cspr2) (char *, int *, float *,
|
||||||
|
float *, int *, float *, int *, float *);
|
||||||
|
int BLASFUNC(zspr2) (char *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *);
|
||||||
|
int BLASFUNC(xspr2) (char *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *);
|
||||||
|
|
||||||
|
int BLASFUNC(cher) (char *, int *, float *, float *, int *,
|
||||||
|
float *, int *);
|
||||||
|
int BLASFUNC(zher) (char *, int *, double *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
int BLASFUNC(xher) (char *, int *, double *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(chpr) (char *, int *, float *, float *, int *, float *);
|
||||||
|
int BLASFUNC(zhpr) (char *, int *, double *, double *, int *, double *);
|
||||||
|
int BLASFUNC(xhpr) (char *, int *, double *, double *, int *, double *);
|
||||||
|
|
||||||
|
int BLASFUNC(cher2) (char *, int *, float *,
|
||||||
|
float *, int *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(zher2) (char *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(xher2) (char *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(chpr2) (char *, int *, float *,
|
||||||
|
float *, int *, float *, int *, float *);
|
||||||
|
int BLASFUNC(zhpr2) (char *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *);
|
||||||
|
int BLASFUNC(xhpr2) (char *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *);
|
||||||
|
|
||||||
|
int BLASFUNC(chemv) (char *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zhemv) (char *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xhemv) (char *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(chpmv) (char *, int *, float *, float *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zhpmv) (char *, int *, double *, double *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xhpmv) (char *, int *, double *, double *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(snorm)(char *, int *, int *, float *, int *);
|
||||||
|
int BLASFUNC(dnorm)(char *, int *, int *, double *, int *);
|
||||||
|
int BLASFUNC(cnorm)(char *, int *, int *, float *, int *);
|
||||||
|
int BLASFUNC(znorm)(char *, int *, int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(sgbmv)(char *, int *, int *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(dgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(qgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(cgbmv)(char *, int *, int *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xgbmv)(char *, int *, int *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(ssbmv)(char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(dsbmv)(char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(qsbmv)(char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(csbmv)(char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zsbmv)(char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xsbmv)(char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(chbmv)(char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zhbmv)(char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xhbmv)(char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
/* Level 3 routines */
|
||||||
|
|
||||||
|
int BLASFUNC(sgemm)(char *, char *, int *, int *, int *, float *,
|
||||||
|
float *, int *, float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(dgemm)(char *, char *, int *, int *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(qgemm)(char *, char *, int *, int *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(cgemm)(char *, char *, int *, int *, int *, float *,
|
||||||
|
float *, int *, float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zgemm)(char *, char *, int *, int *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xgemm)(char *, char *, int *, int *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(cgemm3m)(char *, char *, int *, int *, int *, float *,
|
||||||
|
float *, int *, float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zgemm3m)(char *, char *, int *, int *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xgemm3m)(char *, char *, int *, int *, int *, double *,
|
||||||
|
double *, int *, double *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(sge2mm)(char *, char *, char *, int *, int *,
|
||||||
|
float *, float *, int *, float *, int *,
|
||||||
|
float *, float *, int *);
|
||||||
|
int BLASFUNC(dge2mm)(char *, char *, char *, int *, int *,
|
||||||
|
double *, double *, int *, double *, int *,
|
||||||
|
double *, double *, int *);
|
||||||
|
int BLASFUNC(cge2mm)(char *, char *, char *, int *, int *,
|
||||||
|
float *, float *, int *, float *, int *,
|
||||||
|
float *, float *, int *);
|
||||||
|
int BLASFUNC(zge2mm)(char *, char *, char *, int *, int *,
|
||||||
|
double *, double *, int *, double *, int *,
|
||||||
|
double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(strsm)(char *, char *, char *, char *, int *, int *,
|
||||||
|
float *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(dtrsm)(char *, char *, char *, char *, int *, int *,
|
||||||
|
double *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(qtrsm)(char *, char *, char *, char *, int *, int *,
|
||||||
|
double *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(ctrsm)(char *, char *, char *, char *, int *, int *,
|
||||||
|
float *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(ztrsm)(char *, char *, char *, char *, int *, int *,
|
||||||
|
double *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(xtrsm)(char *, char *, char *, char *, int *, int *,
|
||||||
|
double *, double *, int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(strmm)(char *, char *, char *, char *, int *, int *,
|
||||||
|
float *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(dtrmm)(char *, char *, char *, char *, int *, int *,
|
||||||
|
double *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(qtrmm)(char *, char *, char *, char *, int *, int *,
|
||||||
|
double *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(ctrmm)(char *, char *, char *, char *, int *, int *,
|
||||||
|
float *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(ztrmm)(char *, char *, char *, char *, int *, int *,
|
||||||
|
double *, double *, int *, double *, int *);
|
||||||
|
int BLASFUNC(xtrmm)(char *, char *, char *, char *, int *, int *,
|
||||||
|
double *, double *, int *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(ssymm)(char *, char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(dsymm)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(qsymm)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(csymm)(char *, char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zsymm)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xsymm)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(csymm3m)(char *, char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zsymm3m)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xsymm3m)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(ssyrk)(char *, char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, float *, int *);
|
||||||
|
int BLASFUNC(dsyrk)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, double *, int *);
|
||||||
|
int BLASFUNC(qsyrk)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, double *, int *);
|
||||||
|
int BLASFUNC(csyrk)(char *, char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, float *, int *);
|
||||||
|
int BLASFUNC(zsyrk)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, double *, int *);
|
||||||
|
int BLASFUNC(xsyrk)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(ssyr2k)(char *, char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(dsyr2k)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double*, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(qsyr2k)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double*, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(csyr2k)(char *, char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zsyr2k)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double*, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xsyr2k)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double*, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(chemm)(char *, char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zhemm)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xhemm)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(chemm3m)(char *, char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zhemm3m)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xhemm3m)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(cherk)(char *, char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, float *, int *);
|
||||||
|
int BLASFUNC(zherk)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, double *, int *);
|
||||||
|
int BLASFUNC(xherk)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(cher2k)(char *, char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zher2k)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double*, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xher2k)(char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double*, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(cher2m)(char *, char *, char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *, float *, float *, int *);
|
||||||
|
int BLASFUNC(zher2m)(char *, char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double*, int *, double *, double *, int *);
|
||||||
|
int BLASFUNC(xher2m)(char *, char *, char *, int *, int *, double *, double *, int *,
|
||||||
|
double*, int *, double *, double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(sgemt)(char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *);
|
||||||
|
int BLASFUNC(dgemt)(char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
int BLASFUNC(cgemt)(char *, int *, int *, float *, float *, int *,
|
||||||
|
float *, int *);
|
||||||
|
int BLASFUNC(zgemt)(char *, int *, int *, double *, double *, int *,
|
||||||
|
double *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(sgema)(char *, char *, int *, int *, float *,
|
||||||
|
float *, int *, float *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(dgema)(char *, char *, int *, int *, double *,
|
||||||
|
double *, int *, double*, double *, int *, double*, int *);
|
||||||
|
int BLASFUNC(cgema)(char *, char *, int *, int *, float *,
|
||||||
|
float *, int *, float *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(zgema)(char *, char *, int *, int *, double *,
|
||||||
|
double *, int *, double*, double *, int *, double*, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(sgems)(char *, char *, int *, int *, float *,
|
||||||
|
float *, int *, float *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(dgems)(char *, char *, int *, int *, double *,
|
||||||
|
double *, int *, double*, double *, int *, double*, int *);
|
||||||
|
int BLASFUNC(cgems)(char *, char *, int *, int *, float *,
|
||||||
|
float *, int *, float *, float *, int *, float *, int *);
|
||||||
|
int BLASFUNC(zgems)(char *, char *, int *, int *, double *,
|
||||||
|
double *, int *, double*, double *, int *, double*, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(sgetf2)(int *, int *, float *, int *, int *, int *);
|
||||||
|
int BLASFUNC(dgetf2)(int *, int *, double *, int *, int *, int *);
|
||||||
|
int BLASFUNC(qgetf2)(int *, int *, double *, int *, int *, int *);
|
||||||
|
int BLASFUNC(cgetf2)(int *, int *, float *, int *, int *, int *);
|
||||||
|
int BLASFUNC(zgetf2)(int *, int *, double *, int *, int *, int *);
|
||||||
|
int BLASFUNC(xgetf2)(int *, int *, double *, int *, int *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(sgetrf)(int *, int *, float *, int *, int *, int *);
|
||||||
|
int BLASFUNC(dgetrf)(int *, int *, double *, int *, int *, int *);
|
||||||
|
int BLASFUNC(qgetrf)(int *, int *, double *, int *, int *, int *);
|
||||||
|
int BLASFUNC(cgetrf)(int *, int *, float *, int *, int *, int *);
|
||||||
|
int BLASFUNC(zgetrf)(int *, int *, double *, int *, int *, int *);
|
||||||
|
int BLASFUNC(xgetrf)(int *, int *, double *, int *, int *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(slaswp)(int *, float *, int *, int *, int *, int *, int *);
|
||||||
|
int BLASFUNC(dlaswp)(int *, double *, int *, int *, int *, int *, int *);
|
||||||
|
int BLASFUNC(qlaswp)(int *, double *, int *, int *, int *, int *, int *);
|
||||||
|
int BLASFUNC(claswp)(int *, float *, int *, int *, int *, int *, int *);
|
||||||
|
int BLASFUNC(zlaswp)(int *, double *, int *, int *, int *, int *, int *);
|
||||||
|
int BLASFUNC(xlaswp)(int *, double *, int *, int *, int *, int *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(sgetrs)(char *, int *, int *, float *, int *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(dgetrs)(char *, int *, int *, double *, int *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(qgetrs)(char *, int *, int *, double *, int *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(cgetrs)(char *, int *, int *, float *, int *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(zgetrs)(char *, int *, int *, double *, int *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(xgetrs)(char *, int *, int *, double *, int *, int *, double *, int *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(sgesv)(int *, int *, float *, int *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(dgesv)(int *, int *, double *, int *, int *, double*, int *, int *);
|
||||||
|
int BLASFUNC(qgesv)(int *, int *, double *, int *, int *, double*, int *, int *);
|
||||||
|
int BLASFUNC(cgesv)(int *, int *, float *, int *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(zgesv)(int *, int *, double *, int *, int *, double*, int *, int *);
|
||||||
|
int BLASFUNC(xgesv)(int *, int *, double *, int *, int *, double*, int *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(spotf2)(char *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(dpotf2)(char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(qpotf2)(char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(cpotf2)(char *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(zpotf2)(char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(xpotf2)(char *, int *, double *, int *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(spotrf)(char *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(dpotrf)(char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(qpotrf)(char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(cpotrf)(char *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(zpotrf)(char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(xpotrf)(char *, int *, double *, int *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(slauu2)(char *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(dlauu2)(char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(qlauu2)(char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(clauu2)(char *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(zlauu2)(char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(xlauu2)(char *, int *, double *, int *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(slauum)(char *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(dlauum)(char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(qlauum)(char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(clauum)(char *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(zlauum)(char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(xlauum)(char *, int *, double *, int *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(strti2)(char *, char *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(dtrti2)(char *, char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(qtrti2)(char *, char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(ctrti2)(char *, char *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(ztrti2)(char *, char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(xtrti2)(char *, char *, int *, double *, int *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(strtri)(char *, char *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(dtrtri)(char *, char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(qtrtri)(char *, char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(ctrtri)(char *, char *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(ztrtri)(char *, char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(xtrtri)(char *, char *, int *, double *, int *, int *);
|
||||||
|
|
||||||
|
int BLASFUNC(spotri)(char *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(dpotri)(char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(qpotri)(char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(cpotri)(char *, int *, float *, int *, int *);
|
||||||
|
int BLASFUNC(zpotri)(char *, int *, double *, int *, int *);
|
||||||
|
int BLASFUNC(xpotri)(char *, int *, double *, int *, int *);
|
||||||
|
|
||||||
|
#endif
|
@ -40,6 +40,7 @@ int main()
|
|||||||
|
|
||||||
bench<Action_matrix_vector_product<C_BLAS_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
|
bench<Action_matrix_vector_product<C_BLAS_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
|
||||||
bench<Action_atv_product<C_BLAS_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
|
bench<Action_atv_product<C_BLAS_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
|
||||||
|
bench<Action_symv<C_BLAS_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
|
||||||
|
|
||||||
bench<Action_matrix_matrix_product<C_BLAS_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
bench<Action_matrix_matrix_product<C_BLAS_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
||||||
bench<Action_ata_product<C_BLAS_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
bench<Action_ata_product<C_BLAS_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
||||||
@ -49,7 +50,7 @@ int main()
|
|||||||
bench<Action_trisolve_matrix<C_BLAS_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
bench<Action_trisolve_matrix<C_BLAS_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
||||||
|
|
||||||
bench<Action_cholesky<C_BLAS_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
bench<Action_cholesky<C_BLAS_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
||||||
|
|
||||||
#ifdef HAS_LAPACK
|
#ifdef HAS_LAPACK
|
||||||
bench<Action_lu_decomp<C_BLAS_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
bench<Action_lu_decomp<C_BLAS_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
||||||
bench<Action_hessenberg<C_BLAS_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
bench<Action_hessenberg<C_BLAS_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
||||||
|
@ -130,6 +130,23 @@ public :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void symv(gene_matrix & A, gene_vector & B, gene_vector & X, int N)
|
||||||
|
{
|
||||||
|
for (int j=0; j<N; ++j)
|
||||||
|
X[j] = 0;
|
||||||
|
for (int j=0; j<N; ++j)
|
||||||
|
{
|
||||||
|
real t1 = B[j];
|
||||||
|
real t2 = 0;
|
||||||
|
X[j] += t1 * A[j][j];
|
||||||
|
for (int i=j+1; i<N; ++i) {
|
||||||
|
X[i] += t1 * A[j][i];
|
||||||
|
t2 += A[j][i] * B[i];
|
||||||
|
}
|
||||||
|
X[j] += t2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static inline void atv_product(gene_matrix & A, gene_vector & B, gene_vector & X, int N)
|
static inline void atv_product(gene_matrix & A, gene_vector & B, gene_vector & X, int N)
|
||||||
{
|
{
|
||||||
real somme;
|
real somme;
|
||||||
|
@ -30,6 +30,7 @@ int main()
|
|||||||
bench<Action_axpby<STL_interface<REAL_TYPE> > >(MIN_AXPY,MAX_AXPY,NB_POINT);
|
bench<Action_axpby<STL_interface<REAL_TYPE> > >(MIN_AXPY,MAX_AXPY,NB_POINT);
|
||||||
bench<Action_matrix_vector_product<STL_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
|
bench<Action_matrix_vector_product<STL_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
|
||||||
bench<Action_atv_product<STL_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
|
bench<Action_atv_product<STL_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
|
||||||
|
bench<Action_symv<STL_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
|
||||||
bench<Action_matrix_matrix_product<STL_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
bench<Action_matrix_matrix_product<STL_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
||||||
bench<Action_ata_product<STL_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
bench<Action_ata_product<STL_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
||||||
bench<Action_aat_product<STL_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
bench<Action_aat_product<STL_interface<REAL_TYPE> > >(MIN_MM,MAX_MM,NB_POINT);
|
||||||
|
@ -113,6 +113,10 @@ public :
|
|||||||
X = (A*B)/*.lazy()*/;
|
X = (A*B)/*.lazy()*/;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline void symv(const gene_matrix & A, const gene_vector & B, gene_vector & X, int N){
|
||||||
|
X = (A.template marked<SelfAdjoint|LowerTriangular>() * B)/*.lazy()*/;
|
||||||
|
}
|
||||||
|
|
||||||
static inline void atv_product(gene_matrix & A, gene_vector & B, gene_vector & X, int N){
|
static inline void atv_product(gene_matrix & A, gene_vector & B, gene_vector & X, int N){
|
||||||
X = (A.transpose()*B)/*.lazy()*/;
|
X = (A.transpose()*B)/*.lazy()*/;
|
||||||
}
|
}
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "eigen2_interface.hh"
|
#include "eigen2_interface.hh"
|
||||||
#include "bench.hh"
|
#include "bench.hh"
|
||||||
#include "basic_actions.hh"
|
#include "basic_actions.hh"
|
||||||
|
#include "action_symv.hh"
|
||||||
|
|
||||||
BTL_MAIN;
|
BTL_MAIN;
|
||||||
|
|
||||||
@ -26,6 +27,7 @@ int main()
|
|||||||
{
|
{
|
||||||
bench<Action_matrix_vector_product<eigen2_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
|
bench<Action_matrix_vector_product<eigen2_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
|
||||||
bench<Action_atv_product<eigen2_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
|
bench<Action_atv_product<eigen2_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
|
||||||
|
bench<Action_symv<eigen2_interface<REAL_TYPE> > >(MIN_MV,MAX_MV,NB_POINT);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user