
Time bar (total: 1.3s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 1 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 3 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 4 |
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 5 |
| 50% | 49.9% | 49.9% | 0.2% | 0% | 0% | 0% | 6 |
| 50% | 49.9% | 49.9% | 0.2% | 0% | 0% | 0% | 7 |
| 50% | 49.9% | 49.9% | 0.2% | 0% | 0% | 0% | 8 |
| 50% | 49.9% | 49.9% | 0.2% | 0% | 0% | 0% | 9 |
| 50% | 49.9% | 49.9% | 0.2% | 0% | 0% | 0% | 10 |
| 75% | 74.8% | 24.9% | 0.2% | 0% | 0% | 0% | 11 |
| 75% | 74.8% | 24.9% | 0.2% | 0% | 0% | 0% | 12 |
Compiled 11 to 11 computations (0% saved)
| 486.0ms | 8 256× | 0 | valid |
ival-mult: 136.0ms (56.3% of total)ival-div: 59.0ms (24.4% of total)ival-sub: 36.0ms (14.9% of total)ival-true: 7.0ms (2.9% of total)ival-assert: 4.0ms (1.7% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 18 | 0 | - | 1 | (7.15495615866032e-141 2.681759982154505e-173 1.0320805788701206e-209 -4.1094033533143593e-134 5.067209178507548e-48) | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
| 1 | 0 | - | 0 | - | (-.f64 (*.f64 x y) (*.f64 z t)) |
| 0 | 0 | - | 0 | - | a |
| 0 | 0 | - | 0 | - | t |
| 0 | 0 | - | 0 | - | (*.f64 z t) |
| 0 | 0 | - | 0 | - | z |
| 0 | 0 | - | 0 | - | (*.f64 x y) |
| 0 | 0 | - | 0 | - | y |
| 0 | 0 | - | 0 | - | x |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
/.f64 | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) | o/n | 17 | 0 |
| ↳ | (*.f64 x y) | overflow | 30 | |
| ↳ | (*.f64 z t) | overflow | 32 | |
| ↳ | (-.f64 (*.f64 x y) (*.f64 z t)) | overflow | 59 | |
-.f64 | (-.f64 (*.f64 x y) (*.f64 z t)) | nan-rescue | 1 | 0 |
| ↳ | (*.f64 x y) | overflow | 30 | |
| ↳ | (*.f64 z t) | overflow | 32 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 18 | 1 |
| - | 0 | 237 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 18 | 0 | 1 |
| - | 0 | 0 | 237 |
| number | freq |
|---|---|
| 0 | 238 |
| 1 | 18 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 34.0ms | 512× | 0 | valid |
Compiled 94 to 40 computations (57.4% saved)
ival-mult: 8.0ms (49.2% of total)ival-sub: 4.0ms (24.6% of total)ival-div: 3.0ms (18.5% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 1× | egg-herbie |
| Inputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
| Outputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
Compiled 9 to 9 computations (0% saved)
Compiled 0 to 5 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 93.0% | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
Compiled 9 to 9 computations (0% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 z t) | |
| cost-diff | 0 | (*.f64 x y) | |
| cost-diff | 0 | (-.f64 (*.f64 x y) (*.f64 z t)) | |
| cost-diff | 0 | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
| Inputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
x |
y |
(*.f64 z t) |
z |
t |
a |
| Outputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
x |
y |
(*.f64 z t) |
z |
t |
a |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 z t) | |
| accuracy | 0.0 | (*.f64 x y) | |
| accuracy | 0.19921875000000003 | (-.f64 (*.f64 x y) (*.f64 z t)) | |
| accuracy | 4.2384330394466145 | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
| 17.0ms | 256× | 0 | valid |
Compiled 56 to 20 computations (64.3% saved)
ival-mult: 4.0ms (60.3% of total)ival-div: 2.0ms (30.1% of total)ival-sub: 1.0ms (15.1% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
(*.f64 z t) |
| Outputs |
|---|
(* -1 (/ (* t z) a)) |
(+ (* -1 (/ (* t z) a)) (/ (* x y) a)) |
(* -1 (* t z)) |
(- (* x y) (* t z)) |
(* x y) |
(/ (* x y) a) |
(* x (+ (* -1 (/ (* t z) (* a x))) (/ y a))) |
(* x (+ y (* -1 (/ (* t z) x)))) |
(* -1 (* x (+ (* -1 (/ y a)) (/ (* t z) (* a x))))) |
(* -1 (* x (+ (* -1 y) (/ (* t z) x)))) |
(* y (+ (* -1 (/ (* t z) (* a y))) (/ x a))) |
(* y (+ x (* -1 (/ (* t z) y)))) |
(* -1 (* y (+ (* -1 (/ x a)) (/ (* t z) (* a y))))) |
(* -1 (* y (+ (* -1 x) (/ (* t z) y)))) |
(+ (* -1 (* t z)) (* x y)) |
(* t z) |
(* z (+ (* -1 (/ t a)) (/ (* x y) (* a z)))) |
(* z (- (/ (* x y) z) t)) |
(* -1 (* z (+ (* -1 (/ (* x y) (* a z))) (/ t a)))) |
(* -1 (* z (- (* -1 (/ (* x y) z)) (* -1 t)))) |
(* t (+ (* -1 (/ z a)) (/ (* x y) (* a t)))) |
(* t (- (/ (* x y) t) z)) |
(* -1 (* t (+ (* -1 (/ (* x y) (* a t))) (/ z a)))) |
(* -1 (* t (- (* -1 (/ (* x y) t)) (* -1 z)))) |
(/ (- (* x y) (* t z)) a) |
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | a | @ | 0 | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) (* z t)) |
| 1.0ms | y | @ | -inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) (* z t)) |
| 1.0ms | x | @ | -inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) (* z t)) |
| 1.0ms | x | @ | 0 | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) (* z t)) |
| 1.0ms | z | @ | -inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) (* z t)) |
| 1× | egg-herbie |
| Inputs |
|---|
(* -1 (/ (* t z) a)) |
(+ (* -1 (/ (* t z) a)) (/ (* x y) a)) |
(* -1 (* t z)) |
(- (* x y) (* t z)) |
(* x y) |
(/ (* x y) a) |
(* x (+ (* -1 (/ (* t z) (* a x))) (/ y a))) |
(* x (+ y (* -1 (/ (* t z) x)))) |
(* -1 (* x (+ (* -1 (/ y a)) (/ (* t z) (* a x))))) |
(* -1 (* x (+ (* -1 y) (/ (* t z) x)))) |
(* y (+ (* -1 (/ (* t z) (* a y))) (/ x a))) |
(* y (+ x (* -1 (/ (* t z) y)))) |
(* -1 (* y (+ (* -1 (/ x a)) (/ (* t z) (* a y))))) |
(* -1 (* y (+ (* -1 x) (/ (* t z) y)))) |
(+ (* -1 (* t z)) (* x y)) |
(* t z) |
(* z (+ (* -1 (/ t a)) (/ (* x y) (* a z)))) |
(* z (- (/ (* x y) z) t)) |
(* -1 (* z (+ (* -1 (/ (* x y) (* a z))) (/ t a)))) |
(* -1 (* z (- (* -1 (/ (* x y) z)) (* -1 t)))) |
(* t (+ (* -1 (/ z a)) (/ (* x y) (* a t)))) |
(* t (- (/ (* x y) t) z)) |
(* -1 (* t (+ (* -1 (/ (* x y) (* a t))) (/ z a)))) |
(* -1 (* t (- (* -1 (/ (* x y) t)) (* -1 z)))) |
(/ (- (* x y) (* t z)) a) |
| Outputs |
|---|
(* -1 (/ (* t z) a)) |
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
(+ (* -1 (/ (* t z) a)) (/ (* x y) a)) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(* -1 (* t z)) |
(*.f64 x y) |
(- (* x y) (* t z)) |
(*.f64 z t) |
| Inputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
(*.f64 z t) |
| Outputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
(*.f64 z t) |
Compiled 98 to 19 computations (80.6% saved)
4 alts after pruning (3 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 5 | 3 | 8 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 5 | 4 | 9 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 93.0% | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
| ▶ | 9.8% | (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 z t)) a) |
| ▶ | 51.6% | (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) |
| ▶ | 13.3% | #s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
Compiled 52 to 44 computations (15.4% saved)
| 1× | egg-herbie |
Found 10 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 z t) | |
| cost-diff | 0 | #s(approx (- (* x y) (* z t)) (*.f64 z t)) | |
| cost-diff | 0 | (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 z t)) a) | |
| cost-diff | 0 | (*.f64 x y) | |
| cost-diff | 0 | #s(approx (- (* x y) (* z t)) (*.f64 x y)) | |
| cost-diff | 0 | (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) | |
| cost-diff | 0 | (*.f64 z t) | |
| cost-diff | 0 | (*.f64 x y) | |
| cost-diff | 0 | (-.f64 (*.f64 x y) (*.f64 z t)) | |
| cost-diff | 0 | #s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
| Inputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
x |
y |
(*.f64 z t) |
z |
t |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) |
#s(approx (- (* x y) (* z t)) (*.f64 x y)) |
(*.f64 x y) |
x |
y |
a |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 z t)) a) |
#s(approx (- (* x y) (* z t)) (*.f64 z t)) |
(*.f64 z t) |
z |
t |
a |
| Outputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
x |
y |
(*.f64 z t) |
z |
t |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) |
#s(approx (- (* x y) (* z t)) (*.f64 x y)) |
(*.f64 x y) |
x |
y |
a |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 z t)) a) |
#s(approx (- (* x y) (* z t)) (*.f64 z t)) |
(*.f64 z t) |
z |
t |
a |
Found 10 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 z t) | |
| accuracy | 4.2384330394466145 | (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 z t)) a) | |
| accuracy | 62.14702648969096 | #s(approx (- (* x y) (* z t)) (*.f64 z t)) | |
| accuracy | 0.0 | (*.f64 x y) | |
| accuracy | 4.2384330394466145 | (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) | |
| accuracy | 31.982035205140612 | #s(approx (- (* x y) (* z t)) (*.f64 x y)) | |
| accuracy | 0.0 | (*.f64 z t) | |
| accuracy | 0.0 | (*.f64 x y) | |
| accuracy | 0.19921875000000003 | (-.f64 (*.f64 x y) (*.f64 z t)) | |
| accuracy | 55.46545875102174 | #s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
| 21.0ms | 256× | 0 | valid |
Compiled 166 to 28 computations (83.1% saved)
ival-mult: 4.0ms (59.4% of total)ival-div: 2.0ms (29.7% of total)ival-sub: 1.0ms (14.8% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
(*.f64 z t) |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) |
#s(approx (- (* x y) (* z t)) (*.f64 x y)) |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 z t)) a) |
#s(approx (- (* x y) (* z t)) (*.f64 z t)) |
| Outputs |
|---|
(* -1 (/ (* t z) a)) |
(+ (* -1 (/ (* t z) a)) (/ (* x y) a)) |
(* -1 (* t z)) |
(- (* x y) (* t z)) |
(* x y) |
(/ (* x y) a) |
(* x (+ (* -1 (/ (* t z) (* a x))) (/ y a))) |
(* x (+ y (* -1 (/ (* t z) x)))) |
(* -1 (* x (+ (* -1 (/ y a)) (/ (* t z) (* a x))))) |
(* -1 (* x (+ (* -1 y) (/ (* t z) x)))) |
(* y (+ (* -1 (/ (* t z) (* a y))) (/ x a))) |
(* y (+ x (* -1 (/ (* t z) y)))) |
(* -1 (* y (+ (* -1 (/ x a)) (/ (* t z) (* a y))))) |
(* -1 (* y (+ (* -1 x) (/ (* t z) y)))) |
(+ (* -1 (* t z)) (* x y)) |
(* t z) |
(* z (+ (* -1 (/ t a)) (/ (* x y) (* a z)))) |
(* z (- (/ (* x y) z) t)) |
(* -1 (* z (+ (* -1 (/ (* x y) (* a z))) (/ t a)))) |
(* -1 (* z (- (* -1 (/ (* x y) z)) (* -1 t)))) |
(* t (+ (* -1 (/ z a)) (/ (* x y) (* a t)))) |
(* t (- (/ (* x y) t) z)) |
(* -1 (* t (+ (* -1 (/ (* x y) (* a t))) (/ z a)))) |
(* -1 (* t (- (* -1 (/ (* x y) t)) (* -1 z)))) |
(/ (- (* x y) (* t z)) a) |
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | -inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) (* z t) (/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (/ (- (* x y) (* z t)) a) (- (* x y) (* z t))) |
| 1.0ms | z | @ | -inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) (* z t) (/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (/ (- (* x y) (* z t)) a) (- (* x y) (* z t))) |
| 1.0ms | y | @ | -inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) (* z t) (/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (/ (- (* x y) (* z t)) a) (- (* x y) (* z t))) |
| 1.0ms | t | @ | -inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) (* z t) (/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (/ (- (* x y) (* z t)) a) (- (* x y) (* z t))) |
| 1.0ms | a | @ | -inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) (* z t) (/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (/ (- (* x y) (* z t)) a) (- (* x y) (* z t))) |
| 1× | egg-herbie |
| Inputs |
|---|
(* -1 (/ (* t z) a)) |
(+ (* -1 (/ (* t z) a)) (/ (* x y) a)) |
(* -1 (* t z)) |
(- (* x y) (* t z)) |
(* x y) |
(/ (* x y) a) |
(* x (+ (* -1 (/ (* t z) (* a x))) (/ y a))) |
(* x (+ y (* -1 (/ (* t z) x)))) |
(* -1 (* x (+ (* -1 (/ y a)) (/ (* t z) (* a x))))) |
(* -1 (* x (+ (* -1 y) (/ (* t z) x)))) |
(* y (+ (* -1 (/ (* t z) (* a y))) (/ x a))) |
(* y (+ x (* -1 (/ (* t z) y)))) |
(* -1 (* y (+ (* -1 (/ x a)) (/ (* t z) (* a y))))) |
(* -1 (* y (+ (* -1 x) (/ (* t z) y)))) |
(+ (* -1 (* t z)) (* x y)) |
(* t z) |
(* z (+ (* -1 (/ t a)) (/ (* x y) (* a z)))) |
(* z (- (/ (* x y) z) t)) |
(* -1 (* z (+ (* -1 (/ (* x y) (* a z))) (/ t a)))) |
(* -1 (* z (- (* -1 (/ (* x y) z)) (* -1 t)))) |
(* t (+ (* -1 (/ z a)) (/ (* x y) (* a t)))) |
(* t (- (/ (* x y) t) z)) |
(* -1 (* t (+ (* -1 (/ (* x y) (* a t))) (/ z a)))) |
(* -1 (* t (- (* -1 (/ (* x y) t)) (* -1 z)))) |
(/ (- (* x y) (* t z)) a) |
| Outputs |
|---|
(* -1 (/ (* t z) a)) |
#s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
(+ (* -1 (/ (* t z) a)) (/ (* x y) a)) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(* -1 (* t z)) |
(*.f64 x y) |
(- (* x y) (* t z)) |
(*.f64 z t) |
(* x y) |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) |
(/ (* x y) a) |
#s(approx (- (* x y) (* z t)) (*.f64 x y)) |
(* x (+ (* -1 (/ (* t z) (* a x))) (/ y a))) |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 z t)) a) |
(* x (+ y (* -1 (/ (* t z) x)))) |
#s(approx (- (* x y) (* z t)) (*.f64 z t)) |
| Inputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
(*.f64 z t) |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) |
#s(approx (- (* x y) (* z t)) (*.f64 x y)) |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 z t)) a) |
#s(approx (- (* x y) (* z t)) (*.f64 z t)) |
| Outputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
(-.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
(*.f64 z t) |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) |
#s(approx (- (* x y) (* z t)) (*.f64 x y)) |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 z t)) a) |
#s(approx (- (* x y) (* z t)) (*.f64 z t)) |
Compiled 320 to 28 computations (91.3% saved)
6 alts after pruning (2 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 14 | 2 | 16 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 3 | 3 |
| Done | 0 | 1 | 1 |
| Total | 14 | 6 | 20 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 93.0% | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
| ✓ | 9.8% | (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 z t)) a) |
| ✓ | 51.6% | (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) |
| ✓ | 13.3% | #s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
| ▶ | 8.9% | #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) |
| ▶ | 11.9% | #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
Compiled 94 to 68 computations (27.7% saved)
| 1× | egg-herbie |
Found 6 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 z t) | |
| cost-diff | 0 | #s(approx (- (* x y) (* z t)) (*.f64 z t)) | |
| cost-diff | 0 | #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) | |
| cost-diff | 0 | (*.f64 x y) | |
| cost-diff | 0 | #s(approx (- (* x y) (* z t)) (*.f64 x y)) | |
| cost-diff | 0 | #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
| Inputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
#s(approx (- (* x y) (* z t)) (*.f64 x y)) |
(*.f64 x y) |
x |
y |
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) |
#s(approx (- (* x y) (* z t)) (*.f64 z t)) |
(*.f64 z t) |
z |
t |
| Outputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
#s(approx (- (* x y) (* z t)) (*.f64 x y)) |
(*.f64 x y) |
x |
y |
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) |
#s(approx (- (* x y) (* z t)) (*.f64 z t)) |
(*.f64 z t) |
z |
t |
Found 6 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 z t) | |
| accuracy | 55.46545875102174 | #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) | |
| accuracy | 62.14702648969096 | #s(approx (- (* x y) (* z t)) (*.f64 z t)) | |
| accuracy | 0.0 | (*.f64 x y) | |
| accuracy | 31.982035205140612 | #s(approx (- (* x y) (* z t)) (*.f64 x y)) | |
| accuracy | 55.46545875102174 | #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
| 17.0ms | 256× | 0 | valid |
Compiled 118 to 26 computations (78% saved)
ival-mult: 4.0ms (59.8% of total)ival-div: 2.0ms (29.9% of total)ival-sub: 1.0ms (14.9% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
#s(approx (- (* x y) (* z t)) (*.f64 x y)) |
(*.f64 x y) |
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) |
#s(approx (- (* x y) (* z t)) (*.f64 z t)) |
(*.f64 z t) |
| Outputs |
|---|
(* -1 (/ (* t z) a)) |
(+ (* -1 (/ (* t z) a)) (/ (* x y) a)) |
(* -1 (* t z)) |
(- (* x y) (* t z)) |
(* x y) |
(/ (* x y) a) |
(* x (+ (* -1 (/ (* t z) (* a x))) (/ y a))) |
(* x (+ y (* -1 (/ (* t z) x)))) |
(* -1 (* x (+ (* -1 (/ y a)) (/ (* t z) (* a x))))) |
(* -1 (* x (+ (* -1 y) (/ (* t z) x)))) |
(* y (+ (* -1 (/ (* t z) (* a y))) (/ x a))) |
(* y (+ x (* -1 (/ (* t z) y)))) |
(* -1 (* y (+ (* -1 (/ x a)) (/ (* t z) (* a y))))) |
(* -1 (* y (+ (* -1 x) (/ (* t z) y)))) |
(+ (* -1 (* t z)) (* x y)) |
(* t z) |
(* z (+ (* -1 (/ t a)) (/ (* x y) (* a z)))) |
(* z (- (/ (* x y) z) t)) |
(* -1 (* z (+ (* -1 (/ (* x y) (* a z))) (/ t a)))) |
(* -1 (* z (- (* -1 (/ (* x y) z)) (* -1 t)))) |
(* t (+ (* -1 (/ z a)) (/ (* x y) (* a t)))) |
(* t (- (/ (* x y) t) z)) |
(* -1 (* t (+ (* -1 (/ (* x y) (* a t))) (/ z a)))) |
(* -1 (* t (- (* -1 (/ (* x y) t)) (* -1 z)))) |
(/ (- (* x y) (* t z)) a) |
15 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | a | @ | inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) (/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* z t)) |
| 1.0ms | a | @ | -inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) (/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* z t)) |
| 1.0ms | x | @ | -inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) (/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* z t)) |
| 1.0ms | y | @ | -inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) (/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* z t)) |
| 0.0ms | t | @ | -inf | ((/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* x y) (/ (- (* x y) (* z t)) a) (- (* x y) (* z t)) (* z t)) |
| 1× | egg-herbie |
| Inputs |
|---|
(* -1 (/ (* t z) a)) |
(+ (* -1 (/ (* t z) a)) (/ (* x y) a)) |
(* -1 (* t z)) |
(- (* x y) (* t z)) |
(* x y) |
(/ (* x y) a) |
(* x (+ (* -1 (/ (* t z) (* a x))) (/ y a))) |
(* x (+ y (* -1 (/ (* t z) x)))) |
(* -1 (* x (+ (* -1 (/ y a)) (/ (* t z) (* a x))))) |
(* -1 (* x (+ (* -1 y) (/ (* t z) x)))) |
(* y (+ (* -1 (/ (* t z) (* a y))) (/ x a))) |
(* y (+ x (* -1 (/ (* t z) y)))) |
(* -1 (* y (+ (* -1 (/ x a)) (/ (* t z) (* a y))))) |
(* -1 (* y (+ (* -1 x) (/ (* t z) y)))) |
(+ (* -1 (* t z)) (* x y)) |
(* t z) |
(* z (+ (* -1 (/ t a)) (/ (* x y) (* a z)))) |
(* z (- (/ (* x y) z) t)) |
(* -1 (* z (+ (* -1 (/ (* x y) (* a z))) (/ t a)))) |
(* -1 (* z (- (* -1 (/ (* x y) z)) (* -1 t)))) |
(* t (+ (* -1 (/ z a)) (/ (* x y) (* a t)))) |
(* t (- (/ (* x y) t) z)) |
(* -1 (* t (+ (* -1 (/ (* x y) (* a t))) (/ z a)))) |
(* -1 (* t (- (* -1 (/ (* x y) t)) (* -1 z)))) |
(/ (- (* x y) (* t z)) a) |
| Outputs |
|---|
(* -1 (/ (* t z) a)) |
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
(+ (* -1 (/ (* t z) a)) (/ (* x y) a)) |
#s(approx (- (* x y) (* z t)) (*.f64 x y)) |
(* -1 (* t z)) |
(*.f64 x y) |
(- (* x y) (* t z)) |
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) |
(* x y) |
#s(approx (- (* x y) (* z t)) (*.f64 z t)) |
(/ (* x y) a) |
(*.f64 z t) |
| Inputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
#s(approx (- (* x y) (* z t)) (*.f64 x y)) |
(*.f64 x y) |
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) |
#s(approx (- (* x y) (* z t)) (*.f64 z t)) |
(*.f64 z t) |
| Outputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
#s(approx (- (* x y) (* z t)) (*.f64 x y)) |
(*.f64 x y) |
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) |
#s(approx (- (* x y) (* z t)) (*.f64 z t)) |
(*.f64 z t) |
Compiled 242 to 22 computations (90.9% saved)
6 alts after pruning (0 fresh and 6 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 10 | 0 | 10 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 2 | 2 |
| Done | 0 | 4 | 4 |
| Total | 10 | 6 | 16 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 93.0% | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
| ✓ | 9.8% | (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 z t)) a) |
| ✓ | 51.6% | (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) |
| ✓ | 13.3% | #s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
| ✓ | 8.9% | #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) |
| ✓ | 11.9% | #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
Compiled 188 to 88 computations (53.2% saved)
| Inputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) |
#s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 z t)) a) |
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
| Outputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
9 calls:
| 3.0ms | t |
| 3.0ms | y |
| 3.0ms | a |
| 2.0ms | x |
| 2.0ms | z |
| Accuracy | Segments | Branch |
|---|---|---|
| 93.0% | 1 | x |
| 93.0% | 1 | y |
| 93.0% | 1 | z |
| 93.0% | 1 | t |
| 93.0% | 1 | a |
| 93.0% | 1 | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
| 93.0% | 1 | (-.f64 (*.f64 x y) (*.f64 z t)) |
| 93.0% | 1 | (*.f64 x y) |
| 93.0% | 1 | (*.f64 z t) |
Compiled 27 to 54 computations (-100% saved)
| Inputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) |
#s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 z t)) a) |
| Outputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) |
(/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) |
#s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
9 calls:
| 10.0ms | (*.f64 z t) |
| 2.0ms | x |
| 2.0ms | t |
| 2.0ms | a |
| 2.0ms | y |
| Accuracy | Segments | Branch |
|---|---|---|
| 51.6% | 1 | x |
| 51.6% | 1 | y |
| 51.6% | 1 | a |
| 51.6% | 1 | (*.f64 x y) |
| 55.7% | 3 | (*.f64 z t) |
| 51.6% | 1 | z |
| 51.6% | 1 | t |
| 51.6% | 1 | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
| 53.8% | 2 | (-.f64 (*.f64 x y) (*.f64 z t)) |
Compiled 27 to 54 computations (-100% saved)
| Inputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) |
#s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
| Outputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) |
#s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))) |
9 calls:
| 3.0ms | (*.f64 x y) |
| 2.0ms | a |
| 2.0ms | x |
| 2.0ms | t |
| 2.0ms | y |
| Accuracy | Segments | Branch |
|---|---|---|
| 13.3% | 1 | y |
| 13.3% | 1 | z |
| 15.1% | 2 | x |
| 13.3% | 1 | t |
| 13.3% | 1 | (*.f64 x y) |
| 13.3% | 1 | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
| 19.6% | 2 | a |
| 13.3% | 1 | (-.f64 (*.f64 x y) (*.f64 z t)) |
| 16.6% | 3 | (*.f64 z t) |
Compiled 27 to 54 computations (-100% saved)
| Inputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) |
| Outputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
1 calls:
| 1.0ms | a |
| Accuracy | Segments | Branch |
|---|---|---|
| 16.3% | 2 | a |
Compiled 1 to 5 computations (-400% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
| Inputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
| Outputs |
|---|
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
9 calls:
| 2.0ms | t |
| 1.0ms | y |
| 1.0ms | (*.f64 z t) |
| 1.0ms | a |
| 1.0ms | x |
| Accuracy | Segments | Branch |
|---|---|---|
| 11.9% | 1 | (*.f64 x y) |
| 11.9% | 1 | y |
| 11.9% | 1 | t |
| 11.9% | 1 | (-.f64 (*.f64 x y) (*.f64 z t)) |
| 11.9% | 1 | (/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
| 11.9% | 1 | z |
| 11.9% | 1 | (*.f64 z t) |
| 11.9% | 1 | x |
| 11.9% | 1 | a |
Compiled 27 to 54 computations (-100% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 13.0ms | 2.118261575550607e+302 | +inf |
| 15.0ms | -1.9211777316116183e+292 | -1.2682012312066483e+269 |
| 15.0ms | 320× | 0 | valid |
Compiled 616 to 506 computations (17.9% saved)
ival-sub: 2.0ms (30.4% of total)ival-div: 2.0ms (30.4% of total)ival-mult: 2.0ms (30.4% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 14.0ms | -2.3911312712521146e-307 | 6.750016632597747e-295 |
| 8.0ms | 160× | 0 | valid |
Compiled 392 to 287 computations (26.8% saved)
ival-mult: 2.0ms (49% of total)ival-sub: 1.0ms (24.5% of total)ival-div: 1.0ms (24.5% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 1.0ms | -2.3911312712521146e-307 | 6.750016632597747e-295 |
Compiled 432 to 277 computations (35.9% saved)
| 1× | egg-herbie |
| Inputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
(if (<=.f64 (*.f64 z t) #s(literal -18500000000000000466829867611656729502930554939183477944761999732454476019512279818381007542300951123794262485209309749866466864882347782336515305681316649582137145285524390015208347871358999097446795925021038093729622064195409742243068155205346450081737532955760692228917647384983460829462528 binary64)) #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) (if (<=.f64 (*.f64 z t) #s(literal 21500000000000000155748480579033799052093975704530495280794187517596018840664421473055418518461007028981500536122287554839979401257967693158882447288327904952920792546514336667987232037770202428182445898987433190934714339367023771270870280188888333943448517395469372597937169884460445765735332847284125696 binary64)) (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) #s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))))) |
(if (<=.f64 a #s(literal -101201126653655/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784 binary64)) #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) #s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t)))) |
(if (<=.f64 a #s(literal -101201126653655/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784 binary64)) #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y)))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
| Outputs |
|---|
(/.f64 (-.f64 (*.f64 x y) (*.f64 z t)) a) |
(if (<=.f64 (*.f64 z t) #s(literal -18500000000000000466829867611656729502930554939183477944761999732454476019512279818381007542300951123794262485209309749866466864882347782336515305681316649582137145285524390015208347871358999097446795925021038093729622064195409742243068155205346450081737532955760692228917647384983460829462528 binary64)) #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) (if (<=.f64 (*.f64 z t) #s(literal 21500000000000000155748480579033799052093975704530495280794187517596018840664421473055418518461007028981500536122287554839979401257967693158882447288327904952920792546514336667987232037770202428182445898987433190934714339367023771270870280188888333943448517395469372597937169884460445765735332847284125696 binary64)) (/.f64 #s(approx (- (* x y) (* z t)) (*.f64 x y)) a) #s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t))))) |
(if (<=.f64 a #s(literal -101201126653655/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784 binary64)) #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) #s(approx (/ (- (* x y) (* z t)) a) (-.f64 (*.f64 x y) (*.f64 z t)))) |
(if (<=.f64 a #s(literal -101201126653655/202402253307310618352495346718917307049556649764142118356901358027430339567995346891960383701437124495187077864316811911389808737385793476867013399940738509921517424276566361364466907742093216341239767678472745068562007483424692698618103355649159556340810056512358769552333414615230502532186327508646006263307707741093494784 binary64)) #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 z t))) #s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y)))) |
#s(approx (/ (- (* x y) (* z t)) a) #s(approx (- (* x y) (* z t)) (*.f64 x y))) |
| 1× | done |
Compiled 181 to 29 computations (84% saved)
Compiled 458 to 116 computations (74.7% saved)
Loading profile data...