17 #ifndef __deal2__polynomial_h 18 #define __deal2__polynomial_h 22 #include <deal.II/base/config.h> 24 #include <deal.II/base/subscriptor.h> 25 #include <deal.II/base/point.h> 26 #include <deal.II/base/std_cxx1x/shared_ptr.h> 53 template <
typename number>
80 const unsigned int evaluation_point);
93 number
value (
const number x)
const;
104 void value (
const number x,
105 std::vector<number> &values)
const;
112 unsigned int degree ()
const;
121 void scale (
const number factor);
138 template <
typename number2>
139 void shift (
const number2 offset);
180 void print(std::ostream &out)
const;
186 template <
class Archive>
187 void serialize (Archive &ar,
const unsigned int version);
194 static void scale (std::vector<number> &coefficients,
195 const number factor);
200 template <
typename number2>
201 static void shift (std::vector<number> &coefficients,
202 const number2 shift);
207 static void multiply (std::vector<number> &coefficients,
208 const number factor);
253 template <
typename number>
264 const double coefficient = 1.);
279 std::vector<Polynomial<number> >
280 generate_complete_basis (
const unsigned int degree);
286 static std::vector<number> make_vector(
unsigned int n,
287 const double coefficient);
318 const unsigned int support_point);
329 std::vector<Polynomial<double> >
330 generate_complete_basis (
const unsigned int degree);
340 compute_coefficients (
const unsigned int n,
341 const unsigned int support_point,
342 std::vector<double> &a);
353 std::vector<Polynomial<double> >
394 std::vector<Polynomial<double> >
395 generate_complete_basis (
const unsigned int degree);
430 static void compute_coefficients (
const unsigned int p);
439 static const std::vector<double> &
440 get_coefficients (
const unsigned int k);
473 Lobatto (
const unsigned int p = 0);
482 static std::vector<Polynomial<double> >
483 generate_complete_basis (
const unsigned int p);
489 std::vector<double> compute_coefficients (
const unsigned int p);
565 std::vector<Polynomial<double> >
566 generate_complete_basis (
const unsigned int degree);
572 static void compute_coefficients (
const unsigned int p);
581 static const std::vector<double> &
582 get_coefficients (
const unsigned int p);
652 static std::vector<Polynomial<double> >
653 generate_complete_basis (
const unsigned int p);
664 template <
typename number>
674 template <
typename number>
692 template <
typename number>
704 for (
int k=m-2; k>=0; --k)
713 for (
unsigned int j=0; j<m; ++j)
722 template <
typename number>
723 template <
class Archive>
737 DEAL_II_NAMESPACE_CLOSE
void serialize(Archive &ar, const unsigned int version)
void scale(const number factor)
void transform_into_standard_form()
void shift(const number2 offset)
Polynomial< number > & operator-=(const Polynomial< number > &p)
static std::vector< std_cxx1x::shared_ptr< const std::vector< double > > > recursive_coefficients
bool in_lagrange_product_form
Polynomial< number > primitive() const
bool operator==(const Polynomial< number > &p) const
number value(const number x) const
Polynomial< number > & operator*=(const double s)
#define Assert(cond, exc)
::ExceptionBase & ExcEmptyObject()
std::vector< Polynomial< double > > generate_complete_Lagrange_basis(const std::vector< Point< 1 > > &points)
static std::vector< std_cxx1x::shared_ptr< const std::vector< double > > > recursive_coefficients
Polynomial< number > derivative() const
std::vector< number > coefficients
void print(std::ostream &out) const
std::vector< number > lagrange_support_points
unsigned int degree() const
static std::vector< std_cxx1x::shared_ptr< const std::vector< double > > > shifted_coefficients
static void multiply(std::vector< number > &coefficients, const number factor)
Polynomial< number > & operator+=(const Polynomial< number > &p)