Time bar (total: 17.6s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 99.9% | 0.1% | 0 |
| 0% | 99.9% | 0.1% | 1 |
| 0% | 99.9% | 0.1% | 2 |
| 0% | 99.9% | 0.1% | 3 |
| 0% | 99.9% | 0.1% | 4 |
| 6.2% | 93.7% | 0.1% | 5 |
| 6.2% | 90.5% | 3.2% | 6 |
| 21.9% | 67.1% | 11% | 7 |
| 23.4% | 64.8% | 11.8% | 8 |
| 32% | 52.7% | 15.3% | 9 |
| 33.2% | 51.3% | 15.5% | 10 |
| 37.7% | 45.2% | 17.2% | 11 |
| 38.3% | 44.4% | 17.2% | 12 |
| 40.6% | 41.3% | 18% | 13 |
| 41% | 41% | 18% | 14 |
Compiled 15 to 12 computations (20% saved)
| 740.0ms | 5992× | body | 128 | valid |
| 453.0ms | 1090× | body | 1024 | valid |
| 227.0ms | 740× | body | 512 | valid |
| 207.0ms | 528× | body | 1024 | invalid |
| 163.0ms | 1547× | body | 128 | invalid |
| 103.0ms | 348× | body | 512 | invalid |
| 77.0ms | 371× | body | 256 | valid |
| 42.0ms | 183× | body | 256 | invalid |
| 35.0ms | 63× | body | 2048 | valid |
Compiled 30 to 24 computations (20% saved)
| 2× | egg-herbie |
| 668× | fma-neg_binary64 |
| 504× | times-frac_binary64 |
| 448× | div-sub_binary64 |
| 360× | fma-def_binary64 |
| 276× | cancel-sign-sub-inv_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 16 | 36 |
| 1 | 38 | 34 |
| 2 | 73 | 30 |
| 3 | 160 | 30 |
| 4 | 352 | 30 |
| 5 | 807 | 30 |
| 6 | 2207 | 30 |
| 0 | 2 | 2 |
| 1× | saturated |
| 1× | node limit |
Compiled 14 to 11 computations (21.4% saved)
| 1× | egg-herbie |
| 1074× | fma-def_binary64 |
| 781× | fma-neg_binary64 |
| 314× | div-sub_binary64 |
| 282× | times-frac_binary64 |
| 194× | distribute-rgt-in_binary64 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 18 |
| 1 | 22 | 17 |
| 2 | 40 | 17 |
| 3 | 86 | 15 |
| 4 | 196 | 15 |
| 5 | 431 | 15 |
| 6 | 1016 | 15 |
| 7 | 2510 | 15 |
| 8 | 4117 | 15 |
| 9 | 4867 | 15 |
| 1× | node limit |
3 alts after pruning (3 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 2 | 2 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 0 | 3 | 3 |
| Status | Error | Program |
| ▶ | 22.9b | (-.f64 1 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1)))) |
| 22.9b | (-.f64 1 (log.f64 (-.f64 1 (/.f64 (-.f64 x y) (-.f64 1 y))))) |
Compiled 76 to 57 computations (25% saved)
Found 3 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (-.f64 1 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1)))) |
| ✓ | 0.0b | (/.f64 (-.f64 x y) (+.f64 y -1)) |
| ✓ | 2.5b | (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) |
18 calls:
| 19.0ms | (-.f64 1 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1)))) | x | -inf |
| 16.0ms | (-.f64 1 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1)))) | x | inf |
| 14.0ms | (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) | x | -inf |
| 12.0ms | (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) | x | inf |
| 6.0ms | (-.f64 1 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1)))) | y | -inf |
| 1× | batch-egg-rewrite |
| 338× | fma-def_binary64 |
| 204× | expm1-udef_binary64 |
| 203× | log1p-udef_binary64 |
| 200× | fma-neg_binary64 |
| 174× | log-div_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 37 |
| 1 | 225 | 37 |
| 2 | 3223 | 37 |
| 1× | node limit |
| 1× | egg-herbie |
| 661× | associate-+r+_binary64 |
| 407× | associate-+l+_binary64 |
| 237× | associate--r+_binary64 |
| 225× | associate-/r*_binary64 |
| 193× | associate--l+_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 366 | 4967 |
| 1 | 1282 | 4869 |
| 1× | node limit |
4 alts after pruning (4 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 225 | 4 | 229 |
| Fresh | 1 | 0 | 1 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 227 | 4 | 231 |
| Status | Error | Program |
| 40.4b | (-.f64 1 (+.f64 (+.f64 (log1p.f64 (neg.f64 x)) (log.f64 (/.f64 -1 y))) (-.f64 (/.f64 1 (*.f64 y (-.f64 1 x))) (/.f64 (/.f64 x (-.f64 1 x)) y)))) | |
| 22.9b | (/.f64 (-.f64 1 (pow.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 2)) (+.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 1)) | |
| 58.4b | (-.f64 1 (-.f64 (log.f64 (+.f64 x -1)) (log.f64 y))) | |
| ▶ | 22.5b | (-.f64 1 (log1p.f64 (*.f64 (-.f64 x y) (/.f64 1 (+.f64 y -1))))) |
Compiled 8833 to 6139 computations (30.5% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 0.0b | (-.f64 1 (log1p.f64 (*.f64 (-.f64 x y) (/.f64 1 (+.f64 y -1))))) |
| ✓ | 0.0b | (/.f64 1 (+.f64 y -1)) |
| ✓ | 0.1b | (*.f64 (-.f64 x y) (/.f64 1 (+.f64 y -1))) |
| ✓ | 4.7b | (log1p.f64 (*.f64 (-.f64 x y) (/.f64 1 (+.f64 y -1)))) |
21 calls:
| 18.0ms | (-.f64 1 (log1p.f64 (*.f64 (-.f64 x y) (/.f64 1 (+.f64 y -1))))) | x | -inf |
| 17.0ms | (-.f64 1 (log1p.f64 (*.f64 (-.f64 x y) (/.f64 1 (+.f64 y -1))))) | x | inf |
| 14.0ms | (log1p.f64 (*.f64 (-.f64 x y) (/.f64 1 (+.f64 y -1)))) | x | -inf |
| 12.0ms | (log1p.f64 (*.f64 (-.f64 x y) (/.f64 1 (+.f64 y -1)))) | x | inf |
| 5.0ms | (-.f64 1 (log1p.f64 (*.f64 (-.f64 x y) (/.f64 1 (+.f64 y -1))))) | y | -inf |
| 1× | batch-egg-rewrite |
| 966× | prod-diff_binary64 |
| 121× | add-sqr-sqrt_binary64 |
| 116× | expm1-log1p-u_binary64 |
| 115× | add-cbrt-cube_binary64 |
| 115× | log1p-expm1-u_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 44 |
| 1 | 244 | 44 |
| 2 | 3324 | 44 |
| 1× | node limit |
| 1× | egg-herbie |
| 678× | associate-+r+_binary64 |
| 417× | associate-+l+_binary64 |
| 242× | associate--r+_binary64 |
| 226× | associate-/r*_binary64 |
| 196× | +-commutative_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 377 | 5144 |
| 1 | 1320 | 5036 |
| 1× | node limit |
4 alts after pruning (3 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 241 | 0 | 241 |
| Fresh | 0 | 3 | 3 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 241 | 4 | 245 |
| Status | Error | Program |
| 40.4b | (-.f64 1 (+.f64 (+.f64 (log1p.f64 (neg.f64 x)) (log.f64 (/.f64 -1 y))) (-.f64 (/.f64 1 (*.f64 y (-.f64 1 x))) (/.f64 (/.f64 x (-.f64 1 x)) y)))) | |
| ▶ | 22.9b | (/.f64 (-.f64 1 (pow.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 2)) (+.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 1)) |
| 58.4b | (-.f64 1 (-.f64 (log.f64 (+.f64 x -1)) (log.f64 y))) | |
| ✓ | 22.5b | (-.f64 1 (log1p.f64 (*.f64 (-.f64 x y) (/.f64 1 (+.f64 y -1))))) |
Compiled 8845 to 6122 computations (30.8% saved)
Found 4 expressions with local error:
| New | Error | Program |
| 0.0b | (/.f64 (-.f64 x y) (+.f64 y -1)) | |
| ✓ | 0.2b | (/.f64 (-.f64 1 (pow.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 2)) (+.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 1)) |
| ✓ | 0.2b | (pow.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 2) |
| 2.5b | (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) |
12 calls:
| 3.0s | (/.f64 (-.f64 1 (pow.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 2)) (+.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 1)) | x | -inf |
| 2.7s | (/.f64 (-.f64 1 (pow.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 2)) (+.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 1)) | x | inf |
| 349.0ms | (/.f64 (-.f64 1 (pow.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 2)) (+.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 1)) | y | -inf |
| 83.0ms | (pow.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 2) | x | -inf |
| 83.0ms | (pow.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 2) | x | inf |
| 1× | batch-egg-rewrite |
| 278× | log1p-udef_binary64 |
| 160× | add-sqr-sqrt_binary64 |
| 158× | expm1-log1p-u_binary64 |
| 157× | log1p-expm1-u_binary64 |
| 154× | add-cbrt-cube_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 14 | 50 |
| 1 | 325 | 30 |
| 2 | 4670 | 30 |
| 1× | node limit |
| 1× | egg-herbie |
| 934× | times-frac_binary64 |
| 24× | unpow2_binary64 |
| 11× | cube-mult_binary64 |
| 11× | unpow3_binary64 |
| 5× | log-div_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 4760 | 89745 |
| 1× | node limit |
7 alts after pruning (6 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 426 | 4 | 430 |
| Fresh | 0 | 2 | 2 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 1 | 1 |
| Total | 427 | 7 | 434 |
| Status | Error | Program |
| ▶ | 23.0b | (/.f64 (-.f64 1 (pow.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 2)) (+.f64 (log1p.f64 (fma.f64 (*.f64 (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1))) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) -1)) 1)) |
| 45.3b | (-.f64 (+.f64 (/.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (pow.f64 x 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (/.f64 (log.f64 (-.f64 1 x)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (*.f64 2 (/.f64 (log.f64 (/.f64 -1 y)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (/.f64 (*.f64 x (pow.f64 (log.f64 (-.f64 1 x)) 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (pow.f64 x 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3)))) (+.f64 (*.f64 2 (/.f64 (log.f64 (-.f64 1 x)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (-.f64 1 x)) x) (*.f64 (-.f64 1 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))))) (+.f64 (*.f64 4 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (*.f64 x (log.f64 (-.f64 1 x)))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (*.f64 x (log.f64 (-.f64 1 x)))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 x 2) (log.f64 (-.f64 1 x))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (/.f64 (pow.f64 x 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3)))) (+.f64 (/.f64 (*.f64 (log.f64 (-.f64 1 x)) (pow.f64 x 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (/.f64 1 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))) (+.f64 (/.f64 (log.f64 (/.f64 -1 y)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))) (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 2 (/.f64 x (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))))) (+.f64 (/.f64 x (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (/.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) x) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3))))) (+.f64 (/.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (/.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) x) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3))))) (+.f64 (/.f64 (*.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) x) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) x) (*.f64 (-.f64 1 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))))))))))))))))))))))))))))))))) (+.f64 (*.f64 2 (/.f64 (*.f64 x (log.f64 (-.f64 1 x))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))))) (+.f64 (*.f64 4 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) x) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 2 (/.f64 (log.f64 (/.f64 -1 y)) (*.f64 (-.f64 1 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) x) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) (pow.f64 x 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (/.f64 1 (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (*.f64 2 (/.f64 (log.f64 (-.f64 1 x)) (*.f64 (-.f64 1 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))))) (+.f64 (/.f64 (pow.f64 x 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (*.f64 (pow.f64 x 2) (log.f64 (-.f64 1 x)))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))) (+.f64 (/.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3))))) (+.f64 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (*.f64 (log.f64 (-.f64 1 x)) (pow.f64 x 2))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (/.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3)))) (+.f64 (*.f64 2 (/.f64 (log.f64 (-.f64 1 x)) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (/.f64 (*.f64 (pow.f64 x 2) (pow.f64 (log.f64 (-.f64 1 x)) 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3)))) (+.f64 (*.f64 2 (/.f64 (log.f64 (/.f64 -1 y)) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (/.f64 x (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (/.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 4 (/.f64 (*.f64 (log.f64 (-.f64 1 x)) x) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 2 (/.f64 x (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3))))) (+.f64 (/.f64 (*.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) x) (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (/.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3)))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (*.f64 (log.f64 (-.f64 1 x)) x)) (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (/.f64 (*.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) x) (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (/.f64 (*.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) (pow.f64 x 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3)))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) (pow.f64 x 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))))))))))))))))))))))))))))))))) | |
| 40.4b | (-.f64 1 (+.f64 (+.f64 (log1p.f64 (neg.f64 x)) (log.f64 (/.f64 -1 y))) (-.f64 (/.f64 1 (*.f64 y (-.f64 1 x))) (/.f64 (/.f64 x (-.f64 1 x)) y)))) | |
| 35.2b | (/.f64 (-.f64 1 (pow.f64 (-.f64 (log1p.f64 (pow.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 3)) (log.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 2) (/.f64 (-.f64 x y) (+.f64 y -1)))))) 2)) (+.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 1)) | |
| 58.6b | (/.f64 (-.f64 1 (+.f64 (*.f64 2 (*.f64 (log.f64 (-.f64 x 1)) (neg.f64 (log.f64 y)))) (+.f64 (pow.f64 (neg.f64 (log.f64 y)) 2) (pow.f64 (log.f64 (-.f64 x 1)) 2)))) (+.f64 1 (+.f64 (log.f64 (-.f64 x 1)) (neg.f64 (log.f64 y))))) | |
| 58.4b | (-.f64 1 (-.f64 (log.f64 (+.f64 x -1)) (log.f64 y))) | |
| ✓ | 22.5b | (-.f64 1 (log1p.f64 (*.f64 (-.f64 x y) (/.f64 1 (+.f64 y -1))))) |
Compiled 135498 to 105627 computations (22% saved)
Found 4 expressions with local error:
| New | Error | Program |
| ✓ | 2.5b | (log1p.f64 (fma.f64 (*.f64 (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1))) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) -1)) |
| 2.5b | (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) | |
| ✓ | 2.6b | (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1) |
| ✓ | 4.2b | (fma.f64 (*.f64 (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1))) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) -1) |
18 calls:
| 231.0ms | (log1p.f64 (fma.f64 (*.f64 (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1))) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) -1)) | y | -inf |
| 230.0ms | (log1p.f64 (fma.f64 (*.f64 (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1))) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) -1)) | y | inf |
| 75.0ms | (log1p.f64 (fma.f64 (*.f64 (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1))) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) -1)) | y | 0 |
| 70.0ms | (fma.f64 (*.f64 (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1))) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) -1) | y | 0 |
| 61.0ms | (fma.f64 (*.f64 (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1))) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) -1) | x | 0 |
| 1× | batch-egg-rewrite |
| 468× | fma-def_binary64 |
| 335× | fma-neg_binary64 |
| 242× | log1p-udef_binary64 |
| 240× | expm1-udef_binary64 |
| 165× | egg-rr |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 13 | 47 |
| 1 | 284 | 41 |
| 2 | 3883 | 35 |
| 1× | node limit |
| 1× | egg-herbie |
| 980× | fma-def_binary64 |
| 667× | associate-*l*_binary64 |
| 241× | *-commutative_binary64 |
| 199× | +-commutative_binary64 |
| 169× | associate-+r+_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 632 | 7655 |
| 1 | 2219 | 7415 |
| 1× | node limit |
7 alts after pruning (5 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 482 | 0 | 482 |
| Fresh | 0 | 5 | 5 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 482 | 7 | 489 |
| Status | Error | Program |
| ✓ | 23.0b | (/.f64 (-.f64 1 (pow.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 2)) (+.f64 (log1p.f64 (fma.f64 (*.f64 (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1))) (cbrt.f64 (+.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 1)) -1)) 1)) |
| 45.3b | (-.f64 (+.f64 (/.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (pow.f64 x 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (/.f64 (log.f64 (-.f64 1 x)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (*.f64 2 (/.f64 (log.f64 (/.f64 -1 y)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (/.f64 (*.f64 x (pow.f64 (log.f64 (-.f64 1 x)) 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (pow.f64 x 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (*.f64 1/2 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3)))) (+.f64 (*.f64 2 (/.f64 (log.f64 (-.f64 1 x)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (-.f64 1 x)) x) (*.f64 (-.f64 1 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))))) (+.f64 (*.f64 4 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (*.f64 x (log.f64 (-.f64 1 x)))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (*.f64 x (log.f64 (-.f64 1 x)))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 x 2) (log.f64 (-.f64 1 x))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 x 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (/.f64 (pow.f64 x 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3)))) (+.f64 (/.f64 (*.f64 (log.f64 (-.f64 1 x)) (pow.f64 x 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (/.f64 1 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))) (+.f64 (/.f64 (log.f64 (/.f64 -1 y)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))) (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 2 (/.f64 x (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))))) (+.f64 (/.f64 x (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (/.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) x) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3))))) (+.f64 (/.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (/.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) x) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3))))) (+.f64 (/.f64 (*.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) x) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) x) (*.f64 (-.f64 1 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))))))))))))))))))))))))))))))))) (+.f64 (*.f64 2 (/.f64 (*.f64 x (log.f64 (-.f64 1 x))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))))) (+.f64 (*.f64 4 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) x) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 2 (/.f64 (log.f64 (/.f64 -1 y)) (*.f64 (-.f64 1 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) x) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))))) (+.f64 (/.f64 1 (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) (pow.f64 x 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (/.f64 1 (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (*.f64 2 (/.f64 (log.f64 (-.f64 1 x)) (*.f64 (-.f64 1 x) (*.f64 y (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))))) (+.f64 (/.f64 (pow.f64 x 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (*.f64 (pow.f64 x 2) (log.f64 (-.f64 1 x)))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))))) (+.f64 (/.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3))))) (+.f64 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (*.f64 (log.f64 (-.f64 1 x)) (pow.f64 x 2))) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (/.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3)))) (+.f64 (*.f64 2 (/.f64 (log.f64 (-.f64 1 x)) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (/.f64 (*.f64 (pow.f64 x 2) (pow.f64 (log.f64 (-.f64 1 x)) 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3)))) (+.f64 (*.f64 2 (/.f64 (log.f64 (/.f64 -1 y)) (*.f64 (pow.f64 y 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))))) (+.f64 (/.f64 x (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (/.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x))))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 4 (/.f64 (*.f64 (log.f64 (-.f64 1 x)) x) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (*.f64 2 (/.f64 x (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3))))) (+.f64 (/.f64 (*.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) x) (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (/.f64 (pow.f64 (log.f64 (-.f64 1 x)) 2) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3)))) (+.f64 (*.f64 2 (/.f64 (*.f64 (log.f64 (/.f64 -1 y)) (*.f64 (log.f64 (-.f64 1 x)) x)) (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (+.f64 (/.f64 (*.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) x) (*.f64 (-.f64 1 x) (*.f64 y (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2)))) (+.f64 (/.f64 (*.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) (pow.f64 x 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 3)))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 (log.f64 (/.f64 -1 y)) 2) (pow.f64 x 2)) (*.f64 (pow.f64 (-.f64 1 x) 2) (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))) (/.f64 1 (*.f64 (pow.f64 y 2) (pow.f64 (+.f64 1 (+.f64 (log.f64 (/.f64 -1 y)) (log.f64 (-.f64 1 x)))) 2))))))))))))))))))))))))))))))))))) | |
| 40.4b | (-.f64 1 (+.f64 (+.f64 (log1p.f64 (neg.f64 x)) (log.f64 (/.f64 -1 y))) (-.f64 (/.f64 1 (*.f64 y (-.f64 1 x))) (/.f64 (/.f64 x (-.f64 1 x)) y)))) | |
| 35.2b | (/.f64 (-.f64 1 (pow.f64 (-.f64 (log1p.f64 (pow.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 3)) (log.f64 (+.f64 1 (-.f64 (pow.f64 (/.f64 (-.f64 x y) (+.f64 y -1)) 2) (/.f64 (-.f64 x y) (+.f64 y -1)))))) 2)) (+.f64 (log1p.f64 (/.f64 (-.f64 x y) (+.f64 y -1))) 1)) | |
| 58.6b | (/.f64 (-.f64 1 (+.f64 (*.f64 2 (*.f64 (log.f64 (-.f64 x 1)) (neg.f64 (log.f64 y)))) (+.f64 (pow.f64 (neg.f64 (log.f64 y)) 2) (pow.f64 (log.f64 (-.f64 x 1)) 2)))) (+.f64 1 (+.f64 (log.f64 (-.f64 x 1)) (neg.f64 (log.f64 y))))) | |
| 58.4b | (-.f64 1 (-.f64 (log.f64 (+.f64 x -1)) (log.f64 y))) | |
| ✓ | 22.5b | (-.f64 1 (log1p.f64 (*.f64 (-.f64 x y) (/.f64 1 (+.f64 y -1))))) |
Compiled 36704 to 26293 computations (28.4% saved)
Total 0.1b remaining (62.2%)
Threshold costs 0.1b (62.2%)
Compiled 20912 to 16678 computations (20.2% saved)
| 2× | binary-search |
2 calls:
| 180.0ms | y |
| 23.0ms | y |
| Iters | Point | Range | ||||
|---|---|---|---|---|---|---|
4.2096123486017616e+43 | ∈ [ | 4.150862037014624e+43 | , | 7.291284734026614e+59 | ] | |
-589143.7095034524 | ∈ [ | -14565245.843627656 | , | -433.6422767910248 | ] | |
Compiled 3 to 2 computations (33.3% saved)
| 1× | egg-herbie |
| 29× | +-commutative_binary64 |
| 25× | sub-neg_binary64 |
| 23× | neg-sub0_binary64 |
| 23× | neg-mul-1_binary64 |
| 20× | *-commutative_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 36 | 84 |
| 1 | 59 | 84 |
| 2 | 89 | 84 |
| 3 | 128 | 84 |
| 4 | 177 | 84 |
| 5 | 209 | 84 |
| 6 | 226 | 84 |
| 7 | 240 | 84 |
| 8 | 253 | 84 |
| 9 | 262 | 84 |
| 10 | 268 | 84 |
| 11 | 271 | 84 |
| 12 | 272 | 84 |
| 1× | saturated |
| 1× | fuel |
Compiled 2103 to 1703 computations (19% saved)
Loading profile data...