Thyra Version of the Day
Loading...
Searching...
No Matches
Thyra_PolynomialVectorTraits.hpp
1// @HEADER
2// *****************************************************************************
3// Thyra: Interfaces and Support for Abstract Numerical Algorithms
4//
5// Copyright 2004 NTESS and the Thyra contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef THYRA_POLYNOMIAL_VECTOR_TRAITS_HPP
11#define THYRA_POLYNOMIAL_VECTOR_TRAITS_HPP
12
13#include "Thyra_VectorBase.hpp"
14#include "Teuchos_PolynomialTraits.hpp"
15#include "Thyra_VectorStdOps.hpp"
16#include "Thyra_MultiVectorStdOps.hpp"
17
18namespace Teuchos {
19
21
26 template <typename Scalar>
27 class PolynomialTraits< Thyra::VectorBase<Scalar> > {
28 public:
29
32
35
38 return c.clone_v();
39 }
40
42 static inline void copy(const coeff_type& x, coeff_type* y) {
43 Thyra::copy(x, Teuchos::ptr(y));
44 }
45
47 static inline void assign(coeff_type* y, const scalar_type& alpha) {
48 Thyra::assign(Teuchos::ptr(y), alpha);
49 }
50
52 static inline void update(coeff_type* y, const coeff_type& x,
53 const scalar_type& beta) {
54 Thyra::Vp_V(Teuchos::ptr(y), x, beta);
55 }
56
57 }; // class PolynomialTraits< Thyra::VectorBase<Scalar> >
58
59} // end namespace Teuchos
60
61#endif // THYRA_POLYNOMIAL_VECTOR_TRAITS_HPP
static void copy(const coeff_type &x, coeff_type *y)
Copy a coefficient.
Thyra::VectorBase< Scalar > coeff_type
Typename of coefficients.
static void update(coeff_type *y, const coeff_type &x, const scalar_type &beta)
y = x + beta*y
static Teuchos::RCP< coeff_type > clone(const coeff_type &c)
Clone a coefficient.
static void assign(coeff_type *y, const scalar_type &alpha)
Assign a scalar to a coefficient.
Abstract interface for finite-dimensional dense vectors.
T_To & dyn_cast(T_From &from)