Time bar (total: 8.0s)
| 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 |
| 25% | 25% | 74.9% | 0.1% | 0% | 0% | 0% | 5 |
| 37.5% | 37.5% | 62.4% | 0.1% | 0% | 0% | 0% | 6 |
| 56.3% | 56.2% | 43.7% | 0.1% | 0% | 0% | 0% | 7 |
| 65.6% | 65.6% | 34.3% | 0.1% | 0% | 0% | 0% | 8 |
| 76.6% | 76.5% | 23.4% | 0.1% | 0% | 0% | 0% | 9 |
| 82% | 82% | 18% | 0.1% | 0% | 0% | 0% | 10 |
| 87.9% | 87.8% | 12.1% | 0.1% | 0% | 0% | 0% | 11 |
| 90.8% | 90.7% | 9.2% | 0.1% | 0% | 0% | 0% | 12 |
Compiled 8 to 6 computations (25% saved)
| 898.0ms | 8256× | body | 256 | valid |
| 2× | egg-herbie |
| 14158× | rational.json-simplify-41 |
| 1286× | rational.json-simplify-1 |
| 324× | rational.json-simplify-35 |
| 2× | swap-x-y |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 9 | 26 |
| 1 | 13 | 26 |
| 2 | 21 | 26 |
| 3 | 39 | 26 |
| 4 | 89 | 26 |
| 5 | 249 | 26 |
| 6 | 331 | 26 |
| 7 | 335 | 26 |
| 8 | 339 | 26 |
| 9 | 343 | 26 |
| 10 | 347 | 26 |
| 11 | 1236 | 26 |
| 12 | 1240 | 26 |
| 13 | 1244 | 26 |
| 14 | 1248 | 26 |
| 15 | 1252 | 26 |
| 16 | 1256 | 26 |
| 17 | 1745 | 26 |
| 18 | 1749 | 26 |
| 19 | 1753 | 26 |
| 20 | 1757 | 26 |
| 21 | 1761 | 26 |
| 22 | 1765 | 26 |
| 23 | 1769 | 26 |
| 24 | 1773 | 26 |
| 25 | 1777 | 26 |
| 26 | 1781 | 26 |
| 27 | 1785 | 26 |
| 28 | 1789 | 26 |
| 29 | 1793 | 26 |
| 30 | 1797 | 26 |
| 31 | 1801 | 26 |
| 32 | 1805 | 26 |
| 33 | 1809 | 26 |
| 34 | 1813 | 26 |
| 35 | 1817 | 26 |
| 36 | 1821 | 26 |
| 37 | 1825 | 26 |
| 38 | 1829 | 26 |
| 39 | 1833 | 26 |
| 40 | 1837 | 26 |
| 41 | 1841 | 26 |
| 42 | 1845 | 26 |
| 43 | 1849 | 26 |
| 44 | 1853 | 26 |
| 45 | 1857 | 26 |
| 46 | 1861 | 26 |
| 47 | 1865 | 26 |
| 48 | 1869 | 26 |
| 49 | 1873 | 26 |
| 50 | 1877 | 26 |
| 51 | 1881 | 26 |
| 52 | 1885 | 26 |
| 53 | 1889 | 26 |
| 54 | 1893 | 26 |
| 55 | 1897 | 26 |
| 56 | 1901 | 26 |
| 57 | 1905 | 26 |
| 58 | 1909 | 26 |
| 59 | 1913 | 26 |
| 60 | 1917 | 26 |
| 61 | 1921 | 26 |
| 62 | 1925 | 26 |
| 63 | 1929 | 26 |
| 64 | 1933 | 26 |
| 65 | 1937 | 26 |
| 66 | 1941 | 26 |
| 67 | 1945 | 26 |
| 68 | 1949 | 26 |
| 69 | 1953 | 26 |
| 70 | 1957 | 26 |
| 71 | 1961 | 26 |
| 72 | 1965 | 26 |
| 73 | 1969 | 26 |
| 74 | 1973 | 26 |
| 75 | 1977 | 26 |
| 76 | 1981 | 26 |
| 77 | 1985 | 26 |
| 78 | 1989 | 26 |
| 79 | 1993 | 26 |
| 80 | 1997 | 26 |
| 81 | 2001 | 26 |
| 82 | 2005 | 26 |
| 83 | 2009 | 26 |
| 84 | 2013 | 26 |
| 85 | 2017 | 26 |
| 86 | 2021 | 26 |
| 87 | 2025 | 26 |
| 88 | 2029 | 26 |
| 89 | 2033 | 26 |
| 90 | 2037 | 26 |
| 91 | 2041 | 26 |
| 92 | 2045 | 26 |
| 93 | 2049 | 26 |
| 94 | 2053 | 26 |
| 95 | 2057 | 26 |
| 96 | 2061 | 26 |
| 97 | 2065 | 26 |
| 98 | 2069 | 26 |
| 99 | 2073 | 26 |
| 100 | 2077 | 26 |
| 101 | 2081 | 26 |
| 102 | 2085 | 26 |
| 103 | 2089 | 26 |
| 104 | 2093 | 26 |
| 105 | 2097 | 26 |
| 106 | 2101 | 26 |
| 107 | 2105 | 26 |
| 108 | 2109 | 26 |
| 109 | 2113 | 26 |
| 110 | 2117 | 26 |
| 111 | 2121 | 26 |
| 112 | 2125 | 26 |
| 113 | 2129 | 26 |
| 114 | 2133 | 26 |
| 115 | 2137 | 26 |
| 116 | 2141 | 26 |
| 117 | 2145 | 26 |
| 118 | 2149 | 26 |
| 119 | 2153 | 26 |
| 120 | 2157 | 26 |
| 121 | 2161 | 26 |
| 122 | 2165 | 26 |
| 123 | 2169 | 26 |
| 124 | 2173 | 26 |
| 125 | 2177 | 26 |
| 126 | 2181 | 26 |
| 127 | 2185 | 26 |
| 128 | 2189 | 26 |
| 129 | 2193 | 26 |
| 130 | 2197 | 26 |
| 131 | 2201 | 26 |
| 132 | 2205 | 26 |
| 133 | 2209 | 26 |
| 134 | 2213 | 26 |
| 135 | 2217 | 26 |
| 136 | 2221 | 26 |
| 137 | 2225 | 26 |
| 138 | 2229 | 26 |
| 139 | 2233 | 26 |
| 140 | 2237 | 26 |
| 141 | 2241 | 26 |
| 142 | 2245 | 26 |
| 143 | 2249 | 26 |
| 144 | 2253 | 26 |
| 145 | 2257 | 26 |
| 146 | 2261 | 26 |
| 147 | 2265 | 26 |
| 148 | 2269 | 26 |
| 149 | 2273 | 26 |
| 150 | 2277 | 26 |
| 151 | 2281 | 26 |
| 152 | 2285 | 26 |
| 153 | 2289 | 26 |
| 154 | 2293 | 26 |
| 155 | 2297 | 26 |
| 156 | 2301 | 26 |
| 157 | 2305 | 26 |
| 158 | 2309 | 26 |
| 159 | 2313 | 26 |
| 160 | 2317 | 26 |
| 161 | 2321 | 26 |
| 0 | 2 | 2 |
| 1 | 2 | 2 |
| 1× | unsound |
| 1× | node limit |
| Inputs |
|---|
0 |
1 |
| Outputs |
|---|
0 |
1 |
0 |
| Inputs |
|---|
(/.f64 (+.f64 x y) 10) |
(/.f64 (+.f64 y x) 10) |
| Outputs |
|---|
(/.f64 (+.f64 x y) 10) |
(/.f64 (+.f64 y x) 10) |
(/.f64 (+.f64 x y) 10) |
(sort x y)
Compiled 9 to 7 computations (22.2% saved)
| 1× | egg-herbie |
| 16450× | rational.json-simplify-41 |
| 1286× | rational.json-simplify-1 |
| 324× | rational.json-simplify-35 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 12 | 13 |
| 2 | 20 | 13 |
| 3 | 38 | 13 |
| 4 | 86 | 13 |
| 5 | 252 | 13 |
| 6 | 337 | 13 |
| 7 | 341 | 13 |
| 8 | 345 | 13 |
| 9 | 349 | 13 |
| 10 | 353 | 13 |
| 11 | 1309 | 13 |
| 12 | 1313 | 13 |
| 13 | 1317 | 13 |
| 14 | 1321 | 13 |
| 15 | 1325 | 13 |
| 16 | 1329 | 13 |
| 17 | 1818 | 13 |
| 18 | 1822 | 13 |
| 19 | 1826 | 13 |
| 20 | 1830 | 13 |
| 21 | 1834 | 13 |
| 22 | 1838 | 13 |
| 23 | 1842 | 13 |
| 24 | 1846 | 13 |
| 25 | 1850 | 13 |
| 26 | 1854 | 13 |
| 27 | 1858 | 13 |
| 28 | 1862 | 13 |
| 29 | 1866 | 13 |
| 30 | 1870 | 13 |
| 31 | 1874 | 13 |
| 32 | 1878 | 13 |
| 33 | 1882 | 13 |
| 34 | 1886 | 13 |
| 35 | 1890 | 13 |
| 36 | 1894 | 13 |
| 37 | 1898 | 13 |
| 38 | 1902 | 13 |
| 39 | 1906 | 13 |
| 40 | 1910 | 13 |
| 41 | 1914 | 13 |
| 42 | 1918 | 13 |
| 43 | 1922 | 13 |
| 44 | 1926 | 13 |
| 45 | 1930 | 13 |
| 46 | 1934 | 13 |
| 47 | 1938 | 13 |
| 48 | 1942 | 13 |
| 49 | 1946 | 13 |
| 50 | 1950 | 13 |
| 51 | 1954 | 13 |
| 52 | 1958 | 13 |
| 53 | 1962 | 13 |
| 54 | 1966 | 13 |
| 55 | 1970 | 13 |
| 56 | 1974 | 13 |
| 57 | 1978 | 13 |
| 58 | 1982 | 13 |
| 59 | 1986 | 13 |
| 60 | 1990 | 13 |
| 61 | 1994 | 13 |
| 62 | 1998 | 13 |
| 63 | 2002 | 13 |
| 64 | 2006 | 13 |
| 65 | 2010 | 13 |
| 66 | 2014 | 13 |
| 67 | 2018 | 13 |
| 68 | 2022 | 13 |
| 69 | 2026 | 13 |
| 70 | 2030 | 13 |
| 71 | 2034 | 13 |
| 72 | 2038 | 13 |
| 73 | 2042 | 13 |
| 74 | 2046 | 13 |
| 75 | 2050 | 13 |
| 76 | 2054 | 13 |
| 77 | 2058 | 13 |
| 78 | 2062 | 13 |
| 79 | 2066 | 13 |
| 80 | 2070 | 13 |
| 81 | 2074 | 13 |
| 82 | 2078 | 13 |
| 83 | 2082 | 13 |
| 84 | 2086 | 13 |
| 85 | 2090 | 13 |
| 86 | 2094 | 13 |
| 87 | 2098 | 13 |
| 88 | 2102 | 13 |
| 89 | 2106 | 13 |
| 90 | 2110 | 13 |
| 91 | 2114 | 13 |
| 92 | 2118 | 13 |
| 93 | 2122 | 13 |
| 94 | 2126 | 13 |
| 95 | 2130 | 13 |
| 96 | 2134 | 13 |
| 97 | 2138 | 13 |
| 98 | 2142 | 13 |
| 99 | 2146 | 13 |
| 100 | 2150 | 13 |
| 101 | 2154 | 13 |
| 102 | 2158 | 13 |
| 103 | 2162 | 13 |
| 104 | 2166 | 13 |
| 105 | 2170 | 13 |
| 106 | 2174 | 13 |
| 107 | 2178 | 13 |
| 108 | 2182 | 13 |
| 109 | 2186 | 13 |
| 110 | 2190 | 13 |
| 111 | 2194 | 13 |
| 112 | 2198 | 13 |
| 113 | 2202 | 13 |
| 114 | 2206 | 13 |
| 115 | 2210 | 13 |
| 116 | 2214 | 13 |
| 117 | 2218 | 13 |
| 118 | 2222 | 13 |
| 119 | 2226 | 13 |
| 120 | 2230 | 13 |
| 121 | 2234 | 13 |
| 122 | 2238 | 13 |
| 123 | 2242 | 13 |
| 124 | 2246 | 13 |
| 125 | 2250 | 13 |
| 126 | 2254 | 13 |
| 127 | 2258 | 13 |
| 128 | 2262 | 13 |
| 129 | 2266 | 13 |
| 130 | 2270 | 13 |
| 131 | 2274 | 13 |
| 132 | 2278 | 13 |
| 133 | 2282 | 13 |
| 134 | 2286 | 13 |
| 135 | 2290 | 13 |
| 136 | 2294 | 13 |
| 137 | 2298 | 13 |
| 138 | 2302 | 13 |
| 139 | 2306 | 13 |
| 140 | 2310 | 13 |
| 141 | 2314 | 13 |
| 142 | 2318 | 13 |
| 143 | 2322 | 13 |
| 144 | 2326 | 13 |
| 145 | 2330 | 13 |
| 146 | 2334 | 13 |
| 147 | 2338 | 13 |
| 148 | 2342 | 13 |
| 149 | 2346 | 13 |
| 150 | 2350 | 13 |
| 151 | 2354 | 13 |
| 152 | 2358 | 13 |
| 153 | 2362 | 13 |
| 154 | 2366 | 13 |
| 155 | 2370 | 13 |
| 156 | 2374 | 13 |
| 157 | 2378 | 13 |
| 158 | 2382 | 13 |
| 159 | 2386 | 13 |
| 160 | 2390 | 13 |
| 161 | 2394 | 13 |
| 1× | node limit |
| Inputs |
|---|
(/.f64 (+.f64 x y) 10) |
| Outputs |
|---|
(/.f64 (+.f64 x y) 10) |
Compiled 7 to 5 computations (28.6% 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) 10) |
Compiled 7 to 5 computations (28.6% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (/.f64 (+.f64 x y) 10) |
Compiled 13 to 6 computations (53.8% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | inf | (/.f64 (+.f64 x y) 10) |
| 0.0ms | x | @ | -inf | (/.f64 (+.f64 x y) 10) |
| 0.0ms | y | @ | inf | (/.f64 (+.f64 x y) 10) |
| 0.0ms | x | @ | 0 | (/.f64 (+.f64 x y) 10) |
| 0.0ms | y | @ | -inf | (/.f64 (+.f64 x y) 10) |
| 1× | batch-egg-rewrite |
| 1376× | bool.json-1 |
| 1376× | bool.json-2 |
| 1340× | rational.json-simplify-35 |
| 1302× | rational.json-1 |
| 1302× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 73 | 13 |
| 2 | 224 | 13 |
| 3 | 503 | 13 |
| 4 | 1070 | 13 |
| 5 | 2464 | 13 |
| 6 | 5091 | 13 |
| 1× | node limit |
| Inputs |
|---|
(/.f64 (+.f64 x y) 10) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x y) 1/10) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x y) 1/10))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x y) 1/20) (*.f64 (+.f64 x y) 1/20))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x y) 1/10) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 x y) 1/10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 1/10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (+.f64 x y) 1/10))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 2) 1/20)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 x y) 1/20))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 1/5) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 4) 1/40)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/10 (+.f64 x y))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (+.f64 x y) 40))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 2/5) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 8) 1/80)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 x y) 1/5))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/20 (*.f64 (+.f64 x y) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/5 (*.f64 (+.f64 x y) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 1/20) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/40 (*.f64 (+.f64 x y) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 x y) 1/2) 1/5)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 x y) 2/5))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 x y) 40) 4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/80 (*.f64 (+.f64 x y) 8))))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 x y) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 x y) 1/10) (*.f64 (+.f64 x y) 1/10))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 x y) 1/10) (*.f64 (+.f64 x y) 1/10)))))) |
| 1× | egg-herbie |
| 3856× | rational.json-simplify-51 |
| 3430× | rational.json-simplify-49 |
| 3108× | rational.json-simplify-2 |
| 1638× | rational.json-simplify-41 |
| 1568× | rational.json-simplify-35 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 54 | 840 |
| 1 | 77 | 588 |
| 2 | 119 | 588 |
| 3 | 207 | 588 |
| 4 | 308 | 588 |
| 5 | 494 | 588 |
| 6 | 596 | 588 |
| 7 | 655 | 588 |
| 8 | 747 | 588 |
| 9 | 842 | 588 |
| 10 | 924 | 588 |
| 11 | 1950 | 588 |
| 12 | 2199 | 588 |
| 13 | 2387 | 588 |
| 14 | 2575 | 588 |
| 15 | 2740 | 588 |
| 16 | 2879 | 588 |
| 17 | 3415 | 588 |
| 18 | 3500 | 588 |
| 19 | 3567 | 588 |
| 20 | 3605 | 588 |
| 21 | 3625 | 588 |
| 22 | 3643 | 588 |
| 23 | 3746 | 588 |
| 24 | 3845 | 588 |
| 25 | 4168 | 588 |
| 26 | 4220 | 588 |
| 27 | 4273 | 588 |
| 28 | 4322 | 588 |
| 29 | 4366 | 588 |
| 30 | 4399 | 588 |
| 31 | 4581 | 588 |
| 32 | 4843 | 588 |
| 33 | 4992 | 588 |
| 34 | 5234 | 588 |
| 35 | 5409 | 588 |
| 36 | 5431 | 588 |
| 37 | 5453 | 588 |
| 38 | 5475 | 588 |
| 39 | 5497 | 588 |
| 40 | 5519 | 588 |
| 41 | 5541 | 588 |
| 42 | 5563 | 588 |
| 43 | 5585 | 588 |
| 44 | 5607 | 588 |
| 45 | 6723 | 588 |
| 46 | 6745 | 588 |
| 47 | 6767 | 588 |
| 48 | 6789 | 588 |
| 49 | 6811 | 588 |
| 50 | 6833 | 588 |
| 51 | 6855 | 588 |
| 52 | 6877 | 588 |
| 53 | 6899 | 588 |
| 54 | 6921 | 588 |
| 55 | 6943 | 588 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 1/10 y) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 x) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 x) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 x) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 y) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 y) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 (+.f64 x y) 1/10) 0) |
(+.f64 0 (*.f64 (+.f64 x y) 1/10)) |
(+.f64 (*.f64 (+.f64 x y) 1/20) (*.f64 (+.f64 x y) 1/20)) |
(-.f64 (*.f64 (+.f64 x y) 1/10) 0) |
(*.f64 (+.f64 x y) 1/10) |
(*.f64 (*.f64 (+.f64 x y) 1/10) 1) |
(*.f64 1 (*.f64 (+.f64 x y) 1/10)) |
(*.f64 (*.f64 (+.f64 x y) 2) 1/20) |
(*.f64 2 (*.f64 (+.f64 x y) 1/20)) |
(*.f64 (*.f64 (+.f64 x y) 1/5) 1/2) |
(*.f64 (*.f64 (+.f64 x y) 4) 1/40) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 4 (/.f64 (+.f64 x y) 40)) |
(*.f64 (*.f64 (+.f64 x y) 2/5) 1/4) |
(*.f64 (*.f64 (+.f64 x y) 8) 1/80) |
(*.f64 1/2 (*.f64 (+.f64 x y) 1/5)) |
(*.f64 1/20 (*.f64 (+.f64 x y) 2)) |
(*.f64 1/5 (*.f64 (+.f64 x y) 1/2)) |
(*.f64 (*.f64 (+.f64 x y) 1/20) 2) |
(*.f64 1/40 (*.f64 (+.f64 x y) 4)) |
(*.f64 (*.f64 (+.f64 x y) 1/2) 1/5) |
(*.f64 1/4 (*.f64 (+.f64 x y) 2/5)) |
(*.f64 (/.f64 (+.f64 x y) 40) 4) |
(*.f64 1/80 (*.f64 (+.f64 x y) 8)) |
| Outputs |
|---|
(*.f64 1/10 y) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/10 x) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/10 x) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/10 x) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/10 y) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/10 y) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 (+.f64 x y) 1/10) 0) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 0 (*.f64 (+.f64 x y) 1/10)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 (+.f64 x y) 1/20) (*.f64 (+.f64 x y) 1/20)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(-.f64 (*.f64 (+.f64 x y) 1/10) 0) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 (+.f64 x y) 1/10) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x y) 1/10) 1) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1 (*.f64 (+.f64 x y) 1/10)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x y) 2) 1/20) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 2 (*.f64 (+.f64 x y) 1/20)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x y) 1/5) 1/2) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x y) 4) 1/40) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/10 (+.f64 x y)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 4 (/.f64 (+.f64 x y) 40)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x y) 2/5) 1/4) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x y) 8) 1/80) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/2 (*.f64 (+.f64 x y) 1/5)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/20 (*.f64 (+.f64 x y) 2)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/5 (*.f64 (+.f64 x y) 1/2)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x y) 1/20) 2) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/40 (*.f64 (+.f64 x y) 4)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 (*.f64 (+.f64 x y) 1/2) 1/5) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/4 (*.f64 (+.f64 x y) 2/5)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 (/.f64 (+.f64 x y) 40) 4) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/80 (*.f64 (+.f64 x y) 8)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
Compiled 188 to 108 computations (42.6% saved)
5 alts after pruning (4 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 24 | 4 | 28 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 24 | 5 | 29 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (/.f64 (+.f64 x y) 10) |
| ▶ | 0.3b | (+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
| ▶ | 0.3b | (*.f64 (+.f64 x y) 1/10) |
| ▶ | 29.3b | (*.f64 1/10 y) |
| ▶ | 34.1b | (*.f64 1/10 x) |
Compiled 33 to 25 computations (24.2% saved)
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.3b | (*.f64 1/10 x) |
Compiled 7 to 5 computations (28.6% saved)
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | 0 | (*.f64 1/10 x) |
| 0.0ms | x | @ | inf | (*.f64 1/10 x) |
| 0.0ms | x | @ | -inf | (*.f64 1/10 x) |
| 1× | batch-egg-rewrite |
| 1622× | rational.json-simplify-35 |
| 1348× | bool.json-1 |
| 1348× | bool.json-2 |
| 1290× | rational.json-1 |
| 1290× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 5 | 7 |
| 1 | 51 | 7 |
| 2 | 154 | 7 |
| 3 | 326 | 7 |
| 4 | 651 | 7 |
| 5 | 1362 | 7 |
| 6 | 3149 | 7 |
| 7 | 5751 | 7 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 1/10 x) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/10 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/10 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 x 1/20) (*.f64 x 1/20))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/10 x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/10 x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 1/5) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 2/5) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 x 4/5) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 x 4/5)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 x 4/5))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 4/5)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 4/5)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 4/5))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/10 x)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/10 x) (*.f64 1/10 x))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/10 x) (*.f64 1/10 x)))))) |
| 1× | egg-herbie |
| 5664× | rational.json-simplify-43 |
| 2324× | rational.json-simplify-35 |
| 1246× | rational.json-simplify-2 |
| 858× | rational.json-simplify-1 |
| 642× | rational.json-simplify-51 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 38 | 84 |
| 1 | 88 | 84 |
| 2 | 158 | 84 |
| 3 | 362 | 84 |
| 4 | 864 | 84 |
| 5 | 2640 | 84 |
| 6 | 3459 | 84 |
| 7 | 3574 | 84 |
| 8 | 3639 | 84 |
| 9 | 3684 | 84 |
| 10 | 3726 | 84 |
| 11 | 3766 | 84 |
| 12 | 3837 | 84 |
| 13 | 3876 | 84 |
| 14 | 3915 | 84 |
| 15 | 3954 | 84 |
| 16 | 3993 | 84 |
| 17 | 4032 | 84 |
| 18 | 4071 | 84 |
| 19 | 4110 | 84 |
| 20 | 4149 | 84 |
| 21 | 4188 | 84 |
| 22 | 4227 | 84 |
| 23 | 4266 | 84 |
| 24 | 4305 | 84 |
| 25 | 4344 | 84 |
| 26 | 4383 | 84 |
| 27 | 4422 | 84 |
| 28 | 4461 | 84 |
| 29 | 4500 | 84 |
| 30 | 4539 | 84 |
| 31 | 4539 | 84 |
| 32 | 4578 | 84 |
| 33 | 4617 | 84 |
| 34 | 4656 | 84 |
| 35 | 4695 | 84 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 1/10 x) 0) |
(+.f64 0 (*.f64 1/10 x)) |
(+.f64 (*.f64 x 1/20) (*.f64 x 1/20)) |
(-.f64 (*.f64 1/10 x) 0) |
(/.f64 (*.f64 1/10 x) 1) |
(/.f64 (*.f64 x 1/5) 2) |
(/.f64 (*.f64 x 2/5) 4) |
(/.f64 (*.f64 x 4/5) 8) |
(/.f64 (*.f64 2 (*.f64 x 4/5)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 4/5))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 4/5)))) 64) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 4/5)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 4/5))))) 128) |
| Outputs |
|---|
(+.f64 (*.f64 1/10 x) 0) |
(*.f64 1/10 x) |
(+.f64 0 (*.f64 1/10 x)) |
(*.f64 1/10 x) |
(+.f64 (*.f64 x 1/20) (*.f64 x 1/20)) |
(*.f64 1/10 x) |
(-.f64 (*.f64 1/10 x) 0) |
(*.f64 1/10 x) |
(/.f64 (*.f64 1/10 x) 1) |
(*.f64 1/10 x) |
(/.f64 (*.f64 x 1/5) 2) |
(*.f64 1/10 x) |
(/.f64 (*.f64 x 2/5) 4) |
(*.f64 1/10 x) |
(/.f64 (*.f64 x 4/5) 8) |
(*.f64 1/10 x) |
(/.f64 (*.f64 2 (*.f64 x 4/5)) 16) |
(*.f64 1/10 x) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 x 4/5))) 32) |
(*.f64 1/10 x) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 4/5)))) 64) |
(*.f64 1/10 x) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 4/5)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 x 4/5))))) 128) |
(*.f64 1/10 x) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.3b | (*.f64 1/10 y) |
Compiled 7 to 5 computations (28.6% saved)
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (*.f64 1/10 y) |
| 0.0ms | y | @ | inf | (*.f64 1/10 y) |
| 0.0ms | y | @ | -inf | (*.f64 1/10 y) |
| 1× | batch-egg-rewrite |
| 1622× | rational.json-simplify-35 |
| 1348× | bool.json-1 |
| 1348× | bool.json-2 |
| 1290× | rational.json-1 |
| 1290× | rational.json-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 5 | 7 |
| 1 | 51 | 7 |
| 2 | 154 | 7 |
| 3 | 326 | 7 |
| 4 | 651 | 7 |
| 5 | 1362 | 7 |
| 6 | 3149 | 7 |
| 7 | 5751 | 7 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 1/10 y) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/10 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 1/10 y))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 y 1/20) (*.f64 y 1/20))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/10 y) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/10 y) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y 1/5) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y 2/5) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 y 4/5) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 y 4/5)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 y 4/5))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 4/5)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 4/5)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 4/5))))) 128)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/10 y)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/10 y) (*.f64 1/10 y))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/10 y) (*.f64 1/10 y)))))) |
| 1× | egg-herbie |
| 5664× | rational.json-simplify-43 |
| 2324× | rational.json-simplify-35 |
| 1246× | rational.json-simplify-2 |
| 858× | rational.json-simplify-1 |
| 642× | rational.json-simplify-51 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 38 | 84 |
| 1 | 88 | 84 |
| 2 | 158 | 84 |
| 3 | 362 | 84 |
| 4 | 864 | 84 |
| 5 | 2640 | 84 |
| 6 | 3459 | 84 |
| 7 | 3574 | 84 |
| 8 | 3639 | 84 |
| 9 | 3684 | 84 |
| 10 | 3726 | 84 |
| 11 | 3766 | 84 |
| 12 | 3837 | 84 |
| 13 | 3876 | 84 |
| 14 | 3915 | 84 |
| 15 | 3954 | 84 |
| 16 | 3993 | 84 |
| 17 | 4032 | 84 |
| 18 | 4071 | 84 |
| 19 | 4110 | 84 |
| 20 | 4149 | 84 |
| 21 | 4188 | 84 |
| 22 | 4227 | 84 |
| 23 | 4266 | 84 |
| 24 | 4305 | 84 |
| 25 | 4344 | 84 |
| 26 | 4383 | 84 |
| 27 | 4422 | 84 |
| 28 | 4461 | 84 |
| 29 | 4500 | 84 |
| 30 | 4539 | 84 |
| 31 | 4539 | 84 |
| 32 | 4578 | 84 |
| 33 | 4617 | 84 |
| 34 | 4656 | 84 |
| 35 | 4695 | 84 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 1/10 y) 0) |
(+.f64 0 (*.f64 1/10 y)) |
(+.f64 (*.f64 y 1/20) (*.f64 y 1/20)) |
(-.f64 (*.f64 1/10 y) 0) |
(/.f64 (*.f64 1/10 y) 1) |
(/.f64 (*.f64 y 1/5) 2) |
(/.f64 (*.f64 y 2/5) 4) |
(/.f64 (*.f64 y 4/5) 8) |
(/.f64 (*.f64 2 (*.f64 y 4/5)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y 4/5))) 32) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 4/5)))) 64) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 4/5)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 4/5))))) 128) |
| Outputs |
|---|
(+.f64 (*.f64 1/10 y) 0) |
(*.f64 1/10 y) |
(+.f64 0 (*.f64 1/10 y)) |
(*.f64 1/10 y) |
(+.f64 (*.f64 y 1/20) (*.f64 y 1/20)) |
(*.f64 1/10 y) |
(-.f64 (*.f64 1/10 y) 0) |
(*.f64 1/10 y) |
(/.f64 (*.f64 1/10 y) 1) |
(*.f64 1/10 y) |
(/.f64 (*.f64 y 1/5) 2) |
(*.f64 1/10 y) |
(/.f64 (*.f64 y 2/5) 4) |
(*.f64 1/10 y) |
(/.f64 (*.f64 y 4/5) 8) |
(*.f64 1/10 y) |
(/.f64 (*.f64 2 (*.f64 y 4/5)) 16) |
(*.f64 1/10 y) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 y 4/5))) 32) |
(*.f64 1/10 y) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 4/5)))) 64) |
(*.f64 1/10 y) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 4/5)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 y 4/5))))) 128) |
(*.f64 1/10 y) |
Found 1 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.3b | (*.f64 (+.f64 x y) 1/10) |
Compiled 13 to 6 computations (53.8% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | 0 | (*.f64 (+.f64 x y) 1/10) |
| 0.0ms | y | @ | -inf | (*.f64 (+.f64 x y) 1/10) |
| 0.0ms | x | @ | inf | (*.f64 (+.f64 x y) 1/10) |
| 0.0ms | x | @ | -inf | (*.f64 (+.f64 x y) 1/10) |
| 0.0ms | y | @ | inf | (*.f64 (+.f64 x y) 1/10) |
| 1× | batch-egg-rewrite |
| 1684× | bool.json-1 |
| 1684× | bool.json-2 |
| 1628× | rational.json-1 |
| 1628× | rational.json-2 |
| 1110× | rational.json-simplify-35 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 7 | 13 |
| 1 | 70 | 13 |
| 2 | 193 | 13 |
| 3 | 403 | 13 |
| 4 | 834 | 13 |
| 5 | 1809 | 13 |
| 6 | 4109 | 13 |
| 7 | 6832 | 13 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 (+.f64 x y) 1/10) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x y) 1/10) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (+.f64 x y) 1/10))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 x y) 1/20) (*.f64 (+.f64 x y) 1/20))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 (+.f64 x y) 1/10) 0)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) 1/10) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) 1/5) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) 2/5) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 x y) 4/5) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 x y) 4/5)) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 4/5))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 4/5))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 4/5)))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 (+.f64 x y) 1/10)))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 (+.f64 x y) 1/10) (*.f64 (+.f64 x y) 1/10))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (+.f64 x y) 1/10) (*.f64 (+.f64 x y) 1/10)))))) |
| 1× | egg-herbie |
| 5770× | rational.json-simplify-35 |
| 2032× | rational.json-simplify-49 |
| 1940× | rational.json-simplify-2 |
| 1062× | rational.json-simplify-1 |
| 762× | rational.json-simplify-41 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 40 | 593 |
| 1 | 88 | 419 |
| 2 | 155 | 419 |
| 3 | 350 | 419 |
| 4 | 796 | 419 |
| 5 | 2308 | 419 |
| 6 | 3059 | 419 |
| 7 | 3257 | 419 |
| 8 | 3314 | 419 |
| 9 | 3354 | 419 |
| 10 | 3392 | 419 |
| 11 | 3428 | 419 |
| 12 | 3464 | 419 |
| 13 | 3500 | 419 |
| 14 | 3536 | 419 |
| 15 | 3572 | 419 |
| 16 | 3608 | 419 |
| 17 | 3644 | 419 |
| 18 | 3680 | 419 |
| 19 | 3716 | 419 |
| 20 | 3752 | 419 |
| 21 | 5076 | 419 |
| 22 | 5236 | 419 |
| 23 | 5401 | 419 |
| 24 | 5404 | 419 |
| 25 | 5404 | 419 |
| 26 | 5908 | 419 |
| 27 | 6053 | 419 |
| 28 | 6198 | 419 |
| 29 | 6343 | 419 |
| 30 | 6488 | 419 |
| 31 | 6633 | 419 |
| 32 | 6778 | 419 |
| 33 | 6923 | 419 |
| 34 | 7068 | 419 |
| 35 | 7068 | 419 |
| 36 | 7068 | 419 |
| 37 | 7068 | 419 |
| 38 | 7213 | 419 |
| 39 | 7358 | 419 |
| 40 | 7503 | 419 |
| 41 | 7648 | 419 |
| 42 | 7793 | 419 |
| 43 | 7938 | 419 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 1/10 y) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 x) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 x) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 x) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 y) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 y) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(+.f64 (*.f64 (+.f64 x y) 1/10) 0) |
(+.f64 0 (*.f64 (+.f64 x y) 1/10)) |
(+.f64 (*.f64 (+.f64 x y) 1/20) (*.f64 (+.f64 x y) 1/20)) |
(-.f64 (*.f64 (+.f64 x y) 1/10) 0) |
(/.f64 (*.f64 (+.f64 x y) 1/10) 1) |
(/.f64 (*.f64 (+.f64 x y) 1/5) 2) |
(/.f64 (*.f64 (+.f64 x y) 2/5) 4) |
(/.f64 (*.f64 (+.f64 x y) 4/5) 8) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x y) 4/5)) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 4/5))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 4/5))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 4/5)))) 64) |
| Outputs |
|---|
(*.f64 1/10 y) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/10 x) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/10 x) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/10 x) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/10 y) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/10 y) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 (+.f64 x y) 1/10) 0) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 0 (*.f64 (+.f64 x y) 1/10)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(+.f64 (*.f64 (+.f64 x y) 1/20) (*.f64 (+.f64 x y) 1/20)) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(-.f64 (*.f64 (+.f64 x y) 1/10) 0) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(/.f64 (*.f64 (+.f64 x y) 1/10) 1) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(/.f64 (*.f64 (+.f64 x y) 1/5) 2) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(/.f64 (*.f64 (+.f64 x y) 2/5) 4) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(/.f64 (*.f64 (+.f64 x y) 4/5) 8) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 x y) 4/5)) 16) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 4/5))) 32) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 4/5))) (*.f64 2 (*.f64 2 (*.f64 (+.f64 x y) 4/5)))) 64) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
(*.f64 1/10 (+.f64 y x)) |
Found 3 expressions with local error:
| New | Error | Program |
|---|---|---|
| ✓ | 0.0b | (+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
| 0.3b | (*.f64 1/10 y) | |
| 0.3b | (*.f64 1/10 x) |
Compiled 18 to 12 computations (33.3% saved)
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | y | @ | 0 | (+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
| 0.0ms | y | @ | inf | (+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
| 0.0ms | x | @ | 0 | (+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
| 0.0ms | x | @ | inf | (+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
| 0.0ms | y | @ | -inf | (+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
| 1× | batch-egg-rewrite |
| 1868× | bool.json-1 |
| 1868× | bool.json-2 |
| 1220× | rational.json-simplify-35 |
| 1196× | rational.json-1 |
| 1196× | rational.json-2 |
Useful iterations: 1 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 8 | 19 |
| 1 | 80 | 13 |
| 2 | 217 | 13 |
| 3 | 466 | 13 |
| 4 | 964 | 13 |
| 5 | 2123 | 13 |
| 6 | 4484 | 13 |
| 7 | 7432 | 13 |
| 1× | node limit |
| Inputs |
|---|
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
| Outputs |
|---|
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (*.f64 1/10 (+.f64 y x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/10 (+.f64 y x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 1/10 (+.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 1/10 (+.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (*.f64 (+.f64 y x) 1/20))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (+.f64 (*.f64 y 1/20) (*.f64 x 1/20)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) 1/5) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 y x) 1/10)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 4 (/.f64 (*.f64 (+.f64 y x) 1/5) 8))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) 2/5) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/5 (/.f64 (+.f64 y x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/5 (+.f64 (*.f64 y 1/2) (*.f64 x 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 2 (+.f64 y x)) 1/20)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (*.f64 (+.f64 y x) 1/5))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/2 (+.f64 (*.f64 y 1/5) (*.f64 x 1/5)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (+.f64 y x) 1/20) 2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/20 (*.f64 2 (+.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/20 (+.f64 (+.f64 x x) (+.f64 y y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1/4 (*.f64 (+.f64 y x) 2/5))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 y x) 2) 1/5)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (+.f64 y x) 1/5) 8) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 1/10 (+.f64 y x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) 1/5) 2)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 y x) 2/5) 4)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 (+.f64 y x) 2/5)) 8)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) 2/5))) 16)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) 2/5)))) 32)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) 2/5)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) 2/5))))) 64)))) (#(struct:change #<rule egg-rr> (2) ((x not (not (*.f64 1/10 (+.f64 y x))))))) (#(struct:change #<rule egg-rr> (2) ((x and (*.f64 1/10 (+.f64 y x)) (*.f64 1/10 (+.f64 y x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 1/10 (+.f64 y x)) (*.f64 1/10 (+.f64 y x))))))) |
| 1× | egg-herbie |
| 5664× | rational.json-simplify-51 |
| 3374× | rational.json-simplify-35 |
| 2042× | rational.json-simplify-49 |
| 1606× | rational.json-simplify-1 |
| 1480× | rational.json-simplify-2 |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 71 | 406 |
| 1 | 140 | 406 |
| 2 | 275 | 406 |
| 3 | 611 | 406 |
| 4 | 1814 | 406 |
| 5 | 3236 | 406 |
| 6 | 3361 | 406 |
| 7 | 3435 | 406 |
| 8 | 3495 | 406 |
| 9 | 3548 | 406 |
| 10 | 3601 | 406 |
| 11 | 4224 | 406 |
| 12 | 4289 | 406 |
| 13 | 4353 | 406 |
| 14 | 4407 | 406 |
| 15 | 4460 | 406 |
| 16 | 4513 | 406 |
| 17 | 4566 | 406 |
| 18 | 4619 | 406 |
| 19 | 4672 | 406 |
| 20 | 5947 | 406 |
| 21 | 6026 | 406 |
| 22 | 6096 | 406 |
| 23 | 6163 | 406 |
| 24 | 6229 | 406 |
| 25 | 6295 | 406 |
| 26 | 6602 | 406 |
| 27 | 6602 | 406 |
| 28 | 6668 | 406 |
| 29 | 6734 | 406 |
| 30 | 6800 | 406 |
| 31 | 6866 | 406 |
| 32 | 6932 | 406 |
| 33 | 6998 | 406 |
| 34 | 7064 | 406 |
| 1× | node limit |
| Inputs |
|---|
(*.f64 1/10 x) |
(*.f64 1/10 y) |
(*.f64 1/10 y) |
(*.f64 1/10 y) |
(*.f64 1/10 x) |
(*.f64 1/10 x) |
(-.f64 (*.f64 1/10 (+.f64 y x)) 0) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 (*.f64 1/10 (+.f64 y x)) 1) |
(*.f64 1 (*.f64 1/10 (+.f64 y x))) |
(*.f64 2 (*.f64 (+.f64 y x) 1/20)) |
(*.f64 2 (+.f64 (*.f64 y 1/20) (*.f64 x 1/20))) |
(*.f64 (*.f64 (+.f64 y x) 1/5) 1/2) |
(*.f64 (+.f64 y x) 1/10) |
(*.f64 4 (/.f64 (*.f64 (+.f64 y x) 1/5) 8)) |
(*.f64 (*.f64 (+.f64 y x) 2/5) 1/4) |
(*.f64 1/5 (/.f64 (+.f64 y x) 2)) |
(*.f64 1/5 (+.f64 (*.f64 y 1/2) (*.f64 x 1/2))) |
(*.f64 (*.f64 2 (+.f64 y x)) 1/20) |
(*.f64 1/2 (*.f64 (+.f64 y x) 1/5)) |
(*.f64 1/2 (+.f64 (*.f64 y 1/5) (*.f64 x 1/5))) |
(*.f64 (*.f64 (+.f64 y x) 1/20) 2) |
(*.f64 1/20 (*.f64 2 (+.f64 y x))) |
(*.f64 1/20 (+.f64 (+.f64 x x) (+.f64 y y))) |
(*.f64 1/4 (*.f64 (+.f64 y x) 2/5)) |
(*.f64 (/.f64 (+.f64 y x) 2) 1/5) |
(*.f64 (/.f64 (*.f64 (+.f64 y x) 1/5) 8) 4) |
(/.f64 (*.f64 1/10 (+.f64 y x)) 1) |
(/.f64 (*.f64 (+.f64 y x) 1/5) 2) |
(/.f64 (*.f64 (+.f64 y x) 2/5) 4) |
(/.f64 (*.f64 2 (*.f64 (+.f64 y x) 2/5)) 8) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) 2/5))) 16) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) 2/5)))) 32) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) 2/5)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) 2/5))))) 64) |
| Outputs |
|---|
(*.f64 1/10 x) |
(*.f64 1/10 y) |
(*.f64 1/10 y) |
(*.f64 1/10 y) |
(*.f64 1/10 x) |
(*.f64 1/10 x) |
(-.f64 (*.f64 1/10 (+.f64 y x)) 0) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 1/10 (+.f64 y x)) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 (*.f64 1/10 (+.f64 y x)) 1) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 1 (*.f64 1/10 (+.f64 y x))) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 2 (*.f64 (+.f64 y x) 1/20)) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 2 (+.f64 (*.f64 y 1/20) (*.f64 x 1/20))) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 (*.f64 (+.f64 y x) 1/5) 1/2) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 (+.f64 y x) 1/10) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 4 (/.f64 (*.f64 (+.f64 y x) 1/5) 8)) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 (*.f64 (+.f64 y x) 2/5) 1/4) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 1/5 (/.f64 (+.f64 y x) 2)) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 1/5 (+.f64 (*.f64 y 1/2) (*.f64 x 1/2))) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 (*.f64 2 (+.f64 y x)) 1/20) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 1/2 (*.f64 (+.f64 y x) 1/5)) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 1/2 (+.f64 (*.f64 y 1/5) (*.f64 x 1/5))) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 (*.f64 (+.f64 y x) 1/20) 2) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 1/20 (*.f64 2 (+.f64 y x))) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 1/20 (+.f64 (+.f64 x x) (+.f64 y y))) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 1/4 (*.f64 (+.f64 y x) 2/5)) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 (/.f64 (+.f64 y x) 2) 1/5) |
(*.f64 1/10 (+.f64 x y)) |
(*.f64 (/.f64 (*.f64 (+.f64 y x) 1/5) 8) 4) |
(*.f64 1/10 (+.f64 x y)) |
(/.f64 (*.f64 1/10 (+.f64 y x)) 1) |
(*.f64 1/10 (+.f64 x y)) |
(/.f64 (*.f64 (+.f64 y x) 1/5) 2) |
(*.f64 1/10 (+.f64 x y)) |
(/.f64 (*.f64 (+.f64 y x) 2/5) 4) |
(*.f64 1/10 (+.f64 x y)) |
(/.f64 (*.f64 2 (*.f64 (+.f64 y x) 2/5)) 8) |
(*.f64 1/10 (+.f64 x y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) 2/5))) 16) |
(*.f64 1/10 (+.f64 x y)) |
(/.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) 2/5)))) 32) |
(*.f64 1/10 (+.f64 x y)) |
(/.f64 (+.f64 (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) 2/5)))) (*.f64 2 (*.f64 2 (*.f64 2 (*.f64 (+.f64 y x) 2/5))))) 64) |
(*.f64 1/10 (+.f64 x y)) |
Compiled 842 to 622 computations (26.1% saved)
5 alts after pruning (0 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 98 | 0 | 98 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 4 | 4 |
| Total | 98 | 5 | 103 |
| Status | Error | Program |
|---|---|---|
| ✓ | 0.0b | (/.f64 (+.f64 x y) 10) |
| ✓ | 0.3b | (+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
| ✓ | 0.3b | (*.f64 (+.f64 x y) 1/10) |
| ✓ | 29.3b | (*.f64 1/10 y) |
| ✓ | 34.1b | (*.f64 1/10 x) |
Compiled 33 to 25 computations (24.2% saved)
| Inputs |
|---|
(*.f64 1/10 x) |
(*.f64 1/10 y) |
(*.f64 (+.f64 x y) 1/10) |
(/.f64 (+.f64 x y) 10) |
(+.f64 (*.f64 1/10 y) (*.f64 1/10 x)) |
| Outputs |
|---|
(/.f64 (+.f64 x y) 10) |
4 calls:
| 5.0ms | (/.f64 (+.f64 x y) 10) |
| 4.0ms | (+.f64 x y) |
| 4.0ms | x |
| 4.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 0.0b | 1 | x |
| 0.0b | 1 | y |
| 0.0b | 1 | (/.f64 (+.f64 x y) 10) |
| 0.0b | 1 | (+.f64 x y) |
Compiled 43 to 28 computations (34.9% saved)
| Inputs |
|---|
(*.f64 1/10 x) |
(*.f64 1/10 y) |
(*.f64 (+.f64 x y) 1/10) |
| Outputs |
|---|
(*.f64 (+.f64 x y) 1/10) |
3 calls:
| 4.0ms | (+.f64 x y) |
| 3.0ms | y |
| 3.0ms | x |
| Error | Segments | Branch |
|---|---|---|
| 0.3b | 1 | x |
| 0.3b | 1 | y |
| 0.3b | 1 | (+.f64 x y) |
Compiled 24 to 16 computations (33.3% saved)
Total -51.9b remaining (-524.1%)
Threshold costs -51.9b (-524.1%)
| Inputs |
|---|
(*.f64 1/10 x) |
(*.f64 1/10 y) |
| Outputs |
|---|
(*.f64 1/10 x) |
(*.f64 1/10 y) |
(*.f64 1/10 x) |
(*.f64 1/10 y) |
2 calls:
| 14.0ms | x |
| 13.0ms | y |
| Error | Segments | Branch |
|---|---|---|
| 10.2b | 4 | x |
| 9.9b | 4 | y |
Compiled 14 to 10 computations (28.6% saved)
| 3× | binary-search |
| Time | Left | Right |
|---|---|---|
| 13.0ms | 1.556634340711798e-51 | 2.299152554230941e-43 |
| 16.0ms | 5.7523289151211725e-192 | 7.0921424088911356e-180 |
| 11.0ms | 1.077161535714947e-230 | 1.2472076250641831e-229 |
| 35.0ms | 400× | body | 256 | valid |
Compiled 312 to 259 computations (17% saved)
| 1× | egg-herbie |
Useful iterations: 0 (0.0ms)
| Iter | Nodes | Cost |
|---|---|---|
| 0 | 23 | 88 |
| 1× | done |
| 1× | saturated |
| Inputs |
|---|
(/.f64 (+.f64 x y) 10) |
(*.f64 (+.f64 x y) 1/10) |
(if (<=.f64 y 6664173656566515/54624374234151766213262145869588543874209860176411919649966143993970993052202041929903572589539772749766081827581405105732721063150545838738336612780694159737611530891378807262929537318189580490579681412185183043434010607923007170897214483464192) (*.f64 1/10 x) (if (<=.f64 y 7448434626215959/1284212866588958375791257295625031412487875928423626430541572486100764686107685747586344369208395617975337638880902885183842634826705030240021439152991181848133599529084092919480386659639727225896311829037056) (*.f64 1/10 y) (if (<=.f64 y 6829486688100709/100433627766186892221372630771322662657637687111424552206336) (*.f64 1/10 x) (*.f64 1/10 y)))) |
(*.f64 1/10 x) |
| Outputs |
|---|
(/.f64 (+.f64 x y) 10) |
(*.f64 (+.f64 x y) 1/10) |
(if (<=.f64 y 6664173656566515/54624374234151766213262145869588543874209860176411919649966143993970993052202041929903572589539772749766081827581405105732721063150545838738336612780694159737611530891378807262929537318189580490579681412185183043434010607923007170897214483464192) (*.f64 1/10 x) (if (<=.f64 y 7448434626215959/1284212866588958375791257295625031412487875928423626430541572486100764686107685747586344369208395617975337638880902885183842634826705030240021439152991181848133599529084092919480386659639727225896311829037056) (*.f64 1/10 y) (if (<=.f64 y 6829486688100709/100433627766186892221372630771322662657637687111424552206336) (*.f64 1/10 x) (*.f64 1/10 y)))) |
(*.f64 1/10 x) |
Compiled 45 to 33 computations (26.7% saved)
(sort x y)
Compiled 53 to 36 computations (32.1% saved)
Loading profile data...