| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | /* Kernel Independent Fast Multipole Method   Copyright (C) 2004 Lexing Ying, New York UniversityThis program is free software; you can redistribute it and/or modifyit under the terms of the GNU General Public License as published bythe Free Software Foundation; either version 2, or (at your option)any later version.This program is distributed in the hope that it will be useful, but WITHOUTANY WARRANTY; without even the implied warranty of MERCHANTABILITY orFITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public Licensefor more details.You should have received a copy of the GNU General Public Licensealong with this program; see the file COPYING.  If not, write to the FreeSoftware Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA02111-1307, USA.  */#ifndef _BLAS_H_#define _BLAS_H_extern "C"{  /*! DAXPY compute y := alpha * x + y where alpha is a scalar and x and y are n-vectors.	*  See http://www.netlib.org/blas/daxpy.f for more information.	*/  void saxpy_(int* N, float* ALPHA, float* X, int* INCX, float* Y, int* INCY);  void daxpy_(int* N, double* ALPHA, double* X, int* INCX, double* Y, int* INCY);  /*!  DGEMM  performs one of the matrix-matrix operations	*	*     C := alpha*op( A )*op( B ) + beta*C,	*	*  where  op( X ) is one of	*	*     op( X ) = X   or   op( X ) = X',	*	*  alpha and beta are scalars, and A, B and C are matrices, with op( A )	*  an m by k matrix,  op( B )  a  k by n matrix and  C an m by n matrix.	*  See http://www.netlib.org/blas/dgemm.f for more information.	*/  void sgemm_(char* TRANSA, char* TRANSB, int* M, int* N, int* K, float* ALPHA, float* A,				 int* LDA, float* B, int* LDB, float* BETA, float* C, int* LDC);  void dgemm_(char* TRANSA, char* TRANSB, int* M, int* N, int* K, double* ALPHA, double* A,				 int* LDA, double* B, int* LDB, double* BETA, double* C, int* LDC);  /*!  DGEMV  performs one of the matrix-vector operations	*	*     y := alpha*A*x + beta*y,   or   y := alpha*A'*x + beta*y,	*	*  where alpha and beta are scalars, x and y are vectors and A is an m by n matrix.	*  See http://www.netlib.org/blas/dgemv.f for more information	*/  void sgemv_(char* TRANS, int* M, int* N, float* ALPHA, float* A, int* LDA, float* X, int* INCX,				 float* BETA, float* Y, int* INCY);  void dgemv_(char* TRANS, int* M, int* N, double* ALPHA, double* A, int* LDA, double* X, int* INCX,				 double* BETA, double* Y, int* INCY);  /*!  DGER   performs the rank 1 operation	*	*     A := alpha*x*y' + A,	*	*  where alpha is a scalar, x is an m element vector, y is an n element	*  vector and A is an m by n matrix.	*  See http://www.netlib.org/blas/dger.f for more information	*/  void sger_ (int* M, int * N, float* ALPHA, float* X, int* INCX, float* Y, int* INCY,				 float* A, int* LDA);  void dger_ (int* M, int * N, double* ALPHA, double* X, int* INCX, double* Y, int* INCY,				 double* A, int* LDA);  /*! DSCAL computes y := alpha * y where alpha is a scalar and y is an n-vector.	*  See http://www.netlib.org/blas/dscal.f for more information	*/  void sscal_(int* N, float* ALPHA, float* X, int* INCX);  void dscal_(int* N, double* ALPHA, double* X, int* INCX);}#endif
 |