copasi API
0.1
|
00001 // Begin CVS Header 00002 // $Source: /fs/turing/cvs/copasi_dev/copasi/blaswrap.h,v $ 00003 // $Revision: 1.12 $ 00004 // $Name: Build-33 $ 00005 // $Author: shoops $ 00006 // $Date: 2007/12/13 13:31:09 $ 00007 // End CVS Header 00008 00009 // Copyright (C) 2007 by Pedro Mendes, Virginia Tech Intellectual 00010 // Properties, Inc. and EML Research, gGmbH. 00011 // All rights reserved. 00012 00013 #ifndef __BLAS_H 00014 #define __BLAS_H 00015 00016 #ifdef min 00017 # undef min 00018 #endif // min 00019 00020 #ifdef max 00021 # undef max 00022 #endif // max 00023 00024 extern "C" 00025 { 00026 #ifdef USE_MKL 00027 # include "mkl_blas.h" 00028 # define daxpy_ daxpy 00029 # define dcopy_ dcopy 00030 # define ddot_ ddot 00031 # define dgemm_ dgemm 00032 # define dnrm2_ dnrm2 00033 # define dscal_ dscal 00034 # define idamax_ idamax 00035 #endif // USE_MKL 00036 00037 #if (defined USE_CLAPACK || defined USE_LAPACK) 00038 # ifdef USE_CLAPACK 00039 # define daxpy_ f2c_daxpy 00040 # define dcopy_ f2c_dcopy 00041 # define ddot_ f2c_ddot 00042 # define dgemm_ f2c_dgemm 00043 # define dnrm2_ f2c_dnrm2 00044 # define dscal_ f2c_dscal 00045 # define idamax_ f2c_idamax 00046 # endif // USE_CLAPACK 00047 # include "f2c.h" 00048 # include "blas.h" 00049 #endif // USE_CLAPACK || USE_LAPACK 00050 00051 #ifdef USE_SUNPERF 00052 # include "sunperf.h" 00053 #endif // USE_SUNPERF 00054 } 00055 00056 #ifdef Darwin 00057 # define vector 00058 # include "Accelerate.h" 00059 # define daxpy_(N, ALPHA, X, INCX, Y, INCY) \ 00060 cblas_daxpy(*N, *ALPHA, X, *INCX, Y, *INCY) 00061 # define dcopy_(N, X, INCX, Y, INCY) \ 00062 cblas_dcopy(*N, X, *INCX, Y, *INCY) 00063 # define ddot_(N, X, INCX, Y, INCY) \ 00064 cblas_ddot(*N, X, *INCX, Y, *INCY) 00065 # define dgemm_(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC) \ 00066 cblas_dgemm(CblasColMajor, \ 00067 (*TRANSA == 'N' ? CblasNoTrans: CblasTrans), \ 00068 (*TRANSB == 'N' ? CblasNoTrans: CblasTrans), \ 00069 *M, *N, *K, *ALPHA, A, *LDA, B, *LDB, *BETA, C, *LDC) 00070 # define dscal_(N, ALPHA, X, INCX) cblas_dscal(*N, *ALPHA, X *INCX) 00071 # define dnrm2_(N, X, INCX) cblas_dnrm2(*N, X, *INCX) 00072 # define idamax_(N, X, INCX) \ 00073 cblas_idamax(*N, X, *INCX) 00074 # undef vector 00075 # define vector vector 00076 using std::isnan; 00077 #endif // Darwin 00078 00079 #ifdef min 00080 # undef min 00081 #endif // min 00082 00083 #ifdef max 00084 # undef max 00085 #endif // max 00086 00087 #ifdef WIN32 00088 //# define min _cpp_min 00089 //# define max _cpp_max 00090 #endif // WIN32 00091 00092 #endif // __BLAS_H