Open 0x-stan opened 1 year ago
ah hm nice find!
Yeah, that should be x <= floor(log(0.5e-18) * 1e18) ~ -42e18
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
https://github.com/transmissions11/solmate/blob/main/src/utils/SignedWadMath.sol#L93
log(0.5e18) -> log(0.5e-18)
log(0.5e18) = 40.753384493332874 log(0.5e-18) = -42.13967885445277