Teuchos Package Browser (Single Doxygen Collection)  Version of the Day
Teuchos_PolynomialDecl.hpp
Go to the documentation of this file.
2 // *****************************************************************************
3 // Teuchos: Common Tools Package
4 //
5 // Copyright 2004 NTESS and the Teuchos contributors.
7 // *****************************************************************************
9
10 #ifndef TEUCHOS_POLYNOMIAL_DECL_HPP
11 #define TEUCHOS_POLYNOMIAL_DECL_HPP
12
13 #include "Teuchos_Describable.hpp"
14 #include "Teuchos_RCP.hpp"
16
17 namespace Teuchos {
18
20
36  template <typename CoeffT>
37  class Polynomial : virtual public Teuchos::Describable {
38  public:
39
41  typedef CoeffT coeff_type;
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
67  ~Polynomial();
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,
94  const Teuchos::RCP<CoeffT>& c_ptr);
95
97
106  CoeffT* x, CoeffT* xdot = NULL) const;
107
108  private:
109
111  Polynomial(const Polynomial&);
112
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
Teuchos::PolynomialTraits< coeff_type >::scalar_type scalar_type
Typename of scalars.
void setDegree(unsigned int deg)
Set degree of polynomial to deg.
unsigned int sz
Size of polynomial (may be &gt; d)
Polynomial(unsigned int deg, const CoeffT &cloneCoeff, unsigned int reserve=0)
Create a polynomial of degree deg.
Polynomial & operator=(const Polynomial &)
Prohibit copying.
CoeffT coeff_type
Typename of coefficients.
void setCoefficient(unsigned int i, const CoeffT &v)
Set coefficient i to c.
void setCoefficientPtr(unsigned int i, const Teuchos::RCP< CoeffT > &c_ptr)
Set pointer for coefficient i to c_ptr. DANGEROUS!
Lightweight container class to represent a simple polynomial.
Teuchos::RCP< CoeffT > getCoefficient(unsigned int i)
Return ref-count pointer to coefficient i.
std::vector< Teuchos::RCP< CoeffT > > coeff
Vector of polynomial coefficients.
Base class for all objects that can describe themselves.
Smart reference counting pointer class for automatic garbage collection.
void evaluate(typename Teuchos::Polynomial< CoeffT >::scalar_type &t, CoeffT *x, CoeffT *xdot=NULL) const
Evaluate polynomial and possibly its derivative at time t.
unsigned int degree() const
Return degree of polynomial.
unsigned int d
Degree of polynomial.
Reference-counted pointer class and non-member templated function implementations.