
Time bar (total: 1.7s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.6% | 0.4% | 0% | 0% | 0% | 0 |
| 100% | 99.6% | 0% | 0.4% | 0% | 0% | 0% | 1 |
Compiled 17 to 17 computations (0% saved)
| 671.0ms | 8 256× | 0 | valid |
ival-mult: 242.0ms (67.5% of total)ival-add: 107.0ms (29.9% of total)ival-true: 7.0ms (2% of total)ival-assert: 3.0ms (0.8% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 9 | 0 | - | 0 | - | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 9 | 0 | - | 0 | - | (+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
| 1 | 0 | - | 0 | - | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 0 | 0 | - | 0 | - | (*.f64 c i) |
| 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 | - | c |
| 0 | 0 | - | 0 | - | y |
| 0 | 0 | - | 0 | - | i |
| 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 | 9 | 0 |
| ↳ | (*.f64 x y) | overflow | 29 | |
| ↳ | (+.f64 (*.f64 x y) (*.f64 z t)) | overflow | 66 | |
| ↳ | (*.f64 z t) | overflow | 42 | |
| ↳ | (*.f64 a b) | overflow | 37 | |
+.f64 | (+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) | nan-rescue | 9 | 0 |
| ↳ | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) | overflow | 92 | |
| ↳ | (*.f64 a b) | overflow | 37 | |
| ↳ | (*.f64 x y) | overflow | 29 | |
| ↳ | (+.f64 (*.f64 x y) (*.f64 z t)) | overflow | 66 | |
| ↳ | (*.f64 z t) | overflow | 42 | |
| ↳ | (*.f64 c i) | overflow | 23 | |
+.f64 | (+.f64 (*.f64 x y) (*.f64 z t)) | nan-rescue | 1 | 0 |
| ↳ | (*.f64 x y) | overflow | 29 | |
| ↳ | (*.f64 z t) | overflow | 42 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 16 | 0 |
| - | 0 | 240 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 16 | 0 | 0 |
| - | 0 | 0 | 240 |
| number | freq |
|---|---|
| 0 | 240 |
| 1 | 14 |
| 2 | 1 |
| 3 | 1 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 52.0ms | 512× | 0 | valid |
Compiled 178 to 64 computations (64% saved)
ival-mult: 16.0ms (72.4% of total)ival-add: 6.0ms (27.2% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 1× | egg-herbie |
| Inputs |
|---|
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
| Outputs |
|---|
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
Compiled 15 to 15 computations (0% saved)
Compiled 0 to 8 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 93.7% | (+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
Compiled 15 to 15 computations (0% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| 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)) | |
| cost-diff | 0 | (+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
| Inputs |
|---|
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
(+.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 |
(*.f64 c i) |
c |
i |
| Outputs |
|---|
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
(+.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 |
(*.f64 c i) |
c |
i |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 a b) | |
| accuracy | 0.20312500000000003 | (+.f64 (*.f64 x y) (*.f64 z t)) | |
| accuracy | 1.9531188074906176 | (+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) | |
| accuracy | 2.152329300811441 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 26.0ms | 256× | 0 | valid |
Compiled 108 to 32 computations (70.4% saved)
ival-add: 7.0ms (51.5% of total)ival-mult: 6.0ms (44.1% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
(*.f64 a b) |
| Outputs |
|---|
(+ (* a b) (+ (* c i) (* t z))) |
(+ (* a b) (+ (* c i) (+ (* t z) (* x y)))) |
(+ (* a b) (* t z)) |
(+ (* a b) (+ (* t z) (* x y))) |
(* t z) |
(+ (* t z) (* x y)) |
(* x y) |
(* x (+ y (+ (/ (* a b) x) (+ (/ (* c i) x) (/ (* t z) x))))) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
(* x (+ y (/ (* t z) x))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (+ (* c i) (* 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) (+ (/ (* c i) y) (/ (* t z) y))))) |
(* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))) |
(* y (+ x (/ (* t z) y))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (+ (* c i) (* t z))) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))) |
(+ (* a b) (+ (* c i) (* x y))) |
(+ (* a b) (* x y)) |
(* z (+ t (+ (/ (* a b) z) (+ (/ (* c i) z) (/ (* x y) z))))) |
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))) |
(* z (+ t (/ (* x y) z))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (+ (* c i) (* 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) (+ (/ (* c i) t) (/ (* x y) t))))) |
(* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))) |
(* t (+ z (/ (* x y) t))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (+ (* c i) (* x y))) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))) |
(+ (* c i) (+ (* t z) (* x y))) |
(* a b) |
(* a (+ b (+ (/ (* c i) a) (+ (/ (* t z) a) (/ (* x y) a))))) |
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) a))))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))) |
(* b (+ a (+ (/ (* c i) b) (+ (/ (* t z) b) (/ (* x y) b))))) |
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) b))))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))) |
(* c i) |
(* c (+ i (+ (/ (* a b) c) (+ (/ (* t z) c) (/ (* x y) c))))) |
(* -1 (* c (+ (* -1 i) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) c))))) |
(* i (+ c (+ (/ (* a b) i) (+ (/ (* t z) i) (/ (* x y) i))))) |
(* -1 (* i (+ (* -1 c) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) i))))) |
24 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 5.0ms | c | @ | -inf | ((+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (* a b)) |
| 1.0ms | z | @ | inf | ((+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (* a b)) |
| 1.0ms | x | @ | -inf | ((+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (* a b)) |
| 1.0ms | x | @ | 0 | ((+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (* a b)) |
| 1.0ms | y | @ | -inf | ((+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (* a b)) |
| 1× | egg-herbie |
| Inputs |
|---|
(+ (* a b) (+ (* c i) (* t z))) |
(+ (* a b) (+ (* c i) (+ (* t z) (* x y)))) |
(+ (* a b) (* t z)) |
(+ (* a b) (+ (* t z) (* x y))) |
(* t z) |
(+ (* t z) (* x y)) |
(* x y) |
(* x (+ y (+ (/ (* a b) x) (+ (/ (* c i) x) (/ (* t z) x))))) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
(* x (+ y (/ (* t z) x))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (+ (* c i) (* 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) (+ (/ (* c i) y) (/ (* t z) y))))) |
(* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))) |
(* y (+ x (/ (* t z) y))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (+ (* c i) (* t z))) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))) |
(+ (* a b) (+ (* c i) (* x y))) |
(+ (* a b) (* x y)) |
(* z (+ t (+ (/ (* a b) z) (+ (/ (* c i) z) (/ (* x y) z))))) |
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))) |
(* z (+ t (/ (* x y) z))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (+ (* c i) (* 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) (+ (/ (* c i) t) (/ (* x y) t))))) |
(* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))) |
(* t (+ z (/ (* x y) t))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (+ (* c i) (* x y))) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))) |
(+ (* c i) (+ (* t z) (* x y))) |
(* a b) |
(* a (+ b (+ (/ (* c i) a) (+ (/ (* t z) a) (/ (* x y) a))))) |
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) a))))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))) |
(* b (+ a (+ (/ (* c i) b) (+ (/ (* t z) b) (/ (* x y) b))))) |
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) b))))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))) |
(* c i) |
(* c (+ i (+ (/ (* a b) c) (+ (/ (* t z) c) (/ (* x y) c))))) |
(* -1 (* c (+ (* -1 i) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) c))))) |
(* i (+ c (+ (/ (* a b) i) (+ (/ (* t z) i) (/ (* x y) i))))) |
(* -1 (* i (+ (* -1 c) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) i))))) |
| Outputs |
|---|
(+ (* a b) (+ (* c i) (* t z))) |
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
(+ (* a b) (+ (* c i) (+ (* t z) (* x y)))) |
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(+ (* a b) (* t z)) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(+ (* a b) (+ (* t z) (* x y))) |
(*.f64 x y) |
(* t z) |
(*.f64 a b) |
| Inputs |
|---|
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
(*.f64 a b) |
| Outputs |
|---|
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
(*.f64 a b) |
Compiled 194 to 31 computations (84% saved)
5 alts after pruning (4 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 6 | 4 | 10 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 6 | 5 | 11 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 93.7% | (+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
| ▶ | 36.5% | (+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i)) |
| ▶ | 72.5% | (+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i)) |
| ▶ | 48.2% | (+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
| ▶ | 76.0% | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
Compiled 103 to 88 computations (14.6% saved)
| 1× | egg-herbie |
Found 16 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 a b) | |
| cost-diff | 0 | #s(approx (+ (* x y) (* z t)) (*.f64 a b)) | |
| cost-diff | 0 | (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) | |
| cost-diff | 0 | (+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i)) | |
| 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))) | |
| cost-diff | 0 | (+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i)) | |
| cost-diff | 0 | (*.f64 c i) | |
| cost-diff | 0 | (*.f64 x y) | |
| cost-diff | 0 | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) | |
| cost-diff | 0 | (+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) | |
| 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)) | |
| cost-diff | 0 | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
| Inputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
(+.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 |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) |
(*.f64 x y) |
x |
y |
(*.f64 c i) |
c |
i |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i)) |
#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 c i) |
c |
i |
(+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i)) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(*.f64 a b) |
a |
b |
(*.f64 c i) |
c |
i |
| Outputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
(+.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 |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) |
(*.f64 x y) |
x |
y |
(*.f64 c i) |
c |
i |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i)) |
#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 c i) |
c |
i |
(+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i)) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(*.f64 a b) |
a |
b |
(*.f64 c i) |
c |
i |
Found 16 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 a b) | |
| accuracy | 1.9531188074906176 | (+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i)) | |
| accuracy | 2.152329300811441 | (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) | |
| accuracy | 61.496117739768586 | #s(approx (+ (* x y) (* z t)) (*.f64 a b)) | |
| accuracy | 0.0 | (*.f64 c i) | |
| accuracy | 0.20312500000000003 | (+.f64 (*.f64 x y) (*.f64 z t)) | |
| accuracy | 1.9531188074906176 | (+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i)) | |
| accuracy | 21.716343718877216 | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) | |
| accuracy | 0.0 | (*.f64 x y) | |
| accuracy | 0.0 | (*.f64 c i) | |
| accuracy | 1.9531188074906176 | (+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) | |
| accuracy | 42.302930358324154 | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) | |
| accuracy | 0.0 | (*.f64 a b) | |
| accuracy | 0.20312500000000003 | (+.f64 (*.f64 x y) (*.f64 z t)) | |
| accuracy | 2.152329300811441 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) | |
| accuracy | 13.114122174864335 | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
| 31.0ms | 256× | 0 | valid |
Compiled 400 to 46 computations (88.5% saved)
ival-mult: 6.0ms (61.8% of total)ival-add: 3.0ms (30.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)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) |
(*.f64 c i) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
(+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i)) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(*.f64 a b) |
| Outputs |
|---|
(+ (* a b) (+ (* c i) (* t z))) |
(+ (* a b) (+ (* c i) (+ (* t z) (* x y)))) |
(+ (* a b) (* t z)) |
(+ (* a b) (+ (* t z) (* x y))) |
(* t z) |
(+ (* t z) (* x y)) |
(* x y) |
(* x (+ y (+ (/ (* a b) x) (+ (/ (* c i) x) (/ (* t z) x))))) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
(* x (+ y (/ (* t z) x))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (+ (* c i) (* 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) (+ (/ (* c i) y) (/ (* t z) y))))) |
(* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))) |
(* y (+ x (/ (* t z) y))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (+ (* c i) (* t z))) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))) |
(+ (* a b) (+ (* c i) (* x y))) |
(+ (* a b) (* x y)) |
(* z (+ t (+ (/ (* a b) z) (+ (/ (* c i) z) (/ (* x y) z))))) |
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))) |
(* z (+ t (/ (* x y) z))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (+ (* c i) (* 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) (+ (/ (* c i) t) (/ (* x y) t))))) |
(* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))) |
(* t (+ z (/ (* x y) t))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (+ (* c i) (* x y))) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))) |
(+ (* c i) (+ (* t z) (* x y))) |
(* a b) |
(* a (+ b (+ (/ (* c i) a) (+ (/ (* t z) a) (/ (* x y) a))))) |
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) a))))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))) |
(* b (+ a (+ (/ (* c i) b) (+ (/ (* t z) b) (/ (* x y) b))))) |
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) b))))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))) |
(* c i) |
(* c (+ i (+ (/ (* a b) c) (+ (/ (* t z) c) (/ (* x y) c))))) |
(* -1 (* c (+ (* -1 i) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) c))))) |
(* i (+ c (+ (/ (* a b) i) (+ (/ (* t z) i) (/ (* x y) i))))) |
(* -1 (* i (+ (* -1 c) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) i))))) |
24 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 10.0ms | y | @ | -inf | ((+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (* c i) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b)) |
| 1.0ms | x | @ | -inf | ((+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (* c i) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b)) |
| 1.0ms | b | @ | -inf | ((+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (* c i) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b)) |
| 1.0ms | a | @ | -inf | ((+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (* c i) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b)) |
| 1.0ms | i | @ | -inf | ((+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* x y) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (* c i) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b)) |
| 1× | egg-herbie |
| Inputs |
|---|
(+ (* a b) (+ (* c i) (* t z))) |
(+ (* a b) (+ (* c i) (+ (* t z) (* x y)))) |
(+ (* a b) (* t z)) |
(+ (* a b) (+ (* t z) (* x y))) |
(* t z) |
(+ (* t z) (* x y)) |
(* x y) |
(* x (+ y (+ (/ (* a b) x) (+ (/ (* c i) x) (/ (* t z) x))))) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
(* x (+ y (/ (* t z) x))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (+ (* c i) (* 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) (+ (/ (* c i) y) (/ (* t z) y))))) |
(* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))) |
(* y (+ x (/ (* t z) y))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (+ (* c i) (* t z))) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))) |
(+ (* a b) (+ (* c i) (* x y))) |
(+ (* a b) (* x y)) |
(* z (+ t (+ (/ (* a b) z) (+ (/ (* c i) z) (/ (* x y) z))))) |
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))) |
(* z (+ t (/ (* x y) z))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (+ (* c i) (* 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) (+ (/ (* c i) t) (/ (* x y) t))))) |
(* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))) |
(* t (+ z (/ (* x y) t))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (+ (* c i) (* x y))) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))) |
(+ (* c i) (+ (* t z) (* x y))) |
(* a b) |
(* a (+ b (+ (/ (* c i) a) (+ (/ (* t z) a) (/ (* x y) a))))) |
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) a))))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))) |
(* b (+ a (+ (/ (* c i) b) (+ (/ (* t z) b) (/ (* x y) b))))) |
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) b))))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))) |
(* c i) |
(* c (+ i (+ (/ (* a b) c) (+ (/ (* t z) c) (/ (* x y) c))))) |
(* -1 (* c (+ (* -1 i) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) c))))) |
(* i (+ c (+ (/ (* a b) i) (+ (/ (* t z) i) (/ (* x y) i))))) |
(* -1 (* i (+ (* -1 c) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) i))))) |
| Outputs |
|---|
(+ (* a b) (+ (* c i) (* t z))) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
(+ (* a b) (+ (* c i) (+ (* t z) (* x y)))) |
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(+ (* a b) (* t z)) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(+ (* a b) (+ (* t z) (* x y))) |
(*.f64 x y) |
(* t z) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
(+ (* t z) (* x y)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) |
(* x y) |
(*.f64 c i) |
(* x (+ y (+ (/ (* a b) x) (+ (/ (* c i) x) (/ (* t z) x))))) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i)) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
(* x (+ y (/ (* t z) x))) |
(+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i)) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (+ (* c i) (* t z))) x))))) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (* t z)) x))))) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (* t z) x))))) |
(*.f64 a b) |
| Inputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) |
(*.f64 c i) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
(+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i)) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(*.f64 a b) |
| Outputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
(+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(*.f64 x y) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) |
(*.f64 c i) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
(+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i)) |
(+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(*.f64 a b) |
Compiled 1 045 to 62 computations (94.1% saved)
7 alts after pruning (4 fresh and 3 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 31 | 4 | 35 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 3 | 4 |
| Done | 1 | 0 | 1 |
| Total | 33 | 7 | 40 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 72.5% | (+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i)) |
| ✓ | 48.2% | (+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
| ▶ | 48.3% | (+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i)) |
| ✓ | 76.0% | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
| ▶ | 53.8% | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
| ▶ | 27.6% | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) |
| ▶ | 28.7% | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))) |
Compiled 201 to 132 computations (34.3% saved)
| 1× | egg-herbie |
Found 15 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| 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))) | |
| cost-diff | 0 | (+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i)) | |
| 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))) | |
| cost-diff | 0 | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) | |
| cost-diff | 0 | (*.f64 x y) | |
| cost-diff | 0 | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) | |
| cost-diff | 0 | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.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))) | |
| cost-diff | 0 | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #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)) (* c i)) #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 a b))) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(*.f64 a b) |
a |
b |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) |
(*.f64 x y) |
x |
y |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
#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)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i)) |
#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 |
(*.f64 c i) |
c |
i |
| Outputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #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 a b))) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(*.f64 a b) |
a |
b |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) |
(*.f64 x y) |
x |
y |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
#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)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i)) |
#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 |
(*.f64 c i) |
c |
i |
Found 15 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 a b) | |
| accuracy | 1.9531188074906176 | (+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i)) | |
| accuracy | 21.716343718877216 | #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) | |
| accuracy | 61.496117739768586 | #s(approx (+ (* x y) (* z t)) (*.f64 a b)) | |
| accuracy | 0.0 | (*.f64 x y) | |
| accuracy | 0.20312500000000003 | (+.f64 (*.f64 x y) (*.f64 z t)) | |
| accuracy | 13.114122174864335 | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) | |
| accuracy | 21.716343718877216 | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) | |
| accuracy | 0.0 | (*.f64 x y) | |
| accuracy | 13.114122174864335 | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) | |
| accuracy | 42.302930358324154 | #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) | |
| accuracy | 0.0 | (*.f64 a b) | |
| accuracy | 13.114122174864335 | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))) | |
| accuracy | 21.716343718877216 | #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) | |
| accuracy | 61.496117739768586 | #s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
| 31.0ms | 256× | 0 | valid |
Compiled 428 to 45 computations (89.5% saved)
ival-mult: 9.0ms (72.4% of total)ival-add: 3.0ms (24.1% 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)) (* c i)) #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 a b))) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(*.f64 a b) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) |
(*.f64 x y) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i)) |
| Outputs |
|---|
(+ (* a b) (+ (* c i) (* t z))) |
(+ (* a b) (+ (* c i) (+ (* t z) (* x y)))) |
(+ (* a b) (* t z)) |
(+ (* a b) (+ (* t z) (* x y))) |
(* t z) |
(+ (* t z) (* x y)) |
(* x y) |
(* x (+ y (+ (/ (* a b) x) (+ (/ (* c i) x) (/ (* t z) x))))) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
(* x (+ y (/ (* t z) x))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (+ (* c i) (* 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) (+ (/ (* c i) y) (/ (* t z) y))))) |
(* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))) |
(* y (+ x (/ (* t z) y))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (+ (* c i) (* t z))) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))) |
(+ (* a b) (+ (* c i) (* x y))) |
(+ (* a b) (* x y)) |
(* z (+ t (+ (/ (* a b) z) (+ (/ (* c i) z) (/ (* x y) z))))) |
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))) |
(* z (+ t (/ (* x y) z))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (+ (* c i) (* 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) (+ (/ (* c i) t) (/ (* x y) t))))) |
(* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))) |
(* t (+ z (/ (* x y) t))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (+ (* c i) (* x y))) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))) |
(+ (* c i) (+ (* t z) (* x y))) |
(* a b) |
(* a (+ b (+ (/ (* c i) a) (+ (/ (* t z) a) (/ (* x y) a))))) |
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) a))))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))) |
(* b (+ a (+ (/ (* c i) b) (+ (/ (* t z) b) (/ (* x y) b))))) |
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) b))))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))) |
(* c i) |
(* c (+ i (+ (/ (* a b) c) (+ (/ (* t z) c) (/ (* x y) c))))) |
(* -1 (* c (+ (* -1 i) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) c))))) |
(* i (+ c (+ (/ (* a b) i) (+ (/ (* t z) i) (/ (* x y) i))))) |
(* -1 (* i (+ (* -1 c) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) i))))) |
24 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | -inf | ((+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (* x y) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i))) |
| 1.0ms | y | @ | -inf | ((+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (* x y) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i))) |
| 1.0ms | a | @ | -inf | ((+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (* x y) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i))) |
| 1.0ms | b | @ | -inf | ((+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (* x y) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i))) |
| 1.0ms | x | @ | inf | ((+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (* a b) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (* x y) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+ (+ (* x y) (* z t)) (* a b)) (+ (* x y) (* z t)) (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i))) |
| 1× | egg-herbie |
| Inputs |
|---|
(+ (* a b) (+ (* c i) (* t z))) |
(+ (* a b) (+ (* c i) (+ (* t z) (* x y)))) |
(+ (* a b) (* t z)) |
(+ (* a b) (+ (* t z) (* x y))) |
(* t z) |
(+ (* t z) (* x y)) |
(* x y) |
(* x (+ y (+ (/ (* a b) x) (+ (/ (* c i) x) (/ (* t z) x))))) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
(* x (+ y (/ (* t z) x))) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (+ (* c i) (* 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) (+ (/ (* c i) y) (/ (* t z) y))))) |
(* y (+ x (+ (/ (* a b) y) (/ (* t z) y)))) |
(* y (+ x (/ (* t z) y))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (+ (* c i) (* t z))) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (+ (* a b) (* t z)) y))))) |
(* -1 (* y (+ (* -1 x) (* -1 (/ (* t z) y))))) |
(+ (* a b) (+ (* c i) (* x y))) |
(+ (* a b) (* x y)) |
(* z (+ t (+ (/ (* a b) z) (+ (/ (* c i) z) (/ (* x y) z))))) |
(* z (+ t (+ (/ (* a b) z) (/ (* x y) z)))) |
(* z (+ t (/ (* x y) z))) |
(* -1 (* z (+ (* -1 t) (* -1 (/ (+ (* a b) (+ (* c i) (* 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) (+ (/ (* c i) t) (/ (* x y) t))))) |
(* t (+ z (+ (/ (* a b) t) (/ (* x y) t)))) |
(* t (+ z (/ (* x y) t))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (+ (* c i) (* x y))) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (+ (* a b) (* x y)) t))))) |
(* -1 (* t (+ (* -1 z) (* -1 (/ (* x y) t))))) |
(+ (* c i) (+ (* t z) (* x y))) |
(* a b) |
(* a (+ b (+ (/ (* c i) a) (+ (/ (* t z) a) (/ (* x y) a))))) |
(* a (+ b (+ (/ (* t z) a) (/ (* x y) a)))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) a))))) |
(* -1 (* a (+ (* -1 b) (* -1 (/ (+ (* t z) (* x y)) a))))) |
(* b (+ a (+ (/ (* c i) b) (+ (/ (* t z) b) (/ (* x y) b))))) |
(* b (+ a (+ (/ (* t z) b) (/ (* x y) b)))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* c i) (+ (* t z) (* x y))) b))))) |
(* -1 (* b (+ (* -1 a) (* -1 (/ (+ (* t z) (* x y)) b))))) |
(* c i) |
(* c (+ i (+ (/ (* a b) c) (+ (/ (* t z) c) (/ (* x y) c))))) |
(* -1 (* c (+ (* -1 i) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) c))))) |
(* i (+ c (+ (/ (* a b) i) (+ (/ (* t z) i) (/ (* x y) i))))) |
(* -1 (* i (+ (* -1 c) (* -1 (/ (+ (* a b) (+ (* t z) (* x y))) i))))) |
| Outputs |
|---|
(+ (* a b) (+ (* c i) (* t z))) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))) |
(+ (* a b) (+ (* c i) (+ (* t z) (* x y)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) |
(+ (* a b) (* t z)) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(+ (* a b) (+ (* t z) (* x y))) |
(*.f64 a b) |
(* t z) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) |
(+ (* t z) (* x y)) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) |
(* x y) |
(*.f64 x y) |
(* x (+ y (+ (/ (* a b) x) (+ (/ (* c i) x) (/ (* t z) x))))) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
(* x (+ y (+ (/ (* a b) x) (/ (* t z) x)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
(* x (+ y (/ (* t z) x))) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(* -1 (* x (+ (* -1 y) (* -1 (/ (+ (* a b) (+ (* c i) (* t z))) x))))) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i)) |
| Inputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #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 a b))) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(*.f64 a b) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) |
(*.f64 x y) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i)) |
| Outputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #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 a b))) |
#s(approx (+ (* x y) (* z t)) (*.f64 a b)) |
(*.f64 a b) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) |
(*.f64 x y) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
#s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) |
(+.f64 (*.f64 x y) (*.f64 z t)) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i)) |
Compiled 1 138 to 55 computations (95.2% saved)
7 alts after pruning (0 fresh and 7 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 30 | 0 | 30 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 4 | 4 |
| Done | 0 | 3 | 3 |
| Total | 30 | 7 | 37 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 72.5% | (+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i)) |
| ✓ | 48.2% | (+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
| ✓ | 48.3% | (+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i)) |
| ✓ | 76.0% | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
| ✓ | 53.8% | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
| ✓ | 27.6% | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) |
| ✓ | 28.7% | #s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))) |
Compiled 436 to 167 computations (61.7% saved)
| Inputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #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)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i)) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i)) |
(+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i)) |
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
| Outputs |
|---|
(+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))) |
15 calls:
| 9.0ms | (*.f64 x y) |
| 8.0ms | b |
| 6.0ms | x |
| 3.0ms | t |
| 3.0ms | z |
| Accuracy | Segments | Branch |
|---|---|---|
| 93.7% | 1 | x |
| 93.7% | 1 | y |
| 93.7% | 1 | z |
| 93.7% | 1 | t |
| 93.7% | 1 | a |
| 95.3% | 2 | b |
| 93.7% | 1 | c |
| 93.7% | 1 | i |
| 96.5% | 2 | (+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
| 96.1% | 2 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 93.7% | 1 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 93.7% | 1 | (*.f64 x y) |
| 93.7% | 1 | (*.f64 z t) |
| 95.7% | 2 | (*.f64 a b) |
| 93.7% | 1 | (*.f64 c i) |
Compiled 53 to 139 computations (-162.3% saved)
| Inputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #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)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i)) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i)) |
(+.f64 (+.f64 #s(approx (+ (* x y) (* z t)) (*.f64 a b)) (*.f64 a b)) (*.f64 c i)) |
| Outputs |
|---|
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t))) (*.f64 c i)) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
15 calls:
| 4.0ms | (*.f64 c i) |
| 4.0ms | c |
| 4.0ms | y |
| 3.0ms | b |
| 3.0ms | z |
| Accuracy | Segments | Branch |
|---|---|---|
| 81.1% | 3 | x |
| 79.9% | 3 | y |
| 79.4% | 3 | z |
| 79.6% | 3 | t |
| 83.9% | 3 | a |
| 86.6% | 3 | b |
| 87.8% | 3 | c |
| 85.4% | 3 | i |
| 84.0% | 3 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 80.9% | 3 | (*.f64 x y) |
| 76.0% | 1 | (*.f64 z t) |
| 90.1% | 3 | (*.f64 c i) |
| 88.5% | 3 | (*.f64 a b) |
| 89.4% | 4 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 80.1% | 3 | (+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
Compiled 53 to 139 computations (-162.3% saved)
| Inputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #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)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i)) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
| Outputs |
|---|
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b))) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
1 calls:
| 2.0ms | (*.f64 c i) |
| Accuracy | Segments | Branch |
|---|---|---|
| 89.0% | 3 | (*.f64 c i) |
Compiled 3 to 9 computations (-200% saved)
| Inputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #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)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i)) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y)) (*.f64 c i)) |
| Outputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
(+.f64 #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b))) (*.f64 c i)) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
14 calls:
| 3.0ms | z |
| 3.0ms | b |
| 2.0ms | t |
| 2.0ms | i |
| 2.0ms | a |
| Accuracy | Segments | Branch |
|---|---|---|
| 70.4% | 7 | z |
| 67.5% | 4 | t |
| 67.2% | 3 | y |
| 64.6% | 5 | (+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
| 68.0% | 3 | (*.f64 x y) |
| 62.5% | 3 | x |
| 65.3% | 3 | a |
| 79.2% | 3 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 65.9% | 4 | i |
| 69.6% | 3 | b |
| 65.8% | 4 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 60.9% | 2 | c |
| 73.0% | 3 | (*.f64 a b) |
| 67.2% | 3 | (*.f64 c i) |
Compiled 50 to 130 computations (-160% saved)
| Inputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #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)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
| Outputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #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)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (+.f64 (*.f64 x y) (*.f64 z t)))) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))) |
3 calls:
| 2.0ms | (*.f64 a b) |
| 2.0ms | (*.f64 z t) |
| 2.0ms | (+.f64 (*.f64 x y) (*.f64 z t)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 71.2% | 3 | (*.f64 a b) |
| 53.8% | 1 | (*.f64 z t) |
| 63.5% | 3 | (+.f64 (*.f64 x y) (*.f64 z t)) |
Compiled 13 to 29 computations (-123.1% saved)
| Inputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #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)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) |
| Outputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #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)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) (*.f64 x y))) |
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))) |
15 calls:
| 3.0ms | i |
| 1.0ms | a |
| 1.0ms | b |
| 1.0ms | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 1.0ms | t |
| Accuracy | Segments | Branch |
|---|---|---|
| 30.4% | 2 | (*.f64 z t) |
| 33.6% | 3 | (+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
| 39.8% | 3 | x |
| 33.5% | 2 | c |
| 43.6% | 3 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 32.8% | 3 | z |
| 33.5% | 3 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 34.1% | 4 | i |
| 40.0% | 3 | a |
| 37.1% | 4 | t |
| 41.0% | 3 | y |
| 30.6% | 2 | (*.f64 c i) |
| 47.4% | 3 | (*.f64 x y) |
| 44.3% | 3 | b |
| 48.6% | 3 | (*.f64 a b) |
Compiled 53 to 139 computations (-162.3% saved)
| Inputs |
|---|
#s(approx (+ (+ (+ (* x y) (* z t)) (* a b)) (* c i)) #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)) (* c i)) #s(approx (+ (+ (* x y) (* z t)) (* a b)) #s(approx (+ (* x y) (* z t)) (*.f64 a b)))) |
15 calls:
| 1.0ms | b |
| 1.0ms | x |
| 1.0ms | y |
| 1.0ms | a |
| 1.0ms | (+.f64 (*.f64 x y) (*.f64 z t)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 28.7% | 1 | (*.f64 z t) |
| 28.7% | 1 | (*.f64 c i) |
| 28.7% | 1 | i |
| 28.7% | 1 | z |
| 28.7% | 1 | (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) |
| 28.7% | 1 | (+.f64 (+.f64 (+.f64 (*.f64 x y) (*.f64 z t)) (*.f64 a b)) (*.f64 c i)) |
| 28.7% | 1 | c |
| 28.7% | 1 | t |
| 28.7% | 1 | x |
| 28.7% | 1 | a |
| 28.7% | 1 | y |
| 28.7% | 1 | (+.f64 (*.f64 x y) (*.f64 z t)) |
| 28.7% | 1 | b |
| 28.7% | 1 | (*.f64 x y) |
| 28.7% | 1 | (*.f64 a b) |
Compiled 53 to 139 computations (-162.3% saved)
| 1× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | +inf | NaN |
Compiled 18 to 26 computations (-44.4% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 12.0ms | 8.238538132260117e+137 | 1.4112091808068268e+139 |
| 18.0ms | -1.6656575085836012e+103 | -1.4012690665984595e+84 |
| 20.0ms | 272× | 0 | valid |
Compiled 806 to 709 computations (12% saved)
ival-add: 5.0ms (50.6% of total)ival-mult: 5.0ms (50.6% 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 | 8.238538132260117e+137 | 1.4112091808068268e+139 |
| 18.0ms | -2.087372652261344e+164 | -2.7632422284729155e+149 |
| 11.0ms | 160× | 0 | valid |
Compiled 766 to 689 computations (10.1% saved)
ival-mult: 3.0ms (59.2% of total)ival-add: 2.0ms (39.5% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 2× | left-value |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 2.5134211044624663e+114 | 3.8744785385077346e+118 |
| 0.0ms | -1.1939003416554691e+228 | -1.8281346038634953e+223 |
Compiled 18 to 26 computations (-44.4% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 18.0ms | 1.4581713962414816e+131 | 1.0192812499220085e+141 |
| 20.0ms | -4.1427029314466815e+246 | -3.2209685352245464e+240 |
| 25.0ms | 304× | 0 | valid |
Compiled 1 386 to 786 computations (43.3% saved)
ival-mult: 6.0ms (63% of total)ival-add: 4.0ms (42% 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 | 4.97119177103327e+42 | 1.2482932016678693e+47 |
| 15.0ms | -2.6486143925861364e+104 | -9.949711726699847e+97 |
| 18.0ms | 272× | 0 | valid |
Compiled 1 174 to 672 computations (42.8% saved)
ival-mult: 5.0ms (58.3% of total)ival-add: 3.0ms (35% of total)ival-true: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)Loading profile data...