00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00029 #ifndef _BLAS2_PP_H_
00030 #define _BLAS2_PP_H_
00031
00032 #include "blas2.h"
00033 #include "lafnames.h"
00034 #include "arch.h"
00035 #include LA_GEN_MAT_DOUBLE_H
00036 #include LA_VECTOR_DOUBLE_H
00037 #ifdef LA_COMPLEX_SUPPORT
00038 # include LA_GEN_MAT_COMPLEX_H
00039 # include LA_VECTOR_COMPLEX_H
00040 #endif
00041
00045 DLLIMPORT
00046 void Blas_Mat_Trans_Vec_Mult(const LaGenMatDouble &A,
00047 const LaVectorDouble &dx,
00048 LaVectorDouble &dy,
00049 double alpha = 1.0, double beta = 0.0);
00050
00052 DLLIMPORT
00053 void Blas_Mat_Vec_Mult(const LaGenMatDouble &A,
00054 const LaVectorDouble &dx,
00055 LaVectorDouble &dy,
00056 double alpha = 1.0, double beta = 0.0);
00057
00059 DLLIMPORT
00060 void Blas_R1_Update(LaGenMatDouble &A, const LaVectorDouble &dx,
00061 const LaVectorDouble &dy, double alpha = 1.0);
00063
00064
00065 #ifdef LA_COMPLEX_SUPPORT
00066
00069 DLLIMPORT
00070 void Blas_Mat_Vec_Mult(const LaGenMatComplex &A,
00071 const LaVectorComplex &dx,
00072 LaVectorComplex &dy,
00073 LaComplex alpha = 1.0, LaComplex beta = 0.0);
00074
00076 DLLIMPORT
00077 void Blas_Mat_Trans_Vec_Mult(const LaGenMatComplex &A,
00078 const LaVectorComplex &dx,
00079 LaVectorComplex &dy,
00080 LaComplex alpha = 1.0, LaComplex beta = 0.0);
00081
00083 DLLIMPORT
00084 void Blas_R1_Update(LaGenMatComplex &A, const LaVectorComplex &dx,
00085 const LaVectorComplex &dy, LaComplex alpha = 1.0);
00087 #endif // LA_COMPLEX_SUPPORT
00088
00089 #ifdef _LA_SYMM_MAT_DOUBLE_H_
00090 DLLIMPORT
00091 void Blas_Mat_Vec_Mult(const LaSymmMatDouble &A, const LaVectorDouble &dx,
00092 LaVectorDouble &dy,
00093 double alpha = 1.0, double beta = 1.0);
00094 DLLIMPORT
00095 void Blas_R1_Update(LaSymmMatDouble &A, const LaVectorDouble &dx,
00096 double alpha = 1.0);
00097 DLLIMPORT
00098 void Blas_R2_Update(LaSymmMatDouble &A, const LaVectorDouble &dx,
00099 const LaVectorDouble &dy, double alpha = 1.0);
00100 #endif
00101
00102 #ifdef _LA_SYMM_BAND_MAT_DOUBLE_H_
00103 DLLIMPORT
00104 void Blas_Mat_Vec_Mult(const LaSymmBandMatDouble &A, const LaVectorDouble &dx,
00105 LaVectorDouble &dy,
00106 double alpha = 1.0, double beta = 1.0);
00107 #endif
00108
00109 #ifdef _LA_SPD_MAT_DOUBLE_H_
00110 DLLIMPORT
00111 void Blas_Mat_Vec_Mult(const LaSpdMatDouble &AP, const LaVectorDouble &dx,
00112 LaVectorDouble &dy,
00113 double alpha = 1.0, double beta = 1.0);
00114 DLLIMPORT
00115 void Blas_R1_Update(LaSpdMatDouble &AP, const LaVectorDouble &dx,
00116 double alpha = 1.0);
00117 DLLIMPORT
00118 void Blas_R2_Update(LaSpdMatDouble &AP, const LaVectorDouble &dx,
00119 const LaVectorDouble &dy, double alpha = 1.0);
00120 #endif
00121
00122 #ifdef _LA_BAND_MAT_DOUBLE_H_
00123 DLLIMPORT
00124 void Blas_Mat_Vec_Mult(const LaBandMatDouble &A, const LaVectorDouble &dx,
00125 LaVectorDouble &dy,
00126 double alpha = 1.0, double beta = 1.0);
00127 #endif
00128
00129 #ifdef _LA_LOWER_TRIANG_MAT_DOUBLE_H_
00130 DLLIMPORT
00131 void Blas_Mat_Vec_Mult(const LaLowerTriangMatDouble &A, LaVectorDouble &dx);
00132 #endif
00133
00134
00135
00136 #ifdef _LA_UPPER_TRIANG_MAT_DOUBLE_H_
00137 DLLIMPORT
00138 void Blas_Mat_Vec_Mult(const LaUpperTriangMatDouble &A, LaVectorDouble &dx);
00139 #endif
00140
00141
00142
00143 #ifdef _LA_UNIT_LOWER_TRIANG_MAT_DOUBLE_H_
00144 DLLIMPORT
00145 void Blas_Mat_Vec_Mult(const LaUnitLowerTriangMatDouble &A,
00146 LaVectorDouble &dx);
00147 #endif
00148
00149 #ifdef _LA_LOWER_TRIANG_MAT_DOUBLE_H_
00150 DLLIMPORT
00151 void Blas_Mat_Vec_Solve(LaLowerTriangMatDouble &A, LaVectorDouble &dx);
00152 #endif
00153
00154
00155
00156 #ifdef _LA_UNIT_UPPER_TRIANG_MAT_DOUBLE_H_
00157 DLLIMPORT
00158 void Blas_Mat_Vec_Mult(const LaUnitUpperTriangMatDouble &A,
00159 LaVectorDouble &dx);
00160 #endif
00161
00162 #ifdef _LA_UPPER_TRIANG_MAT_DOUBLE_H_
00163 DLLIMPORT
00164 void Blas_Mat_Vec_Solve(LaUpperTriangMatDouble &A, LaVectorDouble &dx);
00165 #endif
00166
00167
00168 #ifdef _LA_UNIT_LOWER_TRIANG_MAT_DOUBLE_H_
00169 DLLIMPORT
00170 void Blas_Mat_Vec_Solve(LaUnitLowerTriangMatDouble &A,
00171 LaVectorDouble &dx);
00172 #endif
00173
00174 #ifdef _LA_UNIT_UPPER_TRIANG_MAT_DOUBLE_H_
00175 DLLIMPORT
00176 void Blas_Mat_Vec_Solve(LaUnitUpperTriangMatDouble &A, LaVectorDouble &dx);
00177 #endif
00178
00179
00180 #endif
00181