43 #ifndef THYRA_VECTOR_STD_OPS_DECL_HPP 44 #define THYRA_VECTOR_STD_OPS_DECL_HPP 47 #include "Thyra_OperatorVectorTypes.hpp" 58 template<
class Scalar>
59 Scalar sum(
const VectorBase<Scalar>& v );
68 template<
class Scalar>
69 Scalar scalarProd(
const VectorBase<Scalar>& x,
const VectorBase<Scalar>& y );
78 template<
class Scalar>
79 Scalar inner(
const VectorBase<Scalar>& x,
const VectorBase<Scalar>& y );
89 template<
class Scalar>
90 typename Teuchos::ScalarTraits<Scalar>::magnitudeType
91 norm(
const VectorBase<Scalar>& v );
98 template<
class Scalar>
99 typename Teuchos::ScalarTraits<Scalar>::magnitudeType
100 norm_1(
const VectorBase<Scalar>& v );
107 template<
class Scalar>
108 typename Teuchos::ScalarTraits<Scalar>::magnitudeType
109 norm_2(
const VectorBase<Scalar>& v );
117 template<
class Scalar>
118 typename Teuchos::ScalarTraits<Scalar>::magnitudeType
119 norm_2(
const VectorBase<Scalar> &w,
const VectorBase<Scalar>& v );
126 template<
class Scalar>
127 typename Teuchos::ScalarTraits<Scalar>::magnitudeType
128 norm_inf(
const VectorBase<Scalar>& v_rhs );
135 template<
class Scalar>
136 Scalar dot(
const VectorBase<Scalar>& x,
const VectorBase<Scalar>& y );
143 template<
class Scalar>
144 Scalar get_ele(
const VectorBase<Scalar>& v,
Ordinal i );
151 template<
class Scalar>
152 void set_ele(
Ordinal i, Scalar alpha,
const Ptr<VectorBase<Scalar> > &v );
160 template<
class Scalar>
161 void put_scalar(
const Scalar& alpha,
const Ptr<VectorBase<Scalar> > &y );
169 template<
class Scalar>
170 void copy(
const VectorBase<Scalar>& x,
const Ptr<VectorBase<Scalar> > &y );
178 template<
class Scalar>
179 void add_scalar(
const Scalar& alpha,
const Ptr<VectorBase<Scalar> > &y );
191 template<
class Scalar>
192 void scale(
const Scalar& alpha,
const Ptr<VectorBase<Scalar> > &y );
200 template<
class Scalar>
201 void abs(
const VectorBase<Scalar> &x,
const Ptr<VectorBase<Scalar> > &y );
209 template<
class Scalar>
210 void reciprocal(
const VectorBase<Scalar> &x,
const Ptr<VectorBase<Scalar> > &y );
218 template<
class Scalar>
219 void ele_wise_prod(
const Scalar& alpha,
const VectorBase<Scalar>& x,
220 const VectorBase<Scalar>& v,
const Ptr<VectorBase<Scalar> > &y );
228 template<
class Scalar>
229 void ele_wise_conj_prod(
const Scalar& alpha,
const VectorBase<Scalar>& x,
230 const VectorBase<Scalar>& v,
const Ptr<VectorBase<Scalar> > &y );
238 template<
class Scalar>
239 void ele_wise_scale(
const VectorBase<Scalar>& x,
const Ptr<VectorBase<Scalar> > &y );
247 template<
class Scalar>
248 void Vp_StVtV(
const Ptr<VectorBase<Scalar> > &y,
const Scalar& alpha,
249 const VectorBase<Scalar>& x,
const VectorBase<Scalar>& v);
257 template<
class Scalar>
258 void ele_wise_prod_update(
const Scalar& alpha,
const VectorBase<Scalar>& x,
259 const Ptr<VectorBase<Scalar> > &y );
267 template<
class Scalar>
268 void Vt_StV(
const Ptr<VectorBase<Scalar> > &y,
const Scalar& alpha,
269 const VectorBase<Scalar> &x );
277 template<
class Scalar>
278 void ele_wise_divide(
const Scalar& alpha,
const VectorBase<Scalar>& x,
279 const VectorBase<Scalar>& v,
const Ptr<VectorBase<Scalar> > &y );
304 template<
class Scalar>
305 void linear_combination(
306 const ArrayView<const Scalar> &alpha,
307 const ArrayView<
const Ptr<
const VectorBase<Scalar> > > &x,
309 const Ptr<VectorBase<Scalar> > &y
322 template<
class Scalar>
323 void seed_randomize(
unsigned int s );
336 template<
class Scalar>
337 void randomize( Scalar l, Scalar u,
const Ptr<VectorBase<Scalar> > &v );
345 template<
class Scalar>
346 void assign(
const Ptr<VectorBase<Scalar> > &y,
const Scalar& alpha );
354 template<
class Scalar>
355 void assign(
const Ptr<VectorBase<Scalar> > &y,
const VectorBase<Scalar>& x );
363 template<
class Scalar>
364 void Vp_S(
const Ptr<VectorBase<Scalar> > &y,
const Scalar& alpha );
376 template<
class Scalar>
377 void Vt_S(
const Ptr<VectorBase<Scalar> > &y,
const Scalar& alpha );
385 template<
class Scalar>
386 void V_StV(
const Ptr<VectorBase<Scalar> > &y,
const Scalar& alpha,
387 const VectorBase<Scalar> &x );
395 template<
class Scalar>
396 void Vp_StV(
const Ptr<VectorBase<Scalar> > &y,
const Scalar& alpha,
397 const VectorBase<Scalar>& x );
404 template<
class Scalar>
406 const Ptr<VectorBase<Scalar> > &y,
const VectorBase<Scalar>& x,
407 const Scalar& beta = static_cast<Scalar>(1.0)
415 template<
class Scalar>
416 void V_V(
const Ptr<VectorBase<Scalar> > &y,
const VectorBase<Scalar>& x );
423 template<
class Scalar>
424 void V_S(
const Ptr<VectorBase<Scalar> > &y,
const Scalar& alpha );
431 template<
class Scalar>
432 void V_VpV(
const Ptr<VectorBase<Scalar> > &z,
const VectorBase<Scalar>& x,
433 const VectorBase<Scalar>& y );
440 template<
class Scalar>
441 void V_VmV(
const Ptr<VectorBase<Scalar> > &z,
const VectorBase<Scalar>& x,
442 const VectorBase<Scalar>& y );
449 template<
class Scalar>
450 void V_StVpV(
const Ptr<VectorBase<Scalar> > &z,
const Scalar &alpha,
451 const VectorBase<Scalar>& x,
const VectorBase<Scalar>& y );
458 template<
class Scalar>
459 void V_VpStV(
const Ptr<VectorBase<Scalar> > &z,
460 const VectorBase<Scalar>& x,
461 const Scalar &alpha,
const VectorBase<Scalar>& y );
468 template<
class Scalar>
469 void V_StVpStV(
const Ptr<VectorBase<Scalar> > &z,
const Scalar &alpha,
470 const VectorBase<Scalar>& x,
const Scalar &beta,
const VectorBase<Scalar>& y );
477 template<
class Scalar>
478 Scalar min(
const VectorBase<Scalar>& x );
500 template<
class Scalar>
501 void min(
const VectorBase<Scalar>& x,
502 const Ptr<Scalar> &maxEle,
const Ptr<Ordinal> &maxIndex );
534 template<
class Scalar>
535 void minGreaterThanBound(
const VectorBase<Scalar>& x,
const Scalar &bound,
536 const Ptr<Scalar> &minEle,
const Ptr<Ordinal> &minIndex );
543 template<
class Scalar>
544 Scalar max(
const VectorBase<Scalar>& x );
566 template<
class Scalar>
567 void max(
const VectorBase<Scalar>& x,
568 const Ptr<Scalar> &maxEle,
const Ptr<Ordinal> &maxIndex );
599 template<
class Scalar>
600 void maxLessThanBound(
const VectorBase<Scalar>& x,
const Scalar &bound,
601 const Ptr<Scalar> &maxEle,
const Ptr<Ordinal> &maxIndex );
613 template<
class Scalar>
615 Scalar Thyra::scalarProd(
const VectorBase<Scalar>& x,
const VectorBase<Scalar>& y )
617 return x.space()->scalarProd(x, y);
621 template<
class Scalar>
623 Scalar Thyra::inner(
const VectorBase<Scalar>& x,
const VectorBase<Scalar>& y )
625 return x.space()->scalarProd(x, y);
629 template<
class Scalar>
631 typename Teuchos::ScalarTraits<Scalar>::magnitudeType
632 Thyra::norm(
const VectorBase<Scalar>& v )
634 typedef Teuchos::ScalarTraits<Scalar> ST;
635 return ST::magnitude(ST::squareroot(v.space()->scalarProd(v, v)));
639 #endif // THYRA_VECTOR_STD_OPS_DECL_HPP Teuchos::Ordinal Ordinal
Type for the dimension of a vector space. `*.