diff options
| author | Jacob Palecki <[email protected]> | 2020-09-03 13:21:45 -0700 |
|---|---|---|
| committer | Jacob Palecki <[email protected]> | 2020-09-03 13:21:45 -0700 |
| commit | c7e9641e8688c82874dbfa067f7dc8cb4d40e23d (patch) | |
| tree | f621b568c8fac71126829f8db1bc72808ab4e059 /common/accel-classic.hpp | |
| parent | Start adding gain offsets (diff) | |
| download | rawaccel-c7e9641e8688c82874dbfa067f7dc8cb4d40e23d.tar.xz rawaccel-c7e9641e8688c82874dbfa067f7dc8cb4d40e23d.zip | |
Change classic, natural, naturalgain to use gain offset
Diffstat (limited to 'common/accel-classic.hpp')
| -rw-r--r-- | common/accel-classic.hpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/common/accel-classic.hpp b/common/accel-classic.hpp index 4cc52ca..3f409c3 100644 --- a/common/accel-classic.hpp +++ b/common/accel-classic.hpp @@ -10,14 +10,20 @@ namespace rawaccel { struct classic_impl { double accel; double power; + double power_inc; + double offset; + double multiplicative_const; classic_impl(const accel_args& args) : - accel(args.accel), power(args.exponent - 1) - {} + accel(args.accel), power(args.exponent - 1), offset(args.offset) { + multiplicative_const = pow(accel, power); + power_inc = power + 1; + } inline double operator()(double speed) const { //f(x) = (mx)^(k-1) - return pow(accel * speed, power); + double base_speed = speed + offset; + return multiplicative_const * pow(speed, power_inc) / base_speed; } }; |