39 if (world_value < m_min_value || world_value > m_max_value) {
40 logger.
warn() <<
"WorldToEngine SigmoidConverter: world values outside of possible range";
43 double num = world_value - m_min_value;
44 double den = m_max_value - world_value;
45 return (num > 1
e-50 ? (den > 1
e-50 ?
log(num/den) : 50.0) : -50.0);
50 return m_min_value + (m_max_value - m_min_value) / (1 +
exp(-clamped_value));
54 return (value - m_min_value) * (m_max_value - value) / (m_max_value - m_min_value);
static Logging getLogger(const std::string &name="")
void warn(const std::string &logMessage)
virtual ~SigmoidConverter()
Destructor.
double engineToWorld(const double engine_value) const override
Engine to world coordinate converter.
double worldToEngine(const double world_value) const override
World to engine coordinate converter.
double getEngineToWorldDerivative(const double value) const override
static Elements::Logging logger