Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: make sure
OfScientific Float
instance is never unfolded during…
… type class resolution This commit fixes issue reported at https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/deterministic.20timeout/near/287654818 Type class resolution was diverging when trying to synthesize ```lean HSub (optParam Float 0.0) (optParam Float 1.0) ?m.472 ``` and Lean was diverging while unfolding ```lean instance : OfScientific Float where ofScientific m s e := if s then let s := 64 - m.log2 -- ensure we have 64 bits of mantissa left after division let m := (m <<< (3 * e + s)) / 5^e Float.ofBinaryScientific m (-4 * e - s) else Float.ofBinaryScientific (m * 5^e) e ``` was being unfolded. Anothe potential solution for the problem above is to erase the `optParam` annotations before performing type class resolution.
- Loading branch information