diff options
| author | Jacob Palecki <[email protected]> | 2020-09-04 01:15:12 -0700 |
|---|---|---|
| committer | Jacob Palecki <[email protected]> | 2020-09-04 01:15:12 -0700 |
| commit | 87ee655d3c0ba3cdb0ca71a1b66aeb02c8c6aa70 (patch) | |
| tree | a2ca5c42352737e3dab48ec854c1cd068a282e46 /common/accel-classic.hpp | |
| parent | The menus mostly work (diff) | |
| parent | Merge pull request #19 from JacobPalecki/gainOffset (diff) | |
| download | rawaccel-87ee655d3c0ba3cdb0ca71a1b66aeb02c8c6aa70.tar.xz rawaccel-87ee655d3c0ba3cdb0ca71a1b66aeb02c8c6aa70.zip | |
Merge with master
Diffstat (limited to 'common/accel-classic.hpp')
| -rw-r--r-- | common/accel-classic.hpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/common/accel-classic.hpp b/common/accel-classic.hpp index 4cc52ca..1df888a 100644 --- a/common/accel-classic.hpp +++ b/common/accel-classic.hpp @@ -10,13 +10,23 @@ 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) + double base_speed = speed + offset; + return multiplicative_const * pow(speed, power_inc) / base_speed; + } + + inline double legacy_offset(double speed) const { return pow(accel * speed, power); } }; |