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