00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043 #include "PlayaDefs.hpp"
00044
00045 #ifdef HAVE_TEUCHOS_EXPLICIT_INSTANTIATION
00046
00047 #include "PlayaVectorImpl.hpp"
00048 #include "PlayaLinearCombinationImpl.hpp"
00049
00050 namespace Playa
00051 {
00052
00053 template class Vector<double>;
00054
00055 template LoadableVector<double>* loadable(Vector<double> vec);
00056
00057 template
00058 double* dataPtr(Vector<double> vec) ;
00059
00060 template
00061 const double* dataPtr(const Vector<double>& vec) ;
00062
00063 template class LCN<double, 1>;
00064 template class LCN<double, 2>;
00065 template class LCN<double, 3>;
00066 template class LCN<double, 4>;
00067
00068 template Vector<double> operator*(
00069 const LinearOperator<double>& A,
00070 const Vector<double>& x);
00071
00072 template Vector<double> operator*(
00073 const LinearOperator<double>& A,
00074 const LCN<double, 1>& x);
00075
00076 template Vector<double> operator*(
00077 const LinearOperator<double>& A,
00078 const LCN<double, 2>& x);
00079
00080 template Vector<double> operator*(
00081 const LinearOperator<double>& A,
00082 const LCN<double, 3>& x);
00083
00084 template Vector<double>& Vector<double>::operator+=(const LCN<double, 3>& x);
00085 template Vector<double>& Vector<double>::operator-=(const LCN<double, 3>& x);
00086
00087 template double norm1(const LCN<double, 1>& x);
00088 template double norm1(const LCN<double, 2>& x);
00089 template double norm1(const LCN<double, 3>& x);
00090
00091 template double norm2(const LCN<double, 1>& x);
00092 template double norm2(const LCN<double, 2>& x);
00093 template double norm2(const LCN<double, 3>& x);
00094
00095 template double normInf(const LCN<double, 1>& x);
00096 template double normInf(const LCN<double, 2>& x);
00097 template double normInf(const LCN<double, 3>& x);
00098
00099 template double min(const LCN<double, 1>& x);
00100 template double min(const LCN<double, 2>& x);
00101 template double min(const LCN<double, 3>& x);
00102
00103 template double max(const LCN<double, 1>& x);
00104 template double max(const LCN<double, 2>& x);
00105 template double max(const LCN<double, 3>& x);
00106
00107 template Vector<double> abs(const LCN<double, 1>& x);
00108 template Vector<double> abs(const LCN<double, 2>& x);
00109 template Vector<double> abs(const LCN<double, 3>& x);
00110
00111 template Vector<double> reciprocal(const LCN<double, 1>& x);
00112 template Vector<double> reciprocal(const LCN<double, 2>& x);
00113 template Vector<double> reciprocal(const LCN<double, 3>& x);
00114
00115 template LCN<double, 1> operator*(const double& a, const Vector<double>& x);
00116 template LCN<double, 1> operator*(const Vector<double>& x, const double& a);
00117 template LCN<double, 1> operator/(const Vector<double>& x, const double& a);
00118
00119 template LCN<double, 1> operator*(const double& a, const LCN<double, 1>& x);
00120 template LCN<double, 1> operator*(const LCN<double, 1>& x, const double& a);
00121 template LCN<double, 1> operator/(const LCN<double, 1>& x, const double& a);
00122
00123 template LCN<double, 2> operator*(const double& a, const LCN<double, 2>& x);
00124 template LCN<double, 2> operator*(const LCN<double, 2>& x, const double& a);
00125 template LCN<double, 2> operator/(const LCN<double, 2>& x, const double& a);
00126
00127 template LCN<double, 3> operator*(const double& a, const LCN<double, 3>& x);
00128 template LCN<double, 3> operator*(const LCN<double, 3>& x, const double& a);
00129 template LCN<double, 3> operator/(const LCN<double, 3>& x, const double& a);
00130
00131 template LCN<double, 2>
00132 operator+(const Vector<double>& y, const LCN<double, 1>& x);
00133 template LCN<double, 2>
00134 operator+(const LCN<double, 1>& x, const Vector<double>& y);
00135 template LCN<double, 2>
00136 operator+(const LCN<double, 1>& x, const LCN<double, 1>& y);
00137
00138 template LCN<double, 2>
00139 operator-(const Vector<double>& y, const LCN<double, 1>& x);
00140 template LCN<double, 2>
00141 operator-(const LCN<double, 1>& x, const Vector<double>& y);
00142 template LCN<double, 2>
00143 operator-(const LCN<double, 1>& x, const LCN<double, 1>& y);
00144
00145
00146 template LCN<double, 3>
00147 operator+(const Vector<double>& y, const LCN<double, 2>& x);
00148 template LCN<double, 3>
00149 operator+(const LCN<double, 2>& x, const Vector<double>& y);
00150 template LCN<double, 3>
00151 operator+(const LCN<double, 2>& x, const LCN<double, 1>& y);
00152 template LCN<double, 3>
00153 operator+(const LCN<double, 1>& x, const LCN<double, 2>& y);
00154
00155 template LCN<double, 3>
00156 operator-(const Vector<double>& y, const LCN<double, 2>& x);
00157 template LCN<double, 3>
00158 operator-(const LCN<double, 2>& x, const Vector<double>& y);
00159 template LCN<double, 3>
00160 operator-(const LCN<double, 2>& x, const LCN<double, 1>& y);
00161 template LCN<double, 3>
00162 operator-(const LCN<double, 1>& x, const LCN<double, 2>& y);
00163
00164
00165
00166 }
00167
00168 #endif