solmate icon indicating copy to clipboard operation
solmate copied to clipboard

wadExp function comments mistake

Open 0x-stan opened this issue 2 years ago • 3 comments

https://github.com/transmissions11/solmate/blob/main/src/utils/SignedWadMath.sol#L93

// When the result is < 0.5 we return zero. This happens when
// x <= floor(log(0.5e18) * 1e18) ~ -42e18
if (x <= -42139678854452767551) return 0;

log(0.5e18) -> log(0.5e-18)

log(0.5e18) = 40.753384493332874 log(0.5e-18) = -42.13967885445277

image

0x-stan avatar Nov 28 '22 07:11 0x-stan

ah hm nice find!

transmissions11 avatar Nov 28 '22 19:11 transmissions11

Yeah, that should be x <= floor(log(0.5e-18) * 1e18) ~ -42e18

recmo avatar Nov 28 '22 20:11 recmo

Another comments mistake found by @paco0x

// x is now in the range (-42, 136) * 1e18. Convert to (-42, 136) * 2**96
// for more intermediate precision and a binary basis. This base conversion
// is a multiplication by 1e18 / 2**96 = 5**18 / 2**78.
x = (x << 78) / 5**18;

should be 2**96 / 1e18 = 2**78 / 5**18

https://github.com/transmissions11/solmate/blob/main/src/utils/SignedWadMath.sol#L102

0x-stan avatar Nov 29 '22 04:11 0x-stan