
Time bar (total: 2.3s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 0% | 100% | 0% | 0% | 0% | 0 |
| 0% | 0% | 0% | 100% | 0% | 0% | 0% | 1 |
| 0% | 0% | 0% | 100% | 0% | 0% | 0% | 2 |
| 0% | 0% | 0% | 100% | 0% | 0% | 0% | 3 |
| 0% | 0% | 0% | 100% | 0% | 0% | 0% | 4 |
| 0% | 0% | 0% | 100% | 0% | 0% | 0% | 5 |
| 18.7% | 0% | 0% | 100% | 0% | 0% | 0% | 6 |
| 28.1% | 0% | 0% | 100% | 0% | 0% | 0% | 7 |
| 32.8% | 0% | 0% | 100% | 0% | 0% | 0% | 8 |
| 49.2% | 0% | 0% | 100% | 0% | 0% | 0% | 9 |
| 57.4% | 0% | 0% | 100% | 0% | 0% | 0% | 10 |
| 61.5% | 0% | 0% | 100% | 0% | 0% | 0% | 11 |
| 71.8% | 0% | 0% | 100% | 0% | 0% | 0% | 12 |
Compiled 35 to 25 computations (28.6% saved)
| 1.1s | 8 256× | 0 | valid |
| 1.0ms | 5× | 0 | invalid |
const: 339.0ms (36.6% of total)ival-mult: 114.0ms (12.3% of total)ival-<=: 114.0ms (12.3% of total)ival-sin: 107.0ms (11.5% of total)ival-sqrt: 69.0ms (7.4% of total)ival-div: 65.0ms (7% of total)ival-sub: 43.0ms (4.6% of total)ival->: 36.0ms (3.9% of total)ival-and: 32.0ms (3.5% of total)exact: 5.0ms (0.5% of total)ival-assert: 3.0ms (0.3% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 0 | 0 | - | 0 | - | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| 0 | 0 | - | 0 | - | (-.f32 #s(literal 1 binary32) u1) |
| 0 | 0 | - | 0 | - | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| 0 | 0 | - | 0 | - | u2 |
| 0 | 0 | - | 0 | - | #s(literal 1 binary32) |
| 0 | 0 | - | 0 | - | #s(literal 314159265359/50000000000 binary32) |
| 0 | 0 | - | 0 | - | u1 |
| 0 | 0 | - | 0 | - | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
| 0 | 0 | - | 0 | - | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
| 0 | 0 | - | 0 | - | (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
| Predicted + | Predicted - | |
|---|---|---|
| + | 0 | 0 |
| - | 0 | 256 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 0 | 0 | 0 |
| - | 0 | 0 | 256 |
| number | freq |
|---|---|
| 0 | 256 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 0 | 0 | 0 |
| - | 0 | 0 | 1 |
| 61.0ms | 512× | 0 | valid |
Compiled 123 to 48 computations (61% saved)
ival-mult: 11.0ms (28.7% of total)const: 11.0ms (28.7% of total)ival-sin: 6.0ms (15.6% of total)ival-div: 4.0ms (10.4% of total)ival-sub: 3.0ms (7.8% of total)ival-sqrt: 3.0ms (7.8% 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 |
|---|
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| Outputs |
|---|
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
Compiled 11 to 11 computations (0% saved)
Compiled 0 to 3 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 98.3% | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
Compiled 11 to 11 computations (0% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (-.f32 #s(literal 1 binary32) u1) | |
| cost-diff | 0 | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) | |
| cost-diff | 0 | (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) | |
| cost-diff | 0 | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| Inputs |
|---|
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
u1 |
(-.f32 #s(literal 1 binary32) u1) |
#s(literal 1 binary32) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(literal 314159265359/50000000000 binary32) |
u2 |
| Outputs |
|---|
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
u1 |
(-.f32 #s(literal 1 binary32) u1) |
#s(literal 1 binary32) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(literal 314159265359/50000000000 binary32) |
u2 |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.140625 | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) | |
| accuracy | 0.20283129884221007 | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) | |
| accuracy | 0.27734375 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) | |
| accuracy | 0.37890625 | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| 26.0ms | 256× | 0 | valid |
Compiled 74 to 24 computations (67.6% saved)
const: 7.0ms (38.6% of total)ival-mult: 3.0ms (16.5% of total)ival-sin: 3.0ms (16.5% of total)ival-div: 2.0ms (11% of total)ival-sqrt: 2.0ms (11% of total)ival-sub: 1.0ms (5.5% of total)ival-assert: 0.0ms (0% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)| Inputs |
|---|
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
(-.f32 #s(literal 1 binary32) u1) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| Outputs |
|---|
(* (sqrt u1) (sin (* 314159265359/50000000000 u2))) |
(+ (* 1/2 (* (sqrt (pow u1 3)) (sin (* 314159265359/50000000000 u2)))) (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2)))) (* u1 (+ (* 1/2 (* (sqrt u1) (* (sin (* 314159265359/50000000000 u2)) (- 1 (* 1/4 (/ 1 u1)))))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))))) |
(sqrt u1) |
(+ (sqrt u1) (* 1/2 (sqrt (pow u1 3)))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt u1)) (* 1/2 (sqrt (/ 1 u1)))))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt (/ 1 u1))) (* u1 (+ (* 1/2 (sqrt (/ 1 u1))) (* 1/2 (* (sqrt u1) (- 1 (* 1/4 (/ 1 u1)))))))))) |
u1 |
(* u1 (+ 1 u1)) |
(* u1 (+ 1 (* u1 (+ 1 u1)))) |
(* u1 (+ 1 (* u1 (+ 1 (* u1 (+ 1 u1)))))) |
1 |
(+ 1 (* -1 u1)) |
(* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2))))) (* (pow u1 3) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))))) |
(sqrt -1) |
(- (sqrt -1) (* 1/2 (/ 1 (* u1 (sqrt -1))))) |
(- (+ (sqrt -1) (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1))))) (/ 1/2 (* u1 (sqrt -1)))) |
(- (+ (sqrt -1) (+ (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1)))) (* -1/2 (/ (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2)))) (* (pow u1 3) (sqrt -1)))))) (/ 1/2 (* u1 (sqrt -1)))) |
-1 |
(* -1 (+ 1 (/ 1 u1))) |
(- (* -1 (/ (+ 1 (/ 1 u1)) u1)) 1) |
(- (* -1 (/ (+ 1 (/ 1 u1)) (pow u1 2))) (+ 1 (/ 1 u1))) |
(* -1 u1) |
(* u1 (- (/ 1 u1) 1)) |
(+ (* 1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) (* -3/8 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* 3/8 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (sqrt -1) (* 1/2 (/ (sqrt -1) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1/2 (sqrt -1)) (* -3/8 (/ (sqrt -1) u1))) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (sqrt -1) u1)) (* 3/8 (sqrt -1))) u1)) (* -1/2 (sqrt -1))) u1))) |
(- (* -1 (/ (+ 1 (+ (/ 1 u1) (/ 1 (pow u1 2)))) u1)) 1) |
(* -1 (* u1 (- 1 (/ 1 u1)))) |
(* 314159265359/50000000000 (* (sqrt (/ u1 (- 1 u1))) u2)) |
(* u2 (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -302029322777818351566783844332719832329455959975176141755859165754785028165295919/3937500000000000000000000000000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))))))))) |
(* 314159265359/50000000000 u2) |
(* u2 (+ 314159265359/50000000000 (* -31006276680305942139213528068663279/750000000000000000000000000000000 (pow u2 2)))) |
(* u2 (+ 314159265359/50000000000 (* (pow u2 2) (- (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (pow u2 2)) 31006276680305942139213528068663279/750000000000000000000000000000000)))) |
(* u2 (+ 314159265359/50000000000 (* (pow u2 2) (- (* (pow u2 2) (+ 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (* -302029322777818351566783844332719832329455959975176141755859165754785028165295919/3937500000000000000000000000000000000000000000000000000000000000000000000000000 (pow u2 2)))) 31006276680305942139213528068663279/750000000000000000000000000000000)))) |
(* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) |
(sin (* 314159265359/50000000000 u2)) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 24.0ms | u1 | @ | 0 | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (- 1 u1) (* 314159265359/50000000000 u2) (sin (* 314159265359/50000000000 u2))) |
| 2.0ms | u1 | @ | inf | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (- 1 u1) (* 314159265359/50000000000 u2) (sin (* 314159265359/50000000000 u2))) |
| 2.0ms | u2 | @ | 0 | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (- 1 u1) (* 314159265359/50000000000 u2) (sin (* 314159265359/50000000000 u2))) |
| 1.0ms | u1 | @ | -inf | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (- 1 u1) (* 314159265359/50000000000 u2) (sin (* 314159265359/50000000000 u2))) |
| 1.0ms | u2 | @ | inf | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (- 1 u1) (* 314159265359/50000000000 u2) (sin (* 314159265359/50000000000 u2))) |
| 1× | egg-herbie |
| Inputs |
|---|
(* (sqrt u1) (sin (* 314159265359/50000000000 u2))) |
(+ (* 1/2 (* (sqrt (pow u1 3)) (sin (* 314159265359/50000000000 u2)))) (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2)))) (* u1 (+ (* 1/2 (* (sqrt u1) (* (sin (* 314159265359/50000000000 u2)) (- 1 (* 1/4 (/ 1 u1)))))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))))) |
(sqrt u1) |
(+ (sqrt u1) (* 1/2 (sqrt (pow u1 3)))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt u1)) (* 1/2 (sqrt (/ 1 u1)))))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt (/ 1 u1))) (* u1 (+ (* 1/2 (sqrt (/ 1 u1))) (* 1/2 (* (sqrt u1) (- 1 (* 1/4 (/ 1 u1)))))))))) |
u1 |
(* u1 (+ 1 u1)) |
(* u1 (+ 1 (* u1 (+ 1 u1)))) |
(* u1 (+ 1 (* u1 (+ 1 (* u1 (+ 1 u1)))))) |
1 |
(+ 1 (* -1 u1)) |
(* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2))))) (* (pow u1 3) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))))) |
(sqrt -1) |
(- (sqrt -1) (* 1/2 (/ 1 (* u1 (sqrt -1))))) |
(- (+ (sqrt -1) (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1))))) (/ 1/2 (* u1 (sqrt -1)))) |
(- (+ (sqrt -1) (+ (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1)))) (* -1/2 (/ (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2)))) (* (pow u1 3) (sqrt -1)))))) (/ 1/2 (* u1 (sqrt -1)))) |
-1 |
(* -1 (+ 1 (/ 1 u1))) |
(- (* -1 (/ (+ 1 (/ 1 u1)) u1)) 1) |
(- (* -1 (/ (+ 1 (/ 1 u1)) (pow u1 2))) (+ 1 (/ 1 u1))) |
(* -1 u1) |
(* u1 (- (/ 1 u1) 1)) |
(+ (* 1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) (* -3/8 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* 3/8 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (sqrt -1) (* 1/2 (/ (sqrt -1) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1/2 (sqrt -1)) (* -3/8 (/ (sqrt -1) u1))) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (sqrt -1) u1)) (* 3/8 (sqrt -1))) u1)) (* -1/2 (sqrt -1))) u1))) |
(- (* -1 (/ (+ 1 (+ (/ 1 u1) (/ 1 (pow u1 2)))) u1)) 1) |
(* -1 (* u1 (- 1 (/ 1 u1)))) |
(* 314159265359/50000000000 (* (sqrt (/ u1 (- 1 u1))) u2)) |
(* u2 (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -302029322777818351566783844332719832329455959975176141755859165754785028165295919/3937500000000000000000000000000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))))))))) |
(* 314159265359/50000000000 u2) |
(* u2 (+ 314159265359/50000000000 (* -31006276680305942139213528068663279/750000000000000000000000000000000 (pow u2 2)))) |
(* u2 (+ 314159265359/50000000000 (* (pow u2 2) (- (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (pow u2 2)) 31006276680305942139213528068663279/750000000000000000000000000000000)))) |
(* u2 (+ 314159265359/50000000000 (* (pow u2 2) (- (* (pow u2 2) (+ 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (* -302029322777818351566783844332719832329455959975176141755859165754785028165295919/3937500000000000000000000000000000000000000000000000000000000000000000000000000 (pow u2 2)))) 31006276680305942139213528068663279/750000000000000000000000000000000)))) |
(* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) |
(sin (* 314159265359/50000000000 u2)) |
| Outputs |
|---|
(* (sqrt u1) (sin (* 314159265359/50000000000 u2))) |
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(+ (* 1/2 (* (sqrt (pow u1 3)) (sin (* 314159265359/50000000000 u2)))) (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) |
(sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))) |
(/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2)))) (* u1 (+ (* 1/2 (* (sqrt u1) (* (sin (* 314159265359/50000000000 u2)) (- 1 (* 1/4 (/ 1 u1)))))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))))) |
(-.f32 #s(literal 1 binary32) u1) |
(sqrt u1) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
(+ (sqrt u1) (* 1/2 (sqrt (pow u1 3)))) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| Inputs |
|---|
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
(-.f32 #s(literal 1 binary32) u1) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| Outputs |
|---|
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
(-.f32 #s(literal 1 binary32) u1) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
Compiled 170 to 27 computations (84.1% saved)
5 alts after pruning (4 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 8 | 4 | 12 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 8 | 5 | 13 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 98.3% | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| ▶ | 19.7% | (*.f32 #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| ▶ | 18.9% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
| ▶ | 14.6% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
| ▶ | 18.4% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)))) |
Compiled 76 to 68 computations (10.5% saved)
| 1× | egg-herbie |
Found 13 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) | |
| cost-diff | 0 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) | |
| cost-diff | 0 | #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) | |
| cost-diff | 0 | (*.f32 #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) | |
| cost-diff | 0 | (-.f32 #s(literal 1 binary32) u1) | |
| cost-diff | 0 | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) | |
| cost-diff | 0 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) | |
| cost-diff | 0 | (-.f32 #s(literal 1 binary32) u1) | |
| cost-diff | 0 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) | |
| cost-diff | 0 | (-.f32 #s(literal 1 binary32) u1) | |
| cost-diff | 0 | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) | |
| cost-diff | 0 | (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) | |
| cost-diff | 0 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)))) |
| Inputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)))) |
(sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
u1 |
(-.f32 #s(literal 1 binary32) u1) |
#s(literal 1 binary32) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
(-.f32 #s(literal 1 binary32) u1) |
#s(literal 1 binary32) |
u1 |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
u1 |
(-.f32 #s(literal 1 binary32) u1) |
#s(literal 1 binary32) |
(*.f32 #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(literal 314159265359/50000000000 binary32) |
u2 |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| Outputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)))) |
(sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
u1 |
(-.f32 #s(literal 1 binary32) u1) |
#s(literal 1 binary32) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
(-.f32 #s(literal 1 binary32) u1) |
#s(literal 1 binary32) |
u1 |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
u1 |
(-.f32 #s(literal 1 binary32) u1) |
#s(literal 1 binary32) |
(*.f32 #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(literal 314159265359/50000000000 binary32) |
u2 |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
Found 13 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.20283129884221007 | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) | |
| accuracy | 0.27734375 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) | |
| accuracy | 0.37890625 | (*.f32 #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) | |
| accuracy | 25.70588637766444 | #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) | |
| accuracy | 0.0 | (-.f32 #s(literal 1 binary32) u1) | |
| accuracy | 0.140625 | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) | |
| accuracy | 25.94101973029366 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) | |
| accuracy | 0.0 | (-.f32 #s(literal 1 binary32) u1) | |
| accuracy | 27.328506996109247 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) | |
| accuracy | 0.0 | (-.f32 #s(literal 1 binary32) u1) | |
| accuracy | 0.125 | (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) | |
| accuracy | 0.140625 | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) | |
| accuracy | 26.123022126330294 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)))) |
| 32.0ms | 256× | 0 | valid |
Compiled 207 to 36 computations (82.6% saved)
ival-mult: 10.0ms (44.3% of total)ival-sin: 3.0ms (13.3% of total)const: 3.0ms (13.3% of total)ival-div: 2.0ms (8.9% of total)ival-sqrt: 2.0ms (8.9% of total)ival-sub: 1.0ms (4.4% 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 (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)))) |
(sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
(-.f32 #s(literal 1 binary32) u1) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(*.f32 #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| Outputs |
|---|
(* (sqrt u1) (sin (* 314159265359/50000000000 u2))) |
(+ (* 1/2 (* (sqrt (pow u1 3)) (sin (* 314159265359/50000000000 u2)))) (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2)))) (* u1 (+ (* 1/2 (* (sqrt u1) (* (sin (* 314159265359/50000000000 u2)) (- 1 (* 1/4 (/ 1 u1)))))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))))) |
(sqrt u1) |
(+ (sqrt u1) (* 1/2 (sqrt (pow u1 3)))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt u1)) (* 1/2 (sqrt (/ 1 u1)))))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt (/ 1 u1))) (* u1 (+ (* 1/2 (sqrt (/ 1 u1))) (* 1/2 (* (sqrt u1) (- 1 (* 1/4 (/ 1 u1)))))))))) |
u1 |
(* u1 (+ 1 u1)) |
(* u1 (+ 1 (* u1 (+ 1 u1)))) |
(* u1 (+ 1 (* u1 (+ 1 (* u1 (+ 1 u1)))))) |
1 |
(+ 1 (* -1 u1)) |
(* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2))))) (* (pow u1 3) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))))) |
(sqrt -1) |
(- (sqrt -1) (* 1/2 (/ 1 (* u1 (sqrt -1))))) |
(- (+ (sqrt -1) (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1))))) (/ 1/2 (* u1 (sqrt -1)))) |
(- (+ (sqrt -1) (+ (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1)))) (* -1/2 (/ (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2)))) (* (pow u1 3) (sqrt -1)))))) (/ 1/2 (* u1 (sqrt -1)))) |
-1 |
(* -1 (+ 1 (/ 1 u1))) |
(- (* -1 (/ (+ 1 (/ 1 u1)) u1)) 1) |
(- (* -1 (/ (+ 1 (/ 1 u1)) (pow u1 2))) (+ 1 (/ 1 u1))) |
(* -1 u1) |
(* u1 (- (/ 1 u1) 1)) |
(+ (* 1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) (* -3/8 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* 3/8 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (sqrt -1) (* 1/2 (/ (sqrt -1) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1/2 (sqrt -1)) (* -3/8 (/ (sqrt -1) u1))) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (sqrt -1) u1)) (* 3/8 (sqrt -1))) u1)) (* -1/2 (sqrt -1))) u1))) |
(- (* -1 (/ (+ 1 (+ (/ 1 u1) (/ 1 (pow u1 2)))) u1)) 1) |
(* -1 (* u1 (- 1 (/ 1 u1)))) |
(* 314159265359/50000000000 (* (sqrt (/ u1 (- 1 u1))) u2)) |
(* u2 (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -302029322777818351566783844332719832329455959975176141755859165754785028165295919/3937500000000000000000000000000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))))))))) |
(* 314159265359/50000000000 u2) |
(* u2 (+ 314159265359/50000000000 (* -31006276680305942139213528068663279/750000000000000000000000000000000 (pow u2 2)))) |
(* u2 (+ 314159265359/50000000000 (* (pow u2 2) (- (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (pow u2 2)) 31006276680305942139213528068663279/750000000000000000000000000000000)))) |
(* u2 (+ 314159265359/50000000000 (* (pow u2 2) (- (* (pow u2 2) (+ 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (* -302029322777818351566783844332719832329455959975176141755859165754785028165295919/3937500000000000000000000000000000000000000000000000000000000000000000000000000 (pow u2 2)))) 31006276680305942139213528068663279/750000000000000000000000000000000)))) |
(* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) |
(sin (* 314159265359/50000000000 u2)) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | u2 | @ | -inf | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (- 1 u1) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (* 314159265359/50000000000 u2) (sin (* 314159265359/50000000000 u2))) |
| 1.0ms | u2 | @ | inf | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (- 1 u1) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (* 314159265359/50000000000 u2) (sin (* 314159265359/50000000000 u2))) |
| 0.0ms | u1 | @ | inf | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (- 1 u1) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (* 314159265359/50000000000 u2) (sin (* 314159265359/50000000000 u2))) |
| 0.0ms | u2 | @ | 0 | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (- 1 u1) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (* 314159265359/50000000000 u2) (sin (* 314159265359/50000000000 u2))) |
| 0.0ms | u1 | @ | -inf | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (- 1 u1) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (* 314159265359/50000000000 u2) (sin (* 314159265359/50000000000 u2))) |
| 1× | egg-herbie |
| Inputs |
|---|
(* (sqrt u1) (sin (* 314159265359/50000000000 u2))) |
(+ (* 1/2 (* (sqrt (pow u1 3)) (sin (* 314159265359/50000000000 u2)))) (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2)))) (* u1 (+ (* 1/2 (* (sqrt u1) (* (sin (* 314159265359/50000000000 u2)) (- 1 (* 1/4 (/ 1 u1)))))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))))) |
(sqrt u1) |
(+ (sqrt u1) (* 1/2 (sqrt (pow u1 3)))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt u1)) (* 1/2 (sqrt (/ 1 u1)))))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt (/ 1 u1))) (* u1 (+ (* 1/2 (sqrt (/ 1 u1))) (* 1/2 (* (sqrt u1) (- 1 (* 1/4 (/ 1 u1)))))))))) |
u1 |
(* u1 (+ 1 u1)) |
(* u1 (+ 1 (* u1 (+ 1 u1)))) |
(* u1 (+ 1 (* u1 (+ 1 (* u1 (+ 1 u1)))))) |
1 |
(+ 1 (* -1 u1)) |
(* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2))))) (* (pow u1 3) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))))) |
(sqrt -1) |
(- (sqrt -1) (* 1/2 (/ 1 (* u1 (sqrt -1))))) |
(- (+ (sqrt -1) (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1))))) (/ 1/2 (* u1 (sqrt -1)))) |
(- (+ (sqrt -1) (+ (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1)))) (* -1/2 (/ (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2)))) (* (pow u1 3) (sqrt -1)))))) (/ 1/2 (* u1 (sqrt -1)))) |
-1 |
(* -1 (+ 1 (/ 1 u1))) |
(- (* -1 (/ (+ 1 (/ 1 u1)) u1)) 1) |
(- (* -1 (/ (+ 1 (/ 1 u1)) (pow u1 2))) (+ 1 (/ 1 u1))) |
(* -1 u1) |
(* u1 (- (/ 1 u1) 1)) |
(+ (* 1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) (* -3/8 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* 3/8 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (sqrt -1) (* 1/2 (/ (sqrt -1) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1/2 (sqrt -1)) (* -3/8 (/ (sqrt -1) u1))) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (sqrt -1) u1)) (* 3/8 (sqrt -1))) u1)) (* -1/2 (sqrt -1))) u1))) |
(- (* -1 (/ (+ 1 (+ (/ 1 u1) (/ 1 (pow u1 2)))) u1)) 1) |
(* -1 (* u1 (- 1 (/ 1 u1)))) |
(* 314159265359/50000000000 (* (sqrt (/ u1 (- 1 u1))) u2)) |
(* u2 (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -302029322777818351566783844332719832329455959975176141755859165754785028165295919/3937500000000000000000000000000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))))))))) |
(* 314159265359/50000000000 u2) |
(* u2 (+ 314159265359/50000000000 (* -31006276680305942139213528068663279/750000000000000000000000000000000 (pow u2 2)))) |
(* u2 (+ 314159265359/50000000000 (* (pow u2 2) (- (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (pow u2 2)) 31006276680305942139213528068663279/750000000000000000000000000000000)))) |
(* u2 (+ 314159265359/50000000000 (* (pow u2 2) (- (* (pow u2 2) (+ 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (* -302029322777818351566783844332719832329455959975176141755859165754785028165295919/3937500000000000000000000000000000000000000000000000000000000000000000000000000 (pow u2 2)))) 31006276680305942139213528068663279/750000000000000000000000000000000)))) |
(* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) |
(sin (* 314159265359/50000000000 u2)) |
| Outputs |
|---|
(* (sqrt u1) (sin (* 314159265359/50000000000 u2))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)))) |
(+ (* 1/2 (* (sqrt (pow u1 3)) (sin (* 314159265359/50000000000 u2)))) (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) |
(sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))) |
(/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2)))) (* u1 (+ (* 1/2 (* (sqrt u1) (* (sin (* 314159265359/50000000000 u2)) (- 1 (* 1/4 (/ 1 u1)))))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))))) |
(-.f32 #s(literal 1 binary32) u1) |
(sqrt u1) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
(+ (sqrt u1) (* 1/2 (sqrt (pow u1 3)))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt u1)) (* 1/2 (sqrt (/ 1 u1)))))) |
(*.f32 #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt (/ 1 u1))) (* u1 (+ (* 1/2 (sqrt (/ 1 u1))) (* 1/2 (* (sqrt u1) (- 1 (* 1/4 (/ 1 u1)))))))))) |
#s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
u1 |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
(* u1 (+ 1 u1)) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| Inputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)))) |
(sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
(-.f32 #s(literal 1 binary32) u1) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(*.f32 #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| Outputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)))) |
(sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
(-.f32 #s(literal 1 binary32) u1) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
(*.f32 #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
Compiled 479 to 40 computations (91.6% saved)
9 alts after pruning (4 fresh and 5 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 19 | 4 | 23 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 4 | 4 |
| Done | 0 | 1 | 1 |
| Total | 19 | 9 | 28 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 98.3% | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| ✓ | 19.7% | (*.f32 #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| ✓ | 18.9% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
| ✓ | 14.6% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
| ✓ | 18.4% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)))) |
| ▶ | 16.0% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
| ▶ | 15.8% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
| ▶ | 18.8% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| ▶ | 19.7% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
Compiled 164 to 132 computations (19.5% saved)
| 1× | egg-herbie |
Found 15 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) | |
| cost-diff | 0 | #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) | |
| cost-diff | 0 | (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) | |
| cost-diff | 0 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) | |
| cost-diff | 0 | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) | |
| cost-diff | 0 | #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) | |
| cost-diff | 0 | (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) | |
| cost-diff | 0 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) | |
| cost-diff | 0 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) | |
| cost-diff | 0 | #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) | |
| cost-diff | 0 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) | |
| cost-diff | 0 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) | |
| cost-diff | 0 | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) | |
| cost-diff | 0 | #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) | |
| cost-diff | 0 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
| Inputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(literal 314159265359/50000000000 binary32) |
u2 |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(literal 314159265359/50000000000 binary32) |
u2 |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(literal 314159265359/50000000000 binary32) |
u2 |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(literal 314159265359/50000000000 binary32) |
u2 |
| Outputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(literal 314159265359/50000000000 binary32) |
u2 |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(literal 314159265359/50000000000 binary32) |
u2 |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(literal 314159265359/50000000000 binary32) |
u2 |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(literal 314159265359/50000000000 binary32) |
u2 |
Found 15 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.125 | (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) | |
| accuracy | 0.27734375 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) | |
| accuracy | 26.064839408766645 | #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) | |
| accuracy | 26.123022126330294 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) | |
| accuracy | 0.20283129884221007 | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) | |
| accuracy | 0.27734375 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) | |
| accuracy | 26.123022126330294 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) | |
| accuracy | 26.27364672736659 | #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) | |
| accuracy | 0.27734375 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) | |
| accuracy | 25.94101973029366 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) | |
| accuracy | 26.064839408766645 | #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) | |
| accuracy | 0.20283129884221007 | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) | |
| accuracy | 0.27734375 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) | |
| accuracy | 25.94101973029366 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) | |
| accuracy | 26.27364672736659 | #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| 27.0ms | 256× | 0 | valid |
Compiled 281 to 35 computations (87.5% saved)
ival-mult: 5.0ms (29.5% of total)ival-sin: 3.0ms (17.7% of total)const: 3.0ms (17.7% of total)ival-div: 2.0ms (11.8% of total)ival-sqrt: 2.0ms (11.8% of total)ival-sub: 1.0ms (5.9% 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 (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| Outputs |
|---|
(* (sqrt u1) (sin (* 314159265359/50000000000 u2))) |
(+ (* 1/2 (* (sqrt (pow u1 3)) (sin (* 314159265359/50000000000 u2)))) (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2)))) (* u1 (+ (* 1/2 (* (sqrt u1) (* (sin (* 314159265359/50000000000 u2)) (- 1 (* 1/4 (/ 1 u1)))))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))))) |
u1 |
(* u1 (+ 1 u1)) |
(* u1 (+ 1 (* u1 (+ 1 u1)))) |
(* u1 (+ 1 (* u1 (+ 1 (* u1 (+ 1 u1)))))) |
(sqrt u1) |
(+ (sqrt u1) (* 1/2 (sqrt (pow u1 3)))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt u1)) (* 1/2 (sqrt (/ 1 u1)))))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt (/ 1 u1))) (* u1 (+ (* 1/2 (sqrt (/ 1 u1))) (* 1/2 (* (sqrt u1) (- 1 (* 1/4 (/ 1 u1)))))))))) |
(* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2))))) (* (pow u1 3) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))))) |
-1 |
(* -1 (+ 1 (/ 1 u1))) |
(- (* -1 (/ (+ 1 (/ 1 u1)) u1)) 1) |
(- (* -1 (/ (+ 1 (/ 1 u1)) (pow u1 2))) (+ 1 (/ 1 u1))) |
(sqrt -1) |
(- (sqrt -1) (* 1/2 (/ 1 (* u1 (sqrt -1))))) |
(- (+ (sqrt -1) (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1))))) (/ 1/2 (* u1 (sqrt -1)))) |
(- (+ (sqrt -1) (+ (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1)))) (* -1/2 (/ (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2)))) (* (pow u1 3) (sqrt -1)))))) (/ 1/2 (* u1 (sqrt -1)))) |
(+ (* 1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) (* -3/8 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* 3/8 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(- (* -1 (/ (+ 1 (+ (/ 1 u1) (/ 1 (pow u1 2)))) u1)) 1) |
(+ (sqrt -1) (* 1/2 (/ (sqrt -1) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1/2 (sqrt -1)) (* -3/8 (/ (sqrt -1) u1))) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (sqrt -1) u1)) (* 3/8 (sqrt -1))) u1)) (* -1/2 (sqrt -1))) u1))) |
(* 314159265359/50000000000 (* (sqrt (/ u1 (- 1 u1))) u2)) |
(* u2 (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -302029322777818351566783844332719832329455959975176141755859165754785028165295919/3937500000000000000000000000000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))))))))) |
(* 314159265359/50000000000 u2) |
(* u2 (+ 314159265359/50000000000 (* -31006276680305942139213528068663279/750000000000000000000000000000000 (pow u2 2)))) |
(* u2 (+ 314159265359/50000000000 (* (pow u2 2) (- (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (pow u2 2)) 31006276680305942139213528068663279/750000000000000000000000000000000)))) |
(* u2 (+ 314159265359/50000000000 (* (pow u2 2) (- (* (pow u2 2) (+ 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (* -302029322777818351566783844332719832329455959975176141755859165754785028165295919/3937500000000000000000000000000000000000000000000000000000000000000000000000000 (pow u2 2)))) 31006276680305942139213528068663279/750000000000000000000000000000000)))) |
(* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) |
(sin (* 314159265359/50000000000 u2)) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | u1 | @ | inf | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/ u1 (- 1 u1)) (sin (* 314159265359/50000000000 u2)) (* 314159265359/50000000000 u2) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/ u1 (- 1 u1)) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1)))) |
| 1.0ms | u2 | @ | inf | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/ u1 (- 1 u1)) (sin (* 314159265359/50000000000 u2)) (* 314159265359/50000000000 u2) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/ u1 (- 1 u1)) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1)))) |
| 1.0ms | u2 | @ | -inf | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/ u1 (- 1 u1)) (sin (* 314159265359/50000000000 u2)) (* 314159265359/50000000000 u2) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/ u1 (- 1 u1)) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1)))) |
| 1.0ms | u2 | @ | 0 | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/ u1 (- 1 u1)) (sin (* 314159265359/50000000000 u2)) (* 314159265359/50000000000 u2) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/ u1 (- 1 u1)) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1)))) |
| 0.0ms | u1 | @ | -inf | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/ u1 (- 1 u1)) (sin (* 314159265359/50000000000 u2)) (* 314159265359/50000000000 u2) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/ u1 (- 1 u1)) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1)))) |
| 1× | egg-herbie |
| Inputs |
|---|
(* (sqrt u1) (sin (* 314159265359/50000000000 u2))) |
(+ (* 1/2 (* (sqrt (pow u1 3)) (sin (* 314159265359/50000000000 u2)))) (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2)))) (* u1 (+ (* 1/2 (* (sqrt u1) (* (sin (* 314159265359/50000000000 u2)) (- 1 (* 1/4 (/ 1 u1)))))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))))) |
u1 |
(* u1 (+ 1 u1)) |
(* u1 (+ 1 (* u1 (+ 1 u1)))) |
(* u1 (+ 1 (* u1 (+ 1 (* u1 (+ 1 u1)))))) |
(sqrt u1) |
(+ (sqrt u1) (* 1/2 (sqrt (pow u1 3)))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt u1)) (* 1/2 (sqrt (/ 1 u1)))))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt (/ 1 u1))) (* u1 (+ (* 1/2 (sqrt (/ 1 u1))) (* 1/2 (* (sqrt u1) (- 1 (* 1/4 (/ 1 u1)))))))))) |
(* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2))))) (* (pow u1 3) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))))) |
-1 |
(* -1 (+ 1 (/ 1 u1))) |
(- (* -1 (/ (+ 1 (/ 1 u1)) u1)) 1) |
(- (* -1 (/ (+ 1 (/ 1 u1)) (pow u1 2))) (+ 1 (/ 1 u1))) |
(sqrt -1) |
(- (sqrt -1) (* 1/2 (/ 1 (* u1 (sqrt -1))))) |
(- (+ (sqrt -1) (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1))))) (/ 1/2 (* u1 (sqrt -1)))) |
(- (+ (sqrt -1) (+ (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1)))) (* -1/2 (/ (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2)))) (* (pow u1 3) (sqrt -1)))))) (/ 1/2 (* u1 (sqrt -1)))) |
(+ (* 1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) (* -3/8 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* 3/8 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(- (* -1 (/ (+ 1 (+ (/ 1 u1) (/ 1 (pow u1 2)))) u1)) 1) |
(+ (sqrt -1) (* 1/2 (/ (sqrt -1) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1/2 (sqrt -1)) (* -3/8 (/ (sqrt -1) u1))) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (sqrt -1) u1)) (* 3/8 (sqrt -1))) u1)) (* -1/2 (sqrt -1))) u1))) |
(* 314159265359/50000000000 (* (sqrt (/ u1 (- 1 u1))) u2)) |
(* u2 (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -302029322777818351566783844332719832329455959975176141755859165754785028165295919/3937500000000000000000000000000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))))))))) |
(* 314159265359/50000000000 u2) |
(* u2 (+ 314159265359/50000000000 (* -31006276680305942139213528068663279/750000000000000000000000000000000 (pow u2 2)))) |
(* u2 (+ 314159265359/50000000000 (* (pow u2 2) (- (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (pow u2 2)) 31006276680305942139213528068663279/750000000000000000000000000000000)))) |
(* u2 (+ 314159265359/50000000000 (* (pow u2 2) (- (* (pow u2 2) (+ 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (* -302029322777818351566783844332719832329455959975176141755859165754785028165295919/3937500000000000000000000000000000000000000000000000000000000000000000000000000 (pow u2 2)))) 31006276680305942139213528068663279/750000000000000000000000000000000)))) |
(* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) |
(sin (* 314159265359/50000000000 u2)) |
| Outputs |
|---|
(* (sqrt u1) (sin (* 314159265359/50000000000 u2))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
(+ (* 1/2 (* (sqrt (pow u1 3)) (sin (* 314159265359/50000000000 u2)))) (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) |
#s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2)))) (* u1 (+ (* 1/2 (* (sqrt u1) (* (sin (* 314159265359/50000000000 u2)) (- 1 (* 1/4 (/ 1 u1)))))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))))) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
u1 |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(* u1 (+ 1 u1)) |
#s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(* u1 (+ 1 (* u1 (+ 1 u1)))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
(* u1 (+ 1 (* u1 (+ 1 (* u1 (+ 1 u1)))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
(sqrt u1) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
(+ (sqrt u1) (* 1/2 (sqrt (pow u1 3)))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| Inputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| Outputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
Compiled 765 to 45 computations (94.1% saved)
10 alts after pruning (1 fresh and 9 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 28 | 1 | 29 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 4 | 4 |
| Done | 0 | 5 | 5 |
| Total | 28 | 10 | 38 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 98.3% | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| ✓ | 19.7% | (*.f32 #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| ✓ | 18.9% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
| ✓ | 14.6% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
| ✓ | 18.4% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)))) |
| ✓ | 16.0% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
| ▶ | 15.0% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))))) |
| ✓ | 15.8% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
| ✓ | 18.8% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| ✓ | 19.7% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
Compiled 194 to 151 computations (22.2% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) | |
| cost-diff | 0 | #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) | |
| cost-diff | 0 | (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))))) | |
| cost-diff | 0 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))))) |
| Inputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))))) |
#s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(literal 314159265359/50000000000 binary32) |
u2 |
| Outputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))))) |
#s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
#s(literal 314159265359/50000000000 binary32) |
u2 |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.27734375 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) | |
| accuracy | 25.70169911443513 | #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) | |
| accuracy | 26.123022126330294 | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))))) | |
| accuracy | 26.27364672736659 | #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| 23.0ms | 256× | 0 | valid |
Compiled 139 to 32 computations (77% saved)
ival-mult: 3.0ms (19% of total)ival-sin: 3.0ms (19% of total)const: 3.0ms (19% of total)ival-div: 2.0ms (12.7% of total)ival-sub: 2.0ms (12.7% of total)ival-sqrt: 2.0ms (12.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 (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))))) |
#s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
| Outputs |
|---|
(* (sqrt u1) (sin (* 314159265359/50000000000 u2))) |
(+ (* 1/2 (* (sqrt (pow u1 3)) (sin (* 314159265359/50000000000 u2)))) (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2)))) (* u1 (+ (* 1/2 (* (sqrt u1) (* (sin (* 314159265359/50000000000 u2)) (- 1 (* 1/4 (/ 1 u1)))))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))))) |
(sqrt u1) |
(+ (sqrt u1) (* 1/2 (sqrt (pow u1 3)))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt u1)) (* 1/2 (sqrt (/ 1 u1)))))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt (/ 1 u1))) (* u1 (+ (* 1/2 (sqrt (/ 1 u1))) (* 1/2 (* (sqrt u1) (- 1 (* 1/4 (/ 1 u1)))))))))) |
u1 |
(* u1 (+ 1 u1)) |
(* u1 (+ 1 (* u1 (+ 1 u1)))) |
(* u1 (+ 1 (* u1 (+ 1 (* u1 (+ 1 u1)))))) |
(* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2))))) (* (pow u1 3) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))))) |
(sqrt -1) |
(- (sqrt -1) (* 1/2 (/ 1 (* u1 (sqrt -1))))) |
(- (+ (sqrt -1) (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1))))) (/ 1/2 (* u1 (sqrt -1)))) |
(- (+ (sqrt -1) (+ (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1)))) (* -1/2 (/ (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2)))) (* (pow u1 3) (sqrt -1)))))) (/ 1/2 (* u1 (sqrt -1)))) |
-1 |
(* -1 (+ 1 (/ 1 u1))) |
(- (* -1 (/ (+ 1 (/ 1 u1)) u1)) 1) |
(- (* -1 (/ (+ 1 (/ 1 u1)) (pow u1 2))) (+ 1 (/ 1 u1))) |
(+ (* 1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) (* -3/8 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* 3/8 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (sqrt -1) (* 1/2 (/ (sqrt -1) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1/2 (sqrt -1)) (* -3/8 (/ (sqrt -1) u1))) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (sqrt -1) u1)) (* 3/8 (sqrt -1))) u1)) (* -1/2 (sqrt -1))) u1))) |
(- (* -1 (/ (+ 1 (+ (/ 1 u1) (/ 1 (pow u1 2)))) u1)) 1) |
(* 314159265359/50000000000 (* (sqrt (/ u1 (- 1 u1))) u2)) |
(* u2 (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -302029322777818351566783844332719832329455959975176141755859165754785028165295919/3937500000000000000000000000000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))))))))) |
(* 314159265359/50000000000 u2) |
(* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) |
9 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | u2 | @ | -inf | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (* 314159265359/50000000000 u2)) |
| 1.0ms | u2 | @ | inf | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (* 314159265359/50000000000 u2)) |
| 0.0ms | u2 | @ | 0 | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (* 314159265359/50000000000 u2)) |
| 0.0ms | u1 | @ | -inf | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (* 314159265359/50000000000 u2)) |
| 0.0ms | u1 | @ | inf | ((* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (sqrt (/ u1 (- 1 u1))) (/ u1 (- 1 u1)) (* 314159265359/50000000000 u2)) |
| 1× | egg-herbie |
| Inputs |
|---|
(* (sqrt u1) (sin (* 314159265359/50000000000 u2))) |
(+ (* 1/2 (* (sqrt (pow u1 3)) (sin (* 314159265359/50000000000 u2)))) (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2)))) (* u1 (+ (* 1/2 (* (sqrt u1) (* (sin (* 314159265359/50000000000 u2)) (- 1 (* 1/4 (/ 1 u1)))))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))))) |
(sqrt u1) |
(+ (sqrt u1) (* 1/2 (sqrt (pow u1 3)))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt u1)) (* 1/2 (sqrt (/ 1 u1)))))) |
(+ (sqrt u1) (* (pow u1 2) (+ (* 1/2 (sqrt (/ 1 u1))) (* u1 (+ (* 1/2 (sqrt (/ 1 u1))) (* 1/2 (* (sqrt u1) (- 1 (* 1/4 (/ 1 u1)))))))))) |
u1 |
(* u1 (+ 1 u1)) |
(* u1 (+ 1 (* u1 (+ 1 u1)))) |
(* u1 (+ 1 (* u1 (+ 1 (* u1 (+ 1 u1)))))) |
(* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) |
(+ (* -1/2 (/ (sin (* 314159265359/50000000000 u2)) (* u1 (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2))))) (* (pow u1 2) (sqrt -1)))) (+ (* -1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2))))) (* (pow u1 3) (sqrt -1)))) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))))) |
(sqrt -1) |
(- (sqrt -1) (* 1/2 (/ 1 (* u1 (sqrt -1))))) |
(- (+ (sqrt -1) (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1))))) (/ 1/2 (* u1 (sqrt -1)))) |
(- (+ (sqrt -1) (+ (* -1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (* (pow u1 2) (sqrt -1)))) (* -1/2 (/ (+ 1 (* 1/2 (/ (+ 1 (* 1/4 (/ 1 (pow (sqrt -1) 2)))) (pow (sqrt -1) 2)))) (* (pow u1 3) (sqrt -1)))))) (/ 1/2 (* u1 (sqrt -1)))) |
-1 |
(* -1 (+ 1 (/ 1 u1))) |
(- (* -1 (/ (+ 1 (/ 1 u1)) u1)) 1) |
(- (* -1 (/ (+ 1 (/ 1 u1)) (pow u1 2))) (+ 1 (/ 1 u1))) |
(+ (* 1/2 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) (* -3/8 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)) u1)) (* 3/8 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* -1/2 (* (sin (* 314159265359/50000000000 u2)) (sqrt -1)))) u1)) (* (sin (* 314159265359/50000000000 u2)) (sqrt -1))) |
(+ (sqrt -1) (* 1/2 (/ (sqrt -1) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1/2 (sqrt -1)) (* -3/8 (/ (sqrt -1) u1))) u1))) |
(+ (sqrt -1) (* -1 (/ (+ (* -1 (/ (+ (* 5/16 (/ (sqrt -1) u1)) (* 3/8 (sqrt -1))) u1)) (* -1/2 (sqrt -1))) u1))) |
(- (* -1 (/ (+ 1 (+ (/ 1 u1) (/ 1 (pow u1 2)))) u1)) 1) |
(* 314159265359/50000000000 (* (sqrt (/ u1 (- 1 u1))) u2)) |
(* u2 (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))))))) |
(* u2 (+ (* 314159265359/50000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -31006276680305942139213528068663279/750000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))) (* (pow u2 2) (+ (* -302029322777818351566783844332719832329455959975176141755859165754785028165295919/3937500000000000000000000000000000000000000000000000000000000000000000000000000 (* (sqrt (/ u1 (- 1 u1))) (pow u2 2))) (* 3060196847853821555298148281676017575122444629042460390799/37500000000000000000000000000000000000000000000000000000 (sqrt (/ u1 (- 1 u1)))))))))) |
(* 314159265359/50000000000 u2) |
(* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) |
| Outputs |
|---|
(* (sqrt u1) (sin (* 314159265359/50000000000 u2))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))))) |
(+ (* 1/2 (* (sqrt (pow u1 3)) (sin (* 314159265359/50000000000 u2)))) (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt u1) (sin (* 314159265359/50000000000 u2)))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))) |
#s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
(+ (* (sqrt u1) (sin (* 314159265359/50000000000 u2))) (* (pow u1 2) (+ (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2)))) (* u1 (+ (* 1/2 (* (sqrt u1) (* (sin (* 314159265359/50000000000 u2)) (- 1 (* 1/4 (/ 1 u1)))))) (* 1/2 (* (sqrt (/ 1 u1)) (sin (* 314159265359/50000000000 u2))))))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
(sqrt u1) |
#s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(+ (sqrt u1) (* 1/2 (sqrt (pow u1 3)))) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
| Inputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))))) |
#s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
| Outputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))))) |
#s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
(sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
(*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
Compiled 325 to 26 computations (92% saved)
10 alts after pruning (0 fresh and 10 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 11 | 0 | 11 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 9 | 9 |
| Total | 11 | 10 | 21 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 98.3% | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| ✓ | 19.7% | (*.f32 #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| ✓ | 18.9% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
| ✓ | 14.6% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
| ✓ | 18.4% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)))) |
| ✓ | 16.0% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
| ✓ | 15.0% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))))) |
| ✓ | 15.8% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
| ✓ | 18.8% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| ✓ | 19.7% | #s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
Compiled 388 to 186 computations (52.1% saved)
| Inputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
(*.f32 #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))))) |
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| Outputs |
|---|
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
8 calls:
| 7.0ms | u2 |
| 4.0ms | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| 3.0ms | (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
| 3.0ms | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
| 3.0ms | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 98.3% | 1 | cosTheta_i |
| 98.3% | 1 | u1 |
| 98.3% | 1 | u2 |
| 98.3% | 1 | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| 98.3% | 1 | (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
| 98.3% | 1 | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
| 98.3% | 1 | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| 98.3% | 1 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
Compiled 32 to 44 computations (-37.5% saved)
| Inputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))) |
(*.f32 #s(approx (sqrt (/ u1 (- 1 u1))) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))))))) |
| Outputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
8 calls:
| 7.0ms | (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
| 3.0ms | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| 3.0ms | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
| 3.0ms | cosTheta_i |
| 3.0ms | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
| Accuracy | Segments | Branch |
|---|---|---|
| 19.7% | 1 | cosTheta_i |
| 19.7% | 1 | u1 |
| 19.7% | 1 | u2 |
| 19.7% | 1 | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| 19.7% | 1 | (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
| 19.7% | 1 | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
| 19.7% | 1 | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| 19.7% | 1 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
Compiled 32 to 44 computations (-37.5% saved)
| Inputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)))) |
| Outputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
8 calls:
| 5.0ms | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
| 2.0ms | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| 2.0ms | (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
| 2.0ms | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| 2.0ms | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
| Accuracy | Segments | Branch |
|---|---|---|
| 18.9% | 1 | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| 18.9% | 1 | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| 18.9% | 1 | u2 |
| 18.9% | 1 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
| 18.9% | 1 | cosTheta_i |
| 18.9% | 1 | u1 |
| 18.9% | 1 | (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
| 18.9% | 1 | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
Compiled 32 to 44 computations (-37.5% saved)
| Inputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| Outputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
8 calls:
| 4.0ms | u1 |
| 2.0ms | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| 2.0ms | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| 1.0ms | cosTheta_i |
| 1.0ms | (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 18.8% | 1 | cosTheta_i |
| 18.8% | 1 | u1 |
| 18.8% | 1 | (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
| 18.8% | 1 | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
| 18.8% | 1 | u2 |
| 18.8% | 1 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
| 18.8% | 1 | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| 18.8% | 1 | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
Compiled 32 to 44 computations (-37.5% saved)
Total -0.0b remaining (-0%)
Threshold costs -0b (-0%)
| Inputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
| Outputs |
|---|
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
8 calls:
| 1.0ms | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| 1.0ms | (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
| 1.0ms | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
| 1.0ms | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| 1.0ms | u1 |
| Accuracy | Segments | Branch |
|---|---|---|
| 14.6% | 1 | cosTheta_i |
| 14.6% | 1 | (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)) |
| 14.6% | 1 | u2 |
| 14.6% | 1 | (*.f32 #s(literal 314159265359/50000000000 binary32) u2) |
| 14.6% | 1 | (*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
| 14.6% | 1 | u1 |
| 14.6% | 1 | (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
| 14.6% | 1 | (/.f32 u1 (-.f32 #s(literal 1 binary32) u1)) |
Compiled 32 to 44 computations (-37.5% saved)
| 1× | egg-herbie |
| Inputs |
|---|
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
| Outputs |
|---|
(*.f32 (sqrt.f32 (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (sin.f32 (*.f32 #s(literal 314159265359/50000000000 binary32) u2)))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (/.f32 u1 (-.f32 #s(literal 1 binary32) u1))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) #s(approx (/ u1 (- 1 u1)) (*.f32 #s(literal 314159265359/50000000000 binary32) u2))) |
#s(approx (* (sqrt (/ u1 (- 1 u1))) (sin (* 314159265359/50000000000 u2))) (-.f32 #s(literal 1 binary32) u1)) |
| 1× | done |
Compiled 86 to 25 computations (70.9% saved)
Compiled 194 to 72 computations (62.9% saved)
Loading profile data...