
Time bar (total: 5.2s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 0 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 1 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 2 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 3 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 4 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 5 |
| 0% | 0% | 99.9% | 0.1% | 0% | 0% | 0% | 6 |
| 18.8% | 18.7% | 81.1% | 0.1% | 0% | 0% | 0% | 7 |
| 18.8% | 18.7% | 81.1% | 0.1% | 0% | 0% | 0% | 8 |
| 21.9% | 21.8% | 78% | 0.1% | 0% | 0% | 0% | 9 |
| 32.8% | 32.8% | 67.1% | 0.1% | 0% | 0% | 0% | 10 |
| 32.8% | 32.8% | 67.1% | 0.1% | 0% | 0% | 0% | 11 |
| 35.2% | 35.1% | 64.7% | 0.1% | 0% | 0% | 0% | 12 |
Compiled 30 to 19 computations (36.7% saved)
| 2.0s | 8 256× | 0 | valid |
ival-sin: 604.0ms (35.1% of total)ival-cos: 383.0ms (22.2% of total)ival-mult: 263.0ms (15.3% of total)ival-tan: 169.0ms (9.8% of total)ival-div: 140.0ms (8.1% of total)ival-add: 62.0ms (3.6% of total)ival-atan: 47.0ms (2.7% of total)ival-fabs: 42.0ms (2.4% of total)ival-true: 7.0ms (0.4% of total)ival-assert: 4.0ms (0.2% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 154 | 0 | - | 0 | - | (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
| 13 | 0 | - | 1 | (-2.0181319390267826e-281 3.2358522992271576e+40 -4.25861885236374e-111) | (/.f64 (/.f64 eh ew) (tan.f64 t)) |
| 0 | 0 | - | 0 | - | t |
| 0 | 0 | - | 0 | - | (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
| 0 | 0 | - | 0 | - | (fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| 0 | 0 | - | 0 | - | (/.f64 eh ew) |
| 0 | 0 | - | 0 | - | (*.f64 ew (sin.f64 t)) |
| 0 | 0 | - | 0 | - | (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
| 0 | 0 | - | 0 | - | (*.f64 eh (cos.f64 t)) |
| 0 | 0 | - | 0 | - | (sin.f64 t) |
| 0 | 0 | - | 0 | - | (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))) |
| 0 | 0 | - | 0 | - | (cos.f64 t) |
| 0 | 0 | - | 0 | - | (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
| 0 | 0 | - | 0 | - | ew |
| 0 | 0 | - | 0 | - | (tan.f64 t) |
| 0 | 0 | - | 0 | - | (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
| 0 | 0 | - | 0 | - | eh |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
cos.f64 | (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) | sensitivity | 154 | 0 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 0 | 0 |
| - | 154 | 102 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 0 | 0 | 0 |
| - | 154 | 0 | 102 |
| number | freq |
|---|---|
| 0 | 102 |
| 1 | 154 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 0 | 0 | 0 |
| - | 1 | 0 | 0 |
| 551.0ms | 168× | 2 | valid |
| 102.0ms | 128× | 1 | valid |
| 68.0ms | 216× | 0 | valid |
Compiled 422 to 72 computations (82.9% saved)
ival-sin: 501.0ms (74% of total)ival-cos: 87.0ms (12.9% of total)ival-mult: 22.0ms (3.3% of total)ival-tan: 18.0ms (2.7% of total)adjust: 17.0ms (2.5% of total)ival-div: 12.0ms (1.8% of total)ival-atan: 9.0ms (1.3% of total)ival-fabs: 5.0ms (0.7% of total)ival-add: 4.0ms (0.6% of total)ival-true: 1.0ms (0.1% of total)ival-assert: 0.0ms (0% of total)| 1× | egg-herbie |
| Inputs |
|---|
(fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| Outputs |
|---|
(fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
Compiled 28 to 17 computations (39.3% saved)
Compiled 0 to 3 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 99.8% | (fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
Compiled 28 to 17 computations (39.3% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 ew (sin.f64 t)) | |
| cost-diff | 0 | (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) | |
| cost-diff | 0 | (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) | |
| cost-diff | 0 | (fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| Inputs |
|---|
(fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
(+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
(*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
(*.f64 ew (sin.f64 t)) |
ew |
(sin.f64 t) |
t |
(cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
(atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))) |
(/.f64 (/.f64 eh ew) (tan.f64 t)) |
(/.f64 eh ew) |
eh |
(tan.f64 t) |
(*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
(*.f64 eh (cos.f64 t)) |
(cos.f64 t) |
(sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
| Outputs |
|---|
(fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
(+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
(*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
(*.f64 ew (sin.f64 t)) |
ew |
(sin.f64 t) |
t |
(cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
(atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))) |
(/.f64 (/.f64 eh ew) (tan.f64 t)) |
(/.f64 eh ew) |
eh |
(tan.f64 t) |
(*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
(*.f64 eh (cos.f64 t)) |
(cos.f64 t) |
(sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.1328125 | (*.f64 ew (sin.f64 t)) | |
| accuracy | 0.13671875 | (*.f64 eh (cos.f64 t)) | |
| accuracy | 3.05386876105406 | (/.f64 (/.f64 eh ew) (tan.f64 t)) | |
| accuracy | 35.74664374490829 | (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
| 257.0ms | 84× | 2 | valid |
| 49.0ms | 108× | 0 | valid |
| 48.0ms | 64× | 1 | valid |
Compiled 262 to 36 computations (86.3% saved)
ival-sin: 208.0ms (65% of total)ival-cos: 69.0ms (21.6% of total)ival-mult: 11.0ms (3.4% of total)adjust: 8.0ms (2.5% of total)ival-tan: 8.0ms (2.5% of total)ival-div: 6.0ms (1.9% of total)ival-atan: 4.0ms (1.3% of total)ival-add: 2.0ms (0.6% of total)ival-fabs: 2.0ms (0.6% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)| Inputs |
|---|
(fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
(+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
(*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
(*.f64 ew (sin.f64 t)) |
(cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
(/.f64 (/.f64 eh ew) (tan.f64 t)) |
(*.f64 eh (cos.f64 t)) |
| Outputs |
|---|
(fabs (+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))))) |
(* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) |
(+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)))) |
(cos (atan (/ (* eh (cos t)) (* ew (sin t))))) |
(/ (* eh (cos t)) (* ew (sin t))) |
(* eh (cos t)) |
(* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(* eh (+ (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))) |
(* -1 (* eh (+ (* -1 (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1 (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))))) |
(* ew (sin t)) |
(* ew (+ (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)) (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))) |
(* -1 (* ew (+ (* -1 (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) (* -1 (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))))) |
(* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (* t (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1/6 (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))))))) |
(* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(* t (+ (* -1/6 (* ew (* (pow t 2) (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) |
(* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* (pow t 2) (+ (* -1/6 (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* 1/120 (* ew (* (pow t 2) (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))))))) |
(* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* (pow t 2) (+ (* -1/6 (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* (pow t 2) (+ (* -1/5040 (* ew (* (pow t 2) (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* 1/120 (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))))))) |
(* ew t) |
(* t (+ ew (* -1/6 (* ew (pow t 2))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* 1/120 (* ew (pow t 2))))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* (pow t 2) (+ (* -1/5040 (* ew (pow t 2))) (* 1/120 ew))))))) |
(/ eh (* ew t)) |
(/ (+ (* -1/3 (/ (* eh (pow t 2)) ew)) (/ eh ew)) t) |
(/ (+ (* (pow t 2) (- (* -1 (* (pow t 2) (+ (* -1/9 (/ eh ew)) (* 2/15 (/ eh ew))))) (* 1/3 (/ eh ew)))) (/ eh ew)) t) |
(/ (+ (* (pow t 2) (- (* (pow t 2) (- (* -1 (* (pow t 2) (+ (* -1/3 (+ (* -1/9 (/ eh ew)) (* 2/15 (/ eh ew)))) (+ (* -2/45 (/ eh ew)) (* 17/315 (/ eh ew)))))) (+ (* -1/9 (/ eh ew)) (* 2/15 (/ eh ew))))) (* 1/3 (/ eh ew)))) (/ eh ew)) t) |
eh |
(+ eh (* -1/2 (* eh (pow t 2)))) |
(+ eh (* (pow t 2) (+ (* -1/2 eh) (* 1/24 (* eh (pow t 2)))))) |
(+ eh (* (pow t 2) (+ (* -1/2 eh) (* (pow t 2) (+ (* -1/720 (* eh (pow t 2))) (* 1/24 eh)))))) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 28.0ms | eh | @ | -inf | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t)))) (/ (/ eh ew) (tan t)) (* eh (cos t))) |
| 5.0ms | t | @ | 0 | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t)))) (/ (/ eh ew) (tan t)) (* eh (cos t))) |
| 5.0ms | eh | @ | 0 | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t)))) (/ (/ eh ew) (tan t)) (* eh (cos t))) |
| 4.0ms | t | @ | -inf | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t)))) (/ (/ eh ew) (tan t)) (* eh (cos t))) |
| 4.0ms | ew | @ | -inf | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t)))) (/ (/ eh ew) (tan t)) (* eh (cos t))) |
| 1× | egg-herbie |
| Inputs |
|---|
(fabs (+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))))) |
(* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) |
(+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)))) |
(cos (atan (/ (* eh (cos t)) (* ew (sin t))))) |
(/ (* eh (cos t)) (* ew (sin t))) |
(* eh (cos t)) |
(* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(* eh (+ (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))) |
(* -1 (* eh (+ (* -1 (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1 (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))))) |
(* ew (sin t)) |
(* ew (+ (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)) (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))) |
(* -1 (* ew (+ (* -1 (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) (* -1 (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))))) |
(* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (* t (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1/6 (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))))))) |
(* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(* t (+ (* -1/6 (* ew (* (pow t 2) (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) |
(* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* (pow t 2) (+ (* -1/6 (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* 1/120 (* ew (* (pow t 2) (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))))))) |
(* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* (pow t 2) (+ (* -1/6 (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* (pow t 2) (+ (* -1/5040 (* ew (* (pow t 2) (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* 1/120 (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))))))) |
(* ew t) |
(* t (+ ew (* -1/6 (* ew (pow t 2))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* 1/120 (* ew (pow t 2))))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* (pow t 2) (+ (* -1/5040 (* ew (pow t 2))) (* 1/120 ew))))))) |
(/ eh (* ew t)) |
(/ (+ (* -1/3 (/ (* eh (pow t 2)) ew)) (/ eh ew)) t) |
(/ (+ (* (pow t 2) (- (* -1 (* (pow t 2) (+ (* -1/9 (/ eh ew)) (* 2/15 (/ eh ew))))) (* 1/3 (/ eh ew)))) (/ eh ew)) t) |
(/ (+ (* (pow t 2) (- (* (pow t 2) (- (* -1 (* (pow t 2) (+ (* -1/3 (+ (* -1/9 (/ eh ew)) (* 2/15 (/ eh ew)))) (+ (* -2/45 (/ eh ew)) (* 17/315 (/ eh ew)))))) (+ (* -1/9 (/ eh ew)) (* 2/15 (/ eh ew))))) (* 1/3 (/ eh ew)))) (/ eh ew)) t) |
eh |
(+ eh (* -1/2 (* eh (pow t 2)))) |
(+ eh (* (pow t 2) (+ (* -1/2 eh) (* 1/24 (* eh (pow t 2)))))) |
(+ eh (* (pow t 2) (+ (* -1/2 eh) (* (pow t 2) (+ (* -1/720 (* eh (pow t 2))) (* 1/24 eh)))))) |
| Outputs |
|---|
(fabs (+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))))) |
(fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
(* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) |
(+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
(+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)))) |
(*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
(cos (atan (/ (* eh (cos t)) (* ew (sin t))))) |
(*.f64 ew (sin.f64 t)) |
(/ (* eh (cos t)) (* ew (sin t))) |
(cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
(* eh (cos t)) |
(/.f64 (/.f64 eh ew) (tan.f64 t)) |
(* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(*.f64 eh (cos.f64 t)) |
| Inputs |
|---|
(fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
(+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
(*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
(*.f64 ew (sin.f64 t)) |
(cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
(/.f64 (/.f64 eh ew) (tan.f64 t)) |
(*.f64 eh (cos.f64 t)) |
| Outputs |
|---|
(fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
(+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
(*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
(*.f64 ew (sin.f64 t)) |
(cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
(/.f64 (/.f64 eh ew) (tan.f64 t)) |
(*.f64 eh (cos.f64 t)) |
Compiled 554 to 56 computations (89.9% saved)
3 alts after pruning (2 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 14 | 2 | 16 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 14 | 3 | 17 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 99.8% | (fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| ▶ | 42.0% | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| ▶ | 61.7% | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
Compiled 103 to 63 computations (38.8% saved)
| 1× | egg-herbie |
Found 8 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f64 ew (sin.f64 t)) | |
| cost-diff | 0 | (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) | |
| cost-diff | 0 | #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) | |
| cost-diff | 0 | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) | |
| cost-diff | 0 | (cos.f64 t) | |
| cost-diff | 0 | (*.f64 eh (cos.f64 t)) | |
| cost-diff | 0 | #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t))) | |
| cost-diff | 0 | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
| Inputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t))) |
(*.f64 eh (cos.f64 t)) |
eh |
(cos.f64 t) |
t |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
(*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
(*.f64 ew (sin.f64 t)) |
ew |
(sin.f64 t) |
t |
(cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
(atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))) |
(/.f64 (/.f64 eh ew) (tan.f64 t)) |
(/.f64 eh ew) |
eh |
(tan.f64 t) |
| Outputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t))) |
(*.f64 eh (cos.f64 t)) |
eh |
(cos.f64 t) |
t |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
(*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
(*.f64 ew (sin.f64 t)) |
ew |
(sin.f64 t) |
t |
(cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
(atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))) |
(/.f64 (/.f64 eh ew) (tan.f64 t)) |
(/.f64 eh ew) |
eh |
(tan.f64 t) |
Found 8 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.1328125 | (*.f64 ew (sin.f64 t)) | |
| accuracy | 3.05386876105406 | (/.f64 (/.f64 eh ew) (tan.f64 t)) | |
| accuracy | 35.74664374490829 | (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) | |
| accuracy | 37.31732567647598 | #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) | |
| accuracy | 0.0 | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) | |
| accuracy | 0.0 | (cos.f64 t) | |
| accuracy | 0.13671875 | (*.f64 eh (cos.f64 t)) | |
| accuracy | 43.605697313426866 | #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t))) |
| 261.0ms | 84× | 2 | valid |
| 43.0ms | 64× | 1 | valid |
| 23.0ms | 108× | 0 | valid |
Compiled 372 to 49 computations (86.8% saved)
ival-sin: 220.0ms (72.1% of total)ival-cos: 41.0ms (13.4% of total)ival-mult: 11.0ms (3.6% of total)adjust: 8.0ms (2.6% of total)ival-tan: 8.0ms (2.6% of total)ival-div: 6.0ms (2% of total)ival-atan: 4.0ms (1.3% of total)ival-add: 2.0ms (0.7% of total)ival-fabs: 2.0ms (0.7% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)| Inputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t))) |
(*.f64 eh (cos.f64 t)) |
(cos.f64 t) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
(*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
(*.f64 ew (sin.f64 t)) |
(cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
(/.f64 (/.f64 eh ew) (tan.f64 t)) |
| Outputs |
|---|
(fabs (+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))))) |
(* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) |
(+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)))) |
(* eh (cos t)) |
(cos (atan (/ (* eh (cos t)) (* ew (sin t))))) |
(/ (* eh (cos t)) (* ew (sin t))) |
(* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(* eh (+ (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))) |
(* -1 (* eh (+ (* -1 (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1 (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))))) |
(* ew (sin t)) |
(* ew (+ (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)) (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))) |
(* -1 (* ew (+ (* -1 (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) (* -1 (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))))) |
(* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (* t (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1/6 (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))))))) |
eh |
(+ eh (* -1/2 (* eh (pow t 2)))) |
(+ eh (* (pow t 2) (+ (* -1/2 eh) (* 1/24 (* eh (pow t 2)))))) |
(+ eh (* (pow t 2) (+ (* -1/2 eh) (* (pow t 2) (+ (* -1/720 (* eh (pow t 2))) (* 1/24 eh)))))) |
1 |
(+ 1 (* -1/2 (pow t 2))) |
(+ 1 (* (pow t 2) (- (* 1/24 (pow t 2)) 1/2))) |
(+ 1 (* (pow t 2) (- (* (pow t 2) (+ 1/24 (* -1/720 (pow t 2)))) 1/2))) |
(* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(* t (+ (* -1/6 (* ew (* (pow t 2) (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) |
(* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* (pow t 2) (+ (* -1/6 (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* 1/120 (* ew (* (pow t 2) (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))))))) |
(* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* (pow t 2) (+ (* -1/6 (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* (pow t 2) (+ (* -1/5040 (* ew (* (pow t 2) (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* 1/120 (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))))))) |
(* ew t) |
(* t (+ ew (* -1/6 (* ew (pow t 2))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* 1/120 (* ew (pow t 2))))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* (pow t 2) (+ (* -1/5040 (* ew (pow t 2))) (* 1/120 ew))))))) |
(/ eh (* ew t)) |
(/ (+ (* -1/3 (/ (* eh (pow t 2)) ew)) (/ eh ew)) t) |
(/ (+ (* (pow t 2) (- (* -1 (* (pow t 2) (+ (* -1/9 (/ eh ew)) (* 2/15 (/ eh ew))))) (* 1/3 (/ eh ew)))) (/ eh ew)) t) |
(/ (+ (* (pow t 2) (- (* (pow t 2) (- (* -1 (* (pow t 2) (+ (* -1/3 (+ (* -1/9 (/ eh ew)) (* 2/15 (/ eh ew)))) (+ (* -2/45 (/ eh ew)) (* 17/315 (/ eh ew)))))) (+ (* -1/9 (/ eh ew)) (* 2/15 (/ eh ew))))) (* 1/3 (/ eh ew)))) (/ eh ew)) t) |
(cos t) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 8.0ms | eh | @ | inf | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* eh (cos t)) (cos t) (fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t)))) (/ (/ eh ew) (tan t))) |
| 3.0ms | eh | @ | -inf | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* eh (cos t)) (cos t) (fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t)))) (/ (/ eh ew) (tan t))) |
| 3.0ms | ew | @ | -inf | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* eh (cos t)) (cos t) (fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t)))) (/ (/ eh ew) (tan t))) |
| 2.0ms | eh | @ | 0 | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* eh (cos t)) (cos t) (fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t)))) (/ (/ eh ew) (tan t))) |
| 2.0ms | ew | @ | 0 | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* eh (cos t)) (cos t) (fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t)))) (/ (/ eh ew) (tan t))) |
| 1× | egg-herbie |
| Inputs |
|---|
(fabs (+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))))) |
(* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) |
(+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)))) |
(* eh (cos t)) |
(cos (atan (/ (* eh (cos t)) (* ew (sin t))))) |
(/ (* eh (cos t)) (* ew (sin t))) |
(* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(* eh (+ (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))) |
(* -1 (* eh (+ (* -1 (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1 (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))))) |
(* ew (sin t)) |
(* ew (+ (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)) (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))) |
(* -1 (* ew (+ (* -1 (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) (* -1 (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))))) |
(* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (* t (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1/6 (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))))))) |
eh |
(+ eh (* -1/2 (* eh (pow t 2)))) |
(+ eh (* (pow t 2) (+ (* -1/2 eh) (* 1/24 (* eh (pow t 2)))))) |
(+ eh (* (pow t 2) (+ (* -1/2 eh) (* (pow t 2) (+ (* -1/720 (* eh (pow t 2))) (* 1/24 eh)))))) |
1 |
(+ 1 (* -1/2 (pow t 2))) |
(+ 1 (* (pow t 2) (- (* 1/24 (pow t 2)) 1/2))) |
(+ 1 (* (pow t 2) (- (* (pow t 2) (+ 1/24 (* -1/720 (pow t 2)))) 1/2))) |
(* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(* t (+ (* -1/6 (* ew (* (pow t 2) (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) |
(* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* (pow t 2) (+ (* -1/6 (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* 1/120 (* ew (* (pow t 2) (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))))))) |
(* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* (pow t 2) (+ (* -1/6 (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* (pow t 2) (+ (* -1/5040 (* ew (* (pow t 2) (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* 1/120 (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))))))) |
(* ew t) |
(* t (+ ew (* -1/6 (* ew (pow t 2))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* 1/120 (* ew (pow t 2))))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* (pow t 2) (+ (* -1/5040 (* ew (pow t 2))) (* 1/120 ew))))))) |
(/ eh (* ew t)) |
(/ (+ (* -1/3 (/ (* eh (pow t 2)) ew)) (/ eh ew)) t) |
(/ (+ (* (pow t 2) (- (* -1 (* (pow t 2) (+ (* -1/9 (/ eh ew)) (* 2/15 (/ eh ew))))) (* 1/3 (/ eh ew)))) (/ eh ew)) t) |
(/ (+ (* (pow t 2) (- (* (pow t 2) (- (* -1 (* (pow t 2) (+ (* -1/3 (+ (* -1/9 (/ eh ew)) (* 2/15 (/ eh ew)))) (+ (* -2/45 (/ eh ew)) (* 17/315 (/ eh ew)))))) (+ (* -1/9 (/ eh ew)) (* 2/15 (/ eh ew))))) (* 1/3 (/ eh ew)))) (/ eh ew)) t) |
(cos t) |
| Outputs |
|---|
(fabs (+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
(* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t))) |
(+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)))) |
(*.f64 eh (cos.f64 t)) |
(* eh (cos t)) |
(cos.f64 t) |
(cos (atan (/ (* eh (cos t)) (* ew (sin t))))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
(/ (* eh (cos t)) (* ew (sin t))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
(* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
(* eh (+ (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))) |
(*.f64 ew (sin.f64 t)) |
(* -1 (* eh (+ (* -1 (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1 (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))))) |
(cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
(* ew (sin t)) |
(/.f64 (/.f64 eh ew) (tan.f64 t)) |
| Inputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t))) |
(*.f64 eh (cos.f64 t)) |
(cos.f64 t) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
(*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
(*.f64 ew (sin.f64 t)) |
(cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
(/.f64 (/.f64 eh ew) (tan.f64 t)) |
| Outputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t))) |
(*.f64 eh (cos.f64 t)) |
(cos.f64 t) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
(*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) |
(*.f64 ew (sin.f64 t)) |
(cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))) |
(/.f64 (/.f64 eh ew) (tan.f64 t)) |
Compiled 831 to 55 computations (93.4% saved)
4 alts after pruning (2 fresh and 2 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 16 | 2 | 18 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 1 | 2 |
| Done | 0 | 1 | 1 |
| Total | 17 | 4 | 21 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 99.8% | (fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| ▶ | 42.1% | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) |
| ✓ | 61.7% | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
| ▶ | 5.6% | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
Compiled 130 to 77 computations (40.8% saved)
| 1× | egg-herbie |
Found 8 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (sin.f64 t) | |
| cost-diff | 0 | (*.f64 ew (sin.f64 t)) | |
| cost-diff | 0 | #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t))) | |
| cost-diff | 0 | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) | |
| cost-diff | 0 | (cos.f64 t) | |
| cost-diff | 0 | #s(approx (* eh (cos t)) (cos.f64 t)) | |
| cost-diff | 0 | #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t))) | |
| cost-diff | 0 | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
| Inputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t))) |
#s(approx (* eh (cos t)) (cos.f64 t)) |
(cos.f64 t) |
t |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t))) |
(*.f64 ew (sin.f64 t)) |
ew |
(sin.f64 t) |
t |
| Outputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t))) |
#s(approx (* eh (cos t)) (cos.f64 t)) |
(cos.f64 t) |
t |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t))) |
(*.f64 ew (sin.f64 t)) |
ew |
(sin.f64 t) |
t |
Found 8 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (sin.f64 t) | |
| accuracy | 0.0 | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) | |
| accuracy | 0.1328125 | (*.f64 ew (sin.f64 t)) | |
| accuracy | 36.98120982116776 | #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t))) | |
| accuracy | 0.0 | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) | |
| accuracy | 0.0 | (cos.f64 t) | |
| accuracy | 43.605697313426866 | #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t))) | |
| accuracy | 61.765432369992624 | #s(approx (* eh (cos t)) (cos.f64 t)) |
| 59.0ms | 256× | 0 | valid |
Compiled 281 to 43 computations (84.7% saved)
ival-sin: 15.0ms (30.9% of total)ival-cos: 14.0ms (28.8% of total)ival-mult: 7.0ms (14.4% of total)ival-tan: 5.0ms (10.3% of total)ival-div: 4.0ms (8.2% of total)ival-add: 1.0ms (2.1% of total)ival-fabs: 1.0ms (2.1% of total)ival-atan: 1.0ms (2.1% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)| Inputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t))) |
#s(approx (* eh (cos t)) (cos.f64 t)) |
(cos.f64 t) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t))) |
(*.f64 ew (sin.f64 t)) |
(sin.f64 t) |
| Outputs |
|---|
(fabs (+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))))) |
(* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) |
(+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)))) |
(* eh (cos t)) |
(* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(* eh (+ (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))) |
(* -1 (* eh (+ (* -1 (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1 (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))))) |
(* ew (sin t)) |
(* ew (+ (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)) (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))) |
(* -1 (* ew (+ (* -1 (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) (* -1 (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))))) |
(* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (* t (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1/6 (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))))))) |
eh |
(+ eh (* -1/2 (* eh (pow t 2)))) |
(+ eh (* (pow t 2) (+ (* -1/2 eh) (* 1/24 (* eh (pow t 2)))))) |
(+ eh (* (pow t 2) (+ (* -1/2 eh) (* (pow t 2) (+ (* -1/720 (* eh (pow t 2))) (* 1/24 eh)))))) |
1 |
(+ 1 (* -1/2 (pow t 2))) |
(+ 1 (* (pow t 2) (- (* 1/24 (pow t 2)) 1/2))) |
(+ 1 (* (pow t 2) (- (* (pow t 2) (+ 1/24 (* -1/720 (pow t 2)))) 1/2))) |
(* ew t) |
(* t (+ ew (* -1/6 (* ew (pow t 2))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* 1/120 (* ew (pow t 2))))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* (pow t 2) (+ (* -1/5040 (* ew (pow t 2))) (* 1/120 ew))))))) |
t |
(* t (+ 1 (* -1/6 (pow t 2)))) |
(* t (+ 1 (* (pow t 2) (- (* 1/120 (pow t 2)) 1/6)))) |
(* t (+ 1 (* (pow t 2) (- (* (pow t 2) (+ 1/120 (* -1/5040 (pow t 2)))) 1/6)))) |
(cos t) |
(sin t) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | eh | @ | 0 | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* eh (cos t)) (cos t) (fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* ew (sin t)) (sin t)) |
| 2.0ms | t | @ | inf | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* eh (cos t)) (cos t) (fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* ew (sin t)) (sin t)) |
| 2.0ms | eh | @ | -inf | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* eh (cos t)) (cos t) (fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* ew (sin t)) (sin t)) |
| 2.0ms | t | @ | -inf | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* eh (cos t)) (cos t) (fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* ew (sin t)) (sin t)) |
| 2.0ms | ew | @ | -inf | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* eh (cos t)) (cos t) (fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* ew (sin t)) (sin t)) |
| 1× | egg-herbie |
| Inputs |
|---|
(fabs (+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))))) |
(* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) |
(+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)))) |
(* eh (cos t)) |
(* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(* eh (+ (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))) |
(* -1 (* eh (+ (* -1 (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1 (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))))) |
(* ew (sin t)) |
(* ew (+ (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)) (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))) |
(* -1 (* ew (+ (* -1 (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) (* -1 (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))))) |
(* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (* t (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1/6 (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))))))) |
eh |
(+ eh (* -1/2 (* eh (pow t 2)))) |
(+ eh (* (pow t 2) (+ (* -1/2 eh) (* 1/24 (* eh (pow t 2)))))) |
(+ eh (* (pow t 2) (+ (* -1/2 eh) (* (pow t 2) (+ (* -1/720 (* eh (pow t 2))) (* 1/24 eh)))))) |
1 |
(+ 1 (* -1/2 (pow t 2))) |
(+ 1 (* (pow t 2) (- (* 1/24 (pow t 2)) 1/2))) |
(+ 1 (* (pow t 2) (- (* (pow t 2) (+ 1/24 (* -1/720 (pow t 2)))) 1/2))) |
(* ew t) |
(* t (+ ew (* -1/6 (* ew (pow t 2))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* 1/120 (* ew (pow t 2))))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* (pow t 2) (+ (* -1/5040 (* ew (pow t 2))) (* 1/120 ew))))))) |
t |
(* t (+ 1 (* -1/6 (pow t 2)))) |
(* t (+ 1 (* (pow t 2) (- (* 1/120 (pow t 2)) 1/6)))) |
(* t (+ 1 (* (pow t 2) (- (* (pow t 2) (+ 1/120 (* -1/5040 (pow t 2)))) 1/6)))) |
(cos t) |
(sin t) |
| Outputs |
|---|
(fabs (+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
(* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t))) |
(+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)))) |
#s(approx (* eh (cos t)) (cos.f64 t)) |
(* eh (cos t)) |
(cos.f64 t) |
(* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) |
(* eh (+ (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t))) |
(* -1 (* eh (+ (* -1 (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1 (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))))) |
(*.f64 ew (sin.f64 t)) |
(* ew (sin t)) |
(sin.f64 t) |
| Inputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t))) |
#s(approx (* eh (cos t)) (cos.f64 t)) |
(cos.f64 t) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t))) |
(*.f64 ew (sin.f64 t)) |
(sin.f64 t) |
| Outputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t))) |
#s(approx (* eh (cos t)) (cos.f64 t)) |
(cos.f64 t) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t))) |
(*.f64 ew (sin.f64 t)) |
(sin.f64 t) |
Compiled 564 to 35 computations (93.8% saved)
5 alts after pruning (1 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 12 | 1 | 13 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 2 | 2 |
| Done | 0 | 2 | 2 |
| Total | 12 | 5 | 17 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 99.8% | (fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| ✓ | 42.1% | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) |
| ✓ | 61.7% | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
| ▶ | 5.1% | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t)))) |
| ✓ | 5.6% | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
Compiled 166 to 97 computations (41.6% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (sin.f64 t) | |
| cost-diff | 0 | #s(approx (* ew (sin t)) (sin.f64 t)) | |
| cost-diff | 0 | #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t))) | |
| cost-diff | 0 | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t)))) |
| Inputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t))) |
#s(approx (* ew (sin t)) (sin.f64 t)) |
(sin.f64 t) |
t |
| Outputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t))) |
#s(approx (* ew (sin t)) (sin.f64 t)) |
(sin.f64 t) |
t |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (sin.f64 t) | |
| accuracy | 0.0 | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t)))) | |
| accuracy | 36.98120982116776 | #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t))) | |
| accuracy | 61.36344759290878 | #s(approx (* ew (sin t)) (sin.f64 t)) |
| 58.0ms | 256× | 0 | valid |
Compiled 145 to 39 computations (73.1% saved)
ival-sin: 15.0ms (33.5% of total)ival-cos: 10.0ms (22.3% of total)ival-mult: 7.0ms (15.6% of total)ival-tan: 5.0ms (11.2% of total)ival-div: 3.0ms (6.7% of total)ival-add: 1.0ms (2.2% of total)ival-fabs: 1.0ms (2.2% of total)ival-atan: 1.0ms (2.2% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)| Inputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t))) |
#s(approx (* ew (sin t)) (sin.f64 t)) |
(sin.f64 t) |
| Outputs |
|---|
(fabs (+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))))) |
(* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) |
(+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)))) |
(* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(* eh (+ (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))) |
(* -1 (* eh (+ (* -1 (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1 (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))))) |
(* ew (sin t)) |
(* ew (+ (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)) (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))) |
(* -1 (* ew (+ (* -1 (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) (* -1 (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))))) |
(* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (* t (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1/6 (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))))))) |
(* ew t) |
(* t (+ ew (* -1/6 (* ew (pow t 2))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* 1/120 (* ew (pow t 2))))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* (pow t 2) (+ (* -1/5040 (* ew (pow t 2))) (* 1/120 ew))))))) |
t |
(* t (+ 1 (* -1/6 (pow t 2)))) |
(* t (+ 1 (* (pow t 2) (- (* 1/120 (pow t 2)) 1/6)))) |
(* t (+ 1 (* (pow t 2) (- (* (pow t 2) (+ 1/120 (* -1/5040 (pow t 2)))) 1/6)))) |
(sin t) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | ew | @ | -inf | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* ew (sin t)) (sin t)) |
| 1.0ms | t | @ | -inf | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* ew (sin t)) (sin t)) |
| 1.0ms | t | @ | inf | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* ew (sin t)) (sin t)) |
| 1.0ms | ew | @ | 0 | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* ew (sin t)) (sin t)) |
| 1.0ms | ew | @ | inf | ((fabs (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t))))))) (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (* ew (sin t)) (sin t)) |
| 1× | egg-herbie |
| Inputs |
|---|
(fabs (+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))))) |
(* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) |
(+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)))) |
(* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(* eh (+ (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))) |
(* -1 (* eh (+ (* -1 (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1 (/ (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) eh))))) |
(* ew (sin t)) |
(* ew (+ (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)) (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))) |
(* -1 (* ew (+ (* -1 (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) (* -1 (/ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) ew))))) |
(* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (* t (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))))) (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))) |
(+ (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* ew (cos (atan (/ (* eh (cos t)) (* ew (sin t)))))) (* t (+ (* -1/2 (* eh (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* -1/6 (* ew (* t (cos (atan (/ (* eh (cos t)) (* ew (sin t))))))))))))) |
(* ew t) |
(* t (+ ew (* -1/6 (* ew (pow t 2))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* 1/120 (* ew (pow t 2))))))) |
(* t (+ ew (* (pow t 2) (+ (* -1/6 ew) (* (pow t 2) (+ (* -1/5040 (* ew (pow t 2))) (* 1/120 ew))))))) |
t |
(* t (+ 1 (* -1/6 (pow t 2)))) |
(* t (+ 1 (* (pow t 2) (- (* 1/120 (pow t 2)) 1/6)))) |
(* t (+ 1 (* (pow t 2) (- (* (pow t 2) (+ 1/120 (* -1/5040 (pow t 2)))) 1/6)))) |
(sin t) |
| Outputs |
|---|
(fabs (+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t)))) |
(* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t))) |
(+ (* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) (* ew (* (cos (atan (/ (* eh (cos t)) (* ew (sin t))))) (sin t)))) |
#s(approx (* ew (sin t)) (sin.f64 t)) |
(* eh (* (cos t) (sin (atan (/ (* eh (cos t)) (* ew (sin t))))))) |
(sin.f64 t) |
| Inputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t))) |
#s(approx (* ew (sin t)) (sin.f64 t)) |
(sin.f64 t) |
| Outputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t)))) |
#s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t))) |
#s(approx (* ew (sin t)) (sin.f64 t)) |
(sin.f64 t) |
Compiled 304 to 26 computations (91.4% 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 |
|---|---|---|
| ✓ | 99.8% | (fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| ✓ | 42.1% | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) |
| ✓ | 61.7% | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
| ✓ | 5.1% | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t)))) |
| ✓ | 5.6% | (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
Compiled 374 to 139 computations (62.8% saved)
| Inputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t)))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
(fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| Outputs |
|---|
(fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
5 calls:
| 18.0ms | (fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| 3.0ms | (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
| 2.0ms | t |
| 2.0ms | eh |
| 2.0ms | ew |
| Accuracy | Segments | Branch |
|---|---|---|
| 99.8% | 1 | eh |
| 99.8% | 1 | ew |
| 99.8% | 1 | t |
| 99.8% | 1 | (fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| 99.8% | 1 | (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
Compiled 58 to 42 computations (27.6% saved)
| Inputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t)))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| Outputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
5 calls:
| 2.0ms | (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
| 2.0ms | (fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| 2.0ms | eh |
| 2.0ms | ew |
| 2.0ms | t |
| Accuracy | Segments | Branch |
|---|---|---|
| 77.3% | 3 | eh |
| 76.6% | 3 | ew |
| 65.2% | 2 | t |
| 61.7% | 1 | (fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| 61.7% | 1 | (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
Compiled 58 to 42 computations (27.6% saved)
| Inputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t)))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
| Outputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
4 calls:
| 2.0ms | (fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| 2.0ms | ew |
| 2.0ms | eh |
| 2.0ms | t |
| Accuracy | Segments | Branch |
|---|---|---|
| 61.7% | 1 | (fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| 61.7% | 1 | t |
| 61.7% | 1 | ew |
| 61.7% | 1 | eh |
Compiled 31 to 26 computations (16.1% saved)
Total -0.6b remaining (-1%)
Threshold costs -0.6b (-1%)
| Inputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* ew (sin t)) (sin.f64 t)))) |
| Outputs |
|---|
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
5 calls:
| 13.0ms | (fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
| 2.0ms | (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
| 1.0ms | t |
| 1.0ms | ew |
| 1.0ms | eh |
| Accuracy | Segments | Branch |
|---|---|---|
| 5.6% | 1 | ew |
| 5.6% | 1 | eh |
| 5.6% | 1 | (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t)))))) |
| 5.6% | 1 | t |
| 5.6% | 1 | (fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
Compiled 58 to 42 computations (27.6% saved)
| 2× | binary-search |
| 1× | narrow-enough |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 38.0ms | 9.525815159732071e-95 | 4.502257414592215e-94 |
| 28.0ms | -958.5602881812347 | -59.8697717132715 |
| 50.0ms | 208× | 0 | valid |
Compiled 889 to 569 computations (36% saved)
ival-mult: 13.0ms (29.8% of total)ival-sin: 12.0ms (27.5% of total)ival-cos: 8.0ms (18.3% of total)ival-tan: 4.0ms (9.2% of total)ival-div: 3.0ms (6.9% of total)ival-add: 1.0ms (2.3% of total)ival-fabs: 1.0ms (2.3% of total)ival-atan: 1.0ms (2.3% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)| 1× | egg-herbie |
| Inputs |
|---|
(fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
(if (<=.f64 eh #s(literal -60 binary64)) (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) (if (<=.f64 eh #s(literal 267733854436217/2348542582773833227889480596789337027375682548908319870707290971532209025114608443463698998384768703031934976 binary64)) (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
| Outputs |
|---|
(fabs.f64 (+.f64 (*.f64 (*.f64 ew (sin.f64 t)) (cos.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))) (*.f64 (*.f64 eh (cos.f64 t)) (sin.f64 (atan.f64 (/.f64 (/.f64 eh ew) (tan.f64 t))))))) |
(if (<=.f64 eh #s(literal -60 binary64)) (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) (if (<=.f64 eh #s(literal 267733854436217/2348542582773833227889480596789337027375682548908319870707290971532209025114608443463698998384768703031934976 binary64)) (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 ew (sin.f64 t)))) (fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) (*.f64 eh (cos.f64 t)))) |
(fabs.f64 #s(approx (+ (* (* ew (sin t)) (cos (atan (/ (/ eh ew) (tan t))))) (* (* eh (cos t)) (sin (atan (/ (/ eh ew) (tan t)))))) #s(approx (* eh (cos t)) (cos.f64 t)))) |
| 1× | done |
Compiled 204 to 43 computations (78.9% saved)
Compiled 464 to 120 computations (74.1% saved)
Loading profile data...