
Time bar (total: 1.9s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 0 |
| 0% | 0% | 100% | 0% | 0% | 0% | 0% | 1 |
| 50% | 50% | 50% | 0% | 0% | 0% | 0% | 2 |
| 75% | 75% | 25% | 0% | 0% | 0% | 0% | 3 |
| 87.5% | 87.5% | 12.5% | 0% | 0% | 0% | 0% | 4 |
| 93.8% | 93.7% | 6.2% | 0% | 0% | 0% | 0% | 5 |
| 96.9% | 96.8% | 3.1% | 0% | 0% | 0% | 0% | 6 |
| 98.4% | 98.4% | 1.6% | 0% | 0% | 0% | 0% | 7 |
| 99.2% | 99.2% | 0.8% | 0% | 0% | 0% | 0% | 8 |
| 99.6% | 99.6% | 0.4% | 0% | 0% | 0% | 0% | 9 |
| 99.8% | 99.8% | 0.2% | 0% | 0% | 0% | 0% | 10 |
| 99.9% | 99.9% | 0.1% | 0% | 0% | 0% | 0% | 11 |
| 100% | 99.9% | 0% | 0% | 0% | 0% | 0% | 12 |
Compiled 10 to 8 computations (20% saved)
| 596.0ms | 2 264× | 2 | valid |
| 323.0ms | 4 157× | 0 | valid |
| 198.0ms | 577× | 3 | valid |
| 132.0ms | 1 258× | 1 | valid |
ival-cos: 684.0ms (65.7% of total)ival-div: 99.0ms (9.5% of total)adjust: 97.0ms (9.3% of total)ival-sub: 84.0ms (8.1% of total)ival-mult: 61.0ms (5.9% of total)ival-true: 6.0ms (0.6% of total)exact: 5.0ms (0.5% of total)ival-assert: 3.0ms (0.3% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 72 | 1 | (1.0062900105500921e+36) | 1 | (-8.260084990238072e+145) | (-.f64 #s(literal 1 binary64) (cos.f64 x)) |
| 61 | 2 | (-2.7727536760449067e+161) | 2 | (-3.6646562051866966e-156) | (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
| 0 | 0 | - | 0 | - | #s(literal 1 binary64) |
| 0 | 0 | - | 0 | - | (cos.f64 x) |
| 0 | 0 | - | 0 | - | (*.f64 x x) |
| 0 | 0 | - | 0 | - | x |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
-.f64 | (-.f64 #s(literal 1 binary64) (cos.f64 x)) | cancellation | 72 | 2 |
/.f64 | (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) | u/u | 54 | 0 |
| ↳ | (-.f64 #s(literal 1 binary64) (cos.f64 x)) | underflow | 54 | |
| ↳ | (*.f64 x x) | underflow | 54 | |
/.f64 | (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) | n/o | 7 | 0 |
| ↳ | (*.f64 x x) | overflow | 69 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 128 | 1 |
| - | 5 | 122 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 128 | 1 | 0 |
| - | 5 | 1 | 121 |
| number | freq |
|---|---|
| 0 | 123 |
| 1 | 133 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 1 | 0 | 0 |
| - | 0 | 0 | 0 |
| 33.0ms | 124× | 2 | valid |
| 29.0ms | 270× | 0 | valid |
| 11.0ms | 34× | 3 | valid |
| 9.0ms | 84× | 1 | valid |
Compiled 69 to 28 computations (59.4% saved)
ival-cos: 45.0ms (68.5% of total)adjust: 6.0ms (9.1% of total)ival-div: 5.0ms (7.6% of total)ival-sub: 5.0ms (7.6% of total)ival-mult: 4.0ms (6.1% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)| 1× | egg-herbie |
| Inputs |
|---|
(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
| Outputs |
|---|
(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
Compiled 8 to 6 computations (25% saved)
Compiled 0 to 1 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 52.1% | (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
Compiled 8 to 6 computations (25% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 x x) | |
| cost-diff | 0 | (cos.f64 x) | |
| cost-diff | 0 | (-.f64 #s(literal 1 binary64) (cos.f64 x)) | |
| cost-diff | 0 | (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
| Inputs |
|---|
(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
#s(literal 1 binary64) |
(cos.f64 x) |
x |
(*.f64 x x) |
| Outputs |
|---|
(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
#s(literal 1 binary64) |
(cos.f64 x) |
x |
(*.f64 x x) |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 0.0 | (cos.f64 x) | |
| accuracy | 14.035061389727238 | (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) | |
| accuracy | 15.725532592442665 | (-.f64 #s(literal 1 binary64) (cos.f64 x)) |
| 16.0ms | 62× | 2 | valid |
| 10.0ms | 135× | 0 | valid |
| 8.0ms | 17× | 3 | valid |
| 4.0ms | 42× | 1 | valid |
Compiled 40 to 14 computations (65% saved)
ival-cos: 21.0ms (68.1% of total)ival-div: 3.0ms (9.7% of total)adjust: 3.0ms (9.7% of total)ival-mult: 2.0ms (6.5% of total)ival-sub: 2.0ms (6.5% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)| Inputs |
|---|
(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
(cos.f64 x) |
(*.f64 x x) |
| Outputs |
|---|
1/2 |
(+ 1/2 (* -1/24 (pow x 2))) |
(+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))) |
(+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))) |
(* 1/2 (pow x 2)) |
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) |
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24)))) |
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24)))) |
1 |
(+ 1 (* -1/2 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) |
(pow x 2) |
(/ (- 1 (cos x)) (pow x 2)) |
(- 1 (cos x)) |
(cos x) |
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | -inf | ((/ (- 1 (cos x)) (* x x)) (- 1 (cos x)) (cos x) (* x x)) |
| 1.0ms | x | @ | 0 | ((/ (- 1 (cos x)) (* x x)) (- 1 (cos x)) (cos x) (* x x)) |
| 1.0ms | x | @ | inf | ((/ (- 1 (cos x)) (* x x)) (- 1 (cos x)) (cos x) (* x x)) |
| 1× | egg-herbie |
| Inputs |
|---|
1/2 |
(+ 1/2 (* -1/24 (pow x 2))) |
(+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))) |
(+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))) |
(* 1/2 (pow x 2)) |
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) |
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24)))) |
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24)))) |
1 |
(+ 1 (* -1/2 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) |
(pow x 2) |
(/ (- 1 (cos x)) (pow x 2)) |
(- 1 (cos x)) |
(cos x) |
| Outputs |
|---|
1/2 |
(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
(+ 1/2 (* -1/24 (pow x 2))) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
(+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))) |
(cos.f64 x) |
(+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))) |
(*.f64 x x) |
| Inputs |
|---|
(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
(cos.f64 x) |
(*.f64 x x) |
| Outputs |
|---|
(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
(cos.f64 x) |
(*.f64 x x) |
Compiled 85 to 15 computations (82.4% saved)
4 alts after pruning (3 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 5 | 3 | 8 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 5 | 4 | 9 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 52.1% | (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
| ▶ | 3.6% | #s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
| ▶ | 3.3% | #s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) |
| ▶ | 10.7% | #s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
Compiled 44 to 32 computations (27.3% saved)
| 1× | egg-herbie |
Found 7 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (cos.f64 x) | |
| cost-diff | 0 | (-.f64 #s(literal 1 binary64) (cos.f64 x)) | |
| cost-diff | 0 | #s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) (cos.f64 x))) | |
| cost-diff | 0 | (*.f64 x x) | |
| cost-diff | 0 | #s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) | |
| cost-diff | 0 | (cos.f64 x) | |
| cost-diff | 0 | #s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
| Inputs |
|---|
#s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
(cos.f64 x) |
x |
#s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) |
(*.f64 x x) |
x |
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
#s(literal 1 binary64) |
(cos.f64 x) |
x |
| Outputs |
|---|
#s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
(cos.f64 x) |
x |
#s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) |
(*.f64 x x) |
x |
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
#s(literal 1 binary64) |
(cos.f64 x) |
x |
Found 7 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (cos.f64 x) | |
| accuracy | 15.725532592442665 | (-.f64 #s(literal 1 binary64) (cos.f64 x)) | |
| accuracy | 61.388251516586145 | #s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) (cos.f64 x))) | |
| accuracy | 0.0 | (*.f64 x x) | |
| accuracy | 61.911408015743696 | #s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) | |
| accuracy | 0.0 | (cos.f64 x) | |
| accuracy | 57.1587659210607 | #s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
| 19.0ms | 62× | 2 | valid |
| 11.0ms | 135× | 0 | valid |
| 6.0ms | 17× | 3 | valid |
| 5.0ms | 42× | 1 | valid |
Compiled 92 to 21 computations (77.2% saved)
ival-cos: 20.0ms (65.7% of total)ival-div: 3.0ms (9.9% of total)adjust: 3.0ms (9.9% of total)ival-mult: 2.0ms (6.6% of total)ival-sub: 2.0ms (6.6% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
(cos.f64 x) |
#s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) |
(*.f64 x x) |
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
| Outputs |
|---|
1/2 |
(+ 1/2 (* -1/24 (pow x 2))) |
(+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))) |
(+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))) |
1 |
(+ 1 (* -1/2 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) |
(pow x 2) |
(* 1/2 (pow x 2)) |
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) |
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24)))) |
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24)))) |
(/ (- 1 (cos x)) (pow x 2)) |
(cos x) |
(- 1 (cos x)) |
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | inf | ((/ (- 1 (cos x)) (* x x)) (cos x) (/ (- 1 (cos x)) (* x x)) (* x x) (/ (- 1 (cos x)) (* x x)) (- 1 (cos x))) |
| 1.0ms | x | @ | -inf | ((/ (- 1 (cos x)) (* x x)) (cos x) (/ (- 1 (cos x)) (* x x)) (* x x) (/ (- 1 (cos x)) (* x x)) (- 1 (cos x))) |
| 0.0ms | x | @ | 0 | ((/ (- 1 (cos x)) (* x x)) (cos x) (/ (- 1 (cos x)) (* x x)) (* x x) (/ (- 1 (cos x)) (* x x)) (- 1 (cos x))) |
| 1× | egg-herbie |
| Inputs |
|---|
1/2 |
(+ 1/2 (* -1/24 (pow x 2))) |
(+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))) |
(+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))) |
1 |
(+ 1 (* -1/2 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) |
(pow x 2) |
(* 1/2 (pow x 2)) |
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) |
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24)))) |
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24)))) |
(/ (- 1 (cos x)) (pow x 2)) |
(cos x) |
(- 1 (cos x)) |
| Outputs |
|---|
1/2 |
#s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
(+ 1/2 (* -1/24 (pow x 2))) |
(cos.f64 x) |
(+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))) |
#s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) |
(+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))) |
(*.f64 x x) |
1 |
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
(+ 1 (* -1/2 (pow x 2))) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
| Inputs |
|---|
#s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
(cos.f64 x) |
#s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) |
(*.f64 x x) |
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
| Outputs |
|---|
#s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
(cos.f64 x) |
#s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) |
(*.f64 x x) |
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
Compiled 212 to 23 computations (89.2% saved)
5 alts after pruning (1 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 12 | 1 | 13 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 3 | 3 |
| Done | 0 | 1 | 1 |
| Total | 12 | 5 | 17 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 52.1% | (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
| ✓ | 3.6% | #s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
| ▶ | 10.7% | #s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))))) |
| ✓ | 3.3% | #s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) |
| ✓ | 10.7% | #s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
Compiled 62 to 44 computations (29% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (-.f64 #s(literal 1 binary64) (cos.f64 x)) | |
| cost-diff | 0 | #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))) | |
| cost-diff | 0 | (-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x)))) | |
| cost-diff | 0 | #s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))))) |
| Inputs |
|---|
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))))) |
(-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x)))) |
#s(literal 1 binary64) |
#s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
(cos.f64 x) |
x |
| Outputs |
|---|
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))))) |
(-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x)))) |
#s(literal 1 binary64) |
#s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
(cos.f64 x) |
x |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 15.725532592442665 | (-.f64 #s(literal 1 binary64) (cos.f64 x)) | |
| accuracy | 15.725532592442665 | (-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x)))) | |
| accuracy | 59.54925496934346 | #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))) | |
| accuracy | 61.388251516586145 | #s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))))) |
| 17.0ms | 62× | 2 | valid |
| 11.0ms | 135× | 0 | valid |
| 6.0ms | 17× | 3 | valid |
| 5.0ms | 42× | 1 | valid |
Compiled 66 to 20 computations (69.7% saved)
ival-cos: 19.0ms (66.5% of total)ival-div: 3.0ms (10.5% of total)adjust: 3.0ms (10.5% of total)ival-mult: 2.0ms (7% of total)ival-sub: 2.0ms (7% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))))) |
(-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x)))) |
#s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
| Outputs |
|---|
1/2 |
(+ 1/2 (* -1/24 (pow x 2))) |
(+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))) |
(+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))) |
(* 1/2 (pow x 2)) |
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) |
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24)))) |
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24)))) |
1 |
(+ 1 (* -1/2 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) |
(/ (- 1 (cos x)) (pow x 2)) |
(- 1 (cos x)) |
(cos x) |
3 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | inf | ((/ (- 1 (cos x)) (* x x)) (- 1 (cos x)) (cos x) (- 1 (cos x))) |
| 0.0ms | x | @ | -inf | ((/ (- 1 (cos x)) (* x x)) (- 1 (cos x)) (cos x) (- 1 (cos x))) |
| 0.0ms | x | @ | 0 | ((/ (- 1 (cos x)) (* x x)) (- 1 (cos x)) (cos x) (- 1 (cos x))) |
| 1× | egg-herbie |
| Inputs |
|---|
1/2 |
(+ 1/2 (* -1/24 (pow x 2))) |
(+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))) |
(+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))) |
(* 1/2 (pow x 2)) |
(* (pow x 2) (+ 1/2 (* -1/24 (pow x 2)))) |
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24)))) |
(* (pow x 2) (+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24)))) |
1 |
(+ 1 (* -1/2 (pow x 2))) |
(+ 1 (* (pow x 2) (- (* 1/24 (pow x 2)) 1/2))) |
(+ 1 (* (pow x 2) (- (* (pow x 2) (+ 1/24 (* -1/720 (pow x 2)))) 1/2))) |
(/ (- 1 (cos x)) (pow x 2)) |
(- 1 (cos x)) |
(cos x) |
| Outputs |
|---|
1/2 |
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))))) |
(+ 1/2 (* -1/24 (pow x 2))) |
(-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x)))) |
(+ 1/2 (* (pow x 2) (- (* 1/720 (pow x 2)) 1/24))) |
#s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
(+ 1/2 (* (pow x 2) (- (* (pow x 2) (+ 1/720 (* -1/40320 (pow x 2)))) 1/24))) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
| Inputs |
|---|
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))))) |
(-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x)))) |
#s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
| Outputs |
|---|
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))))) |
(-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x)))) |
#s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
(-.f64 #s(literal 1 binary64) (cos.f64 x)) |
Compiled 128 to 15 computations (88.3% saved)
5 alts after pruning (0 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 7 | 0 | 7 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 4 | 4 |
| Total | 7 | 5 | 12 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 52.1% | (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
| ✓ | 3.6% | #s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
| ✓ | 10.7% | #s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))))) |
| ✓ | 3.3% | #s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) |
| ✓ | 10.7% | #s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
Compiled 124 to 61 computations (50.8% saved)
| Inputs |
|---|
#s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) |
#s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))))) |
(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
| Outputs |
|---|
(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
#s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
(/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
2 calls:
| 2.0ms | x |
| 2.0ms | (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 60.2% | 3 | x |
| 56.1% | 2 | (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
Compiled 9 to 7 computations (22.2% saved)
| Inputs |
|---|
#s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) |
#s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) (cos.f64 x))) |
#s(approx (/ (- 1 (cos x)) (* x x)) (-.f64 #s(literal 1 binary64) #s(approx (cos x) (-.f64 #s(literal 1 binary64) (cos.f64 x))))) |
| Outputs |
|---|
#s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
2 calls:
| 2.0ms | x |
| 2.0ms | (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 10.7% | 1 | (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
| 10.7% | 1 | x |
Compiled 9 to 7 computations (22.2% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
| Inputs |
|---|
#s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) |
| Outputs |
|---|
#s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) |
2 calls:
| 1.0ms | x |
| 1.0ms | (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 3.3% | 1 | (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) |
| 3.3% | 1 | x |
Compiled 9 to 7 computations (22.2% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 26.0ms | 4.800512491520526e-16 | 78426720298.13364 |
| 23.0ms | -0.0013672554816697524 | -5.96336074578724e-9 |
| 30.0ms | 288× | 1 | valid |
| 2.0ms | 32× | 0 | valid |
Compiled 391 to 330 computations (15.6% saved)
ival-sub: 8.0ms (33.8% of total)ival-cos: 6.0ms (25.4% of total)adjust: 4.0ms (16.9% of total)ival-div: 3.0ms (12.7% of total)ival-mult: 2.0ms (8.5% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)| 1× | egg-herbie |
| Inputs |
|---|
(if (<=.f64 x #s(literal -6346860552976803/604462909807314587353088 binary64)) (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) (if (<=.f64 x #s(literal 6346860552976803/604462909807314587353088 binary64)) #s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)))) |
#s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
#s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) |
| Outputs |
|---|
(if (<=.f64 x #s(literal -6346860552976803/604462909807314587353088 binary64)) (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)) (if (<=.f64 x #s(literal 6346860552976803/604462909807314587353088 binary64)) #s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) (/.f64 (-.f64 #s(literal 1 binary64) (cos.f64 x)) (*.f64 x x)))) |
#s(approx (/ (- 1 (cos x)) (* x x)) (cos.f64 x)) |
#s(approx (/ (- 1 (cos x)) (* x x)) (*.f64 x x)) |
| 1× | done |
Compiled 58 to 19 computations (67.2% saved)
Compiled 132 to 50 computations (62.1% saved)
Loading profile data...