48 #ifndef MUI_SAMPLER_PSEUDO_N2_LINEAR_H_
49 #define MUI_SAMPLER_PSEUDO_N2_LINEAR_H_
51 #include "../../config.h"
52 #include "../sampler.h"
56 template<
typename CONFIG=default_config,
typename O_TP=
typename CONFIG::REAL,
typename I_TP=O_TP>
61 using REAL =
typename CONFIG::REAL;
62 using INT =
typename CONFIG::INT;
67 template<
template<
typename,
typename>
class CONTAINER>
71 OTYPE value_1st = 0, value_2nd = 0;
72 for(
size_t i = 0 ; i < data_points.size() ; i++ ) {
73 REAL dr2 =
normsq( focus - data_points[i].first );
74 if ( dr2 < r2min_1st ) {
75 r2min_2nd = r2min_1st;
76 value_2nd = value_1st;
78 value_1st = data_points[i].second ;
79 }
else if ( dr2 < r2min_2nd ) {
81 value_2nd = data_points[i].second ;
84 REAL r1 = std::sqrt( r2min_1st );
85 REAL r2 = std::sqrt( r2min_2nd );
86 return ( value_1st * r2 + value_2nd * r1 ) / ( r1 + r2 );
Definition: geometry.h:92
Definition: geometry.h:158
Definition: sampler_pseudo_n2_linear.h:57
typename CONFIG::REAL REAL
Definition: sampler_pseudo_n2_linear.h:61
typename CONFIG::INT INT
Definition: sampler_pseudo_n2_linear.h:62
geometry::any_shape< CONFIG > support(point_type focus, REAL domain_mag) const
Definition: sampler_pseudo_n2_linear.h:89
OTYPE filter(point_type focus, const CONTAINER< ITYPE, CONFIG > &data_points) const
Definition: sampler_pseudo_n2_linear.h:68
REAL h
Definition: sampler_pseudo_n2_linear.h:93
I_TP ITYPE
Definition: sampler_pseudo_n2_linear.h:60
O_TP OTYPE
Definition: sampler_pseudo_n2_linear.h:59
typename CONFIG::point_type point_type
Definition: sampler_pseudo_n2_linear.h:63
sampler_pseudo_n2_linear(REAL h_)
Definition: sampler_pseudo_n2_linear.h:65
SCALAR max(vexpr< E, SCALAR, D > const &u)
Definition: point.h:350
SCALAR normsq(vexpr< E, SCALAR, D > const &u)
Definition: point.h:380