diff options
Diffstat (limited to 'common/accel-sigmoidgain.hpp')
| -rw-r--r-- | common/accel-sigmoidgain.hpp | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/common/accel-sigmoidgain.hpp b/common/accel-sigmoidgain.hpp deleted file mode 100644 index bed2f16..0000000 --- a/common/accel-sigmoidgain.hpp +++ /dev/null @@ -1,34 +0,0 @@ -#pragma once - -#include <math.h> - -#include "accel-base.hpp" - -namespace rawaccel { - - /// <summary> Struct to hold sigmoid (s-shaped) gain implementation. </summary> - struct sigmoidgain_impl { - double rate; - double limit; - double additive_constant; - double integration_constant; - - sigmoidgain_impl(const accel_args& args) : - rate(args.rate), limit(args.limit - 1) - { - additive_constant = exp(rate * args.midpoint); - integration_constant = log(1 + additive_constant); - } - - inline double operator()(double speed) const { - //f(x) = k/(1+e^(-m(c-x))) - double scaled_speed = rate * speed; - return limit * ((log(additive_constant+exp(scaled_speed)) - integration_constant)/scaled_speed); - } - - inline double legacy_offset(double speed) const { return operator()(speed); } - }; - - using accel_sigmoidgain = additive_accel<sigmoidgain_impl>; - -} |