
Time bar (total: 1.2s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.8% | 0.2% | 0% | 0% | 0% | 0 |
| 100% | 99.8% | 0% | 0.2% | 0% | 0% | 0% | 1 |
Compiled 15 to 13 computations (13.3% saved)
| 519.0ms | 8 256× | 0 | valid |
ival-mult: 220.0ms (70.4% of total)ival-sub: 78.0ms (24.9% of total)ival-true: 6.0ms (1.9% of total)exact: 5.0ms (1.6% of total)ival-assert: 3.0ms (1% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 16 | 0 | - | 0 | - | (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)) |
| 15 | 0 | - | 0 | - | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
| 0 | 0 | - | 0 | - | t |
| 0 | 0 | - | 0 | - | (*.f64 y #s(literal 4 binary64)) |
| 0 | 0 | - | 0 | - | z |
| 0 | 0 | - | 0 | - | #s(literal 4 binary64) |
| 0 | 0 | - | 0 | - | (*.f64 x x) |
| 0 | 0 | - | 0 | - | (*.f64 z z) |
| 0 | 0 | - | 0 | - | y |
| 0 | 0 | - | 0 | - | (-.f64 (*.f64 z z) t) |
| 0 | 0 | - | 0 | - | x |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
*.f64 | (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)) | n*o | 16 | 0 |
-.f64 | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) | nan-rescue | 15 | 0 |
| ↳ | (*.f64 x x) | overflow | 72 | |
| ↳ | (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)) | overflow | 90 | |
| ↳ | (-.f64 (*.f64 z z) t) | overflow | 63 | |
| ↳ | (*.f64 z z) | overflow | 63 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 28 | 0 |
| - | 3 | 225 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 28 | 0 | 0 |
| - | 3 | 0 | 225 |
| number | freq |
|---|---|
| 0 | 225 |
| 1 | 31 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 45.0ms | 512× | 0 | valid |
Compiled 140 to 48 computations (65.7% saved)
ival-mult: 12.0ms (50.8% of total)ival-sub: 10.0ms (42.3% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 1× | egg-herbie |
| Inputs |
|---|
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
| Outputs |
|---|
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
Compiled 13 to 11 computations (15.4% saved)
Compiled 0 to 4 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 89.3% | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
Compiled 13 to 11 computations (15.4% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 y #s(literal 4 binary64)) | |
| cost-diff | 0 | (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)) | |
| cost-diff | 0 | (*.f64 x x) | |
| cost-diff | 0 | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
| Inputs |
|---|
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
(*.f64 x x) |
x |
(*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)) |
(*.f64 y #s(literal 4 binary64)) |
y |
#s(literal 4 binary64) |
(-.f64 (*.f64 z z) t) |
(*.f64 z z) |
z |
t |
| Outputs |
|---|
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
(*.f64 x x) |
x |
(*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)) |
(*.f64 y #s(literal 4 binary64)) |
y |
#s(literal 4 binary64) |
(-.f64 (*.f64 z z) t) |
(*.f64 z z) |
z |
t |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 0.00390625 | (-.f64 (*.f64 z z) t) | |
| accuracy | 3.4999793583020584 | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) | |
| accuracy | 3.8266443055237316 | (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)) |
| 19.0ms | 256× | 0 | valid |
Compiled 84 to 24 computations (71.4% saved)
ival-mult: 8.0ms (78.3% of total)ival-sub: 2.0ms (19.6% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
(*.f64 x x) |
(*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)) |
(*.f64 y #s(literal 4 binary64)) |
(-.f64 (*.f64 z z) t) |
| Outputs |
|---|
(* -4 (* y (- (pow z 2) t))) |
(- (pow x 2) (* 4 (* y (- (pow z 2) t)))) |
(pow x 2) |
(* (pow x 2) (+ 1 (* -4 (/ (* y (- (pow z 2) t)) (pow x 2))))) |
(+ (* -4 (* y (- (pow z 2) t))) (pow x 2)) |
(* 4 (* y (- (pow z 2) t))) |
(* 4 y) |
(* y (- (/ (pow x 2) y) (* 4 (- (pow z 2) t)))) |
(* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 (- (pow z 2) t))))) |
(- (pow x 2) (* -4 (* t y))) |
(- (+ (* -4 (* y (pow z 2))) (pow x 2)) (* -4 (* t y))) |
(* -4 (* t y)) |
(+ (* -4 (* t y)) (* 4 (* y (pow z 2)))) |
(* -1 t) |
(- (pow z 2) t) |
(* -4 (* y (pow z 2))) |
(* (pow z 2) (- (/ (pow x 2) (pow z 2)) (+ (* -4 (/ (* t y) (pow z 2))) (* 4 y)))) |
(* 4 (* y (pow z 2))) |
(* (pow z 2) (+ (* -4 (/ (* t y) (pow z 2))) (* 4 y))) |
(pow z 2) |
(* (pow z 2) (+ 1 (* -1 (/ t (pow z 2))))) |
(- (pow x 2) (* 4 (* y (pow z 2)))) |
(- (+ (* 4 (* t y)) (pow x 2)) (* 4 (* y (pow z 2)))) |
(+ (* -1 t) (pow z 2)) |
(* 4 (* t y)) |
(* t (- (/ (pow x 2) t) (+ (* -4 y) (* 4 (/ (* y (pow z 2)) t))))) |
(* t (+ (* -4 y) (* 4 (/ (* y (pow z 2)) t)))) |
(* t (- (/ (pow z 2) t) 1)) |
(* -1 (* t (- (* -1 (/ (- (pow x 2) (* 4 (* y (pow z 2)))) t)) (* 4 y)))) |
(* -1 (* t (+ (* -4 (/ (* y (pow z 2)) t)) (* 4 y)))) |
(* -1 (* t (+ 1 (* -1 (/ (pow z 2) t))))) |
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 5.0ms | y | @ | 0 | ((- (* x x) (* (* y 4) (- (* z z) t))) (* x x) (* (* y 4) (- (* z z) t)) (* y 4) (- (* z z) t)) |
| 2.0ms | y | @ | -inf | ((- (* x x) (* (* y 4) (- (* z z) t))) (* x x) (* (* y 4) (- (* z z) t)) (* y 4) (- (* z z) t)) |
| 1.0ms | y | @ | inf | ((- (* x x) (* (* y 4) (- (* z z) t))) (* x x) (* (* y 4) (- (* z z) t)) (* y 4) (- (* z z) t)) |
| 1.0ms | x | @ | 0 | ((- (* x x) (* (* y 4) (- (* z z) t))) (* x x) (* (* y 4) (- (* z z) t)) (* y 4) (- (* z z) t)) |
| 1.0ms | z | @ | inf | ((- (* x x) (* (* y 4) (- (* z z) t))) (* x x) (* (* y 4) (- (* z z) t)) (* y 4) (- (* z z) t)) |
| 1× | egg-herbie |
| Inputs |
|---|
(* -4 (* y (- (pow z 2) t))) |
(- (pow x 2) (* 4 (* y (- (pow z 2) t)))) |
(pow x 2) |
(* (pow x 2) (+ 1 (* -4 (/ (* y (- (pow z 2) t)) (pow x 2))))) |
(+ (* -4 (* y (- (pow z 2) t))) (pow x 2)) |
(* 4 (* y (- (pow z 2) t))) |
(* 4 y) |
(* y (- (/ (pow x 2) y) (* 4 (- (pow z 2) t)))) |
(* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 (- (pow z 2) t))))) |
(- (pow x 2) (* -4 (* t y))) |
(- (+ (* -4 (* y (pow z 2))) (pow x 2)) (* -4 (* t y))) |
(* -4 (* t y)) |
(+ (* -4 (* t y)) (* 4 (* y (pow z 2)))) |
(* -1 t) |
(- (pow z 2) t) |
(* -4 (* y (pow z 2))) |
(* (pow z 2) (- (/ (pow x 2) (pow z 2)) (+ (* -4 (/ (* t y) (pow z 2))) (* 4 y)))) |
(* 4 (* y (pow z 2))) |
(* (pow z 2) (+ (* -4 (/ (* t y) (pow z 2))) (* 4 y))) |
(pow z 2) |
(* (pow z 2) (+ 1 (* -1 (/ t (pow z 2))))) |
(- (pow x 2) (* 4 (* y (pow z 2)))) |
(- (+ (* 4 (* t y)) (pow x 2)) (* 4 (* y (pow z 2)))) |
(+ (* -1 t) (pow z 2)) |
(* 4 (* t y)) |
(* t (- (/ (pow x 2) t) (+ (* -4 y) (* 4 (/ (* y (pow z 2)) t))))) |
(* t (+ (* -4 y) (* 4 (/ (* y (pow z 2)) t)))) |
(* t (- (/ (pow z 2) t) 1)) |
(* -1 (* t (- (* -1 (/ (- (pow x 2) (* 4 (* y (pow z 2)))) t)) (* 4 y)))) |
(* -1 (* t (+ (* -4 (/ (* y (pow z 2)) t)) (* 4 y)))) |
(* -1 (* t (+ 1 (* -1 (/ (pow z 2) t))))) |
| Outputs |
|---|
(* -4 (* y (- (pow z 2) t))) |
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
(- (pow x 2) (* 4 (* y (- (pow z 2) t)))) |
(*.f64 x x) |
(pow x 2) |
(*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)) |
(* (pow x 2) (+ 1 (* -4 (/ (* y (- (pow z 2) t)) (pow x 2))))) |
(*.f64 y #s(literal 4 binary64)) |
(+ (* -4 (* y (- (pow z 2) t))) (pow x 2)) |
(-.f64 (*.f64 z z) t) |
| Inputs |
|---|
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
(*.f64 x x) |
(*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)) |
(*.f64 y #s(literal 4 binary64)) |
(-.f64 (*.f64 z z) t) |
| Outputs |
|---|
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
(*.f64 x x) |
(*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)) |
(*.f64 y #s(literal 4 binary64)) |
(-.f64 (*.f64 z z) t) |
Compiled 168 to 24 computations (85.7% saved)
4 alts after pruning (3 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 7 | 3 | 10 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 7 | 4 | 11 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 89.3% | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
| ▶ | 14.9% | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (-.f64 (*.f64 z z) t)) |
| ▶ | 2.2% | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 y #s(literal 4 binary64))) |
| ▶ | 43.7% | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
Compiled 66 to 52 computations (21.2% saved)
| 1× | egg-herbie |
Found 7 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 z z) | |
| cost-diff | 0 | (-.f64 (*.f64 z z) t) | |
| cost-diff | 0 | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (-.f64 (*.f64 z z) t)) | |
| cost-diff | 0 | (*.f64 y #s(literal 4 binary64)) | |
| cost-diff | 0 | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 y #s(literal 4 binary64))) | |
| cost-diff | 0 | (*.f64 x x) | |
| cost-diff | 0 | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
(*.f64 x x) |
x |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 y #s(literal 4 binary64))) |
(*.f64 y #s(literal 4 binary64)) |
y |
#s(literal 4 binary64) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (-.f64 (*.f64 z z) t)) |
(-.f64 (*.f64 z z) t) |
(*.f64 z z) |
z |
t |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
(*.f64 x x) |
x |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 y #s(literal 4 binary64))) |
(*.f64 y #s(literal 4 binary64)) |
y |
#s(literal 4 binary64) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (-.f64 (*.f64 z z) t)) |
(-.f64 (*.f64 z z) t) |
(*.f64 z z) |
z |
t |
Found 7 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 z z) | |
| accuracy | 0.00390625 | (-.f64 (*.f64 z z) t) | |
| accuracy | 54.47954547748158 | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (-.f64 (*.f64 z z) t)) | |
| accuracy | 0.0 | (*.f64 y #s(literal 4 binary64)) | |
| accuracy | 62.598334298773025 | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 y #s(literal 4 binary64))) | |
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 36.02212374333649 | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
| 20.0ms | 256× | 0 | valid |
Compiled 132 to 32 computations (75.8% saved)
ival-mult: 7.0ms (71.9% of total)ival-sub: 2.0ms (20.5% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
(*.f64 x x) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 y #s(literal 4 binary64))) |
(*.f64 y #s(literal 4 binary64)) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (-.f64 (*.f64 z z) t)) |
(-.f64 (*.f64 z z) t) |
(*.f64 z z) |
| Outputs |
|---|
(* -4 (* y (- (pow z 2) t))) |
(- (pow x 2) (* 4 (* y (- (pow z 2) t)))) |
(pow x 2) |
(* (pow x 2) (+ 1 (* -4 (/ (* y (- (pow z 2) t)) (pow x 2))))) |
(+ (* -4 (* y (- (pow z 2) t))) (pow x 2)) |
(* 4 y) |
(* y (- (/ (pow x 2) y) (* 4 (- (pow z 2) t)))) |
(* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 (- (pow z 2) t))))) |
(- (pow x 2) (* -4 (* t y))) |
(- (+ (* -4 (* y (pow z 2))) (pow x 2)) (* -4 (* t y))) |
(* -1 t) |
(- (pow z 2) t) |
(pow z 2) |
(* -4 (* y (pow z 2))) |
(* (pow z 2) (- (/ (pow x 2) (pow z 2)) (+ (* -4 (/ (* t y) (pow z 2))) (* 4 y)))) |
(* (pow z 2) (+ 1 (* -1 (/ t (pow z 2))))) |
(- (pow x 2) (* 4 (* y (pow z 2)))) |
(- (+ (* 4 (* t y)) (pow x 2)) (* 4 (* y (pow z 2)))) |
(+ (* -1 t) (pow z 2)) |
(* 4 (* t y)) |
(* t (- (/ (pow x 2) t) (+ (* -4 y) (* 4 (/ (* y (pow z 2)) t))))) |
(* t (- (/ (pow z 2) t) 1)) |
(* -1 (* t (- (* -1 (/ (- (pow x 2) (* 4 (* y (pow z 2)))) t)) (* 4 y)))) |
(* -1 (* t (+ 1 (* -1 (/ (pow z 2) t))))) |
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | -inf | ((- (* x x) (* (* y 4) (- (* z z) t))) (* x x) (- (* x x) (* (* y 4) (- (* z z) t))) (* y 4) (- (* x x) (* (* y 4) (- (* z z) t))) (- (* z z) t) (* z z)) |
| 1.0ms | z | @ | inf | ((- (* x x) (* (* y 4) (- (* z z) t))) (* x x) (- (* x x) (* (* y 4) (- (* z z) t))) (* y 4) (- (* x x) (* (* y 4) (- (* z z) t))) (- (* z z) t) (* z z)) |
| 1.0ms | y | @ | -inf | ((- (* x x) (* (* y 4) (- (* z z) t))) (* x x) (- (* x x) (* (* y 4) (- (* z z) t))) (* y 4) (- (* x x) (* (* y 4) (- (* z z) t))) (- (* z z) t) (* z z)) |
| 1.0ms | x | @ | inf | ((- (* x x) (* (* y 4) (- (* z z) t))) (* x x) (- (* x x) (* (* y 4) (- (* z z) t))) (* y 4) (- (* x x) (* (* y 4) (- (* z z) t))) (- (* z z) t) (* z z)) |
| 1.0ms | x | @ | -inf | ((- (* x x) (* (* y 4) (- (* z z) t))) (* x x) (- (* x x) (* (* y 4) (- (* z z) t))) (* y 4) (- (* x x) (* (* y 4) (- (* z z) t))) (- (* z z) t) (* z z)) |
| 1× | egg-herbie |
| Inputs |
|---|
(* -4 (* y (- (pow z 2) t))) |
(- (pow x 2) (* 4 (* y (- (pow z 2) t)))) |
(pow x 2) |
(* (pow x 2) (+ 1 (* -4 (/ (* y (- (pow z 2) t)) (pow x 2))))) |
(+ (* -4 (* y (- (pow z 2) t))) (pow x 2)) |
(* 4 y) |
(* y (- (/ (pow x 2) y) (* 4 (- (pow z 2) t)))) |
(* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 (- (pow z 2) t))))) |
(- (pow x 2) (* -4 (* t y))) |
(- (+ (* -4 (* y (pow z 2))) (pow x 2)) (* -4 (* t y))) |
(* -1 t) |
(- (pow z 2) t) |
(pow z 2) |
(* -4 (* y (pow z 2))) |
(* (pow z 2) (- (/ (pow x 2) (pow z 2)) (+ (* -4 (/ (* t y) (pow z 2))) (* 4 y)))) |
(* (pow z 2) (+ 1 (* -1 (/ t (pow z 2))))) |
(- (pow x 2) (* 4 (* y (pow z 2)))) |
(- (+ (* 4 (* t y)) (pow x 2)) (* 4 (* y (pow z 2)))) |
(+ (* -1 t) (pow z 2)) |
(* 4 (* t y)) |
(* t (- (/ (pow x 2) t) (+ (* -4 y) (* 4 (/ (* y (pow z 2)) t))))) |
(* t (- (/ (pow z 2) t) 1)) |
(* -1 (* t (- (* -1 (/ (- (pow x 2) (* 4 (* y (pow z 2)))) t)) (* 4 y)))) |
(* -1 (* t (+ 1 (* -1 (/ (pow z 2) t))))) |
| Outputs |
|---|
(* -4 (* y (- (pow z 2) t))) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
(- (pow x 2) (* 4 (* y (- (pow z 2) t)))) |
(*.f64 x x) |
(pow x 2) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 y #s(literal 4 binary64))) |
(* (pow x 2) (+ 1 (* -4 (/ (* y (- (pow z 2) t)) (pow x 2))))) |
(*.f64 y #s(literal 4 binary64)) |
(+ (* -4 (* y (- (pow z 2) t))) (pow x 2)) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (-.f64 (*.f64 z z) t)) |
(* 4 y) |
(-.f64 (*.f64 z z) t) |
(* y (- (/ (pow x 2) y) (* 4 (- (pow z 2) t)))) |
(*.f64 z z) |
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
(*.f64 x x) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 y #s(literal 4 binary64))) |
(*.f64 y #s(literal 4 binary64)) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (-.f64 (*.f64 z z) t)) |
(-.f64 (*.f64 z z) t) |
(*.f64 z z) |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
(*.f64 x x) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 y #s(literal 4 binary64))) |
(*.f64 y #s(literal 4 binary64)) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (-.f64 (*.f64 z z) t)) |
(-.f64 (*.f64 z z) t) |
(*.f64 z z) |
Compiled 264 to 26 computations (90.2% saved)
5 alts after pruning (1 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 11 | 1 | 12 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 3 | 3 |
| Done | 0 | 1 | 1 |
| Total | 11 | 5 | 16 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 89.3% | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
| ✓ | 14.9% | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (-.f64 (*.f64 z z) t)) |
| ▶ | 15.3% | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 z z)) |
| ✓ | 2.2% | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 y #s(literal 4 binary64))) |
| ✓ | 43.7% | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
Compiled 83 to 65 computations (21.7% saved)
| 1× | egg-herbie |
Found 2 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 z z) | |
| cost-diff | 0 | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 z z)) |
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 z z)) |
(*.f64 z z) |
z |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 z z)) |
(*.f64 z z) |
z |
Found 2 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 z z) | |
| accuracy | 54.21465333031158 | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 z z)) |
| 16.0ms | 256× | 0 | valid |
Compiled 40 to 26 computations (35% saved)
ival-mult: 6.0ms (69.8% of total)ival-sub: 2.0ms (23.3% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 z z)) |
(*.f64 z z) |
| Outputs |
|---|
(* -4 (* y (- (pow z 2) t))) |
(- (pow x 2) (* 4 (* y (- (pow z 2) t)))) |
(pow x 2) |
(* (pow x 2) (+ 1 (* -4 (/ (* y (- (pow z 2) t)) (pow x 2))))) |
(+ (* -4 (* y (- (pow z 2) t))) (pow x 2)) |
(* y (- (/ (pow x 2) y) (* 4 (- (pow z 2) t)))) |
(* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 (- (pow z 2) t))))) |
(- (pow x 2) (* -4 (* t y))) |
(- (+ (* -4 (* y (pow z 2))) (pow x 2)) (* -4 (* t y))) |
(pow z 2) |
(* -4 (* y (pow z 2))) |
(* (pow z 2) (- (/ (pow x 2) (pow z 2)) (+ (* -4 (/ (* t y) (pow z 2))) (* 4 y)))) |
(- (pow x 2) (* 4 (* y (pow z 2)))) |
(- (+ (* 4 (* t y)) (pow x 2)) (* 4 (* y (pow z 2)))) |
(* 4 (* t y)) |
(* t (- (/ (pow x 2) t) (+ (* -4 y) (* 4 (/ (* y (pow z 2)) t))))) |
(* -1 (* t (- (* -1 (/ (- (pow x 2) (* 4 (* y (pow z 2)))) t)) (* 4 y)))) |
12 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | z | @ | inf | ((- (* x x) (* (* y 4) (- (* z z) t))) (* z z)) |
| 1.0ms | z | @ | -inf | ((- (* x x) (* (* y 4) (- (* z z) t))) (* z z)) |
| 0.0ms | x | @ | inf | ((- (* x x) (* (* y 4) (- (* z z) t))) (* z z)) |
| 0.0ms | z | @ | 0 | ((- (* x x) (* (* y 4) (- (* z z) t))) (* z z)) |
| 0.0ms | x | @ | -inf | ((- (* x x) (* (* y 4) (- (* z z) t))) (* z z)) |
| 1× | egg-herbie |
| Inputs |
|---|
(* -4 (* y (- (pow z 2) t))) |
(- (pow x 2) (* 4 (* y (- (pow z 2) t)))) |
(pow x 2) |
(* (pow x 2) (+ 1 (* -4 (/ (* y (- (pow z 2) t)) (pow x 2))))) |
(+ (* -4 (* y (- (pow z 2) t))) (pow x 2)) |
(* y (- (/ (pow x 2) y) (* 4 (- (pow z 2) t)))) |
(* -1 (* y (- (* -1 (/ (pow x 2) y)) (* -4 (- (pow z 2) t))))) |
(- (pow x 2) (* -4 (* t y))) |
(- (+ (* -4 (* y (pow z 2))) (pow x 2)) (* -4 (* t y))) |
(pow z 2) |
(* -4 (* y (pow z 2))) |
(* (pow z 2) (- (/ (pow x 2) (pow z 2)) (+ (* -4 (/ (* t y) (pow z 2))) (* 4 y)))) |
(- (pow x 2) (* 4 (* y (pow z 2)))) |
(- (+ (* 4 (* t y)) (pow x 2)) (* 4 (* y (pow z 2)))) |
(* 4 (* t y)) |
(* t (- (/ (pow x 2) t) (+ (* -4 y) (* 4 (/ (* y (pow z 2)) t))))) |
(* -1 (* t (- (* -1 (/ (- (pow x 2) (* 4 (* y (pow z 2)))) t)) (* 4 y)))) |
| Outputs |
|---|
(* -4 (* y (- (pow z 2) t))) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 z z)) |
(- (pow x 2) (* 4 (* y (- (pow z 2) t)))) |
(*.f64 z z) |
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 z z)) |
(*.f64 z z) |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 z z)) |
(*.f64 z z) |
Compiled 65 to 14 computations (78.5% saved)
5 alts after pruning (0 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 3 | 0 | 3 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 4 | 4 |
| Total | 3 | 5 | 8 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 89.3% | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
| ✓ | 14.9% | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (-.f64 (*.f64 z z) t)) |
| ✓ | 15.3% | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 z z)) |
| ✓ | 2.2% | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 y #s(literal 4 binary64))) |
| ✓ | 43.7% | #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
Compiled 166 to 87 computations (47.6% saved)
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 y #s(literal 4 binary64))) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 z z)) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (-.f64 (*.f64 z z) t)) |
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
| Outputs |
|---|
(-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
10 calls:
| 5.0ms | (*.f64 x x) |
| 2.0ms | (*.f64 y #s(literal 4 binary64)) |
| 2.0ms | x |
| 2.0ms | y |
| 2.0ms | (-.f64 (*.f64 z z) t) |
| Accuracy | Segments | Branch |
|---|---|---|
| 91.7% | 2 | x |
| 89.3% | 1 | y |
| 89.3% | 1 | z |
| 89.3% | 1 | t |
| 92.0% | 2 | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
| 92.0% | 2 | (*.f64 x x) |
| 89.3% | 1 | (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)) |
| 89.3% | 1 | (*.f64 y #s(literal 4 binary64)) |
| 89.3% | 1 | (-.f64 (*.f64 z z) t) |
| 89.3% | 1 | (*.f64 z z) |
Compiled 40 to 58 computations (-45% saved)
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 y #s(literal 4 binary64))) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 z z)) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (-.f64 (*.f64 z z) t)) |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 z z)) |
10 calls:
| 4.0ms | x |
| 2.0ms | t |
| 2.0ms | (*.f64 y #s(literal 4 binary64)) |
| 2.0ms | z |
| 2.0ms | y |
| Accuracy | Segments | Branch |
|---|---|---|
| 43.7% | 1 | t |
| 43.7% | 1 | y |
| 50.7% | 3 | z |
| 48.2% | 2 | (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)) |
| 43.7% | 1 | (*.f64 y #s(literal 4 binary64)) |
| 49.6% | 2 | (-.f64 (*.f64 z z) t) |
| 49.6% | 2 | (*.f64 z z) |
| 43.7% | 1 | x |
| 43.7% | 1 | (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) |
| 46.3% | 2 | (*.f64 x x) |
Compiled 40 to 58 computations (-45% saved)
Total -26.8b remaining (-74.4%)
Threshold costs -26.8b (-74.4%)
| Inputs |
|---|
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 y #s(literal 4 binary64))) |
| Outputs |
|---|
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
5 calls:
| 3.0ms | z |
| 1.0ms | (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)) |
| 1.0ms | (-.f64 (*.f64 z z) t) |
| 1.0ms | (*.f64 z z) |
| 1.0ms | (*.f64 x x) |
| Accuracy | Segments | Branch |
|---|---|---|
| 43.7% | 1 | (*.f64 x x) |
| 43.7% | 1 | (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t)) |
| 43.7% | 1 | z |
| 43.7% | 1 | (-.f64 (*.f64 z z) t) |
| 43.7% | 1 | (*.f64 z z) |
Compiled 21 to 29 computations (-38.1% saved)
| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 16.0ms | 1.675183313037855e+285 | 2.7189617653335328e+290 |
| 11.0ms | 144× | 0 | valid |
Compiled 250 to 234 computations (6.4% saved)
ival-mult: 6.0ms (84% of total)ival-sub: 1.0ms (14% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 6.0ms | 4.0608658127766986e+295 | 6.524699020579584e+295 |
| 3.0ms | 64× | 0 | valid |
Compiled 144 to 126 computations (12.5% saved)
ival-sub: 1.0ms (53.2% of total)ival-mult: 1.0ms (53.2% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 1× | egg-herbie |
| Inputs |
|---|
(if (<=.f64 (*.f64 x x) #s(literal 13499999999999999967767992813532678350750522590779843866706254504692478728834740376421756858812264992487959142757595381055140999081104455703820315785343291623541916471056651288427447245594926837632188543576166406799401048001985902803949596927796314345308418797387363099411997431498964729856 binary64)) (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x))) |
(if (<=.f64 (*.f64 z z) #s(literal 65000000000000003325679519607167214829966483271059609124339490067287015683979900344320741499736667400428582921628290914130245038216808472741838137779989135069276188698758992138488017514192873865029700134044718976689694859660742133411820277487083475732196805237249510232990500617989020254237360128 binary64)) #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 z z))) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
| Outputs |
|---|
(if (<=.f64 (*.f64 x x) #s(literal 13499999999999999967767992813532678350750522590779843866706254504692478728834740376421756858812264992487959142757595381055140999081104455703820315785343291623541916471056651288427447245594926837632188543576166406799401048001985902803949596927796314345308418797387363099411997431498964729856 binary64)) (-.f64 (*.f64 x x) (*.f64 (*.f64 y #s(literal 4 binary64)) (-.f64 (*.f64 z z) t))) #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x))) |
(if (<=.f64 (*.f64 z z) #s(literal 65000000000000003325679519607167214829966483271059609124339490067287015683979900344320741499736667400428582921628290914130245038216808472741838137779989135069276188698758992138488017514192873865029700134044718976689694859660742133411820277487083475732196805237249510232990500617989020254237360128 binary64)) #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) #s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 z z))) |
#s(approx (- (* x x) (* (* y 4) (- (* z z) t))) (*.f64 x x)) |
| 1× | done |
Compiled 93 to 26 computations (72% saved)
Compiled 238 to 96 computations (59.7% saved)
Loading profile data...