Teuchos - Trilinos Tools Package Version of the Day
Loading...
Searching...
No Matches
Teuchos_PolynomialDecl.hpp
1// @HEADER
2// *****************************************************************************
3// Teuchos: Common Tools Package
4//
5// Copyright 2004 NTESS and the Teuchos contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10#ifndef TEUCHOS_POLYNOMIAL_DECL_HPP
11#define TEUCHOS_POLYNOMIAL_DECL_HPP
12
13#include "Teuchos_Describable.hpp"
14#include "Teuchos_RCP.hpp"
15#include "Teuchos_PolynomialTraits.hpp"
16
17namespace Teuchos {
18
20
36 template <typename CoeffT>
37 class Polynomial : virtual public Teuchos::Describable {
38 public:
39
42
45
47
53 Polynomial(unsigned int deg, const CoeffT& cloneCoeff,
54 unsigned int reserve = 0);
55
57
64 Polynomial(unsigned int deg, unsigned int reserve = 0);
65
68
70 unsigned int degree() const { return d; }
71
73 void setDegree(unsigned int deg);
74
77 getCoefficient(unsigned int i);
78
81 getCoefficient(unsigned int i) const;
82
84 void setCoefficient(unsigned int i, const CoeffT& v);
85
87
93 void setCoefficientPtr(unsigned int i,
95
97
106 CoeffT* x, CoeffT* xdot = NULL) const;
107
108 private:
109
111 Polynomial(const Polynomial&);
112
114 Polynomial& operator=(const Polynomial&);
115
116 protected:
117
119 unsigned int d;
120
122 unsigned int sz;
123
125
128 std::vector< Teuchos::RCP<CoeffT> > coeff;
129
130 }; // class Polynomial
131
132} // end namespace Teuchos
133
134#endif // TEUCHOS_POLYNOMIAL_DECL_HPP
Reference-counted pointer class and non-member templated function implementations.
Base class for all objects that can describe themselves.
Scalar scalar_type
Typename of scalars.
Lightweight container class to represent a simple polynomial.
void setCoefficient(unsigned int i, const CoeffT &v)
Set coefficient i to c.
Teuchos::RCP< CoeffT > getCoefficient(unsigned int i)
Return ref-count pointer to coefficient i.
Teuchos::PolynomialTraits< coeff_type >::scalar_type scalar_type
Typename of scalars.
unsigned int sz
Size of polynomial (may be > d)
unsigned int degree() const
Return degree of polynomial.
CoeffT coeff_type
Typename of coefficients.
void evaluate(typename Teuchos::Polynomial< CoeffT >::scalar_type &t, CoeffT *x, CoeffT *xdot=NULL) const
Evaluate polynomial and possibly its derivative at time t.
void setDegree(unsigned int deg)
Set degree of polynomial to deg.
std::vector< Teuchos::RCP< CoeffT > > coeff
Vector of polynomial coefficients.
unsigned int d
Degree of polynomial.
void setCoefficientPtr(unsigned int i, const Teuchos::RCP< CoeffT > &c_ptr)
Set pointer for coefficient i to c_ptr. DANGEROUS!
Smart reference counting pointer class for automatic garbage collection.
The Teuchos namespace contains all of the classes, structs and enums used by Teuchos,...