Time bar (total: 4.3s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 0 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 1 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 2 |
| 0% | 0% | 50% | 0% | 0% | 50% | 0% | 3 |
| 33.3% | 12.5% | 25% | 0% | 0% | 62.5% | 0% | 4 |
| 60% | 18.7% | 12.5% | 0% | 0% | 68.7% | 0% | 5 |
| 77.8% | 21.9% | 6.2% | 0% | 0% | 71.8% | 0% | 6 |
| 88.2% | 23.4% | 3.1% | 0% | 0% | 73.4% | 0% | 7 |
| 93.9% | 24.2% | 1.6% | 0% | 0% | 74.2% | 0% | 8 |
| 96.9% | 24.6% | 0.8% | 0% | 0% | 74.6% | 0% | 9 |
| 98.4% | 24.8% | 0.4% | 0% | 0% | 74.8% | 0% | 10 |
| 99.2% | 24.9% | 0.2% | 0% | 0% | 74.9% | 0% | 11 |
| 99.6% | 24.9% | 0.1% | 0% | 0% | 74.9% | 0% | 12 |
Compiled 9 to 8 computations (11.1% saved)
| 823.0ms | 8256× | body | 256 | valid |
| 1.0ms | 20× | body | 256 | invalid |
| 2× | egg-herbie |
| 12938× | rational.json-simplify-41 |
| 1682× | rational.json-simplify-1 |
| 654× | rational.json-simplify-35 |
| 2× | rational.json-simplify-16 |
| 2× | rational.json-simplify-12 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 21 |
| 1 | 19 | 21 |
| 2 | 29 | 21 |
| 3 | 39 | 21 |
| 4 | 55 | 21 |
| 5 | 89 | 21 |
| 6 | 180 | 21 |
| 7 | 446 | 21 |
| 8 | 566 | 21 |
| 9 | 574 | 21 |
| 10 | 582 | 21 |
| 11 | 590 | 21 |
| 12 | 598 | 21 |
| 13 | 606 | 21 |
| 14 | 614 | 21 |
| 15 | 622 | 21 |
| 16 | 630 | 21 |
| 17 | 638 | 21 |
| 18 | 646 | 21 |
| 19 | 654 | 21 |
| 20 | 662 | 21 |
| 21 | 670 | 21 |
| 22 | 678 | 21 |
| 23 | 1891 | 21 |
| 24 | 1899 | 21 |
| 25 | 1907 | 21 |
| 26 | 1915 | 21 |
| 27 | 1923 | 21 |
| 28 | 1931 | 21 |
| 29 | 2531 | 21 |
| 30 | 2539 | 21 |
| 31 | 2547 | 21 |
| 32 | 2555 | 21 |
| 33 | 2563 | 21 |
| 34 | 2571 | 21 |
| 35 | 2579 | 21 |
| 36 | 2587 | 21 |
| 37 | 2595 | 21 |
| 38 | 2603 | 21 |
| 39 | 2611 | 21 |
| 40 | 2619 | 21 |
| 41 | 2627 | 21 |
| 42 | 2635 | 21 |
| 43 | 2643 | 21 |
| 44 | 2651 | 21 |
| 45 | 2659 | 21 |
| 46 | 2667 | 21 |
| 47 | 2675 | 21 |
| 48 | 2683 | 21 |
| 49 | 2691 | 21 |
| 50 | 2699 | 21 |
| 51 | 2707 | 21 |
| 52 | 2715 | 21 |
| 53 | 2723 | 21 |
| 54 | 2731 | 21 |
| 55 | 2739 | 21 |
| 56 | 2747 | 21 |
| 57 | 2755 | 21 |
| 58 | 2763 | 21 |
| 59 | 2771 | 21 |
| 60 | 2779 | 21 |
| 61 | 2787 | 21 |
| 62 | 2795 | 21 |
| 63 | 2803 | 21 |
| 64 | 2811 | 21 |
| 65 | 2819 | 21 |
| 66 | 2827 | 21 |
| 67 | 2835 | 21 |
| 68 | 2843 | 21 |
| 69 | 2851 | 21 |
| 70 | 2859 | 21 |
| 71 | 2867 | 21 |
| 72 | 2875 | 21 |
| 73 | 2883 | 21 |
| 74 | 2891 | 21 |
| 75 | 2899 | 21 |
| 76 | 2907 | 21 |
| 77 | 2915 | 21 |
| 78 | 2923 | 21 |
| 79 | 2931 | 21 |
| 80 | 2939 | 21 |
| 81 | 2947 | 21 |
| 82 | 2955 | 21 |
| 83 | 2963 | 21 |
| 84 | 2971 | 21 |
| 85 | 2979 | 21 |
| 86 | 2987 | 21 |
| 87 | 2995 | 21 |
| 88 | 3003 | 21 |
| 89 | 3011 | 21 |
| 90 | 3019 | 21 |
| 91 | 3027 | 21 |
| 92 | 3035 | 21 |
| 93 | 3043 | 21 |
| 94 | 3051 | 21 |
| 95 | 3059 | 21 |
| 96 | 3067 | 21 |
| 97 | 3075 | 21 |
| 98 | 3083 | 21 |
| 99 | 3091 | 21 |
| 100 | 3099 | 21 |
| 101 | 3107 | 21 |
| 102 | 3115 | 21 |
| 103 | 3123 | 21 |
| 104 | 3131 | 21 |
| 105 | 3139 | 21 |
| 106 | 3147 | 21 |
| 107 | 3155 | 21 |
| 108 | 3163 | 21 |
| 109 | 3171 | 21 |
| 110 | 3179 | 21 |
| 111 | 3187 | 21 |
| 112 | 3195 | 21 |
| 113 | 3203 | 21 |
| 114 | 3211 | 21 |
| 115 | 3219 | 21 |
| 116 | 3227 | 21 |
| 117 | 3235 | 21 |
| 118 | 3243 | 21 |
| 119 | 3251 | 21 |
| 120 | 3259 | 21 |
| 121 | 3267 | 21 |
| 122 | 3275 | 21 |
| 123 | 3283 | 21 |
| 124 | 3291 | 21 |
| 125 | 3299 | 21 |
| 126 | 3307 | 21 |
| 127 | 3315 | 21 |
| 128 | 3323 | 21 |
| 129 | 3331 | 21 |
| 130 | 3339 | 21 |
| 131 | 3347 | 21 |
| 132 | 3355 | 21 |
| 133 | 3363 | 21 |
| 134 | 3371 | 21 |
| 135 | 3379 | 21 |
| 136 | 3387 | 21 |
| 137 | 3395 | 21 |
| 138 | 3403 | 21 |
| 139 | 3411 | 21 |
| 140 | 3419 | 21 |
| 141 | 3427 | 21 |
| 142 | 3435 | 21 |
| 143 | 3443 | 21 |
| 144 | 3451 | 21 |
| 145 | 3459 | 21 |
| 146 | 3467 | 21 |
| 147 | 3475 | 21 |
| 148 | 3483 | 21 |
| 149 | 3491 | 21 |
| 150 | 3499 | 21 |
| 151 | 3507 | 21 |
| 152 | 3515 | 21 |
| 153 | 3523 | 21 |
| 154 | 3531 | 21 |
| 155 | 3539 | 21 |
| 156 | 3547 | 21 |
| 157 | 3555 | 21 |
| 158 | 3563 | 21 |
| 159 | 3571 | 21 |
| 160 | 3579 | 21 |
| 161 | 3587 | 21 |
| 162 | 3595 | 21 |
| 163 | 3603 | 21 |
| 0 | 1 | 1 |
| 1× | saturated |
| 1× | node limit |
| Inputs |
|---|
0 |
| Outputs |
|---|
0 |
| Inputs |
|---|
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1))) |
| Outputs |
|---|
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1))) |
(neg.f64 (log.f64 (+.f64 (/.f64 1 x) -1))) |
Compiled 9 to 8 computations (11.1% saved)
| 1× | egg-herbie |
| 12938× | rational.json-simplify-41 |
| 1682× | rational.json-simplify-1 |
| 654× | rational.json-simplify-35 |
| 2× | rational.json-simplify-16 |
| 2× | rational.json-simplify-12 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 21 |
| 1 | 19 | 21 |
| 2 | 29 | 21 |
| 3 | 39 | 21 |
| 4 | 55 | 21 |
| 5 | 89 | 21 |
| 6 | 180 | 21 |
| 7 | 446 | 21 |
| 8 | 566 | 21 |
| 9 | 574 | 21 |
| 10 | 582 | 21 |
| 11 | 590 | 21 |
| 12 | 598 | 21 |
| 13 | 606 | 21 |
| 14 | 614 | 21 |
| 15 | 622 | 21 |
| 16 | 630 | 21 |
| 17 | 638 | 21 |
| 18 | 646 | 21 |
| 19 | 654 | 21 |
| 20 | 662 | 21 |
| 21 | 670 | 21 |
| 22 | 678 | 21 |
| 23 | 1891 | 21 |
| 24 | 1899 | 21 |
| 25 | 1907 | 21 |
| 26 | 1915 | 21 |
| 27 | 1923 | 21 |
| 28 | 1931 | 21 |
| 29 | 2531 | 21 |
| 30 | 2539 | 21 |
| 31 | 2547 | 21 |
| 32 | 2555 | 21 |
| 33 | 2563 | 21 |
| 34 | 2571 | 21 |
| 35 | 2579 | 21 |
| 36 | 2587 | 21 |
| 37 | 2595 | 21 |
| 38 | 2603 | 21 |
| 39 | 2611 | 21 |
| 40 | 2619 | 21 |
| 41 | 2627 | 21 |
| 42 | 2635 | 21 |
| 43 | 2643 | 21 |
| 44 | 2651 | 21 |
| 45 | 2659 | 21 |
| 46 | 2667 | 21 |
| 47 | 2675 | 21 |
| 48 | 2683 | 21 |
| 49 | 2691 | 21 |
| 50 | 2699 | 21 |
| 51 | 2707 | 21 |
| 52 | 2715 | 21 |
| 53 | 2723 | 21 |
| 54 | 2731 | 21 |
| 55 | 2739 | 21 |
| 56 | 2747 | 21 |
| 57 | 2755 | 21 |
| 58 | 2763 | 21 |
| 59 | 2771 | 21 |
| 60 | 2779 | 21 |
| 61 | 2787 | 21 |
| 62 | 2795 | 21 |
| 63 | 2803 | 21 |
| 64 | 2811 | 21 |
| 65 | 2819 | 21 |
| 66 | 2827 | 21 |
| 67 | 2835 | 21 |
| 68 | 2843 | 21 |
| 69 | 2851 | 21 |
| 70 | 2859 | 21 |
| 71 | 2867 | 21 |
| 72 | 2875 | 21 |
| 73 | 2883 | 21 |
| 74 | 2891 | 21 |
| 75 | 2899 | 21 |
| 76 | 2907 | 21 |
| 77 | 2915 | 21 |
| 78 | 2923 | 21 |
| 79 | 2931 | 21 |
| 80 | 2939 | 21 |
| 81 | 2947 | 21 |
| 82 | 2955 | 21 |
| 83 | 2963 | 21 |
| 84 | 2971 | 21 |
| 85 | 2979 | 21 |
| 86 | 2987 | 21 |
| 87 | 2995 | 21 |
| 88 | 3003 | 21 |
| 89 | 3011 | 21 |
| 90 | 3019 | 21 |
| 91 | 3027 | 21 |
| 92 | 3035 | 21 |
| 93 | 3043 | 21 |
| 94 | 3051 | 21 |
| 95 | 3059 | 21 |
| 96 | 3067 | 21 |
| 97 | 3075 | 21 |
| 98 | 3083 | 21 |
| 99 | 3091 | 21 |
| 100 | 3099 | 21 |
| 101 | 3107 | 21 |
| 102 | 3115 | 21 |
| 103 | 3123 | 21 |
| 104 | 3131 | 21 |
| 105 | 3139 | 21 |
| 106 | 3147 | 21 |
| 107 | 3155 | 21 |
| 108 | 3163 | 21 |
| 109 | 3171 | 21 |
| 110 | 3179 | 21 |
| 111 | 3187 | 21 |
| 112 | 3195 | 21 |
| 113 | 3203 | 21 |
| 114 | 3211 | 21 |
| 115 | 3219 | 21 |
| 116 | 3227 | 21 |
| 117 | 3235 | 21 |
| 118 | 3243 | 21 |
| 119 | 3251 | 21 |
| 120 | 3259 | 21 |
| 121 | 3267 | 21 |
| 122 | 3275 | 21 |
| 123 | 3283 | 21 |
| 124 | 3291 | 21 |
| 125 | 3299 | 21 |
| 126 | 3307 | 21 |
| 127 | 3315 | 21 |
| 128 | 3323 | 21 |
| 129 | 3331 | 21 |
| 130 | 3339 | 21 |
| 131 | 3347 | 21 |
| 132 | 3355 | 21 |
| 133 | 3363 | 21 |
| 134 | 3371 | 21 |
| 135 | 3379 | 21 |
| 136 | 3387 | 21 |
| 137 | 3395 | 21 |
| 138 | 3403 | 21 |
| 139 | 3411 | 21 |
| 140 | 3419 | 21 |
| 141 | 3427 | 21 |
| 142 | 3435 | 21 |
| 143 | 3443 | 21 |
| 144 | 3451 | 21 |
| 145 | 3459 | 21 |
| 146 | 3467 | 21 |
| 147 | 3475 | 21 |
| 148 | 3483 | 21 |
| 149 | 3491 | 21 |
| 150 | 3499 | 21 |
| 151 | 3507 | 21 |
| 152 | 3515 | 21 |
| 153 | 3523 | 21 |
| 154 | 3531 | 21 |
| 155 | 3539 | 21 |
| 156 | 3547 | 21 |
| 157 | 3555 | 21 |
| 158 | 3563 | 21 |
| 159 | 3571 | 21 |
| 160 | 3579 | 21 |
| 161 | 3587 | 21 |
| 162 | 3595 | 21 |
| 163 | 3603 | 21 |
| 1× | node limit |
| Inputs |
|---|
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1))) |
| Outputs |
|---|
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1))) |
(neg.f64 (log.f64 (+.f64 (/.f64 1 x) -1))) |
Compiled 15 to 13 computations (13.3% saved)
2 alts after pruning (2 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 1 | 1 | 2 |
| Fresh | 0 | 1 | 1 |
| Picked | 0 | 0 | 0 |
| Done | 0 | 0 | 0 |
| Total | 1 | 2 | 3 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.0b | (neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1))) |
Compiled 8 to 7 computations (12.5% saved)
Found 2 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (log.f64 (-.f64 (/.f64 1 x) 1)) |
| ✓ | 0.0b | (-.f64 (/.f64 1 x) 1) |
Compiled 24 to 19 computations (20.8% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | 0 | (log.f64 (-.f64 (/.f64 1 x) 1)) |
| 0.0ms | x | @ | 0 | (-.f64 (/.f64 1 x) 1) |
| 0.0ms | x | @ | -inf | (-.f64 (/.f64 1 x) 1) |
| 0.0ms | x | @ | inf | (log.f64 (-.f64 (/.f64 1 x) 1)) |
| 0.0ms | x | @ | -inf | (log.f64 (-.f64 (/.f64 1 x) 1)) |
| 1× | batch-egg-rewrite |
| 1328× | rational.json-1 |
| 1328× | rational.json-2 |
| 1328× | rational.json-3 |
| 1318× | rational.json-4 |
| 1314× | exponential.json-3 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 30 |
| 1 | 64 | 30 |
| 2 | 152 | 30 |
| 3 | 295 | 30 |
| 4 | 614 | 30 |
| 5 | 1643 | 30 |
| 6 | 4881 | 30 |
| 1× | node limit |
| Inputs |
|---|
(-.f64 (/.f64 1 x) 1) |
(log.f64 (-.f64 (/.f64 1 x) 1)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 1 x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (/.f64 1 x) -1) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (+.f64 (/.f64 1 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -1 (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 -2 (-.f64 1 (/.f64 -1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 (/.f64 1/2 x) -1/2) (+.f64 (/.f64 1/2 x) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (/.f64 1 x) -1))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (-.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1 x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (/.f64 1/2 x) -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 x) (*.f64 (-.f64 1 x) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 2 x) (/.f64 (-.f64 1 x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 (/.f64 1 x) -1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 2 x) -2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 1 x) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (/.f64 4 x) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (/.f64 2 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (-.f64 (/.f64 4 x) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 1/2 x) -1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (-.f64 1 x) 1/2) (/.f64 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 1 x) 2) (/.f64 2 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 (/.f64 1 x) -1) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 x (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 1 x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -1 (/.f64 (neg.f64 x) (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 2 (/.f64 (+.f64 x x) (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 4 (/.f64 (*.f64 x 4) (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 2 x) -2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1 x) x)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 -2 (/.f64 (*.f64 x -2) (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 8 (/.f64 (*.f64 x 8) (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (/.f64 4 x) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (/.f64 1 x) -1) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 16 (/.f64 (*.f64 2 (*.f64 x 8)) (-.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (/.f64 1/2 x) -1/2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 (/.f64 1 x) -1) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (-.f64 1 x)) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 1 x) 2) (*.f64 x 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (/.f64 1 x) -1) 8)) (*.f64 2 (*.f64 (+.f64 (/.f64 1 x) -1) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 1 x) 4) (/.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 1 x) (*.f64 x 4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 1 (/.f64 -1 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 1 x) (*.f64 x 8)) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 1 x) 1/2) (+.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 1 x) 1/4) (*.f64 x 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 1 x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (/.f64 1 x) -1) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 1 (/.f64 -1 x))))))) |
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (+.f64 (/.f64 1 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -1))) (log.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (+.f64 (/.f64 1 x) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (log.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -1))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 8)) (*.f64 2 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 1))))) |
| 1× | egg-herbie |
| 1250× | rational.json-simplify-53 |
| 1072× | rational.json-simplify-51 |
| 914× | rational.json-simplify-49 |
| 728× | rational.json-simplify-46 |
| 718× | rational.json-simplify-35 |
Useful iterations: 3 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 160 | 1440 |
| 1 | 394 | 1402 |
| 2 | 1059 | 1402 |
| 3 | 4184 | 1396 |
| 4 | 6305 | 1396 |
| 1× | node limit |
| Inputs |
|---|
(/.f64 1 x) |
-1 |
-1 |
(*.f64 -1 (log.f64 x)) |
(+.f64 (*.f64 -1 x) (*.f64 -1 (log.f64 x))) |
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1 x) (*.f64 -1 (log.f64 x)))) |
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 -1 (log.f64 x))))) |
(log.f64 -1) |
(-.f64 (log.f64 -1) (/.f64 1 x)) |
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (/.f64 1 x))) |
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x)))) |
(log.f64 -1) |
(-.f64 (log.f64 -1) (/.f64 1 x)) |
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (/.f64 1 x))) |
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x)))) |
(+.f64 (/.f64 1 x) -1) |
(+.f64 (+.f64 (/.f64 1 x) -1) 0) |
(+.f64 0 (+.f64 (/.f64 1 x) -1)) |
(+.f64 -1 (/.f64 1 x)) |
(+.f64 -2 (-.f64 1 (/.f64 -1 x))) |
(+.f64 (+.f64 (/.f64 1/2 x) -1/2) (+.f64 (/.f64 1/2 x) -1/2)) |
(*.f64 1 (+.f64 (/.f64 1 x) -1)) |
(*.f64 (/.f64 1 x) (-.f64 1 x)) |
(*.f64 (+.f64 (/.f64 1 x) -1) 1) |
(*.f64 2 (+.f64 (/.f64 1/2 x) -1/2)) |
(*.f64 (/.f64 2 x) (*.f64 (-.f64 1 x) 1/2)) |
(*.f64 (/.f64 2 x) (/.f64 (-.f64 1 x) 2)) |
(*.f64 4 (/.f64 (+.f64 (/.f64 1 x) -1) 4)) |
(*.f64 (+.f64 (/.f64 2 x) -2) 1/2) |
(*.f64 (-.f64 1 x) (/.f64 1 x)) |
(*.f64 (-.f64 (/.f64 4 x) 4) 1/4) |
(*.f64 1/2 (+.f64 (/.f64 2 x) -2)) |
(*.f64 1/4 (-.f64 (/.f64 4 x) 4)) |
(*.f64 (+.f64 (/.f64 1/2 x) -1/2) 2) |
(*.f64 (*.f64 (-.f64 1 x) 1/2) (/.f64 2 x)) |
(*.f64 (/.f64 (-.f64 1 x) 2) (/.f64 2 x)) |
(*.f64 (/.f64 (+.f64 (/.f64 1 x) -1) 4) 4) |
(/.f64 1 (/.f64 x (-.f64 1 x))) |
(/.f64 (+.f64 (/.f64 1 x) -1) 1) |
(/.f64 -1 (/.f64 (neg.f64 x) (-.f64 1 x))) |
(/.f64 2 (/.f64 (+.f64 x x) (-.f64 1 x))) |
(/.f64 4 (/.f64 (*.f64 x 4) (-.f64 1 x))) |
(/.f64 (+.f64 (/.f64 2 x) -2) 2) |
(/.f64 (-.f64 1 x) x) |
(/.f64 -2 (/.f64 (*.f64 x -2) (-.f64 1 x))) |
(/.f64 8 (/.f64 (*.f64 x 8) (-.f64 1 x))) |
(/.f64 (-.f64 (/.f64 4 x) 4) 4) |
(/.f64 (*.f64 (+.f64 (/.f64 1 x) -1) 8) 8) |
(/.f64 16 (/.f64 (*.f64 2 (*.f64 x 8)) (-.f64 1 x))) |
(/.f64 (+.f64 (/.f64 1/2 x) -1/2) 1/2) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (/.f64 1 x) -1) 8)) 16) |
(/.f64 (*.f64 2 (-.f64 1 x)) (+.f64 x x)) |
(/.f64 (/.f64 (-.f64 1 x) 2) (*.f64 x 1/2)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (/.f64 1 x) -1) 8)) (*.f64 2 (*.f64 (+.f64 (/.f64 1 x) -1) 8))) 32) |
(/.f64 (/.f64 (-.f64 1 x) 4) (/.f64 x 4)) |
(/.f64 (/.f64 (-.f64 1 x) (*.f64 x 4)) 1/4) |
(/.f64 (+.f64 1 (/.f64 -1 x)) -1) |
(/.f64 (/.f64 (-.f64 1 x) (*.f64 x 8)) 1/8) |
(/.f64 (/.f64 (-.f64 1 x) 1/2) (+.f64 x x)) |
(/.f64 (/.f64 (-.f64 1 x) 1/4) (*.f64 x 4)) |
(/.f64 (neg.f64 (-.f64 1 x)) (neg.f64 x)) |
(pow.f64 (+.f64 (/.f64 1 x) -1) 1) |
(neg.f64 (+.f64 1 (/.f64 -1 x))) |
(+.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 0) |
(+.f64 0 (log.f64 (+.f64 (/.f64 1 x) -1))) |
(+.f64 (log.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -1))) (log.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -1)))) |
(-.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 0) |
(*.f64 1 (log.f64 (+.f64 (/.f64 1 x) -1))) |
(*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 1) |
(*.f64 2 (log.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -1)))) |
(*.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 2) 1/2) |
(*.f64 4 (/.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 4)) |
(*.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 4) 1/4) |
(*.f64 1/2 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 2)) |
(*.f64 1/4 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 4)) |
(*.f64 (log.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -1))) 2) |
(*.f64 (/.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 4) 4) |
(/.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 1) |
(/.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 2) 2) |
(/.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 4) 4) |
(/.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 8)) 16) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 8)) (*.f64 2 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 8))) 32) |
(pow.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 1) |
| Outputs |
|---|
(/.f64 1 x) |
-1 |
-1 |
(*.f64 -1 (log.f64 x)) |
(neg.f64 (log.f64 x)) |
(+.f64 (*.f64 -1 x) (*.f64 -1 (log.f64 x))) |
(+.f64 (*.f64 -1 (log.f64 x)) (neg.f64 x)) |
(*.f64 -1 (+.f64 x (log.f64 x))) |
(neg.f64 (+.f64 x (log.f64 x))) |
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1 x) (*.f64 -1 (log.f64 x)))) |
(+.f64 (neg.f64 x) (+.f64 (*.f64 -1 (log.f64 x)) (*.f64 -1/2 (pow.f64 x 2)))) |
(+.f64 (*.f64 -1 (+.f64 x (log.f64 x))) (*.f64 -1/2 (pow.f64 x 2))) |
(+.f64 (neg.f64 (+.f64 x (log.f64 x))) (*.f64 -1/2 (pow.f64 x 2))) |
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 -1 (log.f64 x))))) |
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (+.f64 (*.f64 -1 (log.f64 x)) (neg.f64 x)))) |
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1 (+.f64 x (log.f64 x))) (*.f64 -1/3 (pow.f64 x 3)))) |
(+.f64 (*.f64 -1 (+.f64 x (log.f64 x))) (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 -1/2 (pow.f64 x 2)))) |
(+.f64 (neg.f64 (+.f64 x (log.f64 x))) (+.f64 (*.f64 -1/2 (pow.f64 x 2)) (*.f64 -1/3 (pow.f64 x 3)))) |
(log.f64 -1) |
(-.f64 (log.f64 -1) (/.f64 1 x)) |
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (/.f64 1 x))) |
(-.f64 (log.f64 -1) (+.f64 (/.f64 1 x) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))) |
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x)))) |
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 x) (*.f64 1/3 (/.f64 1 (pow.f64 x 3)))))) |
(-.f64 (log.f64 -1) (+.f64 (/.f64 1 x) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (*.f64 1/3 (/.f64 1 (pow.f64 x 3)))))) |
(log.f64 -1) |
(-.f64 (log.f64 -1) (/.f64 1 x)) |
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (/.f64 1 x))) |
(-.f64 (log.f64 -1) (+.f64 (/.f64 1 x) (*.f64 1/2 (/.f64 1 (pow.f64 x 2))))) |
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x)))) |
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 x) (*.f64 1/3 (/.f64 1 (pow.f64 x 3)))))) |
(-.f64 (log.f64 -1) (+.f64 (/.f64 1 x) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (*.f64 1/3 (/.f64 1 (pow.f64 x 3)))))) |
(+.f64 (/.f64 1 x) -1) |
(+.f64 (+.f64 (/.f64 1 x) -1) 0) |
(+.f64 (/.f64 1 x) -1) |
(+.f64 0 (+.f64 (/.f64 1 x) -1)) |
(+.f64 (/.f64 1 x) -1) |
(+.f64 -1 (/.f64 1 x)) |
(+.f64 (/.f64 1 x) -1) |
(+.f64 -2 (-.f64 1 (/.f64 -1 x))) |
(+.f64 (/.f64 1 x) -1) |
(+.f64 (+.f64 (/.f64 1/2 x) -1/2) (+.f64 (/.f64 1/2 x) -1/2)) |
(+.f64 (/.f64 1/2 x) (+.f64 -1/2 (+.f64 -1/2 (/.f64 1/2 x)))) |
(/.f64 (+.f64 -1/2 (/.f64 1/2 x)) 1/2) |
(+.f64 -1 (*.f64 2 (/.f64 1/2 x))) |
(*.f64 1 (+.f64 (/.f64 1 x) -1)) |
(+.f64 (/.f64 1 x) -1) |
(*.f64 (/.f64 1 x) (-.f64 1 x)) |
(+.f64 (/.f64 1 x) -1) |
(*.f64 (+.f64 (/.f64 1 x) -1) 1) |
(+.f64 (/.f64 1 x) -1) |
(*.f64 2 (+.f64 (/.f64 1/2 x) -1/2)) |
(*.f64 2 (+.f64 -1/2 (/.f64 1/2 x))) |
(*.f64 (/.f64 2 x) (*.f64 (-.f64 1 x) 1/2)) |
(+.f64 (/.f64 1 x) -1) |
(*.f64 (/.f64 2 x) (/.f64 (-.f64 1 x) 2)) |
(+.f64 (/.f64 1 x) -1) |
(*.f64 4 (/.f64 (+.f64 (/.f64 1 x) -1) 4)) |
(+.f64 (/.f64 1 x) -1) |
(*.f64 (+.f64 (/.f64 2 x) -2) 1/2) |
(+.f64 (/.f64 1 x) -1) |
(*.f64 (-.f64 1 x) (/.f64 1 x)) |
(+.f64 (/.f64 1 x) -1) |
(*.f64 (-.f64 (/.f64 4 x) 4) 1/4) |
(*.f64 1/2 (+.f64 (/.f64 2 x) -2)) |
(+.f64 (/.f64 1 x) -1) |
(*.f64 1/4 (-.f64 (/.f64 4 x) 4)) |
(*.f64 (-.f64 (/.f64 4 x) 4) 1/4) |
(*.f64 (+.f64 (/.f64 1/2 x) -1/2) 2) |
(*.f64 2 (+.f64 -1/2 (/.f64 1/2 x))) |
(*.f64 (*.f64 (-.f64 1 x) 1/2) (/.f64 2 x)) |
(+.f64 (/.f64 1 x) -1) |
(*.f64 (/.f64 (-.f64 1 x) 2) (/.f64 2 x)) |
(+.f64 (/.f64 1 x) -1) |
(*.f64 (/.f64 (+.f64 (/.f64 1 x) -1) 4) 4) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 1 (/.f64 x (-.f64 1 x))) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 (+.f64 (/.f64 1 x) -1) 1) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 -1 (/.f64 (neg.f64 x) (-.f64 1 x))) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 2 (/.f64 (+.f64 x x) (-.f64 1 x))) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 4 (/.f64 (*.f64 x 4) (-.f64 1 x))) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 (+.f64 (/.f64 2 x) -2) 2) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 (-.f64 1 x) x) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 -2 (/.f64 (*.f64 x -2) (-.f64 1 x))) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 8 (/.f64 (*.f64 x 8) (-.f64 1 x))) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 (-.f64 (/.f64 4 x) 4) 4) |
(/.f64 (*.f64 (+.f64 (/.f64 1 x) -1) 8) 8) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 16 (/.f64 (*.f64 2 (*.f64 x 8)) (-.f64 1 x))) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 (+.f64 (/.f64 1/2 x) -1/2) 1/2) |
(+.f64 (/.f64 1/2 x) (+.f64 -1/2 (+.f64 -1/2 (/.f64 1/2 x)))) |
(/.f64 (+.f64 -1/2 (/.f64 1/2 x)) 1/2) |
(+.f64 -1 (*.f64 2 (/.f64 1/2 x))) |
(/.f64 (*.f64 2 (*.f64 (+.f64 (/.f64 1 x) -1) 8)) 16) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 (*.f64 2 (-.f64 1 x)) (+.f64 x x)) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 (/.f64 (-.f64 1 x) 2) (*.f64 x 1/2)) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (/.f64 1 x) -1) 8)) (*.f64 2 (*.f64 (+.f64 (/.f64 1 x) -1) 8))) 32) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 (/.f64 (-.f64 1 x) 4) (/.f64 x 4)) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 (/.f64 (-.f64 1 x) (*.f64 x 4)) 1/4) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 (+.f64 1 (/.f64 -1 x)) -1) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 (/.f64 (-.f64 1 x) (*.f64 x 8)) 1/8) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 (/.f64 (-.f64 1 x) 1/2) (+.f64 x x)) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 (/.f64 (-.f64 1 x) 1/4) (*.f64 x 4)) |
(+.f64 (/.f64 1 x) -1) |
(/.f64 (neg.f64 (-.f64 1 x)) (neg.f64 x)) |
(+.f64 (/.f64 1 x) -1) |
(pow.f64 (+.f64 (/.f64 1 x) -1) 1) |
(+.f64 (/.f64 1 x) -1) |
(neg.f64 (+.f64 1 (/.f64 -1 x))) |
(+.f64 (/.f64 1 x) -1) |
(+.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 0) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(+.f64 0 (log.f64 (+.f64 (/.f64 1 x) -1))) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(+.f64 (log.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -1))) (log.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -1)))) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(-.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 0) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(*.f64 1 (log.f64 (+.f64 (/.f64 1 x) -1))) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 1) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(*.f64 2 (log.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -1)))) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(*.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 2) 1/2) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(*.f64 4 (/.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 4)) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(*.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 4) 1/4) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(*.f64 1/2 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 2)) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(*.f64 1/4 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 4)) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(*.f64 (log.f64 (sqrt.f64 (+.f64 (/.f64 1 x) -1))) 2) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(*.f64 (/.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 4) 4) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(/.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 1) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(/.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 2) 2) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(/.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 4) 4) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(/.f64 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 8) 8) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(/.f64 (*.f64 2 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 8)) 16) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 8)) (*.f64 2 (*.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 8))) 32) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
(pow.f64 (log.f64 (+.f64 (/.f64 1 x) -1)) 1) |
(log.f64 (+.f64 (/.f64 1 x) -1)) |
Compiled 1078 to 889 computations (17.5% saved)
4 alts after pruning (3 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 95 | 3 | 98 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 95 | 4 | 99 |
| Status | Error | Program |
|---|---|---|
| ▶ | 0.5b | (neg.f64 (neg.f64 (+.f64 x (log.f64 x)))) |
| ▶ | 0.8b | (neg.f64 (neg.f64 (log.f64 x))) |
| ✓ | 0.0b | (neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1))) |
| ▶ | 64.0b | (neg.f64 (log.f64 -1)) |
Compiled 24 to 20 computations (16.7% saved)
Compiled 7 to 7 computations (0% saved)
Compiled 11 to 4 computations (63.6% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 x (log.f64 x)) |
Compiled 19 to 5 computations (73.7% saved)
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 5.0ms | x | @ | 0 | (+.f64 x (log.f64 x)) |
| 3.0ms | x | @ | -inf | (+.f64 x (log.f64 x)) |
| 1.0ms | x | @ | inf | (+.f64 x (log.f64 x)) |
| 1× | batch-egg-rewrite |
| 1506× | rational.json-1 |
| 1506× | rational.json-2 |
| 1506× | rational.json-3 |
| 1428× | exponential.json-3 |
| 1428× | rational.json-4 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 6 | 11 |
| 1 | 39 | 11 |
| 2 | 90 | 11 |
| 3 | 185 | 11 |
| 4 | 346 | 11 |
| 5 | 781 | 11 |
| 6 | 2012 | 11 |
| 7 | 3677 | 11 |
| 8 | 4763 | 11 |
| 9 | 6504 | 11 |
| 10 | 7709 | 11 |
| 11 | 7898 | 11 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 x (log.f64 x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 x (log.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x (log.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 x (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x (log.f64 x)) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (log.f64 x)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (*.f64 (+.f64 x (log.f64 x)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (log.f64 x)) 4) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (log.f64 x)) 8) 1/8)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x (log.f64 x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (log.f64 x)) 1/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x (log.f64 x)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x (log.f64 x)) 1/4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/8 (*.f64 (+.f64 x (log.f64 x)) 8))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 x (log.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (log.f64 x)) 2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (log.f64 x)) 4) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x (log.f64 x)) 8) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 8)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 8))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 8)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 8))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 8)))))) 256)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 x (log.f64 x)) 1))))) |
| 1× | egg-herbie |
| 1558× | rational.json-simplify-35 |
| 1282× | rational.json-simplify-46 |
| 1234× | rational.json-simplify-1 |
| 906× | rational.json-simplify-2 |
| 830× | rational.json-simplify-41 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 63 | 428 |
| 1 | 142 | 416 |
| 2 | 458 | 416 |
| 3 | 1236 | 416 |
| 4 | 1943 | 416 |
| 5 | 2854 | 416 |
| 6 | 3373 | 416 |
| 7 | 3473 | 416 |
| 8 | 3559 | 416 |
| 9 | 3647 | 416 |
| 10 | 3810 | 416 |
| 11 | 4342 | 416 |
| 12 | 5314 | 416 |
| 13 | 6531 | 416 |
| 1× | node limit |
| Inputs |
|---|
(log.f64 x) |
x |
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) x) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) x) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) x) |
x |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) x)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) x)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) x)) |
(-.f64 (+.f64 x (log.f64 x)) 0) |
(*.f64 (+.f64 x (log.f64 x)) 1) |
(*.f64 1 (+.f64 x (log.f64 x))) |
(*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 1/2)) |
(*.f64 (*.f64 (+.f64 x (log.f64 x)) 2) 1/2) |
(*.f64 4 (*.f64 (+.f64 x (log.f64 x)) 1/4)) |
(*.f64 (*.f64 (+.f64 x (log.f64 x)) 4) 1/4) |
(*.f64 (*.f64 (+.f64 x (log.f64 x)) 8) 1/8) |
(*.f64 1/2 (*.f64 (+.f64 x (log.f64 x)) 2)) |
(*.f64 (*.f64 (+.f64 x (log.f64 x)) 1/2) 2) |
(*.f64 1/4 (*.f64 (+.f64 x (log.f64 x)) 4)) |
(*.f64 (*.f64 (+.f64 x (log.f64 x)) 1/4) 4) |
(*.f64 1/8 (*.f64 (+.f64 x (log.f64 x)) 8)) |
(/.f64 (+.f64 x (log.f64 x)) 1) |
(/.f64 (*.f64 (+.f64 x (log.f64 x)) 2) 2) |
(/.f64 (*.f64 (+.f64 x (log.f64 x)) 4) 4) |
(/.f64 (*.f64 (+.f64 x (log.f64 x)) 8) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 8)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 8))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 8)))) 64) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 8))))) 128) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 8)))))) 256) |
(pow.f64 (+.f64 x (log.f64 x)) 1) |
| Outputs |
|---|
(log.f64 x) |
x |
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) x) |
(+.f64 x (*.f64 -1 (log.f64 (/.f64 1 x)))) |
(+.f64 x (neg.f64 (log.f64 (/.f64 1 x)))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) x) |
(+.f64 x (*.f64 -1 (log.f64 (/.f64 1 x)))) |
(+.f64 x (neg.f64 (log.f64 (/.f64 1 x)))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) x) |
(+.f64 x (*.f64 -1 (log.f64 (/.f64 1 x)))) |
(+.f64 x (neg.f64 (log.f64 (/.f64 1 x)))) |
x |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) x)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 x (log.f64 -1))) |
(+.f64 x (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 x))))) |
(+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (+.f64 x (log.f64 -1))) |
(+.f64 x (+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (log.f64 -1))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) x)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 x (log.f64 -1))) |
(+.f64 x (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 x))))) |
(+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (+.f64 x (log.f64 -1))) |
(+.f64 x (+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (log.f64 -1))) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) x)) |
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 x (log.f64 -1))) |
(+.f64 x (+.f64 (log.f64 -1) (neg.f64 (log.f64 (/.f64 -1 x))))) |
(+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (+.f64 x (log.f64 -1))) |
(+.f64 x (+.f64 (neg.f64 (log.f64 (/.f64 -1 x))) (log.f64 -1))) |
(-.f64 (+.f64 x (log.f64 x)) 0) |
(+.f64 x (log.f64 x)) |
(*.f64 (+.f64 x (log.f64 x)) 1) |
(+.f64 x (log.f64 x)) |
(*.f64 1 (+.f64 x (log.f64 x))) |
(+.f64 x (log.f64 x)) |
(*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 1/2)) |
(+.f64 x (log.f64 x)) |
(*.f64 (*.f64 (+.f64 x (log.f64 x)) 2) 1/2) |
(+.f64 x (log.f64 x)) |
(*.f64 4 (*.f64 (+.f64 x (log.f64 x)) 1/4)) |
(+.f64 x (log.f64 x)) |
(*.f64 (*.f64 (+.f64 x (log.f64 x)) 4) 1/4) |
(+.f64 x (log.f64 x)) |
(*.f64 (*.f64 (+.f64 x (log.f64 x)) 8) 1/8) |
(+.f64 x (log.f64 x)) |
(*.f64 1/2 (*.f64 (+.f64 x (log.f64 x)) 2)) |
(+.f64 x (log.f64 x)) |
(*.f64 (*.f64 (+.f64 x (log.f64 x)) 1/2) 2) |
(+.f64 x (log.f64 x)) |
(*.f64 1/4 (*.f64 (+.f64 x (log.f64 x)) 4)) |
(+.f64 x (log.f64 x)) |
(*.f64 (*.f64 (+.f64 x (log.f64 x)) 1/4) 4) |
(+.f64 x (log.f64 x)) |
(*.f64 1/8 (*.f64 (+.f64 x (log.f64 x)) 8)) |
(+.f64 x (log.f64 x)) |
(/.f64 (+.f64 x (log.f64 x)) 1) |
(+.f64 x (log.f64 x)) |
(/.f64 (*.f64 (+.f64 x (log.f64 x)) 2) 2) |
(+.f64 x (log.f64 x)) |
(/.f64 (*.f64 (+.f64 x (log.f64 x)) 4) 4) |
(+.f64 x (log.f64 x)) |
(/.f64 (*.f64 (+.f64 x (log.f64 x)) 8) 8) |
(+.f64 x (log.f64 x)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 8)) 16) |
(+.f64 x (log.f64 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 8))) 32) |
(+.f64 x (log.f64 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 8)))) 64) |
(+.f64 x (log.f64 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 8))))) 128) |
(+.f64 x (log.f64 x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x (log.f64 x)) 8)))))) 256) |
(+.f64 x (log.f64 x)) |
(pow.f64 (+.f64 x (log.f64 x)) 1) |
(+.f64 x (log.f64 x)) |
Compiled 355 to 242 computations (31.8% saved)
4 alts after pruning (1 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 33 | 1 | 34 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 1 | 2 | 3 |
| Total | 34 | 4 | 38 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.5b | (neg.f64 (neg.f64 (+.f64 x (log.f64 x)))) |
| ✓ | 0.8b | (neg.f64 (neg.f64 (log.f64 x))) |
| ▶ | 62.6b | (neg.f64 (neg.f64 x)) |
| ✓ | 0.0b | (neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1))) |
Compiled 24 to 19 computations (20.8% saved)
Compiled 7 to 3 computations (57.1% saved)
Compiled 1 to 1 computations (0% saved)
4 alts after pruning (0 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 0 | 0 | 0 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 3 | 3 |
| Total | 0 | 4 | 4 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.5b | (neg.f64 (neg.f64 (+.f64 x (log.f64 x)))) |
| ✓ | 0.8b | (neg.f64 (neg.f64 (log.f64 x))) |
| ✓ | 62.6b | (neg.f64 (neg.f64 x)) |
| ✓ | 0.0b | (neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1))) |
Compiled 24 to 19 computations (20.8% saved)
| Inputs |
|---|
(neg.f64 (neg.f64 x)) |
(neg.f64 (log.f64 -1)) |
(neg.f64 (neg.f64 (log.f64 x))) |
(neg.f64 (neg.f64 (+.f64 x (log.f64 x)))) |
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1))) |
| Outputs |
|---|
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1))) |
5 calls:
| 52.0ms | (-.f64 (/.f64 1 x) 1) |
| 4.0ms | (log.f64 (-.f64 (/.f64 1 x) 1)) |
| 4.0ms | (/.f64 1 x) |
| 4.0ms | (neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1))) |
| 4.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 0.0b | 1 | x |
| 0.0b | 1 | (neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1))) |
| 0.0b | 1 | (log.f64 (-.f64 (/.f64 1 x) 1)) |
| 0.0b | 1 | (-.f64 (/.f64 1 x) 1) |
| 0.0b | 1 | (/.f64 1 x) |
Compiled 51 to 40 computations (21.6% saved)
| Inputs |
|---|
(neg.f64 (neg.f64 x)) |
(neg.f64 (log.f64 -1)) |
(neg.f64 (neg.f64 (log.f64 x))) |
(neg.f64 (neg.f64 (+.f64 x (log.f64 x)))) |
| Outputs |
|---|
(neg.f64 (neg.f64 (+.f64 x (log.f64 x)))) |
1 calls:
| 8.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 0.5b | 1 | x |
Compiled 19 to 13 computations (31.6% saved)
| Inputs |
|---|
(neg.f64 (neg.f64 x)) |
(neg.f64 (log.f64 -1)) |
(neg.f64 (neg.f64 (log.f64 x))) |
| Outputs |
|---|
(neg.f64 (neg.f64 (log.f64 x))) |
1 calls:
| 3.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 0.8b | 1 | x |
Compiled 13 to 10 computations (23.1% saved)
Total -1.4b remaining (-2.3%)
Threshold costs -1.4b (-2.3%)
| Inputs |
|---|
(neg.f64 (neg.f64 x)) |
(neg.f64 (log.f64 -1)) |
| Outputs |
|---|
(neg.f64 (neg.f64 x)) |
1 calls:
| 3.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 62.6b | 1 | x |
Compiled 9 to 7 computations (22.2% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 17 | 62 |
| 1× | done |
| 1× | saturated |
| Inputs |
|---|
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1))) |
(neg.f64 (neg.f64 (+.f64 x (log.f64 x)))) |
(neg.f64 (neg.f64 (log.f64 x))) |
(neg.f64 (neg.f64 x)) |
| Outputs |
|---|
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1))) |
(neg.f64 (neg.f64 (+.f64 x (log.f64 x)))) |
(neg.f64 (neg.f64 (log.f64 x))) |
(neg.f64 (neg.f64 x)) |
Compiled 24 to 19 computations (20.8% saved)
Compiled 21 to 15 computations (28.6% saved)
Loading profile data...