diff options
| author | a1xd <[email protected]> | 2020-10-15 00:32:35 -0400 |
|---|---|---|
| committer | a1xd <[email protected]> | 2020-10-15 00:32:35 -0400 |
| commit | 0f3006569d889d16ecc9ca7eb1a39a743bed9690 (patch) | |
| tree | a92ac30a1cc00a73cc9b0169afc92f521fb1100b | |
| parent | update signed for 1.1.1 (diff) | |
| download | rawaccel-0f3006569d889d16ecc9ca7eb1a39a743bed9690.tar.xz rawaccel-0f3006569d889d16ecc9ca7eb1a39a743bed9690.zip | |
fix gain cap conversion
| -rw-r--r-- | converter/converter.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/converter/converter.cpp b/converter/converter.cpp index 242a331..af2699b 100644 --- a/converter/converter.cpp +++ b/converter/converter.cpp @@ -133,10 +133,10 @@ ra::accel_args convert_quake(const ia_settings_t& ia_settings, bool legacy) { double offset = get("Offset").value_or(0); ra::accel_args args; - - double accel_b = std::pow(accel * prescale, power - 1) / sens; - double accel_e = 1 / (power - 1); - args.accel = std::pow(accel_b, accel_e); + double powm1 = power - 1; + double rpowm1 = 1 / powm1; + double accel_b = std::pow(accel * prescale, powm1) / sens; + args.accel = std::pow(accel_b, rpowm1); args.exponent = power; args.legacy_offset = legacy; args.offset = offset; @@ -147,9 +147,7 @@ ra::accel_args convert_quake(const ia_settings_t& ia_settings, bool legacy) { args.scale_cap = cap_converted; } else { - double b = (cap_converted - 1) / power; - double e = 1 / (power - 1); - args.gain_cap = offset + (1 / accel) * std::pow(b, e); + args.gain_cap = offset + std::pow(cap_converted - 1, rpowm1) / args.accel; } return args; |