Time bar (total: 4.7s)
| 1× | search |
| True | Other | False | Iter |
|---|---|---|---|
| 0% | 99.8% | 0.2% | 0 |
| 0% | 99.8% | 0.2% | 1 |
| 0% | 99.8% | 0.2% | 2 |
| 0% | 99.8% | 0.2% | 3 |
| 0% | 99.8% | 0.2% | 4 |
| 0% | 99.8% | 0.2% | 5 |
| 0% | 99.8% | 0.2% | 6 |
| 0% | 99.8% | 0.2% | 7 |
| 3.1% | 96.7% | 0.2% | 8 |
| 6.2% | 92% | 1.8% | 9 |
| 8.2% | 90.1% | 1.8% | 10 |
| 13.3% | 84.2% | 2.5% | 11 |
| 16.2% | 74.7% | 9.2% | 12 |
| 19.7% | 60.8% | 19.5% | 13 |
| 22.5% | 57.8% | 19.7% | 14 |
Compiled 13 to 9 computations (30.8% saved)
| 996.0ms | 8256× | body | 128 | valid |
| 687.0ms | 6523× | body | 128 | invalid |
| 2× | egg-herbie |
| 661× | rule-a-+a0_binary64 |
| 659× | rule-a-/a1_binary64 |
| 221× | rule-/ab-*+aa/1/2b_binary64 |
| 219× | fma-neg_binary64 |
| 191× | rule-/a-bc-/nega-cb_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 32 | 84 |
| 1 | 204 | 84 |
| 2 | 828 | 84 |
| 3 | 4322 | 84 |
| 0 | 4 | 4 |
| 1 | 4 | 4 |
| 1× | unsound |
| 1× | node limit |
| Inputs |
|---|
0 |
1 |
2 |
3 |
| Outputs |
|---|
0 |
1 |
2 |
3 |
2 |
| Inputs |
|---|
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) |
(*.f64 A (sqrt.f64 (/.f64 c0 (*.f64 V l)))) |
(*.f64 V (sqrt.f64 (/.f64 A (*.f64 c0 l)))) |
(*.f64 l (sqrt.f64 (/.f64 A (*.f64 V c0)))) |
(*.f64 c0 (sqrt.f64 (/.f64 V (*.f64 A l)))) |
(*.f64 c0 (sqrt.f64 (/.f64 l (*.f64 V A)))) |
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 l V)))) |
| Outputs |
|---|
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) |
(*.f64 A (sqrt.f64 (/.f64 c0 (*.f64 V l)))) |
(*.f64 V (sqrt.f64 (/.f64 A (*.f64 c0 l)))) |
(*.f64 l (sqrt.f64 (/.f64 A (*.f64 V c0)))) |
(*.f64 l (sqrt.f64 (/.f64 A (*.f64 c0 V)))) |
(*.f64 c0 (sqrt.f64 (/.f64 V (*.f64 A l)))) |
(*.f64 c0 (sqrt.f64 (/.f64 l (*.f64 V A)))) |
(*.f64 c0 (sqrt.f64 (/.f64 l (*.f64 A V)))) |
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 l V)))) |
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) |
(sort V l)
Compiled 12 to 8 computations (33.3% saved)
| 1× | egg-herbie |
| 253× | rule-/ab-*+aa/1/2b_binary64 |
| 245× | rule-/a-bc-/nega-cb_binary64 |
| 220× | rule-/*abc-*b/ac_binary64 |
| 210× | rule-*a/cb-/a/bc_binary64 |
| 204× | rule-*a-bc-*nega-cb_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 12 |
| 1 | 55 | 12 |
| 2 | 218 | 12 |
| 3 | 1108 | 12 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) |
| Outputs |
|---|
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) |
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 1 | 1 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 0 | 2 | 2 |
| Status | Error | Program |
|---|---|---|
| ▶ | 19.1b | (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) |
Compiled 36 to 24 computations (33.3% saved)
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.8b | (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) |
| ✓ | 3.2b | (/.f64 A (*.f64 V l)) |
| ✓ | 19.6b | (sqrt.f64 (/.f64 A (*.f64 V l))) |
30 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 4.0ms | A | @ | 0 | (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) |
| 1.0ms | A | @ | 0 | (sqrt.f64 (/.f64 A (*.f64 V l))) |
| 1.0ms | A | @ | inf | (/.f64 A (*.f64 V l)) |
| 1.0ms | c0 | @ | 0 | (*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) |
| 1.0ms | l | @ | 0 | (sqrt.f64 (/.f64 A (*.f64 V l))) |
| 1× | batch-egg-rewrite |
| 254× | rule-/ab-*+aa/1/2b_binary64 |
| 221× | rule-*aa-fabs*aa_binary64 |
| 180× | rule-nega--0a_binary64 |
| 180× | rule-nega-/a-1_binary64 |
| 180× | rule-nega-*a-1_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 28 |
| 1 | 227 | 28 |
| 2 | 3113 | 28 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (/.f64 A (*.f64 V l))) |
(/.f64 A (*.f64 V l)) |
(*.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l)))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))) (+.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l))))) (+.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (pow.f64 1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (fabs.f64 (pow.f64 1 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) (cbrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (pow.f64 (/.f64 A (*.f64 V l)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 2)) (sqrt.f64 (cbrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 A A)) (sqrt.f64 (/.f64 1/2 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 A) (sqrt.f64 A)) (/.f64 1/2 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 2) 1/2) (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 A A) 1/2) (pow.f64 (/.f64 1/2 (*.f64 V l)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) (pow.f64 (/.f64 A (*.f64 V l)) 3/2)) (/.f64 1/2 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 (/.f64 A V))) (/.f64 1/2 (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 2))) (fabs.f64 (sqrt.f64 (cbrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (sqrt.f64 (+.f64 A A))) (fabs.f64 (sqrt.f64 (/.f64 1/2 (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l))))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (+.f64 (sqrt.f64 A) (sqrt.f64 A))) (fabs.f64 (/.f64 1/2 (sqrt.f64 (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 2) 1/2)) (fabs.f64 (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (pow.f64 (+.f64 A A) 1/2)) (fabs.f64 (pow.f64 (/.f64 1/2 (*.f64 V l)) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fabs.f64 (sqrt.f64 (/.f64 A V))) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 V l)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (-.f64 1 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (-.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (pow.f64 (/.f64 A (*.f64 V l)) 1/4) 0)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 A (*.f64 V l)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (/.f64 A (*.f64 V l)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 A (*.f64 V l)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 A (*.f64 V l)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (/.f64 A (*.f64 V l)) (/.f64 A (*.f64 V l))) (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (exp.f64 (log1p.f64 (/.f64 A (*.f64 V l)))) (exp.f64 (log1p.f64 (/.f64 A (*.f64 V l))))) (+.f64 (exp.f64 (log1p.f64 (/.f64 A (*.f64 V l)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (+.f64 (/.f64 A (*.f64 V l)) (/.f64 A (*.f64 V l))) (+.f64 (/.f64 A (*.f64 V l)) (/.f64 A (*.f64 V l)))) (+.f64 (+.f64 (/.f64 A (*.f64 V l)) (/.f64 A (*.f64 V l))) (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 A (/.f64 1 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 A (fabs.f64 (/.f64 1 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A (*.f64 V l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A (*.f64 V l)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 A) (/.f64 (pow.f64 (cbrt.f64 A) 2) (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) (fabs.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 2) (cbrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 A) (/.f64 (sqrt.f64 A) (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (pow.f64 (/.f64 A (*.f64 V l)) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 A A) (/.f64 1/2 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (*.f64 V l)) (+.f64 A A))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A V) (/.f64 1 l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A V) (fabs.f64 (/.f64 1 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 A (*.f64 V l)) (/.f64 A (*.f64 V l))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 A (*.f64 V l)) (/.f64 A (*.f64 V l))) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 A V) (/.f64 A V)) (/.f64 1/2 l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) (/.f64 1/2 (/.f64 1 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) (/.f64 1/2 (/.f64 (sqrt.f64 (*.f64 V l)) (sqrt.f64 A))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/2 (/.f64 (*.f64 V l) A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/2 (/.f64 l (/.f64 A V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3) (pow.f64 (/.f64 A (*.f64 V l)) 3)) (/.f64 1/2 (pow.f64 (/.f64 A (*.f64 V l)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 A A) (+.f64 A A)) (/.f64 1/2 (/.f64 (*.f64 V l) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 (/.f64 A V)) (neg.f64 (/.f64 A V))) (/.f64 1/2 l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (sqrt.f64 A) (sqrt.f64 (/.f64 A (*.f64 V l)))) (*.f64 (sqrt.f64 A) (sqrt.f64 (/.f64 A (*.f64 V l))))) (/.f64 1/2 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/2 (+.f64 A A)) (*.f64 1/2 (+.f64 A A))) (/.f64 1/2 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 A l) (/.f64 A l)) (/.f64 1/2 V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 A (pow.f64 (cbrt.f64 (*.f64 V l)) 2)) (/.f64 A (pow.f64 (cbrt.f64 (*.f64 V l)) 2))) (/.f64 1/2 (cbrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 A (sqrt.f64 (*.f64 V l))) (/.f64 A (sqrt.f64 (*.f64 V l)))) (/.f64 1/2 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (/.f64 A V) (pow.f64 (cbrt.f64 l) 2)) (/.f64 (/.f64 A V) (pow.f64 (cbrt.f64 l) 2))) (/.f64 1/2 (cbrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (/.f64 A V) (sqrt.f64 l)) (/.f64 (/.f64 A V) (sqrt.f64 l))) (/.f64 1/2 (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (+.f64 (/.f64 A (*.f64 V l)) (/.f64 A (*.f64 V l)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fabs.f64 (+.f64 (/.f64 A V) (/.f64 A V))) (fabs.f64 (/.f64 1/2 l)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 V l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (-.f64 1 (exp.f64 (log1p.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (-.f64 (/.f64 A (*.f64 V l)) (+.f64 (/.f64 A (*.f64 V l)) (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) (pow.f64 (/.f64 A (*.f64 V l)) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 A 3) (pow.f64 (*.f64 V l) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 A (*.f64 V l)) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 2) (cbrt.f64 (/.f64 A (*.f64 V l))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 A A) (/.f64 1/2 (*.f64 V l)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 A (*.f64 V l)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))) (+.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) (+.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) (+.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 c0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (fabs.f64 (/.f64 1 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 c0 (/.f64 1 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 c0 (/.f64 (sqrt.f64 (*.f64 V l)) (sqrt.f64 A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 c0 (fabs.f64 (/.f64 1 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3) (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 A) c0) (sqrt.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (-.f64 1 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (-.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) (+.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) (pow.f64 c0 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 c0 3) (pow.f64 (/.f64 A (*.f64 V l)) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 2) (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))))) |
| 1× | egg-herbie |
| 253× | rule-/ab-*+aa/1/2b_binary64 |
| 248× | rule-/a*bc-//abc_binary64 |
| 245× | rule-/a-bc-/nega-cb_binary64 |
| 221× | rule-/*abc-*b/ac_binary64 |
| 204× | rule-*a-bc-*nega-cb_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 144 |
| 1 | 55 | 144 |
| 2 | 218 | 144 |
| 3 | 1109 | 144 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
| Outputs |
|---|
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
13 alts after pruning (13 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 152 | 13 | 165 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 153 | 13 | 166 |
| Status | Error | Program |
|---|---|---|
| 24.5b | (*.f64 c0 (*.f64 (+.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 (/.f64 A V))) (/.f64 1/2 (sqrt.f64 l)))) | |
| 19.7b | (pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 3) | |
| 19.4b | (*.f64 c0 (sqrt.f64 (*.f64 (+.f64 (/.f64 (/.f64 A V) (pow.f64 (cbrt.f64 l) 2)) (/.f64 (/.f64 A V) (pow.f64 (cbrt.f64 l) 2))) (/.f64 1/2 (cbrt.f64 l))))) | |
| 37.8b | (*.f64 c0 (*.f64 (sqrt.f64 (+.f64 A A)) (sqrt.f64 (/.f64 1/2 (*.f64 V l))))) | |
| 19.3b | (*.f64 c0 (sqrt.f64 (*.f64 2 (/.f64 1/2 (/.f64 (*.f64 V l) A))))) | |
| 19.3b | (*.f64 c0 (*.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (pow.f64 (/.f64 A (*.f64 V l)) 1/4))) | |
| 53.4b | (log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l))))) | |
| ▶ | 19.0b | (*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l)))) |
| 19.4b | (*.f64 c0 (-.f64 (+.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l))))) (+.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) (sqrt.f64 (/.f64 A (*.f64 V l)))))) | |
| 24.5b | (*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l))) | |
| 37.8b | (*.f64 c0 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))) | |
| 19.2b | (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 c0)) | |
| 37.8b | (/.f64 c0 (/.f64 (sqrt.f64 (*.f64 V l)) (sqrt.f64 A))) |
Compiled 2953 to 1035 computations (65% saved)
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.8b | (*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l)))) |
| ✓ | 4.1b | (*.f64 (/.f64 A V) (/.f64 1 l)) |
| ✓ | 19.6b | (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))) |
30 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | l | @ | 0 | (*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l)))) |
| 1.0ms | A | @ | inf | (*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l)))) |
| 1.0ms | A | @ | inf | (*.f64 (/.f64 A V) (/.f64 1 l)) |
| 0.0ms | V | @ | inf | (*.f64 (/.f64 A V) (/.f64 1 l)) |
| 0.0ms | A | @ | inf | (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))) |
| 1× | batch-egg-rewrite |
| 280× | rule-/ab-*+aa/1/2b_binary64 |
| 255× | rule-*aa-fabs*aa_binary64 |
| 204× | rule-nega-/a-1_binary64 |
| 203× | rule-nega--0a_binary64 |
| 203× | rule-nega-*a-1_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 28 |
| 1 | 275 | 28 |
| 2 | 3600 | 28 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l))) |
(*.f64 (/.f64 A V) (/.f64 1 l)) |
(*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l)))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (+.f64 0 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))) (+.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l))))) (+.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (pow.f64 1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) (cbrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (pow.f64 (/.f64 A (*.f64 V l)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 l -1/2) (sqrt.f64 (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A V)) (pow.f64 l -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 2)) (sqrt.f64 (cbrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 2) 1/2) (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 (/.f64 A V))) (/.f64 1/2 (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) (pow.f64 (/.f64 A (*.f64 V l)) 3/2)) (/.f64 1/2 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 V l)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (pow.f64 (/.f64 A (*.f64 V l)) 1/4) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 A V)) (pow.f64 l -1/2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 A (*.f64 V l)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (/.f64 A (*.f64 V l)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 A (*.f64 V l)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (+.f64 0 (neg.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 A (*.f64 V l)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (/.f64 A (*.f64 V l)) (/.f64 A (*.f64 V l))) (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (exp.f64 (log1p.f64 (/.f64 A (*.f64 V l)))) (exp.f64 (log1p.f64 (/.f64 A (*.f64 V l))))) (+.f64 (exp.f64 (log1p.f64 (/.f64 A (*.f64 V l)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (+.f64 (/.f64 A (*.f64 V l)) (/.f64 A (*.f64 V l))) (+.f64 (/.f64 A (*.f64 V l)) (/.f64 A (*.f64 V l)))) (+.f64 (+.f64 (/.f64 A (*.f64 V l)) (/.f64 A (*.f64 V l))) (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 A (*.f64 V l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 A V) l)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 A V) (/.f64 1 (/.f64 1 l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 l (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 l) (/.f64 V A))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 1 l) (/.f64 1 (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 A (*.f64 V l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 A (*.f64 V l))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (/.f64 A V)) (neg.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3) (pow.f64 (/.f64 A (*.f64 V l)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 A (/.f64 1 l)) V)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 A V) (cbrt.f64 (*.f64 l l))) (cbrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (/.f64 A V) (sqrt.f64 l)) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 A l) V)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 V l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) (pow.f64 (/.f64 A (*.f64 V l)) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (/.f64 A V) 3) (pow.f64 l 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 A V) 3) (/.f64 (pow.f64 l -2) l)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (/.f64 (pow.f64 l -2) l) (pow.f64 (/.f64 A V) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 A V) (/.f64 1 l) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 l) (/.f64 A V) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 A (*.f64 V l)) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 2) (cbrt.f64 (/.f64 A (*.f64 V l))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 A (*.f64 V l)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (+.f64 0 (neg.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))) (+.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) (+.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) (+.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 c0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 c0 (/.f64 1 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3) (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) (pow.f64 c0 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 c0 3) (pow.f64 (/.f64 A (*.f64 V l)) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 2) (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))))) |
| 1× | egg-herbie |
| 253× | rule-/ab-*+aa/1/2b_binary64 |
| 248× | rule-/a*bc-//abc_binary64 |
| 245× | rule-/a-bc-/nega-cb_binary64 |
| 221× | rule-/*abc-*b/ac_binary64 |
| 204× | rule-*a-bc-*nega-cb_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 396 |
| 1 | 55 | 396 |
| 2 | 218 | 396 |
| 3 | 1109 | 396 |
| 1× | node limit |
| Inputs |
|---|
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
| Outputs |
|---|
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
12 alts after pruning (11 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 129 | 2 | 131 |
| Fresh | 3 | 9 | 12 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 132 | 12 | 144 |
| Status | Error | Program |
|---|---|---|
| 19.3b | (*.f64 c0 (*.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (pow.f64 (/.f64 A (*.f64 V l)) 1/4))) | |
| 53.4b | (log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l))))) | |
| ✓ | 19.0b | (*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l)))) |
| 19.4b | (*.f64 c0 (-.f64 (+.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l))))) (+.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) (sqrt.f64 (/.f64 A (*.f64 V l)))))) | |
| 24.5b | (*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l))) | |
| 37.8b | (*.f64 c0 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))) | |
| 19.7b | (pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 3) | |
| 19.2b | (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 c0)) | |
| 37.8b | (*.f64 c0 (*.f64 (sqrt.f64 (+.f64 A A)) (sqrt.f64 (/.f64 1/2 (*.f64 V l))))) | |
| 37.8b | (/.f64 c0 (/.f64 (sqrt.f64 (*.f64 V l)) (sqrt.f64 A))) | |
| ▶ | 19.1b | (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 1 l) (/.f64 V A)))) |
| 24.5b | (*.f64 c0 (*.f64 (pow.f64 l -1/2) (sqrt.f64 (/.f64 A V)))) |
Compiled 2197 to 773 computations (64.8% saved)
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.8b | (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 1 l) (/.f64 V A)))) |
| ✓ | 4.2b | (/.f64 (/.f64 1 l) (/.f64 V A)) |
| ✓ | 19.6b | (sqrt.f64 (/.f64 (/.f64 1 l) (/.f64 V A))) |
30 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 5.0ms | A | @ | inf | (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 1 l) (/.f64 V A)))) |
| 0.0ms | l | @ | 0 | (sqrt.f64 (/.f64 (/.f64 1 l) (/.f64 V A))) |
| 0.0ms | A | @ | -inf | (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 1 l) (/.f64 V A)))) |
| 0.0ms | l | @ | inf | (sqrt.f64 (/.f64 (/.f64 1 l) (/.f64 V A))) |
| 0.0ms | l | @ | -inf | (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 1 l) (/.f64 V A)))) |
| 1× | batch-egg-rewrite |
| 363× | rule-/ab-*+aa/1/2b_binary64 |
| 270× | rule-*aa-fabs*aa_binary64 |
| 215× | rule-nega-/a-1_binary64 |
| 214× | rule-nega-*a-1_binary64 |
| 213× | rule-nega--0a_binary64 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 37 |
| 1 | 282 | 28 |
| 2 | 3846 | 28 |
| 1× | node limit |
| Inputs |
|---|
(sqrt.f64 (/.f64 (/.f64 1 l) (/.f64 V A))) |
(/.f64 (/.f64 1 l) (/.f64 V A)) |
(*.f64 c0 (sqrt.f64 (/.f64 (/.f64 1 l) (/.f64 V A)))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (pow.f64 1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) (cbrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (pow.f64 (/.f64 A (*.f64 V l)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 l -1/2) (sqrt.f64 (/.f64 A V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 l -1/2) (pow.f64 (/.f64 A V) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/2 (sqrt.f64 (*.f64 l (/.f64 V A)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 2)) (sqrt.f64 (cbrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 2 l)) (sqrt.f64 (/.f64 A (+.f64 V V))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 l -1/2) (pow.f64 l -1/2)) (/.f64 1/2 (sqrt.f64 (/.f64 V A))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 2) 1/2) (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 2 l) 1/2) (pow.f64 (/.f64 A (+.f64 V V)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 A) (sqrt.f64 A)) (/.f64 1/2 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) (pow.f64 (/.f64 A (*.f64 V l)) 3/2)) (/.f64 1/2 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 (/.f64 A V))) (/.f64 1/2 (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (sqrt.f64 (*.f64 l (/.f64 V A))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 l -1/2) (sqrt.f64 (/.f64 V A)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 V l)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (pow.f64 (/.f64 A (*.f64 V l)) 1/4) 0)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 A (*.f64 V l)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (/.f64 A (*.f64 V l)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 A (*.f64 V l)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 A (*.f64 V l)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (/.f64 A (*.f64 V l)) (/.f64 A (*.f64 V l))) (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 l) (/.f64 A V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 A (/.f64 (/.f64 1 l) V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A (*.f64 V l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 A (*.f64 V l))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 2) (cbrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 A) (/.f64 (cbrt.f64 (*.f64 A A)) (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 1 l)) (/.f64 (cbrt.f64 (pow.f64 l -2)) (/.f64 V A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (pow.f64 (/.f64 A (*.f64 V l)) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 A) (/.f64 (sqrt.f64 A) (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 l -1/2) (/.f64 (pow.f64 l -1/2) (/.f64 V A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/2 (*.f64 l (/.f64 V A))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/2 (/.f64 (/.f64 V A) (/.f64 1 l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 l) (/.f64 2 (/.f64 V A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 l) (/.f64 A (+.f64 V V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A (+.f64 V V)) (/.f64 2 l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 A V) (/.f64 1 l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 A A) (/.f64 1/2 (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) (/.f64 1/2 (/.f64 1 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l)))) (/.f64 1/2 (/.f64 (sqrt.f64 (/.f64 V A)) (pow.f64 l -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 A (*.f64 V l)) (/.f64 A (*.f64 V l))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 A V) (/.f64 A V)) (/.f64 1/2 l))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 (/.f64 A (*.f64 V l))) (neg.f64 (/.f64 A (*.f64 V l)))) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 (/.f64 1 l)) (neg.f64 (/.f64 1 l))) (/.f64 1/2 (neg.f64 (/.f64 V A))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3) (pow.f64 (/.f64 A (*.f64 V l)) 3)) (/.f64 1/2 (pow.f64 (/.f64 A (*.f64 V l)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 2 l) (/.f64 2 l)) (/.f64 1/2 (/.f64 (/.f64 V A) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 (/.f64 A V)) (neg.f64 (/.f64 A V))) (/.f64 1/2 (neg.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 A (/.f64 1 l)) (*.f64 A (/.f64 1 l))) (/.f64 1/2 V))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 l -1/2) (sqrt.f64 (/.f64 A (*.f64 V l)))) (*.f64 (pow.f64 l -1/2) (sqrt.f64 (/.f64 A (*.f64 V l))))) (/.f64 1/2 (sqrt.f64 (/.f64 V A))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/2 (/.f64 2 l)) (*.f64 1/2 (/.f64 2 l))) (/.f64 A (+.f64 V V)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (/.f64 1 l) (pow.f64 (cbrt.f64 (/.f64 V A)) 2)) (/.f64 (/.f64 1 l) (pow.f64 (cbrt.f64 (/.f64 V A)) 2))) (/.f64 1/2 (cbrt.f64 (/.f64 V A))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (/.f64 1 l) (sqrt.f64 (/.f64 V A))) (/.f64 (/.f64 1 l) (sqrt.f64 (/.f64 V A)))) (/.f64 1/2 (sqrt.f64 (/.f64 V A))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (/.f64 1 l) (+.f64 V V)) (/.f64 (/.f64 1 l) (+.f64 V V))) (/.f64 1/2 (/.f64 1/2 A)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (/.f64 A V) (pow.f64 (cbrt.f64 l) 2)) (/.f64 (/.f64 A V) (pow.f64 (cbrt.f64 l) 2))) (/.f64 1/2 (cbrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (/.f64 A V) (sqrt.f64 l)) (/.f64 (/.f64 A V) (sqrt.f64 l))) (/.f64 1/2 (sqrt.f64 l)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 A (*.f64 V l)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 l (/.f64 V A)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 A (*.f64 V l)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) (pow.f64 (/.f64 A (*.f64 V l)) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (/.f64 (pow.f64 l -2) l) (pow.f64 (/.f64 V A) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 l) (/.f64 A V) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 A (*.f64 V l)) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 (/.f64 A (*.f64 V l))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) 2) (cbrt.f64 (/.f64 A (*.f64 V l))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 2 l) (/.f64 A (+.f64 V V)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 A (*.f64 V l)))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 c0))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 c0 (/.f64 1 (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 c0 (/.f64 (sqrt.f64 (/.f64 V A)) (pow.f64 l -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3) (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 l -1/2) c0) (sqrt.f64 (/.f64 V A)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) (pow.f64 c0 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 c0 3) (pow.f64 (/.f64 A (*.f64 V l)) 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 2) (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))))) |
| 1× | egg-herbie |
| 253× | rule-/ab-*+aa/1/2b_binary64 |
| 248× | rule-/a*bc-//abc_binary64 |
| 245× | rule-/a-bc-/nega-cb_binary64 |
| 221× | rule-/*abc-*b/ac_binary64 |
| 204× | rule-*a-bc-*nega-cb_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 396 |
| 1 | 55 | 396 |
| 2 | 218 | 396 |
| 3 | 1109 | 396 |
| 1× | node limit |
| Inputs |
|---|
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(/.f64 A (*.f64 V l)) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
| Outputs |
|---|
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(/.f64 A (*.f64 V l)) |
(/.f64 (/.f64 A V) l) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
13 alts after pruning (11 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 153 | 3 | 156 |
| Fresh | 2 | 8 | 10 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 155 | 13 | 168 |
| Status | Error | Program |
|---|---|---|
| ▶ | 19.2b | (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 c0)) |
| 24.4b | (/.f64 c0 (/.f64 (sqrt.f64 (/.f64 V A)) (pow.f64 l -1/2))) | |
| 19.3b | (*.f64 c0 (*.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (pow.f64 (/.f64 A (*.f64 V l)) 1/4))) | |
| 53.4b | (log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l))))) | |
| 26.0b | (/.f64 (*.f64 (pow.f64 l -1/2) c0) (sqrt.f64 (/.f64 V A))) | |
| ✓ | 19.1b | (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 1 l) (/.f64 V A)))) |
| 24.5b | (*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l))) | |
| 37.8b | (*.f64 c0 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))) | |
| 19.7b | (pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 3) | |
| 37.8b | (*.f64 c0 (*.f64 (sqrt.f64 (+.f64 A A)) (sqrt.f64 (/.f64 1/2 (*.f64 V l))))) | |
| 37.8b | (/.f64 c0 (/.f64 (sqrt.f64 (*.f64 V l)) (sqrt.f64 A))) | |
| ✓ | 19.0b | (*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l)))) |
| 24.5b | (*.f64 c0 (*.f64 (sqrt.f64 (/.f64 2 l)) (sqrt.f64 (/.f64 A (+.f64 V V))))) |
Compiled 2479 to 1009 computations (59.3% saved)
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.9b | (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 c0)) |
| 3.2b | (/.f64 A (*.f64 V l)) | |
| 19.6b | (sqrt.f64 (/.f64 A (*.f64 V l))) |
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | A | @ | 0 | (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 c0)) |
| 0.0ms | l | @ | -inf | (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 c0)) |
| 0.0ms | V | @ | inf | (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 c0)) |
| 0.0ms | A | @ | -inf | (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 c0)) |
| 0.0ms | l | @ | inf | (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 c0)) |
| 1× | batch-egg-rewrite |
| 348× | rule-/ab-*+aa/1/2b_binary64 |
| 267× | rule-*aa-fabs*aa_binary64 |
| 212× | rule-nega-/a-1_binary64 |
| 211× | rule-nega--0a_binary64 |
| 211× | rule-nega-*a-1_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 11 | 12 |
| 1 | 279 | 12 |
| 2 | 3754 | 12 |
| 1× | node limit |
| Inputs |
|---|
(/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 c0)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (*.f64 2 (*.f64 1/2 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 c0 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) (neg.f64 c0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) (pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 2) (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 c0) (/.f64 (cbrt.f64 (*.f64 c0 c0)) (pow.f64 (/.f64 A (*.f64 V l)) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 c0 c0)) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (cbrt.f64 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) (/.f64 (cbrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 c0) (/.f64 (sqrt.f64 c0) (pow.f64 (/.f64 A (*.f64 V l)) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 c0) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (sqrt.f64 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (/.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (/.f64 1 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 -2 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) (*.f64 1/2 c0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 c0) (*.f64 -2 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/2 (/.f64 (/.f64 1 c0) (sqrt.f64 (/.f64 A (*.f64 V l))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 c0 c0) (/.f64 1/2 (pow.f64 (/.f64 A (*.f64 V l)) -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 A) (sqrt.f64 A)) (/.f64 1/2 (*.f64 (sqrt.f64 (*.f64 V l)) (/.f64 1 c0))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 -2 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) (*.f64 -2 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))) (/.f64 1/2 (/.f64 (/.f64 1 c0) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) (/.f64 1/2 (neg.f64 (/.f64 1 c0))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) (neg.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3) (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3)) (/.f64 1/2 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/2 (*.f64 -2 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))))) (*.f64 1/2 (*.f64 -2 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))))) (*.f64 1/2 c0))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (cbrt.f64 (pow.f64 c0 -2))) (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (cbrt.f64 (pow.f64 c0 -2)))) (/.f64 1/2 (cbrt.f64 (/.f64 1 c0))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (pow.f64 c0 -1/2)) (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (pow.f64 c0 -1/2))) (/.f64 1/2 (pow.f64 c0 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 2) (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) 2)) (/.f64 1/2 (/.f64 1/2 c0)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (sqrt.f64 A) (/.f64 1 c0)) (/.f64 (sqrt.f64 A) (/.f64 1 c0))) (/.f64 1/2 (sqrt.f64 (*.f64 V l))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 (/.f64 A (*.f64 V l)))) c0))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) (/.f64 (pow.f64 c0 -2) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 A (*.f64 V l)) 3/2) (pow.f64 c0 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 2) (cbrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) (sqrt.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -2 (neg.f64 (sqrt.f64 (/.f64 A (*.f64 V l))))) (*.f64 1/2 c0) 0)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0))))))) |
| 1× | egg-herbie |
| 253× | rule-/ab-*+aa/1/2b_binary64 |
| 248× | rule-/a*bc-//abc_binary64 |
| 245× | rule-/a-bc-/nega-cb_binary64 |
| 221× | rule-/*abc-*b/ac_binary64 |
| 204× | rule-*a-bc-*nega-cb_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 144 |
| 1 | 55 | 144 |
| 2 | 218 | 144 |
| 3 | 1109 | 144 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
| Outputs |
|---|
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
(*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) |
(*.f64 (sqrt.f64 (/.f64 (/.f64 A V) l)) c0) |
15 alts after pruning (12 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 179 | 3 | 182 |
| Fresh | 1 | 9 | 10 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 2 | 2 |
| Total | 180 | 15 | 195 |
| Status | Error | Program |
|---|---|---|
| ✓ | 19.2b | (/.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) (/.f64 1 c0)) |
| 24.4b | (/.f64 c0 (/.f64 (sqrt.f64 (/.f64 V A)) (pow.f64 l -1/2))) | |
| 19.3b | (*.f64 c0 (*.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (pow.f64 (/.f64 A (*.f64 V l)) 1/4))) | |
| 19.1b | (+.f64 (*.f64 (sqrt.f64 (/.f64 A (*.f64 V l))) c0) 0) | |
| 53.4b | (log.f64 (pow.f64 (exp.f64 c0) (sqrt.f64 (/.f64 A (*.f64 V l))))) | |
| 26.0b | (/.f64 (*.f64 (pow.f64 l -1/2) c0) (sqrt.f64 (/.f64 V A))) | |
| ✓ | 19.1b | (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 1 l) (/.f64 V A)))) |
| 24.5b | (*.f64 c0 (/.f64 (sqrt.f64 (/.f64 A V)) (sqrt.f64 l))) | |
| 37.8b | (*.f64 c0 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))) | |
| 19.3b | (*.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (/.f64 (pow.f64 (/.f64 A (*.f64 V l)) 1/4) (/.f64 1 c0))) | |
| 37.8b | (*.f64 c0 (*.f64 (sqrt.f64 (+.f64 A A)) (sqrt.f64 (/.f64 1/2 (*.f64 V l))))) | |
| 37.8b | (/.f64 c0 (/.f64 (sqrt.f64 (*.f64 V l)) (sqrt.f64 A))) | |
| ✓ | 19.0b | (*.f64 c0 (sqrt.f64 (*.f64 (/.f64 A V) (/.f64 1 l)))) |
| 39.0b | (*.f64 (+.f64 (/.f64 (sqrt.f64 A) (/.f64 1 c0)) (/.f64 (sqrt.f64 A) (/.f64 1 c0))) (/.f64 1/2 (sqrt.f64 (*.f64 V l)))) | |
| 24.5b | (*.f64 c0 (*.f64 (sqrt.f64 (/.f64 2 l)) (sqrt.f64 (/.f64 A (+.f64 V V))))) |
Compiled 3236 to 1291 computations (60.1% saved)
Total -52.1b remaining (-526.9%)
Threshold costs -52.1b (-526.9%)
Compiled 787 to 305 computations (61.2% saved)
| 2× | left-value |
2 calls:
| 0.0ms | (*.f64 V l) |
| 0.0ms | (*.f64 V l) |
| Iters | Point | Range | ||||
|---|---|---|---|---|---|---|
2e+272 | ∈ [ | 1.668593878361278e+272 | , | 1.905801138875859e+283 | ] | |
-0.0 | ∈ [ | -0.0 | , | 4.4674568756229515e-303 | ] | |
Compiled 19 to 14 computations (26.3% saved)
| 1× | egg-herbie |
| 1× | 1-exp_binary64 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 28 | 62 |
| 1 | 29 | 62 |
| 1× | saturated |
| Inputs |
|---|
(if (<=.f64 (*.f64 V l) 0) (/.f64 c0 (/.f64 (sqrt.f64 (/.f64 V A)) (pow.f64 l -1/2))) (if (<=.f64 (*.f64 V l) 200000000000000013104522191493575712823499934020710488024152771323555056217860874303389432945676521361520476916974680482142243229285217375886207988634517594158208309292880167137262965343121750872846190603318440437028470611163773764115697127698584069380700520547655522189312) (*.f64 c0 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))) (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 1 l) (/.f64 V A)))))) |
| Outputs |
|---|
(if (<=.f64 (*.f64 V l) 0) (/.f64 c0 (/.f64 (sqrt.f64 (/.f64 V A)) (pow.f64 l -1/2))) (if (<=.f64 (*.f64 V l) 200000000000000013104522191493575712823499934020710488024152771323555056217860874303389432945676521361520476916974680482142243229285217375886207988634517594158208309292880167137262965343121750872846190603318440437028470611163773764115697127698584069380700520547655522189312) (*.f64 c0 (/.f64 (sqrt.f64 A) (sqrt.f64 (*.f64 V l)))) (*.f64 c0 (sqrt.f64 (/.f64 (/.f64 1 l) (/.f64 V A)))))) |
| 1× | fuel |
Compiled 359 to 179 computations (50.1% saved)
Loading profile data...