
Time bar (total: 1.4s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.7% | 0.3% | 0% | 0% | 0% | 0 |
| 100% | 99.7% | 0% | 0.3% | 0% | 0% | 0% | 1 |
Compiled 13 to 13 computations (0% saved)
| 543.0ms | 8 256× | 0 | valid |
ival-mult: 185.0ms (69.1% of total)ival-add: 74.0ms (27.6% of total)ival-true: 6.0ms (2.2% of total)ival-assert: 3.0ms (1.1% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 6 | 0 | - | 0 | - | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 3 | 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 | - | b |
| 0 | 0 | - | 0 | - | (*.f64 a b) |
| 0 | 0 | - | 0 | - | x |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
+.f64 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) | nan-rescue | 6 | 0 |
| ↳ | (*.f64 x y) | overflow | 35 | |
| ↳ | (+.f64 (*.f64 x y) (*.f64 z t)) | overflow | 64 | |
| ↳ | (*.f64 z t) | overflow | 34 | |
| ↳ | (*.f64 a b) | overflow | 32 | |
+.f64 | (+.f64 (*.f64 x y) (*.f64 z t)) | nan-rescue | 3 | 0 |
| ↳ | (*.f64 x y) | overflow | 35 | |
| ↳ | (*.f64 z t) | overflow | 34 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 9 | 0 |
| - | 0 | 247 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 9 | 0 | 0 |
| - | 0 | 0 | 247 |
| number | freq |
|---|---|
| 0 | 247 |
| 1 | 9 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 35.0ms | 512× | 0 | valid |
Compiled 114 to 48 computations (57.9% saved)
ival-mult: 10.0ms (68.9% of total)ival-add: 4.0ms (27.6% 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)) (*.f64 a b)) |
| Outputs |
|---|
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
Compiled 11 to 11 computations (0% saved)
Compiled 0 to 6 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 96.5% | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
Compiled 11 to 11 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)) (*.f64 a b)) |
| Inputs |
|---|
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
x |
y |
(*.f64 z t) |
z |
t |
(*.f64 a b) |
a |
b |
| Outputs |
|---|
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
x |
y |
(*.f64 z t) |
z |
t |
(*.f64 a b) |
a |
b |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 x y) | |
| accuracy | 0.0 | (*.f64 a b) | |
| accuracy | 0.7070271216604117 | (+.f64 (*.f64 x y) (*.f64 z t)) | |
| accuracy | 1.3046833716604118 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 17.0ms | 256× | 0 | valid |
Compiled 68 to 24 computations (64.7% saved)
ival-mult: 5.0ms (69.5% of total)ival-add: 2.0ms (27.8% 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)) (*.f64 a b)) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
(*.f64 z t) |
(*.f64 a b) |
| Outputs |
|---|
(+ (* a b) (* t z)) |
(+ (* a b) (+ (* t z) (* x y))) |
(* t z) |
(+ (* t z) (* x y)) |
(* x y) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
(* x (+ y (/ (* t z) x))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x))))) |
(* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))) |
(* y (+ x (/ (* t z) y))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))) |
(+ (* a b) (* x y)) |
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))) |
(* z (+ t (/ (* x y) z))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (* x y) z))))) |
(* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))) |
(* t (+ z (/ (* x y) t))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))) |
(* a b) |
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))) |
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))) |
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | b | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (* z t) (* a b)) |
| 1.0ms | z | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (* z t) (* a b)) |
| 1.0ms | x | @ | 0 | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (* z t) (* a b)) |
| 1.0ms | y | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (* z t) (* a b)) |
| 1.0ms | y | @ | 0 | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (* z t) (* a b)) |
| 1× | egg-herbie |
| Inputs |
|---|
(+ (* a b) (* t z)) |
(+ (* a b) (+ (* t z) (* x y))) |
(* t z) |
(+ (* t z) (* x y)) |
(* x y) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
(* x (+ y (/ (* t z) x))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x))))) |
(* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))) |
(* y (+ x (/ (* t z) y))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))) |
(+ (* a b) (* x y)) |
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))) |
(* z (+ t (/ (* x y) z))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (* x y) z))))) |
(* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))) |
(* t (+ z (/ (* x y) t))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))) |
(* a b) |
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))) |
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))) |
| Outputs |
|---|
(+ (* a b) (* t z)) |
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(+ (* a b) (+ (* t z) (* x y))) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(* t z) |
(*.f64 x y) |
(+ (* t z) (* x y)) |
(*.f64 z t) |
(* x y) |
(*.f64 a b) |
| Inputs |
|---|
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
(*.f64 z t) |
(*.f64 a b) |
| Outputs |
|---|
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
(*.f64 z t) |
(*.f64 a b) |
Compiled 142 to 25 computations (82.4% saved)
3 alts after pruning (3 fresh and 0 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 7 | 3 | 10 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 0 | 1 |
| Done | 0 | 0 | 0 |
| Total | 8 | 3 | 11 |
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 70.3% | (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) |
| ▶ | 67.1% | (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b)) |
| ▶ | 63.3% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
Compiled 49 to 41 computations (16.3% saved)
| 1× | egg-herbie |
Found 12 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 a b) | |
| 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)) (*.f64 a b)) | |
| cost-diff | 0 | (*.f64 a b) | |
| 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)) (*.f64 a b)) | |
| 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 b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.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)) (*.f64 a b)) |
#s(approx (+ (* x y) (* z t)) (*.f64 x y)) |
(*.f64 x y) |
x |
y |
(*.f64 a b) |
a |
b |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) |
#s(approx (+ (* x y) (* z t)) (*.f64 z t)) |
(*.f64 z t) |
z |
t |
(*.f64 a b) |
a |
b |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.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)) (*.f64 a b)) |
#s(approx (+ (* x y) (* z t)) (*.f64 x y)) |
(*.f64 x y) |
x |
y |
(*.f64 a b) |
a |
b |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) |
#s(approx (+ (* x y) (* z t)) (*.f64 z t)) |
(*.f64 z t) |
z |
t |
(*.f64 a b) |
a |
b |
Found 12 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 z t) | |
| accuracy | 0.0 | (*.f64 a b) | |
| accuracy | 1.3046833716604118 | (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) | |
| accuracy | 28.33593972799666 | #s(approx (+ (* x y) (* z t)) (*.f64 z t)) | |
| accuracy | 0.0 | (*.f64 x y) | |
| accuracy | 0.0 | (*.f64 a b) | |
| accuracy | 1.3046833716604118 | (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b)) | |
| accuracy | 33.632797858030116 | #s(approx (+ (* x y) (* z t)) (*.f64 x y)) | |
| accuracy | 0.0 | (*.f64 z t) | |
| accuracy | 0.0 | (*.f64 x y) | |
| accuracy | 0.7070271216604117 | (+.f64 (*.f64 x y) (*.f64 z t)) | |
| accuracy | 22.72906520404325 | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
| 22.0ms | 256× | 0 | valid |
Compiled 194 to 33 computations (83% saved)
ival-mult: 6.0ms (68.6% of total)ival-add: 2.0ms (22.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 b)) (+.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)) (*.f64 a b)) |
#s(approx (+ (* x y) (* z t)) (*.f64 x y)) |
(*.f64 a b) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) |
#s(approx (+ (* x y) (* z t)) (*.f64 z t)) |
| Outputs |
|---|
(+ (* a b) (* t z)) |
(+ (* a b) (+ (* t z) (* x y))) |
(* t z) |
(+ (* t z) (* x y)) |
(* x y) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
(* x (+ y (/ (* t z) x))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x))))) |
(* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))) |
(* y (+ x (/ (* t z) y))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))) |
(+ (* a b) (* x y)) |
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))) |
(* z (+ t (/ (* x y) z))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (* x y) z))))) |
(* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))) |
(* t (+ z (/ (* x y) t))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))) |
(* a b) |
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))) |
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))) |
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (* z t) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t))) |
| 1.0ms | y | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (* z t) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t))) |
| 1.0ms | z | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (* z t) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t))) |
| 1.0ms | t | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (* z t) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t))) |
| 0.0ms | a | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (* z t) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t))) |
| 1× | egg-herbie |
| Inputs |
|---|
(+ (* a b) (* t z)) |
(+ (* a b) (+ (* t z) (* x y))) |
(* t z) |
(+ (* t z) (* x y)) |
(* x y) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
(* x (+ y (/ (* t z) x))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x))))) |
(* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))) |
(* y (+ x (/ (* t z) y))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))) |
(+ (* a b) (* x y)) |
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))) |
(* z (+ t (/ (* x y) z))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (* x y) z))))) |
(* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))) |
(* t (+ z (/ (* x y) t))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))) |
(* a b) |
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))) |
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))) |
| Outputs |
|---|
(+ (* a b) (* t z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
(+ (* a b) (+ (* t z) (* x y))) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(* t z) |
(*.f64 x y) |
(+ (* t z) (* x y)) |
(*.f64 z t) |
(* x y) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b)) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
#s(approx (+ (* x y) (* z t)) (*.f64 x y)) |
(* x (+ y (/ (* t z) x))) |
(*.f64 a b) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x))))) |
#s(approx (+ (* x y) (* z t)) (*.f64 z t)) |
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.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)) (*.f64 a b)) |
#s(approx (+ (* x y) (* z t)) (*.f64 x y)) |
(*.f64 a b) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) |
#s(approx (+ (* x y) (* z t)) (*.f64 z t)) |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.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)) (*.f64 a b)) |
#s(approx (+ (* x y) (* z t)) (*.f64 x y)) |
(*.f64 a b) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) |
#s(approx (+ (* x y) (* z t)) (*.f64 z t)) |
Compiled 413 to 33 computations (92% saved)
6 alts after pruning (3 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 16 | 3 | 19 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 3 | 3 |
| Done | 0 | 0 | 0 |
| Total | 16 | 6 | 22 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 70.3% | (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) |
| ✓ | 67.1% | (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b)) |
| ✓ | 63.3% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
| ▶ | 36.2% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) |
| ▶ | 31.5% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) |
| ▶ | 39.0% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
Compiled 118 to 83 computations (29.7% saved)
| 1× | egg-herbie |
Found 9 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 b)) #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 b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) | |
| cost-diff | 0 | (*.f64 a b) | |
| cost-diff | 0 | #s(approx (+ (* x y) (* z t)) (*.f64 a b)) | |
| cost-diff | 0 | #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(*.f64 a b) |
a |
b |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #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 b)) #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 b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(*.f64 a b) |
a |
b |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #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 b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) |
#s(approx (+ (* x y) (* z t)) (*.f64 z t)) |
(*.f64 z t) |
z |
t |
Found 9 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 z t) | |
| accuracy | 22.72906520404325 | #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) | |
| accuracy | 28.33593972799666 | #s(approx (+ (* x y) (* z t)) (*.f64 z t)) | |
| accuracy | 0.0 | (*.f64 x y) | |
| accuracy | 22.72906520404325 | #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) | |
| accuracy | 33.632797858030116 | #s(approx (+ (* x y) (* z t)) (*.f64 x y)) | |
| accuracy | 0.0 | (*.f64 a b) | |
| accuracy | 22.72906520404325 | #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) | |
| accuracy | 61.05676203413827 | #s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
| 18.0ms | 256× | 0 | valid |
Compiled 188 to 33 computations (82.4% saved)
ival-mult: 5.0ms (69.9% of total)ival-add: 2.0ms (27.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 b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(*.f64 a b) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #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 b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) |
#s(approx (+ (* x y) (* z t)) (*.f64 z t)) |
(*.f64 z t) |
| Outputs |
|---|
(+ (* a b) (* t z)) |
(+ (* a b) (+ (* t z) (* x y))) |
(* t z) |
(+ (* t z) (* x y)) |
(* x y) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
(* x (+ y (/ (* t z) x))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x))))) |
(* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))) |
(* y (+ x (/ (* t z) y))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))) |
(+ (* a b) (* x y)) |
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))) |
(* z (+ t (/ (* x y) z))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (* x y) z))))) |
(* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))) |
(* t (+ z (/ (* x y) t))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))) |
(* a b) |
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))) |
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))) |
18 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | t | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* z t)) |
| 1.0ms | x | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* z t)) |
| 1.0ms | y | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* z t)) |
| 1.0ms | z | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* z t)) |
| 0.0ms | a | @ | -inf | ((+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* z t)) |
| 1× | egg-herbie |
| Inputs |
|---|
(+ (* a b) (* t z)) |
(+ (* a b) (+ (* t z) (* x y))) |
(* t z) |
(+ (* t z) (* x y)) |
(* x y) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
(* x (+ y (/ (* t z) x))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x))))) |
(* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))) |
(* y (+ x (/ (* t z) y))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))) |
(+ (* a b) (* x y)) |
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))) |
(* z (+ t (/ (* x y) z))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (* x y)) z))))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (* x y) z))))) |
(* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))) |
(* t (+ z (/ (* x y) t))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))) |
(* a b) |
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))) |
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))) |
| Outputs |
|---|
(+ (* a b) (* t z)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
(+ (* a b) (+ (* t z) (* x y))) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(* t z) |
(*.f64 a b) |
(+ (* t z) (* x y)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) |
(* x y) |
#s(approx (+ (* x y) (* z t)) (*.f64 x y)) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
(*.f64 x y) |
(* x (+ y (/ (* t z) x))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))) |
#s(approx (+ (* x y) (* z t)) (*.f64 z t)) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x))))) |
(*.f64 z t) |
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(*.f64 a b) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #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 b)) #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 b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(*.f64 a b) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #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 b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) |
#s(approx (+ (* x y) (* z t)) (*.f64 z t)) |
(*.f64 z t) |
Compiled 378 to 29 computations (92.3% saved)
6 alts after pruning (0 fresh and 6 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 14 | 0 | 14 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 3 | 3 |
| Done | 0 | 3 | 3 |
| Total | 14 | 6 | 20 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 70.3% | (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) |
| ✓ | 67.1% | (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b)) |
| ✓ | 63.3% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
| ✓ | 36.2% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) |
| ✓ | 31.5% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) |
| ✓ | 39.0% | #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
Compiled 247 to 108 computations (56.3% saved)
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b)) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) |
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| Outputs |
|---|
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
11 calls:
| 4.0ms | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 3.0ms | b |
| 3.0ms | y |
| 3.0ms | a |
| 3.0ms | x |
| Accuracy | Segments | Branch |
|---|---|---|
| 96.5% | 1 | x |
| 96.5% | 1 | y |
| 96.5% | 1 | z |
| 96.5% | 1 | t |
| 96.5% | 1 | a |
| 96.5% | 1 | b |
| 96.5% | 1 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 96.5% | 1 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 96.5% | 1 | (*.f64 x y) |
| 96.5% | 1 | (*.f64 z t) |
| 96.5% | 1 | (*.f64 a b) |
Compiled 33 to 77 computations (-133.3% saved)
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b)) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
11 calls:
| 4.0ms | z |
| 4.0ms | (*.f64 a b) |
| 3.0ms | y |
| 3.0ms | x |
| 3.0ms | b |
| Accuracy | Segments | Branch |
|---|---|---|
| 84.2% | 4 | x |
| 84.3% | 3 | y |
| 82.7% | 3 | z |
| 82.4% | 3 | t |
| 82.3% | 4 | a |
| 84.3% | 4 | b |
| 74.5% | 2 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 86.3% | 4 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 88.4% | 3 | (*.f64 x y) |
| 85.3% | 3 | (*.f64 z t) |
| 85.1% | 3 | (*.f64 a b) |
Compiled 33 to 77 computations (-133.3% saved)
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b)) |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
4 calls:
| 2.0ms | (*.f64 a b) |
| 2.0ms | (*.f64 z t) |
| 2.0ms | (*.f64 x y) |
| 2.0ms | (+.f64 (*.f64 x y) (*.f64 z t)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 82.5% | 3 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 83.9% | 3 | (*.f64 a b) |
| 84.8% | 3 | (*.f64 z t) |
| 75.7% | 5 | (*.f64 x y) |
Compiled 16 to 30 computations (-87.5% saved)
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
9 calls:
| 3.0ms | (*.f64 a b) |
| 2.0ms | a |
| 2.0ms | b |
| 2.0ms | t |
| 2.0ms | y |
| Accuracy | Segments | Branch |
|---|---|---|
| 72.1% | 3 | a |
| 66.8% | 3 | t |
| 76.0% | 3 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 67.6% | 3 | x |
| 68.0% | 3 | z |
| 72.9% | 3 | b |
| 79.0% | 3 | (*.f64 a b) |
| 63.3% | 1 | y |
| 68.0% | 3 | (*.f64 z t) |
Compiled 19 to 59 computations (-210.5% saved)
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) |
11 calls:
| 2.0ms | (*.f64 x y) |
| 2.0ms | b |
| 2.0ms | a |
| 2.0ms | t |
| 2.0ms | y |
| Accuracy | Segments | Branch |
|---|---|---|
| 56.4% | 6 | y |
| 51.5% | 3 | t |
| 54.4% | 4 | x |
| 59.6% | 5 | z |
| 58.2% | 3 | (*.f64 z t) |
| 53.6% | 3 | a |
| 63.7% | 6 | (*.f64 x y) |
| 55.4% | 4 | b |
| 57.0% | 3 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 44.3% | 3 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 59.2% | 4 | (*.f64 a b) |
Compiled 33 to 77 computations (-133.3% saved)
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) |
1 calls:
| 1.0ms | (*.f64 x y) |
| Accuracy | Segments | Branch |
|---|---|---|
| 58.4% | 3 | (*.f64 x y) |
Compiled 3 to 7 computations (-133.3% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
| Inputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
| Outputs |
|---|
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
11 calls:
| 2.0ms | b |
| 1.0ms | z |
| 1.0ms | a |
| 1.0ms | x |
| 1.0ms | t |
| Accuracy | Segments | Branch |
|---|---|---|
| 39.0% | 1 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 39.0% | 1 | t |
| 39.0% | 1 | y |
| 39.0% | 1 | x |
| 39.0% | 1 | a |
| 39.0% | 1 | b |
| 39.0% | 1 | z |
| 39.0% | 1 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 39.0% | 1 | (*.f64 a b) |
| 39.0% | 1 | (*.f64 z t) |
| 39.0% | 1 | (*.f64 x y) |
Compiled 33 to 77 computations (-133.3% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 16.0ms | 6.876078986810307e+101 | 7.583351576150604e+118 |
| 10.0ms | -2.9028895919995117e+80 | -3.6518429962754838e+78 |
| 16.0ms | 272× | 0 | valid |
Compiled 558 to 513 computations (8.1% saved)
ival-mult: 4.0ms (64.9% of total)ival-add: 2.0ms (32.4% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 15.0ms | 5.149089356184419e+138 | 1.8476353746790605e+156 |
| 14.0ms | -99705015423660.17 | -16.969110898815522 |
| 17.0ms | 320× | 0 | valid |
Compiled 654 to 600 computations (8.3% saved)
ival-add: 4.0ms (47.8% of total)ival-mult: 4.0ms (47.8% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 15.0ms | 2.599332874567869e+136 | 2.0057770418742217e+154 |
| 12.0ms | -8.138250794928201e+262 | -5.485864200262072e+256 |
| 17.0ms | 304× | 0 | valid |
Compiled 774 to 590 computations (23.8% saved)
ival-add: 4.0ms (49.6% of total)ival-mult: 4.0ms (49.6% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 5× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 11.0ms | 7.583351576150604e+118 | 3.2762175913207665e+123 |
| 15.0ms | 7.100522938362225e-159 | 2.3596634622003505e-124 |
| 4.0ms | -2.923541925053265e-208 | -2.1659831473983624e-208 |
| 15.0ms | -4.2907248303803294e+68 | -6.05634764796212e+58 |
| 14.0ms | -1.2602534393593517e+208 | -1.2960798930944083e+198 |
| 35.0ms | 672× | 0 | valid |
Compiled 1 910 to 1 262 computations (33.9% saved)
ival-mult: 9.0ms (60.3% of total)ival-add: 6.0ms (40.2% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 1.0ms | 7.583351576150604e+118 | 3.2762175913207665e+123 |
| 9.0ms | -4.2907248303803294e+68 | -6.05634764796212e+58 |
| 5.0ms | 96× | 0 | valid |
Compiled 806 to 542 computations (32.8% saved)
ival-add: 1.0ms (45.6% of total)ival-mult: 1.0ms (45.6% 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)) (*.f64 a b)) |
(if (<=.f64 (*.f64 x y) #s(literal -8000000000000000067948971469517623809190959396790084927159992821622375247249408 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (if (<=.f64 (*.f64 x y) #s(literal 4300000000000000066905489356707425004353266006760564163490013495852585259008449524039437176634704025007687007731712 binary64)) (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))))) |
(if (<=.f64 (*.f64 z t) #s(literal -300000000000 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (if (<=.f64 (*.f64 z t) #s(literal 6199999999999999542561718642821942737804169878658552683771660278523012158123690297967016920580564133451276489947514252996408616908752945152 binary64)) (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))))) |
(if (<=.f64 (*.f64 a b) #s(literal -54999999999999998323014078067802700619050864326979333513386777736725997137641636923142560685986981235537310930167357683523226080801130531013466645550073919742854628924178152853853394054085346349694044660575294716102269370272391168694987749814739539821854720 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (if (<=.f64 (*.f64 a b) #s(literal 47999999999999998107173275270611804491725066629278944365123268263872017525304946186030470741968972918236599842021662027616446843119567227584512 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))))) |
(if (<=.f64 (*.f64 x y) #s(literal -1299999999999999903290155652052623498841327950424918962831086047835061324122236056300967934289139058454807416762897619066320180032165510642881437067121736556095148977076835753611586322757705019686912 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) (if (<=.f64 (*.f64 x y) #s(literal -489999999999999968063457832036469839520756208149095253897379840 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) (if (<=.f64 (*.f64 x y) #s(literal -6014923810931807/23134322349737717735007099635340311456574291245888123082206428617627187858318938111228919160792924135185595314161942499967986047925275778642956722900885062503881081581426410459731001937860227299113020288850612472756100399104 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (if (<=.f64 (*.f64 x y) #s(literal 2349638813994493/30916300184138066757562815127455898754391418637651479989257882011612153138316483396289550132655380623699708928252017417418920629288343901245943269387736645989575846518587392 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) (if (<=.f64 (*.f64 x y) #s(literal 76000000000000003282276321631171517241985444198917179675145217770227306337261215601693768864944492317964327288087511040 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y)))))))) |
(if (<=.f64 (*.f64 x y) #s(literal -2049999999999999963324268916181853087014912836703762059811094528 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) (if (<=.f64 (*.f64 x y) #s(literal 76000000000000003282276321631171517241985444198917179675145217770227306337261215601693768864944492317964327288087511040 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
| Outputs |
|---|
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(if (<=.f64 (*.f64 x y) #s(literal -8000000000000000067948971469517623809190959396790084927159992821622375247249408 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (if (<=.f64 (*.f64 x y) #s(literal 4300000000000000066905489356707425004353266006760564163490013495852585259008449524039437176634704025007687007731712 binary64)) (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 z t)) (*.f64 a b)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))))) |
(if (<=.f64 (*.f64 z t) #s(literal -300000000000 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (if (<=.f64 (*.f64 z t) #s(literal 6199999999999999542561718642821942737804169878658552683771660278523012158123690297967016920580564133451276489947514252996408616908752945152 binary64)) (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 x y)) (*.f64 a b)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))))) |
(if (<=.f64 (*.f64 a b) #s(literal -54999999999999998323014078067802700619050864326979333513386777736725997137641636923142560685986981235537310930167357683523226080801130531013466645550073919742854628924178152853853394054085346349694044660575294716102269370272391168694987749814739539821854720 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (if (<=.f64 (*.f64 a b) #s(literal 47999999999999998107173275270611804491725066629278944365123268263872017525304946186030470741968972918236599842021662027616446843119567227584512 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))))) |
(if (<=.f64 (*.f64 x y) #s(literal -1299999999999999903290155652052623498841327950424918962831086047835061324122236056300967934289139058454807416762897619066320180032165510642881437067121736556095148977076835753611586322757705019686912 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) (if (<=.f64 (*.f64 x y) #s(literal -489999999999999968063457832036469839520756208149095253897379840 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) (if (<=.f64 (*.f64 x y) #s(literal -6014923810931807/23134322349737717735007099635340311456574291245888123082206428617627187858318938111228919160792924135185595314161942499967986047925275778642956722900885062503881081581426410459731001937860227299113020288850612472756100399104 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (if (<=.f64 (*.f64 x y) #s(literal 2349638813994493/30916300184138066757562815127455898754391418637651479989257882011612153138316483396289550132655380623699708928252017417418920629288343901245943269387736645989575846518587392 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 z t))) (if (<=.f64 (*.f64 x y) #s(literal 76000000000000003282276321631171517241985444198917179675145217770227306337261215601693768864944492317964327288087511040 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y)))))))) |
(if (<=.f64 (*.f64 x y) #s(literal -2049999999999999963324268916181853087014912836703762059811094528 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))) (if (<=.f64 (*.f64 x y) #s(literal 76000000000000003282276321631171517241985444198917179675145217770227306337261215601693768864944492317964327288087511040 binary64)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 x y))))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
| 1× | done |
Compiled 490 to 61 computations (87.6% saved)
Compiled 1 002 to 144 computations (85.6% saved)
Loading profile data...