165 using typename GenericFeature<Feature_type>::Evaluator_type;
166 using typename GenericFeature<Feature_type>::EvaluatorPtr;
181 EvaluatorPtr functor = m_internal;
182 Evaluator_type absfunctor = [functor](ConstGenParticlePtr p)->Feature_type{return ::abs((*functor)(p));};
204class Feature<Feature_type, typename std::enable_if<std::is_integral<Feature_type>::value, void>::type> :
public GenericFeature<Feature_type> {
216 using typename GenericFeature<Feature_type>::Evaluator_type;
217 using typename GenericFeature<Feature_type>::EvaluatorPtr;
225 EvaluatorPtr functor = m_internal;
226 Evaluator_type absfunctor = [functor](ConstGenParticlePtr p)->Feature_type{return ::abs((*functor)(p));};
231 EvaluatorPtr functor = m_internal;
232 return [value, functor](ConstGenParticlePtr input)->
bool{
return (*functor)(input) > value;};
236 EvaluatorPtr functor = m_internal;
237 return [value, functor](ConstGenParticlePtr input)->
bool{
return (*functor)(input) < value;};
241 EvaluatorPtr functor = m_internal;
242 return [value, functor](ConstGenParticlePtr input)->
bool{
243 Feature_type local = (*functor)(input);
244 return fabs(local - value) <= ((::abs(local) < fabs(value))? fabs(value) : ::abs(local)) * std::numeric_limits<double>::epsilon();
253 return !( (*this)==value );
268class Feature<Feature_type, typename std::enable_if<std::is_floating_point<Feature_type>::value, void>::type> :
public GenericFeature<Feature_type> {
272 using typename GenericFeature<Feature_type>::Evaluator_type;
273 using typename GenericFeature<Feature_type>::EvaluatorPtr;
287 EvaluatorPtr functor = m_internal;
288 Evaluator_type absfunctor = [functor](ConstGenParticlePtr p)->Feature_type{
return fabs((*functor)(p));};
293 EvaluatorPtr functor = m_internal;
294 return [value, functor](ConstGenParticlePtr input)->
bool{
295 Feature_type local = (*functor)(input);
296 return fabs(local - value) <= ((fabs(local) < fabs(value))? fabs(value) : fabs(local)) * std::numeric_limits<Feature_type>::epsilon();
301 return !( (*this)==value );
Definition of class GenParticle.
Feature< Feature_type > abs(const Feature< Feature_type > &input)
Obtain the absolute value of a Feature. This works as you'd expect. If foo is a valid Feature,...