00001
00002
00003
00004
00005
00006
00007 #ifndef IMPCORE_HARMONIC_LOWER_BOUND_H
00008 #define IMPCORE_HARMONIC_LOWER_BOUND_H
00009
00010 #include "core_config.h"
00011 #include "Harmonic.h"
00012
00013 IMPCORE_BEGIN_NAMESPACE
00014
00015
00016
00017
00018
00019
00020 class HarmonicLowerBound : public Harmonic
00021 {
00022 public:
00023
00024 HarmonicLowerBound(Float mean, Float k) : Harmonic(mean, k) {}
00025 IMP_UNARY_FUNCTION_INLINE(HarmonicLowerBound,
00026 feature >= Harmonic::get_mean() ?
00027 0.0: Harmonic::evaluate(feature),
00028 feature >= Harmonic::get_mean() ?
00029 0.0:
00030 Harmonic::evaluate_with_derivative(feature).second,
00031 "HarmonicLB: " << Harmonic::get_mean()
00032 << " and " << Harmonic::get_k() << std::endl);
00033 };
00034
00035 IMPCORE_END_NAMESPACE
00036
00037 #endif