Time bar (total: 5.2s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 1 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 3 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 4 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 5 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 6 |
| 40.6% | 40.6% | 59.3% | 0.1% | 0% | 0% | 0% | 7 |
| 46% | 45.3% | 53.1% | 0.1% | 1.6% | 0% | 0% | 8 |
| 65.3% | 63.2% | 33.6% | 0.1% | 3.1% | 0% | 0% | 9 |
| 69.5% | 66% | 28.9% | 0.1% | 5.1% | 0% | 0% | 10 |
| 80.9% | 75.1% | 17.8% | 0.1% | 7% | 0% | 0% | 11 |
| 83.6% | 76.6% | 15% | 0.1% | 8.3% | 0% | 0% | 12 |
Compiled 10 to 6 computations (40% saved)
| 1.4s | 8256× | body | 256 | valid |
| 31.0ms | 419× | body | 256 | infinite |
| 2× | egg-herbie |
| 20338× | rational.json-simplify-41 |
| 2300× | rational.json-simplify-1 |
| 648× | rational.json-simplify-35 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 10 | 38 |
| 1 | 16 | 38 |
| 2 | 29 | 38 |
| 3 | 58 | 38 |
| 4 | 149 | 38 |
| 5 | 433 | 38 |
| 6 | 582 | 38 |
| 7 | 587 | 38 |
| 8 | 592 | 38 |
| 9 | 597 | 38 |
| 10 | 602 | 38 |
| 11 | 607 | 38 |
| 12 | 612 | 38 |
| 13 | 617 | 38 |
| 14 | 622 | 38 |
| 15 | 627 | 38 |
| 16 | 632 | 38 |
| 17 | 637 | 38 |
| 18 | 642 | 38 |
| 19 | 647 | 38 |
| 20 | 652 | 38 |
| 21 | 2230 | 38 |
| 22 | 2235 | 38 |
| 23 | 2240 | 38 |
| 24 | 2245 | 38 |
| 25 | 2250 | 38 |
| 26 | 2255 | 38 |
| 27 | 3121 | 38 |
| 28 | 3126 | 38 |
| 29 | 3131 | 38 |
| 30 | 3136 | 38 |
| 31 | 3141 | 38 |
| 32 | 3146 | 38 |
| 33 | 3151 | 38 |
| 34 | 3156 | 38 |
| 35 | 3161 | 38 |
| 36 | 3166 | 38 |
| 37 | 3171 | 38 |
| 38 | 3176 | 38 |
| 39 | 3181 | 38 |
| 40 | 3186 | 38 |
| 41 | 3191 | 38 |
| 42 | 3196 | 38 |
| 43 | 3201 | 38 |
| 44 | 3206 | 38 |
| 45 | 3211 | 38 |
| 46 | 3216 | 38 |
| 47 | 3221 | 38 |
| 48 | 3226 | 38 |
| 49 | 3231 | 38 |
| 50 | 3236 | 38 |
| 51 | 3241 | 38 |
| 52 | 3246 | 38 |
| 53 | 3251 | 38 |
| 54 | 3256 | 38 |
| 55 | 3261 | 38 |
| 56 | 3266 | 38 |
| 57 | 3271 | 38 |
| 58 | 3276 | 38 |
| 59 | 3281 | 38 |
| 60 | 3286 | 38 |
| 61 | 3291 | 38 |
| 62 | 3296 | 38 |
| 63 | 3301 | 38 |
| 64 | 3306 | 38 |
| 65 | 3311 | 38 |
| 66 | 3316 | 38 |
| 67 | 3321 | 38 |
| 68 | 3326 | 38 |
| 69 | 3331 | 38 |
| 70 | 3336 | 38 |
| 71 | 3341 | 38 |
| 72 | 3346 | 38 |
| 73 | 3351 | 38 |
| 74 | 3356 | 38 |
| 75 | 3361 | 38 |
| 76 | 3366 | 38 |
| 77 | 3371 | 38 |
| 78 | 3376 | 38 |
| 79 | 3381 | 38 |
| 80 | 3386 | 38 |
| 81 | 3391 | 38 |
| 82 | 3396 | 38 |
| 83 | 3401 | 38 |
| 84 | 3406 | 38 |
| 85 | 3411 | 38 |
| 86 | 3416 | 38 |
| 87 | 3421 | 38 |
| 88 | 3426 | 38 |
| 89 | 3431 | 38 |
| 90 | 3436 | 38 |
| 91 | 3441 | 38 |
| 92 | 3446 | 38 |
| 93 | 3451 | 38 |
| 94 | 3456 | 38 |
| 95 | 3461 | 38 |
| 96 | 3466 | 38 |
| 97 | 3471 | 38 |
| 98 | 3476 | 38 |
| 99 | 3481 | 38 |
| 100 | 3486 | 38 |
| 101 | 3491 | 38 |
| 102 | 3496 | 38 |
| 103 | 3501 | 38 |
| 104 | 3506 | 38 |
| 105 | 3511 | 38 |
| 106 | 3516 | 38 |
| 107 | 3521 | 38 |
| 108 | 3526 | 38 |
| 109 | 3531 | 38 |
| 110 | 3536 | 38 |
| 111 | 3541 | 38 |
| 112 | 3546 | 38 |
| 113 | 3551 | 38 |
| 114 | 3556 | 38 |
| 115 | 3561 | 38 |
| 116 | 3566 | 38 |
| 117 | 3571 | 38 |
| 118 | 3576 | 38 |
| 119 | 3581 | 38 |
| 120 | 3586 | 38 |
| 121 | 3591 | 38 |
| 122 | 3596 | 38 |
| 123 | 3601 | 38 |
| 124 | 3606 | 38 |
| 125 | 3611 | 38 |
| 126 | 3616 | 38 |
| 127 | 3621 | 38 |
| 128 | 3626 | 38 |
| 129 | 3631 | 38 |
| 130 | 3636 | 38 |
| 131 | 3641 | 38 |
| 132 | 3646 | 38 |
| 133 | 3651 | 38 |
| 134 | 3656 | 38 |
| 135 | 3661 | 38 |
| 136 | 3666 | 38 |
| 137 | 3671 | 38 |
| 138 | 3676 | 38 |
| 139 | 3681 | 38 |
| 140 | 3686 | 38 |
| 141 | 3691 | 38 |
| 142 | 3696 | 38 |
| 143 | 3701 | 38 |
| 144 | 3706 | 38 |
| 145 | 3711 | 38 |
| 146 | 3716 | 38 |
| 147 | 3721 | 38 |
| 148 | 3726 | 38 |
| 149 | 3731 | 38 |
| 150 | 3736 | 38 |
| 151 | 3741 | 38 |
| 152 | 3746 | 38 |
| 153 | 3751 | 38 |
| 154 | 3756 | 38 |
| 155 | 3761 | 38 |
| 156 | 3766 | 38 |
| 157 | 3771 | 38 |
| 158 | 3776 | 38 |
| 159 | 3781 | 38 |
| 160 | 3786 | 38 |
| 161 | 3791 | 38 |
| 0 | 2 | 2 |
| 1× | saturated |
| 1× | node limit |
| Inputs |
|---|
0 |
1 |
| Outputs |
|---|
0 |
1 |
| Inputs |
|---|
(/.f64 (+.f64 x y) (+.f64 y y)) |
(/.f64 (+.f64 y x) (+.f64 x x)) |
| Outputs |
|---|
(/.f64 (+.f64 x y) (+.f64 y y)) |
(/.f64 (+.f64 y x) (+.f64 x x)) |
(/.f64 (+.f64 x y) (+.f64 x x)) |
Compiled 11 to 7 computations (36.4% saved)
| 1× | egg-herbie |
| 18662× | rational.json-simplify-41 |
| 1726× | rational.json-simplify-1 |
| 324× | rational.json-simplify-35 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 19 |
| 1 | 11 | 19 |
| 2 | 20 | 19 |
| 3 | 42 | 19 |
| 4 | 112 | 19 |
| 5 | 332 | 19 |
| 6 | 444 | 19 |
| 7 | 447 | 19 |
| 8 | 450 | 19 |
| 9 | 453 | 19 |
| 10 | 456 | 19 |
| 11 | 1607 | 19 |
| 12 | 1610 | 19 |
| 13 | 1613 | 19 |
| 14 | 1616 | 19 |
| 15 | 1619 | 19 |
| 16 | 1622 | 19 |
| 17 | 2268 | 19 |
| 18 | 2271 | 19 |
| 19 | 2274 | 19 |
| 20 | 2277 | 19 |
| 21 | 2280 | 19 |
| 22 | 2283 | 19 |
| 23 | 2286 | 19 |
| 24 | 2289 | 19 |
| 25 | 2292 | 19 |
| 26 | 2295 | 19 |
| 27 | 2298 | 19 |
| 28 | 2301 | 19 |
| 29 | 2304 | 19 |
| 30 | 2307 | 19 |
| 31 | 2310 | 19 |
| 32 | 2313 | 19 |
| 33 | 2316 | 19 |
| 34 | 2319 | 19 |
| 35 | 2322 | 19 |
| 36 | 2325 | 19 |
| 37 | 2328 | 19 |
| 38 | 2331 | 19 |
| 39 | 2334 | 19 |
| 40 | 2337 | 19 |
| 41 | 2340 | 19 |
| 42 | 2343 | 19 |
| 43 | 2346 | 19 |
| 44 | 2349 | 19 |
| 45 | 2352 | 19 |
| 46 | 2355 | 19 |
| 47 | 2358 | 19 |
| 48 | 2361 | 19 |
| 49 | 2364 | 19 |
| 50 | 2367 | 19 |
| 51 | 2370 | 19 |
| 52 | 2373 | 19 |
| 53 | 2376 | 19 |
| 54 | 2379 | 19 |
| 55 | 2382 | 19 |
| 56 | 2385 | 19 |
| 57 | 2388 | 19 |
| 58 | 2391 | 19 |
| 59 | 2394 | 19 |
| 60 | 2397 | 19 |
| 61 | 2400 | 19 |
| 62 | 2403 | 19 |
| 63 | 2406 | 19 |
| 64 | 2409 | 19 |
| 65 | 2412 | 19 |
| 66 | 2415 | 19 |
| 67 | 2418 | 19 |
| 68 | 2421 | 19 |
| 69 | 2424 | 19 |
| 70 | 2427 | 19 |
| 71 | 2430 | 19 |
| 72 | 2433 | 19 |
| 73 | 2436 | 19 |
| 74 | 2439 | 19 |
| 75 | 2442 | 19 |
| 76 | 2445 | 19 |
| 77 | 2448 | 19 |
| 78 | 2451 | 19 |
| 79 | 2454 | 19 |
| 80 | 2457 | 19 |
| 81 | 2460 | 19 |
| 82 | 2463 | 19 |
| 83 | 2466 | 19 |
| 84 | 2469 | 19 |
| 85 | 2472 | 19 |
| 86 | 2475 | 19 |
| 87 | 2478 | 19 |
| 88 | 2481 | 19 |
| 89 | 2484 | 19 |
| 90 | 2487 | 19 |
| 91 | 2490 | 19 |
| 92 | 2493 | 19 |
| 93 | 2496 | 19 |
| 94 | 2499 | 19 |
| 95 | 2502 | 19 |
| 96 | 2505 | 19 |
| 97 | 2508 | 19 |
| 98 | 2511 | 19 |
| 99 | 2514 | 19 |
| 100 | 2517 | 19 |
| 101 | 2520 | 19 |
| 102 | 2523 | 19 |
| 103 | 2526 | 19 |
| 104 | 2529 | 19 |
| 105 | 2532 | 19 |
| 106 | 2535 | 19 |
| 107 | 2538 | 19 |
| 108 | 2541 | 19 |
| 109 | 2544 | 19 |
| 110 | 2547 | 19 |
| 111 | 2550 | 19 |
| 112 | 2553 | 19 |
| 113 | 2556 | 19 |
| 114 | 2559 | 19 |
| 115 | 2562 | 19 |
| 116 | 2565 | 19 |
| 117 | 2568 | 19 |
| 118 | 2571 | 19 |
| 119 | 2574 | 19 |
| 120 | 2577 | 19 |
| 121 | 2580 | 19 |
| 122 | 2583 | 19 |
| 123 | 2586 | 19 |
| 124 | 2589 | 19 |
| 125 | 2592 | 19 |
| 126 | 2595 | 19 |
| 127 | 2598 | 19 |
| 128 | 2601 | 19 |
| 129 | 2604 | 19 |
| 130 | 2607 | 19 |
| 131 | 2610 | 19 |
| 132 | 2613 | 19 |
| 133 | 2616 | 19 |
| 134 | 2619 | 19 |
| 135 | 2622 | 19 |
| 136 | 2625 | 19 |
| 137 | 2628 | 19 |
| 138 | 2631 | 19 |
| 139 | 2634 | 19 |
| 140 | 2637 | 19 |
| 141 | 2640 | 19 |
| 142 | 2643 | 19 |
| 143 | 2646 | 19 |
| 144 | 2649 | 19 |
| 145 | 2652 | 19 |
| 146 | 2655 | 19 |
| 147 | 2658 | 19 |
| 148 | 2661 | 19 |
| 149 | 2664 | 19 |
| 150 | 2667 | 19 |
| 151 | 2670 | 19 |
| 152 | 2673 | 19 |
| 153 | 2676 | 19 |
| 154 | 2679 | 19 |
| 155 | 2682 | 19 |
| 156 | 2685 | 19 |
| 157 | 2688 | 19 |
| 158 | 2691 | 19 |
| 159 | 2694 | 19 |
| 160 | 2697 | 19 |
| 161 | 2700 | 19 |
| 1× | node limit |
| Inputs |
|---|
(/.f64 (+.f64 x y) (+.f64 y y)) |
| Outputs |
|---|
(/.f64 (+.f64 x y) (+.f64 y y)) |
Compiled 9 to 5 computations (44.4% saved)
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 |
|---|---|---|
| ▶ | 0.0b | (/.f64 (+.f64 x y) (+.f64 y y)) |
Compiled 9 to 5 computations (44.4% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (/.f64 (+.f64 x y) (+.f64 y y)) |
Compiled 17 to 5 computations (70.6% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | y | @ | 0 | (/.f64 (+.f64 x y) (+.f64 y y)) |
| 0.0ms | x | @ | inf | (/.f64 (+.f64 x y) (+.f64 y y)) |
| 0.0ms | x | @ | 0 | (/.f64 (+.f64 x y) (+.f64 y y)) |
| 0.0ms | y | @ | inf | (/.f64 (+.f64 x y) (+.f64 y y)) |
| 0.0ms | y | @ | -inf | (/.f64 (+.f64 x y) (+.f64 y y)) |
| 1× | batch-egg-rewrite |
| 1550× | rational.json-1 |
| 1550× | rational.json-2 |
| 1550× | rational.json-4 |
| 1550× | rational.json-3 |
| 1540× | exponential.json-3 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 19 |
| 1 | 48 | 19 |
| 2 | 132 | 19 |
| 3 | 352 | 19 |
| 4 | 972 | 19 |
| 5 | 4162 | 19 |
| 1× | node limit |
| Inputs |
|---|
(/.f64 (+.f64 x y) (+.f64 y y)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x y) (/.f64 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (-.f64 1 (/.f64 (+.f64 x y) (*.f64 y -2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x y) (/.f64 1/4 y)) (*.f64 (+.f64 x y) (/.f64 1/4 y)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (/.f64 (+.f64 x y) (*.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 y (/.f64 (/.f64 2 (+.f64 x y)) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (/.f64 1/2 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (*.f64 1/2 (*.f64 2 (/.f64 1/2 y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) (*.f64 1/2 (/.f64 1 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y y) (/.f64 (/.f64 1 (+.f64 x y)) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (+.f64 x y) (/.f64 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 2) (/.f64 1/4 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x y) (/.f64 1/4 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) y) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 4) (/.f64 1 (*.f64 y 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 4) (*.f64 (/.f64 1/2 y) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 4) (*.f64 1/2 (/.f64 1/4 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 y) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 y) (/.f64 1 (/.f64 1 (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (+.f64 x y)) (neg.f64 (/.f64 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 1 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 2 (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 (+.f64 x y) (*.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 (*.f64 (+.f64 x y) 2) (neg.f64 (*.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 1 (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 1/2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x y) (*.f64 y 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 8) (/.f64 1 (*.f64 (+.f64 y y) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (/.f64 (+.f64 x y) y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 1/2) (*.f64 2 (/.f64 1/2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 1/2) (/.f64 1 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 x y)) (/.f64 (+.f64 y y) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (+.f64 x y)) (/.f64 (*.f64 y 4) (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (+.f64 x y)) (/.f64 y (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (+.f64 x y)) (/.f64 (+.f64 y y) (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/4 y) (*.f64 (+.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) -2) (/.f64 1/2 (*.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) -2) (/.f64 1 (*.f64 (+.f64 y y) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) -2) (/.f64 1 (neg.f64 (*.f64 y 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (/.f64 1/2 y)) (*.f64 (+.f64 x y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) (/.f64 2 y)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (*.f64 y -2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 y) (*.f64 (+.f64 x y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (+.f64 x y)) (/.f64 (*.f64 y 4) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (+.f64 x y)) (/.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) (/.f64 1/4 y)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x y) (/.f64 2 y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 -1 (+.f64 x y)) (/.f64 (*.f64 y -2) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 y 8)) (*.f64 (+.f64 x y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (/.f64 1/2 y)) (neg.f64 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 1/2 y) 1/4) (*.f64 (+.f64 x y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (*.f64 2 (/.f64 1/2 y))) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (/.f64 1 y)) (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (*.f64 2 (/.f64 y (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y 4) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (/.f64 1/2 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (/.f64 y (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (/.f64 1 (+.f64 x y))) (/.f64 1/2 y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 y (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (/.f64 2 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y y) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (/.f64 1 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y -2) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (/.f64 -1 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 1 (+.f64 x y)) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (+.f64 y y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) (*.f64 4 (/.f64 y (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 y 4) (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) (/.f64 1 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) (*.f64 2 (/.f64 y (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (+.f64 x y) 2) (neg.f64 (*.f64 y 4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) (*.f64 y 8)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (/.f64 1/4 y)) (*.f64 (+.f64 x y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (*.f64 y -2)) (*.f64 (+.f64 x y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (*.f64 4 (/.f64 y (+.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (/.f64 2 (+.f64 x y)) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) y)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y y) (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) (/.f64 2 (+.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 (+.f64 y y) 8)) (*.f64 (+.f64 x y) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 (+.f64 y y) -2)) (*.f64 (+.f64 x y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (neg.f64 (*.f64 y 4))) (*.f64 (+.f64 x y) -2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 x y) (*.f64 y -2)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (/.f64 (*.f64 y -2) (+.f64 x y)) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 (+.f64 x y) 2) (neg.f64 (*.f64 y 4)))))))) |
| 1× | egg-herbie |
| 1286× | rational.json-simplify-2 |
| 960× | rational.json-simplify-41 |
| 808× | rational.json-simplify-35 |
| 806× | rational.json-simplify-44 |
| 710× | rational.json-simplify-47 |
Useful iterations: 2 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 161 | 2374 |
| 1 | 354 | 2314 |
| 2 | 962 | 2278 |
| 3 | 3981 | 2278 |
| 4 | 6628 | 2278 |
| 1× | node limit |
| Inputs |
|---|
1/2 |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 1/2 (/.f64 x y)) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 1/2 (/.f64 x y)) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 1/2 (/.f64 x y)) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
1/2 |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
1/2 |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 0) |
(+.f64 0 (*.f64 (+.f64 x y) (/.f64 1/2 y))) |
(+.f64 -1 (-.f64 1 (/.f64 (+.f64 x y) (*.f64 y -2)))) |
(+.f64 (*.f64 (+.f64 x y) (/.f64 1/4 y)) (*.f64 (+.f64 x y) (/.f64 1/4 y))) |
(-.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 0) |
(-.f64 0 (/.f64 (+.f64 x y) (*.f64 y -2))) |
(*.f64 y (/.f64 (/.f64 2 (+.f64 x y)) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (+.f64 x y) (*.f64 1/2 (*.f64 2 (/.f64 1/2 y)))) |
(*.f64 (+.f64 x y) (*.f64 1/2 (/.f64 1 y))) |
(*.f64 (+.f64 y y) (/.f64 (/.f64 1 (+.f64 x y)) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 1) |
(*.f64 1 (*.f64 (+.f64 x y) (/.f64 1/2 y))) |
(*.f64 (*.f64 (+.f64 x y) 2) (/.f64 1/4 y)) |
(*.f64 2 (*.f64 (+.f64 x y) (/.f64 1/4 y))) |
(*.f64 (/.f64 (+.f64 x y) y) 1/2) |
(*.f64 (*.f64 (+.f64 x y) 4) (/.f64 1 (*.f64 y 8))) |
(*.f64 (*.f64 (+.f64 x y) 4) (*.f64 (/.f64 1/2 y) 1/4)) |
(*.f64 (*.f64 (+.f64 x y) 4) (*.f64 1/2 (/.f64 1/4 y))) |
(*.f64 (/.f64 1/2 y) (+.f64 x y)) |
(*.f64 (/.f64 1/2 y) (/.f64 1 (/.f64 1 (+.f64 x y)))) |
(*.f64 (neg.f64 (+.f64 x y)) (neg.f64 (/.f64 1/2 y))) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 1 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 2 (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))) |
(*.f64 -1 (/.f64 (+.f64 x y) (*.f64 y -2))) |
(*.f64 -1 (/.f64 (*.f64 (+.f64 x y) 2) (neg.f64 (*.f64 y 4)))) |
(*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 1 (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))) |
(*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 1/2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 4 (/.f64 (+.f64 x y) (*.f64 y 8))) |
(*.f64 4 (/.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 4)) |
(*.f64 (*.f64 (+.f64 x y) 8) (/.f64 1 (*.f64 (+.f64 y y) 8))) |
(*.f64 1/2 (/.f64 (+.f64 x y) y)) |
(*.f64 (*.f64 (+.f64 x y) 1/2) (*.f64 2 (/.f64 1/2 y))) |
(*.f64 (*.f64 (+.f64 x y) 1/2) (/.f64 1 y)) |
(*.f64 (/.f64 1 (+.f64 x y)) (/.f64 (+.f64 y y) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (/.f64 1 (+.f64 x y)) (/.f64 (*.f64 y 4) (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))) |
(*.f64 (/.f64 2 (+.f64 x y)) (/.f64 y (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (/.f64 2 (+.f64 x y)) (/.f64 (+.f64 y y) (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))) |
(*.f64 (/.f64 1/4 y) (*.f64 (+.f64 x y) 2)) |
(*.f64 (*.f64 (+.f64 x y) -2) (/.f64 1/2 (*.f64 y -2))) |
(*.f64 (*.f64 (+.f64 x y) -2) (/.f64 1 (*.f64 (+.f64 y y) -2))) |
(*.f64 (*.f64 (+.f64 x y) -2) (/.f64 1 (neg.f64 (*.f64 y 4)))) |
(*.f64 (*.f64 2 (/.f64 1/2 y)) (*.f64 (+.f64 x y) 1/2)) |
(*.f64 (*.f64 (+.f64 x y) (/.f64 2 y)) 1/4) |
(*.f64 (/.f64 (+.f64 x y) (*.f64 y -2)) -1) |
(*.f64 (/.f64 1 y) (*.f64 (+.f64 x y) 1/2)) |
(*.f64 (/.f64 1/2 (+.f64 x y)) (/.f64 (*.f64 y 4) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (/.f64 y (+.f64 x y)) (/.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (*.f64 (+.f64 x y) (/.f64 1/4 y)) 2) |
(*.f64 1/4 (*.f64 (+.f64 x y) (/.f64 2 y))) |
(*.f64 (/.f64 -1 (+.f64 x y)) (/.f64 (*.f64 y -2) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (/.f64 1 (*.f64 y 8)) (*.f64 (+.f64 x y) 4)) |
(*.f64 (neg.f64 (/.f64 1/2 y)) (neg.f64 (+.f64 x y))) |
(*.f64 (*.f64 (/.f64 1/2 y) 1/4) (*.f64 (+.f64 x y) 4)) |
(*.f64 (*.f64 1/2 (*.f64 2 (/.f64 1/2 y))) (+.f64 x y)) |
(*.f64 (*.f64 1/2 (/.f64 1 y)) (+.f64 x y)) |
(*.f64 (/.f64 1 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (*.f64 2 (/.f64 y (+.f64 x y)))) |
(*.f64 (/.f64 (*.f64 y 4) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (/.f64 1/2 (+.f64 x y))) |
(*.f64 (/.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (/.f64 y (+.f64 x y))) |
(*.f64 (/.f64 1 (/.f64 1 (+.f64 x y))) (/.f64 1/2 y)) |
(*.f64 (/.f64 y (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (/.f64 2 (+.f64 x y))) |
(*.f64 (/.f64 (+.f64 y y) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (/.f64 1 (+.f64 x y))) |
(*.f64 (/.f64 (*.f64 y -2) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (/.f64 -1 (+.f64 x y))) |
(*.f64 (/.f64 (/.f64 1 (+.f64 x y)) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (+.f64 y y)) |
(*.f64 (/.f64 1 (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) (*.f64 4 (/.f64 y (+.f64 x y)))) |
(*.f64 (/.f64 (*.f64 y 4) (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) (/.f64 1 (+.f64 x y))) |
(*.f64 (/.f64 2 (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) (*.f64 2 (/.f64 y (+.f64 x y)))) |
(*.f64 (/.f64 (*.f64 (+.f64 x y) 2) (neg.f64 (*.f64 y 4))) -1) |
(*.f64 (/.f64 (+.f64 x y) (*.f64 y 8)) 4) |
(*.f64 (*.f64 1/2 (/.f64 1/4 y)) (*.f64 (+.f64 x y) 4)) |
(*.f64 (/.f64 1/2 (*.f64 y -2)) (*.f64 (+.f64 x y) -2)) |
(*.f64 (/.f64 1/2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (*.f64 4 (/.f64 y (+.f64 x y)))) |
(*.f64 (/.f64 (/.f64 2 (+.f64 x y)) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) y) |
(*.f64 (/.f64 (+.f64 y y) (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) (/.f64 2 (+.f64 x y))) |
(*.f64 (/.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 4) 4) |
(*.f64 (/.f64 1 (*.f64 (+.f64 y y) 8)) (*.f64 (+.f64 x y) 8)) |
(*.f64 (/.f64 1 (*.f64 (+.f64 y y) -2)) (*.f64 (+.f64 x y) -2)) |
(*.f64 (/.f64 1 (neg.f64 (*.f64 y 4))) (*.f64 (+.f64 x y) -2)) |
(pow.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 1) |
(neg.f64 (/.f64 (+.f64 x y) (*.f64 y -2))) |
(neg.f64 (/.f64 (/.f64 (*.f64 y -2) (+.f64 x y)) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(neg.f64 (/.f64 (*.f64 (+.f64 x y) 2) (neg.f64 (*.f64 y 4)))) |
| Outputs |
|---|
1/2 |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 1/2 (/.f64 x y)) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 1/2 (/.f64 x y)) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 1/2 (/.f64 x y)) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
1/2 |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
1/2 |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(+.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 0) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(+.f64 0 (*.f64 (+.f64 x y) (/.f64 1/2 y))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(+.f64 -1 (-.f64 1 (/.f64 (+.f64 x y) (*.f64 y -2)))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(+.f64 (*.f64 (+.f64 x y) (/.f64 1/4 y)) (*.f64 (+.f64 x y) (/.f64 1/4 y))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(-.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 0) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(-.f64 0 (/.f64 (+.f64 x y) (*.f64 y -2))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 y (/.f64 (/.f64 2 (+.f64 x y)) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 y (/.f64 2 (*.f64 (+.f64 x y) (*.f64 (/.f64 y (+.f64 x y)) (*.f64 4 (/.f64 y (+.f64 x y))))))) |
(*.f64 y (/.f64 (/.f64 (+.f64 x y) (/.f64 y (/.f64 1/2 (/.f64 y (+.f64 x y))))) (+.f64 x y))) |
(*.f64 y (/.f64 1/2 (*.f64 (/.f64 y (+.f64 x y)) (*.f64 (+.f64 x y) (/.f64 y (+.f64 x y)))))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (+.f64 x y) (*.f64 1/2 (*.f64 2 (/.f64 1/2 y)))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (+.f64 x y) (*.f64 1/2 (/.f64 1 y))) |
(*.f64 1/2 (*.f64 (/.f64 1 y) (+.f64 x y))) |
(*.f64 1/2 (*.f64 (+.f64 x y) (/.f64 1 y))) |
(*.f64 1/2 (/.f64 (+.f64 x y) y)) |
(*.f64 (+.f64 y y) (/.f64 (/.f64 1 (+.f64 x y)) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 1) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 1 (*.f64 (+.f64 x y) (/.f64 1/2 y))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 (+.f64 x y) 2) (/.f64 1/4 y)) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 2 (*.f64 (+.f64 x y) (/.f64 1/4 y))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 (+.f64 x y) y) 1/2) |
(*.f64 1/2 (*.f64 (/.f64 1 y) (+.f64 x y))) |
(*.f64 1/2 (*.f64 (+.f64 x y) (/.f64 1 y))) |
(*.f64 1/2 (/.f64 (+.f64 x y) y)) |
(*.f64 (*.f64 (+.f64 x y) 4) (/.f64 1 (*.f64 y 8))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 (+.f64 x y) 4) (*.f64 (/.f64 1/2 y) 1/4)) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 (+.f64 x y) 4) (*.f64 1/2 (/.f64 1/4 y))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 1/2 y) (+.f64 x y)) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 1/2 y) (/.f64 1 (/.f64 1 (+.f64 x y)))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (neg.f64 (+.f64 x y)) (neg.f64 (/.f64 1/2 y))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 1 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 1 (*.f64 (/.f64 y (+.f64 x y)) (*.f64 4 (/.f64 y (+.f64 x y)))))) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 (+.f64 x y) (/.f64 y (/.f64 1/4 (/.f64 y (+.f64 x y)))))) |
(*.f64 (/.f64 y (+.f64 x y)) (*.f64 2 (/.f64 1/4 (*.f64 (/.f64 y (+.f64 x y)) (/.f64 y (+.f64 x y)))))) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 1/4 (*.f64 (/.f64 y (+.f64 x y)) (/.f64 y (+.f64 x y))))) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 2 (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 1 (*.f64 (/.f64 y (+.f64 x y)) (*.f64 4 (/.f64 y (+.f64 x y)))))) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 (+.f64 x y) (/.f64 y (/.f64 1/4 (/.f64 y (+.f64 x y)))))) |
(*.f64 (/.f64 y (+.f64 x y)) (*.f64 2 (/.f64 1/4 (*.f64 (/.f64 y (+.f64 x y)) (/.f64 y (+.f64 x y)))))) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 1/4 (*.f64 (/.f64 y (+.f64 x y)) (/.f64 y (+.f64 x y))))) |
(*.f64 -1 (/.f64 (+.f64 x y) (*.f64 y -2))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 -1 (/.f64 (*.f64 (+.f64 x y) 2) (neg.f64 (*.f64 y 4)))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 1 (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 1/2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 4 (/.f64 (+.f64 x y) (*.f64 y 8))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 4 (/.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 4)) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 (+.f64 x y) 8) (/.f64 1 (*.f64 (+.f64 y y) 8))) |
(*.f64 (+.f64 x y) (*.f64 8 (/.f64 (/.f64 1/2 y) 8))) |
(*.f64 (+.f64 x y) (*.f64 8 (/.f64 1/16 y))) |
(*.f64 1/2 (/.f64 (+.f64 x y) y)) |
(*.f64 1/2 (*.f64 (/.f64 1 y) (+.f64 x y))) |
(*.f64 1/2 (*.f64 (+.f64 x y) (/.f64 1 y))) |
(*.f64 (*.f64 (+.f64 x y) 1/2) (*.f64 2 (/.f64 1/2 y))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 (+.f64 x y) 1/2) (/.f64 1 y)) |
(*.f64 1/2 (*.f64 (/.f64 1 y) (+.f64 x y))) |
(*.f64 1/2 (*.f64 (+.f64 x y) (/.f64 1 y))) |
(*.f64 1/2 (/.f64 (+.f64 x y) y)) |
(*.f64 (/.f64 1 (+.f64 x y)) (/.f64 (+.f64 y y) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 1 (+.f64 x y)) (/.f64 (*.f64 y 4) (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 2 (+.f64 x y)) (/.f64 y (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 2 (+.f64 x y)) (/.f64 (+.f64 y y) (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 1/4 y) (*.f64 (+.f64 x y) 2)) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 (+.f64 x y) -2) (/.f64 1/2 (*.f64 y -2))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 (+.f64 x y) -2) (/.f64 1 (*.f64 (+.f64 y y) -2))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 (+.f64 x y) -2) (/.f64 1 (neg.f64 (*.f64 y 4)))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 2 (/.f64 1/2 y)) (*.f64 (+.f64 x y) 1/2)) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 (+.f64 x y) (/.f64 2 y)) 1/4) |
(*.f64 (+.f64 x y) (*.f64 (/.f64 2 y) 1/4)) |
(*.f64 (+.f64 x y) (*.f64 1/4 (/.f64 2 y))) |
(*.f64 1/4 (*.f64 (+.f64 x y) (/.f64 2 y))) |
(*.f64 (/.f64 (+.f64 x y) (*.f64 y -2)) -1) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 1 y) (*.f64 (+.f64 x y) 1/2)) |
(*.f64 1/2 (*.f64 (/.f64 1 y) (+.f64 x y))) |
(*.f64 1/2 (*.f64 (+.f64 x y) (/.f64 1 y))) |
(*.f64 1/2 (/.f64 (+.f64 x y) y)) |
(*.f64 (/.f64 1/2 (+.f64 x y)) (/.f64 (*.f64 y 4) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 y (+.f64 x y)) (/.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (/.f64 y (+.f64 x y)) (/.f64 2 (*.f64 (/.f64 y (+.f64 x y)) (*.f64 4 (/.f64 y (+.f64 x y)))))) |
(*.f64 (/.f64 y (+.f64 x y)) (/.f64 (+.f64 x y) (/.f64 y (/.f64 1/2 (/.f64 y (+.f64 x y)))))) |
(*.f64 (/.f64 y (+.f64 x y)) (/.f64 1/2 (*.f64 (/.f64 y (+.f64 x y)) (/.f64 y (+.f64 x y))))) |
(*.f64 (*.f64 (+.f64 x y) (/.f64 1/4 y)) 2) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 1/4 (*.f64 (+.f64 x y) (/.f64 2 y))) |
(*.f64 (+.f64 x y) (*.f64 (/.f64 2 y) 1/4)) |
(*.f64 (+.f64 x y) (*.f64 1/4 (/.f64 2 y))) |
(*.f64 (/.f64 -1 (+.f64 x y)) (/.f64 (*.f64 y -2) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 1 (*.f64 y 8)) (*.f64 (+.f64 x y) 4)) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (neg.f64 (/.f64 1/2 y)) (neg.f64 (+.f64 x y))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 (/.f64 1/2 y) 1/4) (*.f64 (+.f64 x y) 4)) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 1/2 (*.f64 2 (/.f64 1/2 y))) (+.f64 x y)) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 1/2 (/.f64 1 y)) (+.f64 x y)) |
(*.f64 1/2 (*.f64 (/.f64 1 y) (+.f64 x y))) |
(*.f64 1/2 (*.f64 (+.f64 x y) (/.f64 1 y))) |
(*.f64 1/2 (/.f64 (+.f64 x y) y)) |
(*.f64 (/.f64 1 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (*.f64 2 (/.f64 y (+.f64 x y)))) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 1 (*.f64 (/.f64 y (+.f64 x y)) (*.f64 4 (/.f64 y (+.f64 x y)))))) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 (+.f64 x y) (/.f64 y (/.f64 1/4 (/.f64 y (+.f64 x y)))))) |
(*.f64 (/.f64 y (+.f64 x y)) (*.f64 2 (/.f64 1/4 (*.f64 (/.f64 y (+.f64 x y)) (/.f64 y (+.f64 x y)))))) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 1/4 (*.f64 (/.f64 y (+.f64 x y)) (/.f64 y (+.f64 x y))))) |
(*.f64 (/.f64 (*.f64 y 4) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (/.f64 1/2 (+.f64 x y))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (/.f64 y (+.f64 x y))) |
(*.f64 (/.f64 y (+.f64 x y)) (/.f64 2 (*.f64 (/.f64 y (+.f64 x y)) (*.f64 4 (/.f64 y (+.f64 x y)))))) |
(*.f64 (/.f64 y (+.f64 x y)) (/.f64 (+.f64 x y) (/.f64 y (/.f64 1/2 (/.f64 y (+.f64 x y)))))) |
(*.f64 (/.f64 y (+.f64 x y)) (/.f64 1/2 (*.f64 (/.f64 y (+.f64 x y)) (/.f64 y (+.f64 x y))))) |
(*.f64 (/.f64 1 (/.f64 1 (+.f64 x y))) (/.f64 1/2 y)) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 y (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (/.f64 2 (+.f64 x y))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 (+.f64 y y) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (/.f64 1 (+.f64 x y))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 (*.f64 y -2) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (/.f64 -1 (+.f64 x y))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 (/.f64 1 (+.f64 x y)) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (+.f64 y y)) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 1 (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) (*.f64 4 (/.f64 y (+.f64 x y)))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 (*.f64 y 4) (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) (/.f64 1 (+.f64 x y))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 2 (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) (*.f64 2 (/.f64 y (+.f64 x y)))) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 1 (*.f64 (/.f64 y (+.f64 x y)) (*.f64 4 (/.f64 y (+.f64 x y)))))) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 (+.f64 x y) (/.f64 y (/.f64 1/4 (/.f64 y (+.f64 x y)))))) |
(*.f64 (/.f64 y (+.f64 x y)) (*.f64 2 (/.f64 1/4 (*.f64 (/.f64 y (+.f64 x y)) (/.f64 y (+.f64 x y)))))) |
(*.f64 (*.f64 2 (/.f64 y (+.f64 x y))) (/.f64 1/4 (*.f64 (/.f64 y (+.f64 x y)) (/.f64 y (+.f64 x y))))) |
(*.f64 (/.f64 (*.f64 (+.f64 x y) 2) (neg.f64 (*.f64 y 4))) -1) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 (+.f64 x y) (*.f64 y 8)) 4) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (*.f64 1/2 (/.f64 1/4 y)) (*.f64 (+.f64 x y) 4)) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 1/2 (*.f64 y -2)) (*.f64 (+.f64 x y) -2)) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 1/2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) (*.f64 4 (/.f64 y (+.f64 x y)))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 (/.f64 2 (+.f64 x y)) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y)))) y) |
(*.f64 y (/.f64 2 (*.f64 (+.f64 x y) (*.f64 (/.f64 y (+.f64 x y)) (*.f64 4 (/.f64 y (+.f64 x y))))))) |
(*.f64 y (/.f64 (/.f64 (+.f64 x y) (/.f64 y (/.f64 1/2 (/.f64 y (+.f64 x y))))) (+.f64 x y))) |
(*.f64 y (/.f64 1/2 (*.f64 (/.f64 y (+.f64 x y)) (*.f64 (+.f64 x y) (/.f64 y (+.f64 x y)))))) |
(*.f64 (/.f64 (+.f64 y y) (*.f64 2 (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) (/.f64 2 (+.f64 x y))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 4) 4) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 1 (*.f64 (+.f64 y y) 8)) (*.f64 (+.f64 x y) 8)) |
(*.f64 (+.f64 x y) (*.f64 8 (/.f64 (/.f64 1/2 y) 8))) |
(*.f64 (+.f64 x y) (*.f64 8 (/.f64 1/16 y))) |
(*.f64 (/.f64 1 (*.f64 (+.f64 y y) -2)) (*.f64 (+.f64 x y) -2)) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(*.f64 (/.f64 1 (neg.f64 (*.f64 y 4))) (*.f64 (+.f64 x y) -2)) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(pow.f64 (*.f64 (+.f64 x y) (/.f64 1/2 y)) 1) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(neg.f64 (/.f64 (+.f64 x y) (*.f64 y -2))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(neg.f64 (/.f64 (/.f64 (*.f64 y -2) (+.f64 x y)) (*.f64 (*.f64 4 (/.f64 y (+.f64 x y))) (/.f64 y (+.f64 x y))))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
(neg.f64 (/.f64 (*.f64 (+.f64 x y) 2) (neg.f64 (*.f64 y 4)))) |
(*.f64 (+.f64 x y) (/.f64 1/2 y)) |
Compiled 1455 to 649 computations (55.4% saved)
3 alts after pruning (3 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 98 | 3 | 101 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 99 | 3 | 102 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.0b | (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
| ▶ | 36.3b | (*.f64 1/2 (/.f64 x y)) |
| 26.7b | 1/2 |
Compiled 19 to 15 computations (21.1% saved)
Compiled 13 to 6 computations (53.8% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
Compiled 20 to 10 computations (50% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | inf | (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
| 0.0ms | x | @ | 0 | (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
| 0.0ms | y | @ | 0 | (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
| 0.0ms | y | @ | inf | (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
| 0.0ms | y | @ | -inf | (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
| 1× | batch-egg-rewrite |
| 1464× | rational.json-1 |
| 1464× | rational.json-2 |
| 1464× | rational.json-4 |
| 1464× | rational.json-3 |
| 1458× | exponential.json-3 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 19 |
| 1 | 55 | 19 |
| 2 | 135 | 19 |
| 3 | 330 | 19 |
| 4 | 884 | 19 |
| 5 | 3939 | 19 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (/.f64 x y)) (+.f64 1 (/.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 1/2 (+.f64 1/2 (*.f64 1/2 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1/2 (+.f64 1/2 (/.f64 x y))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y)))) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/2 (+.f64 1/2 (*.f64 1/2 (/.f64 x y)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (/.f64 y x)) (*.f64 1/2 (/.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1/2 (+.f64 1/2 (/.f64 x y))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y)))) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y))))) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y)))))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 1))))) |
| 1× | egg-herbie |
| 2264× | rational.json-simplify-2 |
| 2012× | rational.json-simplify-1 |
| 1900× | rational.json-simplify-48 |
| 1494× | rational.json-simplify-49 |
| 1298× | rational.json-simplify-35 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 43 | 427 |
| 1 | 87 | 427 |
| 2 | 162 | 427 |
| 3 | 322 | 427 |
| 4 | 718 | 427 |
| 5 | 1875 | 427 |
| 6 | 3091 | 427 |
| 7 | 3521 | 427 |
| 8 | 3819 | 427 |
| 9 | 4060 | 427 |
| 10 | 4252 | 427 |
| 11 | 5108 | 427 |
| 12 | 5603 | 427 |
| 13 | 5946 | 427 |
| 14 | 5981 | 427 |
| 15 | 6011 | 427 |
| 16 | 6040 | 427 |
| 17 | 6069 | 427 |
| 18 | 6110 | 427 |
| 19 | 6268 | 427 |
| 20 | 6396 | 427 |
| 21 | 6474 | 427 |
| 22 | 7293 | 427 |
| 23 | 7928 | 427 |
| 1× | node limit |
| Inputs |
|---|
1/2 |
(*.f64 1/2 (/.f64 x y)) |
(*.f64 1/2 (/.f64 x y)) |
(*.f64 1/2 (/.f64 x y)) |
1/2 |
1/2 |
(-.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 0) |
(*.f64 1/2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y)))) |
(*.f64 (*.f64 1/2 (/.f64 x y)) (+.f64 1 (/.f64 y x))) |
(*.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 1) |
(*.f64 1 (+.f64 1/2 (*.f64 1/2 (/.f64 x y)))) |
(*.f64 2 (*.f64 1/2 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))))) |
(*.f64 (+.f64 1/2 (+.f64 1/2 (/.f64 x y))) 1/2) |
(*.f64 4 (/.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 4)) |
(*.f64 (*.f64 2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y)))) 1/4) |
(*.f64 1/4 (*.f64 2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y))))) |
(*.f64 (*.f64 1/2 (+.f64 1/2 (*.f64 1/2 (/.f64 x y)))) 2) |
(*.f64 (+.f64 1 (/.f64 y x)) (*.f64 1/2 (/.f64 x y))) |
(*.f64 (/.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 4) 4) |
(/.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 1) |
(/.f64 (+.f64 1/2 (+.f64 1/2 (/.f64 x y))) 2) |
(/.f64 (*.f64 2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y)))) 4) |
(/.f64 (*.f64 2 (*.f64 2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y))))) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y)))))) 16) |
(pow.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 1) |
| Outputs |
|---|
1/2 |
(*.f64 1/2 (/.f64 x y)) |
(*.f64 1/2 (/.f64 x y)) |
(*.f64 1/2 (/.f64 x y)) |
1/2 |
1/2 |
(-.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 0) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 1/2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y)))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 (*.f64 1/2 (/.f64 x y)) (+.f64 1 (/.f64 y x))) |
(*.f64 1/2 (*.f64 (/.f64 x y) (+.f64 1 (/.f64 y x)))) |
(*.f64 (/.f64 x y) (*.f64 1/2 (+.f64 1 (/.f64 y x)))) |
(*.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 1) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 1 (+.f64 1/2 (*.f64 1/2 (/.f64 x y)))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 2 (*.f64 1/2 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 (+.f64 1/2 (+.f64 1/2 (/.f64 x y))) 1/2) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 4 (/.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 4)) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 (*.f64 2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y)))) 1/4) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 1/4 (*.f64 2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y))))) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 (*.f64 1/2 (+.f64 1/2 (*.f64 1/2 (/.f64 x y)))) 2) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(*.f64 (+.f64 1 (/.f64 y x)) (*.f64 1/2 (/.f64 x y))) |
(*.f64 (*.f64 1/2 (/.f64 x y)) (+.f64 1 (/.f64 y x))) |
(*.f64 1/2 (*.f64 (/.f64 x y) (+.f64 1 (/.f64 y x)))) |
(*.f64 (/.f64 x y) (*.f64 1/2 (+.f64 1 (/.f64 y x)))) |
(*.f64 (/.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 4) 4) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(/.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 1) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(/.f64 (+.f64 1/2 (+.f64 1/2 (/.f64 x y))) 2) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(/.f64 (*.f64 2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y)))) 4) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(/.f64 (*.f64 2 (*.f64 2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y))))) 8) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (+.f64 1/2 (+.f64 1/2 (/.f64 x y)))))) 16) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(pow.f64 (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) 1) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
Compiled 236 to 157 computations (33.5% saved)
3 alts after pruning (1 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 24 | 0 | 24 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 1 | 1 |
| Total | 24 | 3 | 27 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
| ✓ | 36.3b | (*.f64 1/2 (/.f64 x y)) |
| 26.7b | 1/2 |
Compiled 19 to 15 computations (21.1% saved)
Compiled 2 to 2 computations (0% saved)
3 alts after pruning (1 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 0 | 0 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 2 | 2 |
| Total | 0 | 3 | 3 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
| ✓ | 36.3b | (*.f64 1/2 (/.f64 x y)) |
| 26.7b | 1/2 |
Compiled 19 to 15 computations (21.1% saved)
Compiled 2 to 2 computations (0% saved)
3 alts after pruning (1 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 0 | 0 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 2 | 2 |
| Total | 0 | 3 | 3 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
| ✓ | 36.3b | (*.f64 1/2 (/.f64 x y)) |
| 26.7b | 1/2 |
Compiled 19 to 15 computations (21.1% saved)
| Inputs |
|---|
1/2 |
(*.f64 1/2 (/.f64 x y)) |
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(/.f64 (+.f64 x y) (+.f64 y y)) |
| Outputs |
|---|
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
3 calls:
| 4.0ms | x |
| 4.0ms | y |
| 3.0ms | (/.f64 (+.f64 x y) (+.f64 y y)) |
| Error | Segments | Branch |
|---|---|---|
| 0.0b | 1 | x |
| 0.0b | 1 | y |
| 0.0b | 1 | (/.f64 (+.f64 x y) (+.f64 y y)) |
Compiled 37 to 22 computations (40.5% saved)
Total -46.4b remaining (-303.9%)
Threshold costs -46.4b (-303.9%)
| Inputs |
|---|
1/2 |
(*.f64 1/2 (/.f64 x y)) |
| Outputs |
|---|
(*.f64 1/2 (/.f64 x y)) |
1/2 |
(*.f64 1/2 (/.f64 x y)) |
2 calls:
| 19.0ms | y |
| 10.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 15.3b | 3 | x |
| 15.7b | 7 | y |
Compiled 14 to 10 computations (28.6% saved)
| 2× | binary-search |
| Time | Left | Right |
|---|---|---|
| 14.0ms | 26114569646275.875 | 3.512147734111435e+21 |
| 14.0ms | -1.3685046716692822e+75 | -3.4128979057768245e+71 |
| 23.0ms | 272× | body | 256 | valid |
| 2.0ms | 15× | body | 256 | infinite |
Compiled 218 to 179 computations (17.9% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 65 |
| 1× | fuel |
| 1× | saturated |
| Inputs |
|---|
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(if (<=.f64 x -102000000000000004860393895242070033426731512823033231390225449522816876544) (*.f64 1/2 (/.f64 x y)) (if (<=.f64 x 34000000000000000000) 1/2 (*.f64 1/2 (/.f64 x y)))) |
1/2 |
| Outputs |
|---|
(+.f64 1/2 (*.f64 1/2 (/.f64 x y))) |
(if (<=.f64 x -102000000000000004860393895242070033426731512823033231390225449522816876544) (*.f64 1/2 (/.f64 x y)) (if (<=.f64 x 34000000000000000000) 1/2 (*.f64 1/2 (/.f64 x y)))) |
1/2 |
Compiled 33 to 24 computations (27.3% saved)
Compiled 29 to 19 computations (34.5% saved)
Loading profile data...