From 0b50f9c85568e5b8b6ee32e40990e39cfdf515b5 Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Wed, 2 Sep 2020 21:13:18 -0700 Subject: Start adding gain offsets --- common/accel-naturalgain.hpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'common/accel-naturalgain.hpp') diff --git a/common/accel-naturalgain.hpp b/common/accel-naturalgain.hpp index 646b2bb..03d749f 100644 --- a/common/accel-naturalgain.hpp +++ b/common/accel-naturalgain.hpp @@ -13,6 +13,11 @@ namespace rawaccel { inline double operator()(double speed) const { // f(x) = k((e^(-mx)-1)/mx + 1) + if (speed <= 0) + { + return 0; + } + double scaled_speed = rate * speed; return limit * (((exp(-scaled_speed) - 1) / scaled_speed) + 1); } -- cgit v1.2.3 From c7e9641e8688c82874dbfa067f7dc8cb4d40e23d Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Thu, 3 Sep 2020 13:21:45 -0700 Subject: Change classic, natural, naturalgain to use gain offset --- common/accel-naturalgain.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'common/accel-naturalgain.hpp') diff --git a/common/accel-naturalgain.hpp b/common/accel-naturalgain.hpp index 03d749f..5979d92 100644 --- a/common/accel-naturalgain.hpp +++ b/common/accel-naturalgain.hpp @@ -18,8 +18,9 @@ namespace rawaccel { return 0; } + double base_speed = speed + offset; double scaled_speed = rate * speed; - return limit * (((exp(-scaled_speed) - 1) / scaled_speed) + 1); + return limit * (((exp(-scaled_speed) - 1) / (base_speed * rate) ) + 1 - offset / base_speed); } }; -- cgit v1.2.3 From 01f870a493378a62ab76dcbf5dc37c0390ca7afe Mon Sep 17 00:00:00 2001 From: Jacob Palecki Date: Thu, 3 Sep 2020 19:36:44 -0700 Subject: Refactor for nice gain offset --- common/accel-naturalgain.hpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'common/accel-naturalgain.hpp') diff --git a/common/accel-naturalgain.hpp b/common/accel-naturalgain.hpp index 5979d92..cdfd1fa 100644 --- a/common/accel-naturalgain.hpp +++ b/common/accel-naturalgain.hpp @@ -13,16 +13,15 @@ namespace rawaccel { inline double operator()(double speed) const { // f(x) = k((e^(-mx)-1)/mx + 1) - if (speed <= 0) - { - return 0; - } - double base_speed = speed + offset; double scaled_speed = rate * speed; return limit * (((exp(-scaled_speed) - 1) / (base_speed * rate) ) + 1 - offset / base_speed); } + inline double legacy_offset(double speed) const { + double scaled_speed = rate * speed; + return limit * (((exp(-scaled_speed) - 1) / scaled_speed) + 1); + } }; using accel_naturalgain = additive_accel; -- cgit v1.2.3