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_APPLY_OP_HELPER_DECL_HPP
00030 #define THYRA_APPLY_OP_HELPER_DECL_HPP
00031
00032 #include "Thyra_OperatorVectorTypes.hpp"
00033 #include "RTOpPack_RTOpT.hpp"
00034
00035 namespace Thyra {
00036
00044 template<class Scalar>
00045 void apply_op_validate_input(
00046 const char func_name[]
00047 ,const VectorSpaceBase<Scalar> &space
00048 ,const RTOpPack::RTOpT<Scalar> &op
00049 ,const int num_vecs
00050 ,const VectorBase<Scalar>*const vecs[]
00051 ,const int num_targ_vecs
00052 ,VectorBase<Scalar>*const targ_vecs[]
00053 ,RTOpPack::ReductTarget *reduct_obj
00054 ,const Index first_ele_offset
00055 ,const Index sub_dim
00056 ,const Index global_offset
00057 );
00058
00066 template<class Scalar>
00067 void apply_op_validate_input(
00068 const char Func_name[]
00069 ,const VectorSpaceBase<Scalar> &domain
00070 ,const VectorSpaceBase<Scalar> &range
00071 ,const RTOpPack::RTOpT<Scalar> &primary_op
00072 ,const int num_multi_vecs
00073 ,const MultiVectorBase<Scalar>*const multi_vecs[]
00074 ,const int num_targ_multi_vecs
00075 ,MultiVectorBase<Scalar>*const targ_multi_vecs[]
00076 ,RTOpPack::ReductTarget*const reduct_objs[]
00077 ,const Index primary_first_ele_offset
00078 ,const Index primary_sub_dim
00079 ,const Index primary_global_offset
00080 ,const Index secondary_first_ele_offset
00081 ,const Index secondary_sub_dim
00082 );
00083
00094 template<class Scalar>
00095 void apply_op_serial(
00096 const VectorSpaceBase<Scalar> &space
00097 ,const RTOpPack::RTOpT<Scalar> &op
00098 ,const int num_vecs
00099 ,const VectorBase<Scalar>*const vecs[]
00100 ,const int num_targ_vecs
00101 ,VectorBase<Scalar>*const targ_vecs[]
00102 ,RTOpPack::ReductTarget *reduct_obj
00103 ,const Index first_ele_offset
00104 ,const Index sub_dim
00105 ,const Index global_offset
00106 );
00107
00118 template<class Scalar>
00119 void apply_op_serial(
00120 const VectorSpaceBase<Scalar> &domain
00121 ,const VectorSpaceBase<Scalar> &range
00122 ,const RTOpPack::RTOpT<Scalar> &primary_op
00123 ,const int num_multi_vecs
00124 ,const MultiVectorBase<Scalar>*const multi_vecs[]
00125 ,const int num_targ_multi_vecs
00126 ,MultiVectorBase<Scalar>*const targ_multi_vecs[]
00127 ,RTOpPack::ReductTarget*const reduct_objs[]
00128 ,const Index primary_first_ele_offset
00129 ,const Index primary_sub_dim
00130 ,const Index primary_global_offset
00131 ,const Index secondary_first_ele_offset
00132 ,const Index secondary_sub_dim
00133 );
00134
00135 }
00136
00137 #endif // THYRA_APPLY_OP_HELPER_DECL_HPP