Medusa  1.1
Coordinate Free Mehless Method implementation
WLS.cpp
Go to the documentation of this file.
1 
7 
16 
17 #include <Eigen/Cholesky>
18 #include <Eigen/LU>
19 #include <Eigen/SVD>
20 
21 namespace mm {
23 #define COMMA ,
24 
26 #define INSTANTIATE(classname) \
27  template class classname; \
28  template Eigen::Matrix<double, Eigen::Dynamic, 1> classname::getShape(const Der1<dim>&) const; \
29  template Eigen::Matrix<double, Eigen::Dynamic, 1> classname::getShape(const Der2<dim>&) const; \
30  template Eigen::Matrix<double, Eigen::Dynamic, 1> classname::getShape(const Lap<dim>&) const; \
31 
32 INSTANTIATE(WLS<Monomials<Vec2d>>)
34 
35 INSTANTIATE(WLS<Monomials<Vec1d> COMMA NoWeight<Vec1d> COMMA ScaleToFarthest>)
36 INSTANTIATE(WLS<Monomials<Vec2d> COMMA NoWeight<Vec2d> COMMA ScaleToFarthest>)
37 INSTANTIATE(WLS<Monomials<Vec3d> COMMA NoWeight<Vec3d> COMMA ScaleToFarthest>)
38 
39 INSTANTIATE(WLS<Monomials<Vec1d> COMMA GaussianWeight<Vec1d> COMMA ScaleToFarthest>)
40 INSTANTIATE(WLS<Monomials<Vec2d> COMMA GaussianWeight<Vec2d> COMMA ScaleToFarthest>)
41 INSTANTIATE(WLS<Monomials<Vec2d> COMMA GaussianWeight<Vec2d> COMMA ScaleToClosest>)
42 INSTANTIATE(WLS<Monomials<Vec3d> COMMA GaussianWeight<Vec3d> COMMA ScaleToClosest>)
43 
44 INSTANTIATE(WLS<Monomials<Vec2d> COMMA GaussianWeight<Vec2d>>)
50 INSTANTIATE(WLS<Gaussians<Vec3d> COMMA NoWeight<Vec3d> COMMA ScaleToFarthest>)
51 
53  NoScale COMMA Eigen::PartialPivLU<Eigen::MatrixXd>>)
55  ScaleToFarthest COMMA Eigen::PartialPivLU<Eigen::MatrixXd>>)
56 INSTANTIATE(WLS<Monomials<Vec2d> COMMA NoWeight<Vec2d> COMMA
57  ScaleToFarthest COMMA Eigen::PartialPivLU<Eigen::MatrixXd>>)
58 
59 INSTANTIATE(WLS<MQs<Vec2d> COMMA GaussianWeight<Vec2d> COMMA ScaleToClosest>)
60 INSTANTIATE(WLS<MQs<Vec3d> COMMA GaussianWeight<Vec3d> COMMA ScaleToClosest>)
61 
62 INSTANTIATE(WLS<Gaussians<Vec2d> COMMA NoWeight<Vec2d> COMMA ScaleToFarthest COMMA
63  Eigen::LLT<Eigen::MatrixXd>>)
64 INSTANTIATE(WLS<Gaussians<Vec3d> COMMA NoWeight<Vec3d> COMMA ScaleToFarthest COMMA
65  Eigen::LLT<Eigen::MatrixXd>>)
66 INSTANTIATE(WLS<Gaussians<Vec2d> COMMA NoWeight<Vec2d> COMMA ScaleToFarthest>)
67 
68 } // namespace mm
Monomials.hpp
mm
Root namespace for the whole library.
Definition: Gaussian.hpp:14
INSTANTIATE
#define INSTANTIATE(classname)
Macro for instantiating template classes with getShape method.
Definition: WLS.cpp:26
JacobiSVDWrapper.hpp
ScaleFunction.hpp
mm::Vec1d
Vec< double, 1 > Vec1d
Convenience typedef for 1d vector of doubles.
Definition: Vec_fwd.hpp:33
mm::GaussianWeight
RBFWeight< Gaussian< typename V::scalar_t >, V > GaussianWeight
RBF weight function using Gaussian RBF. Defined for convenience.
Definition: WeightFunction_fwd.hpp:103
mm::Vec3d
Vec< double, 3 > Vec3d
Convenience typedef for 3d vector of doubles.
Definition: Vec_fwd.hpp:35
COMMA
#define COMMA
Macro for inserting a comma ",".
Definition: WLS.cpp:23
mm::MQs
RBFBasis< Multiquadric< typename V::scalar_t >, V > MQs
RBF basis using Multiquadric RBF. Defined for convenience.
Definition: RBFBasis_fwd.hpp:143
Gaussian.hpp
RBFBasis.hpp
Multiquadric.hpp
WeightFunction.hpp
Vec.hpp
mm::Gaussians
RBFBasis< Gaussian< typename V::scalar_t >, V > Gaussians
RBF basis using Gaussian RBF. Defined for convenience.
Definition: RBFBasis_fwd.hpp:139
mm::Vec2d
Vec< double, 2 > Vec2d
Convenience typedef for 2d vector of doubles.
Definition: Vec_fwd.hpp:34
WLS.hpp