Lapack++
|
00001 // -*-C++-*- 00002 00003 // Copyright (C) 2004 00004 // Christian Stimming <stimming@tuhh.de> 00005 00006 // This library is free software; you can redistribute it and/or 00007 // modify it under the terms of the GNU Lesser General Public License as 00008 // published by the Free Software Foundation; either version 2, or (at 00009 // your option) any later version. 00010 00011 // This library is distributed in the hope that it will be useful, 00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 // GNU Lesser General Public License for more details. 00015 00016 // You should have received a copy of the GNU Lesser General Public License along 00017 // with this library; see the file COPYING. If not, write to the Free 00018 // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, 00019 // USA. 00020 00021 // LAPACK++ (V. 1.1) 00022 00031 #ifndef _BLAS_PP_H_ 00032 #define _BLAS_PP_H_ 00033 00034 // requires 00035 // 00036 00037 #include "lafnames.h" 00038 #include LA_EXCEPTION_H 00039 #include "blas1pp.h" 00040 #include "blas2pp.h" 00041 #include "blas3pp.h" 00042 #include <cmath> 00043 #include LA_VECTOR_DOUBLE_H 00044 00045 00046 // Only enable this when LA_NO_DEPRECATED is not defined 00047 #ifndef LA_NO_DEPRECATED 00048 00049 //------------------------------------- 00050 // Vector/Vector operators 00051 //------------------------------------- 00052 00058 DLLIMPORT LaVectorDouble operator*(const LaVectorDouble &x, double a); 00059 00063 inline LaVectorDouble operator*(double a, const LaVectorDouble &x) 00064 { 00065 return operator*(x, a); 00066 } 00067 00071 DLLIMPORT double operator*(const LaVectorDouble &dx, 00072 const LaVectorDouble &dy); 00073 00077 DLLIMPORT LaVectorDouble operator+(const LaVectorDouble &dx, 00078 const LaVectorDouble &dy); 00079 00083 DLLIMPORT LaVectorDouble operator-(const LaVectorDouble &dx, 00084 const LaVectorDouble &dy); 00086 00087 //------------------------------------- 00089 //------------------------------------- 00091 00095 DLLIMPORT LaVectorDouble operator*(const LaGenMatDouble &A, 00096 const LaVectorDouble &dx); 00097 00098 #ifdef _LA_BAND_MAT_DOUBLE_H_ 00099 DLLIMPORT LaVectorDouble operator*(const LaBandMatDouble &A, 00100 const LaVectorDouble &dx); 00101 #endif 00102 00103 #ifdef _LA_SYMM_MAT_DOUBLE_H_ 00104 DLLIMPORT LaVectorDouble operator*(const LaSymmMatDouble &A, 00105 const LaVectorDouble &dx); 00106 #endif 00107 00108 #ifdef _LA_SYMM_BAND_MAT_DOUBLE_H_ 00109 DLLIMPORT LaVectorDouble operator*(const LaSymmBandMatDouble &A, 00110 const LaVectorDouble &dx); 00111 #endif 00112 00113 00114 #ifdef _LA_SPD_MAT_DOUBLE_H_ 00115 DLLIMPORT LaVectorDouble operator*(const LaSpdMatDouble &AP, 00116 const LaVectorDouble &dx); 00117 #endif 00118 00119 #ifdef _LA_LOWER_TRIANG_MAT_DOUBLE_H_ 00120 DLLIMPORT LaVectorDouble operator*(const LaLowerTriangMatDouble &A, 00121 const LaVectorDouble &dx); 00122 #endif 00123 00124 #ifdef _LA_UPPER_TRIANG_MAT_DOUBLE_H_ 00125 DLLIMPORT LaVectorDouble operator*(const LaUpperTriangMatDouble &A, 00126 const LaVectorDouble &dx); 00127 #endif 00128 00129 #ifdef _LA_UNIT_LOWER_TRIANG_MAT_DOUBLE_H_ 00130 DLLIMPORT LaVectorDouble operator*(const LaUnitLowerTriangMatDouble &A, 00131 const LaVectorDouble &dx); 00132 #endif 00133 00134 #ifdef _LA_UNIT_UPPER_TRIANG_MAT_DOUBLE_H_ 00135 DLLIMPORT LaVectorDouble operator*(const LaUnitUpperTriangMatDouble &A, 00136 const LaVectorDouble &dx); 00137 #endif 00138 00139 00140 //------------------------------------- 00142 //------------------------------------- 00144 00147 DLLIMPORT LaGenMatDouble operator*(const LaGenMatDouble &A, 00148 const LaGenMatDouble &B); 00149 00150 #ifdef _LA_UNIT_LOWER_TRIANG_MAT_DOUBLE_H_ 00151 DLLIMPORT LaGenMatDouble operator*(const LaUnitLowerTriangMatDouble &A, 00152 const LaGenMatDouble &B); 00153 #endif 00154 00155 #ifdef _LA_UNIT_UPPER_TRIANG_MAT_DOUBLE_H_ 00156 DLLIMPORT LaGenMatDouble operator*(const LaUnitUpperTriangMatDouble &A, 00157 const LaGenMatDouble &B); 00158 #endif 00159 00160 #ifdef _LA_LOWER_TRIANG_MAT_DOUBLE_H_ 00161 DLLIMPORT LaGenMatDouble operator*(const LaLowerTriangMatDouble &A, 00162 const LaGenMatDouble &B); 00163 #endif 00164 00165 #ifdef _LA_UPPER_TRIANG_MAT_DOUBLE_H_ 00166 DLLIMPORT LaGenMatDouble operator*(const LaUpperTriangMatDouble &A, 00167 const LaGenMatDouble &B); 00168 #endif 00169 00170 #ifdef _LA_SYMM_MAT_DOUBLE_H_ 00171 DLLIMPORT LaGenMatDouble operator*(const LaSymmMatDouble &A, 00172 const LaGenMatDouble &B); 00173 #endif 00174 00175 #ifdef _LA_SYMM_TRIDIAG_MAT_DOUBLE_H_ 00176 DLLIMPORT LaVectorDouble operator*(const LaSymmTridiagMatDouble& A, 00177 const LaVectorDouble& X); 00178 #endif 00179 00180 #ifdef _LA_TRIDIAG_MAT_DOUBLE_H_ 00181 DLLIMPORT LaVectorDouble operator*(const LaTridiagMatDouble& A, 00182 const LaVectorDouble& X); 00183 #endif 00184 00188 DLLIMPORT LaGenMatDouble operator-(const LaGenMatDouble &A, 00189 const LaGenMatDouble &B); 00190 00194 DLLIMPORT LaGenMatDouble operator+(const LaGenMatDouble &A, 00195 const LaGenMatDouble &B); 00196 00197 # ifdef LA_COMPLEX_SUPPORT 00198 00201 DLLIMPORT LaGenMatComplex operator+(const LaGenMatComplex &A, 00202 const LaGenMatComplex &B); 00203 00207 DLLIMPORT LaGenMatComplex operator-(const LaGenMatComplex &A, 00208 const LaGenMatComplex &B); 00210 # endif // LA_COMPLEX_SUPPORT 00211 00212 #endif // LA_NO_DEPRECATED 00213 00214 #endif // _BLAS_PP_H_