Medusa  1.1
Coordinate Free Mehless Method implementation
RBFInterpolant_fwd.hpp
Go to the documentation of this file.
1 #ifndef MEDUSA_BITS_APPROXIMATIONS_RBFINTERPOLANT_FWD_HPP_
2 #define MEDUSA_BITS_APPROXIMATIONS_RBFINTERPOLANT_FWD_HPP_
3 
11 #include <medusa/Config.hpp>
12 #include <Eigen/Core>
13 #include "Monomials.hpp"
14 
15 namespace mm {
16 
33 template <typename RBFType, typename vec_t>
35  public:
36  typedef typename vec_t::scalar_t scalar_t;
37  typedef vec_t vector_t;
38  typedef RBFType rbf_t;
39 
40  private:
44  std::vector<vector_t> support_;
46  Eigen::Matrix<scalar_t, Eigen::Dynamic, 1> coefficients_;
47 
48  public:
63  RBFInterpolant(const rbf_t& rbf, const Monomials<vec_t>& mon, const vector_t& point,
64  const std::vector<vector_t>& support, scalar_t scale,
65  const Eigen::Matrix<scalar_t, Eigen::Dynamic, 1>& coefficients);
66 
67 
69  scalar_t operator()(const vector_t& point) const;
70 
72  template <typename operator_t>
73  scalar_t operator()(const vector_t& point, const operator_t& op) const;
74 
76  const vector_t& point() const { return point_; }
78  scalar_t scale() const { return scale_; }
80  const Eigen::Matrix<scalar_t, Eigen::Dynamic, 1>& coefficients() const { return coefficients_; }
81 };
82 
83 
84 } // namespace mm
85 
86 #endif // MEDUSA_BITS_APPROXIMATIONS_RBFINTERPOLANT_FWD_HPP_
Monomials.hpp
mm
Root namespace for the whole library.
Definition: Gaussian.hpp:14
mm::RBFInterpolant::coefficients_
Eigen::Matrix< scalar_t, Eigen::Dynamic, 1 > coefficients_
Coefficients (for scaled fn.)
Definition: RBFInterpolant_fwd.hpp:46
scalar_t
Scalar scalar_t
Type of the elements, alias of Scalar.
Definition: MatrixBaseAddons.hpp:16
mm::RBFInterpolant::point_
vector_t point_
Center point.
Definition: RBFInterpolant_fwd.hpp:43
mm::RBFInterpolant::rbf_
rbf_t rbf_
RBF used for interpolation.
Definition: RBFInterpolant_fwd.hpp:41
mm::RBFInterpolant::scale_
scalar_t scale_
Scale.
Definition: RBFInterpolant_fwd.hpp:45
mm::RBFInterpolant::scale
scalar_t scale() const
Get the scale.
Definition: RBFInterpolant_fwd.hpp:78
Config.hpp
mm::RBFInterpolant::point
const vector_t & point() const
Get the center point.
Definition: RBFInterpolant_fwd.hpp:76
mm::RBFInterpolant::coefficients
const Eigen::Matrix< scalar_t, Eigen::Dynamic, 1 > & coefficients() const
Get the coefficient vector.
Definition: RBFInterpolant_fwd.hpp:80
mm::Monomials
A class representing Monomial basis.
Definition: Monomials_fwd.hpp:38
mm::RBFInterpolant
Class representing a RBF Interpolant over a set of nodes of the form.
Definition: RBFInterpolant_fwd.hpp:34
mm::RBFInterpolant::rbf_t
RBFType rbf_t
Radial basis function type.
Definition: RBFInterpolant_fwd.hpp:38
mm::RBFInterpolant::scalar_t
vec_t::scalar_t scalar_t
Scalar type.
Definition: RBFInterpolant_fwd.hpp:36
mm::RBFInterpolant::mon_
Monomials< vec_t > mon_
Augmenting monomials.
Definition: RBFInterpolant_fwd.hpp:42
mm::RBFInterpolant::vector_t
vec_t vector_t
Vector type.
Definition: RBFInterpolant_fwd.hpp:37
mm::RBFInterpolant::RBFInterpolant
RBFInterpolant(const rbf_t &rbf, const Monomials< vec_t > &mon, const vector_t &point, const std::vector< vector_t > &support, scalar_t scale, const Eigen::Matrix< scalar_t, Eigen::Dynamic, 1 > &coefficients)
Construct a RBF interpolant with known coefficients.
Definition: RBFInterpolant.hpp:16
mm::RBFInterpolant::operator()
scalar_t operator()(const vector_t &point) const
Evaluate the interpolant at given point.
Definition: RBFInterpolant.hpp:30
mm::RBFInterpolant::support_
std::vector< vector_t > support_
Local scaled stencil points.
Definition: RBFInterpolant_fwd.hpp:44