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 #ifndef THYRA_SINGLE_EUCULIDEAN_SCALAR_LINEAR_OP_BASE_HPP
00030 #define THYRA_SINGLE_EUCULIDEAN_SCALAR_LINEAR_OP_BASE_HPP
00031
00032 #include "Thyra_SingleScalarEuclideanLinearOpBaseDecl.hpp"
00033 #include "Thyra_EuclideanLinearOpBase.hpp"
00034
00035 namespace Thyra {
00036
00037
00038
00039 template<class Scalar>
00040 bool SingleScalarEuclideanLinearOpBase<Scalar>::applySupports( const EConj conj ) const
00041 {
00042 return this->opSupported(applyConjToTrans(conj));
00043 }
00044
00045 template<class Scalar>
00046 bool SingleScalarEuclideanLinearOpBase<Scalar>::applyTransposeSupports( const EConj conj ) const
00047 {
00048 return this->opSupported( applyTransposeConjToTrans(conj) );
00049 }
00050
00051
00052
00053 template<class Scalar>
00054 void SingleScalarEuclideanLinearOpBase<Scalar>::euclideanApply(
00055 const EConj conj
00056 ,const MultiVectorBase<Scalar> &X
00057 ,MultiVectorBase<Scalar> *Y
00058 ,const Scalar alpha
00059 ,const Scalar beta
00060 ) const
00061 {
00062 this->euclideanApply(applyConjToTrans(conj),X,Y,alpha,beta);
00063 }
00064
00065 template<class Scalar>
00066 void SingleScalarEuclideanLinearOpBase<Scalar>::euclideanApplyTranspose(
00067 const EConj conj
00068 ,const MultiVectorBase<Scalar> &X
00069 ,MultiVectorBase<Scalar> *Y
00070 ,const Scalar alpha
00071 ,const Scalar beta
00072 ) const
00073 {
00074 this->euclideanApply(applyTransposeConjToTrans(conj),X,Y,alpha,beta);
00075 }
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096 }
00097
00098 #endif // THYRA_SINGLE_EUCULIDEAN_SCALAR_LINEAR_OP_BASE_HPP