
Time bar (total: 1.5s)
| 1× | search |
| Probability | Valid | Unknown | Precondition | Infinite | Domain | Can't | Iter |
|---|---|---|---|---|---|---|---|
| 0% | 0% | 24.7% | 75.3% | 0% | 0% | 0% | 0 |
| 0% | 0% | 24.7% | 75.3% | 0% | 0% | 0% | 1 |
| 0% | 0% | 24.7% | 75.3% | 0% | 0% | 0% | 2 |
| 0% | 0% | 24.7% | 75.3% | 0% | 0% | 0% | 3 |
| 0% | 0% | 24.7% | 75.3% | 0% | 0% | 0% | 4 |
| 50% | 12.4% | 12.4% | 75.3% | 0% | 0% | 0% | 5 |
| 50% | 12.4% | 12.4% | 75.3% | 0% | 0% | 0% | 6 |
| 75% | 18.5% | 6.2% | 75.3% | 0% | 0% | 0% | 7 |
| 75% | 18.5% | 6.2% | 75.3% | 0% | 0% | 0% | 8 |
| 87.5% | 21.6% | 3.1% | 75.3% | 0% | 0% | 0% | 9 |
| 87.5% | 21.6% | 3.1% | 75.3% | 0% | 0% | 0% | 10 |
| 93.7% | 23.2% | 1.5% | 75.3% | 0% | 0% | 0% | 11 |
| 93.7% | 23.2% | 1.5% | 75.3% | 0% | 0% | 0% | 12 |
Compiled 17 to 14 computations (17.6% saved)
| 706.0ms | 8 256× | 0 | valid |
ival-div: 133.0ms (26% of total)const: 120.0ms (23.5% of total)ival-<=: 70.0ms (13.7% of total)ival-exp: 66.0ms (12.9% of total)ival-neg: 50.0ms (9.8% of total)ival-add: 45.0ms (8.8% of total)ival-and: 12.0ms (2.3% of total)exact: 11.0ms (2.1% of total)ival-assert: 3.0ms (0.6% of total)| Ground Truth | Overpredictions | Example | Underpredictions | Example | Subexpression |
|---|---|---|---|---|---|
| 0 | 0 | - | 0 | - | s |
| 0 | 0 | - | 0 | - | #s(literal 1 binary32) |
| 0 | 0 | - | 0 | - | (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
| 0 | 6 | (-0.0030783144757151604 1.1786364666477311e-5) | 0 | - | (exp.f32 (/.f32 (neg.f32 x) s)) |
| 0 | 0 | - | 0 | - | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| 0 | 0 | - | 0 | - | (neg.f32 x) |
| 0 | 0 | - | 0 | - | (/.f32 (neg.f32 x) s) |
| 0 | 0 | - | 0 | - | x |
| Operator | Subexpression | Explanation | Count | |
|---|---|---|---|---|
exp.f32 | (exp.f32 (/.f32 (neg.f32 x) s)) | sensitivity | 6 | 2 |
| Predicted + | Predicted - | |
|---|---|---|
| + | 0 | 0 |
| - | 6 | 250 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 0 | 0 | 0 |
| - | 6 | 2 | 248 |
| number | freq |
|---|---|
| 0 | 250 |
| 1 | 6 |
| Predicted + | Predicted Maybe | Predicted - | |
|---|---|---|---|
| + | 0 | 0 | 0 |
| - | 1 | 0 | 0 |
| 31.0ms | 512× | 0 | valid |
Compiled 103 to 36 computations (65% saved)
ival-div: 7.0ms (40.7% of total)ival-exp: 4.0ms (23.2% of total)ival-neg: 3.0ms (17.4% of total)ival-add: 2.0ms (11.6% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| 1× | egg-herbie |
| Inputs |
|---|
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| Outputs |
|---|
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
Compiled 9 to 8 computations (11.1% saved)
Compiled 0 to 2 computations (-∞% saved)
| Status | Accuracy | Program |
|---|---|---|
| ▶ | 99.9% | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
Compiled 9 to 8 computations (11.1% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (/.f32 (neg.f32 x) s) | |
| cost-diff | 0 | (exp.f32 (/.f32 (neg.f32 x) s)) | |
| cost-diff | 0 | (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) | |
| cost-diff | 0 | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| Inputs |
|---|
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
#s(literal 1 binary32) |
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
(exp.f32 (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
x |
s |
| Outputs |
|---|
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
#s(literal 1 binary32) |
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
(exp.f32 (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
x |
s |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (neg.f32 x) | |
| accuracy | 0.01171875 | (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) | |
| accuracy | 0.01953125 | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) | |
| accuracy | 0.03956751178494127 | (exp.f32 (/.f32 (neg.f32 x) s)) |
| 15.0ms | 256× | 0 | valid |
Compiled 62 to 18 computations (71% saved)
ival-div: 3.0ms (36% of total)ival-exp: 2.0ms (24% of total)ival-add: 1.0ms (12% of total)ival-neg: 1.0ms (12% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
(exp.f32 (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
| Outputs |
|---|
1/2 |
(+ 1/2 (* 1/4 (/ x s))) |
(+ 1/2 (* x (+ (* -1/48 (/ (pow x 2) (pow s 3))) (* 1/4 (/ 1 s))))) |
(+ 1/2 (* x (+ (* (pow x 2) (- (* 1/480 (/ (pow x 2) (pow s 5))) (* 1/48 (/ 1 (pow s 3))))) (* 1/4 (/ 1 s))))) |
2 |
(+ 2 (* -1 (/ x s))) |
(+ 2 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 2 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
1 |
(+ 1 (* -1 (/ x s))) |
(+ 1 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 1 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
(* -1 (/ x s)) |
(* -1 x) |
(/ 1 (+ 1 (exp (* -1 (/ x s))))) |
(+ 1 (exp (* -1 (/ x s)))) |
(exp (* -1 (/ x s))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))) (pow s 2)))) (* -1/4 (/ x s))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/24 (pow x 3)) (+ (* 1/16 (pow x 3)) (* 1/2 (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))))))) (pow s 3)))) (+ (* -1/4 (/ x s)) (+ (* -1/8 (/ (pow x 2) (pow s 2))) (* 1/8 (/ (pow x 2) (pow s 2)))))) |
(+ 2 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 2 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 1 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 1 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 1/2 (* -1 (/ (- (+ (* -1/8 (/ (pow x 2) s)) (* 1/8 (/ (pow x 2) s))) (* 1/4 x)) s))) |
(+ 1/2 (* -1 (/ (- (* -1 (/ (- (+ (* -1/2 (/ (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (+ (* -1/16 (/ (pow x 3) s)) (* 1/24 (/ (pow x 3) s)))) (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (* 1/4 x)) s))) |
(+ 2 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 2 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
(+ 1 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 1 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 2.0ms | x | @ | 0 | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ (neg x) s) (neg x)) |
| 2.0ms | s | @ | 0 | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ (neg x) s) (neg x)) |
| 2.0ms | x | @ | inf | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ (neg x) s) (neg x)) |
| 1.0ms | s | @ | inf | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ (neg x) s) (neg x)) |
| 1.0ms | x | @ | -inf | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ (neg x) s) (neg x)) |
| 1× | egg-herbie |
| Inputs |
|---|
1/2 |
(+ 1/2 (* 1/4 (/ x s))) |
(+ 1/2 (* x (+ (* -1/48 (/ (pow x 2) (pow s 3))) (* 1/4 (/ 1 s))))) |
(+ 1/2 (* x (+ (* (pow x 2) (- (* 1/480 (/ (pow x 2) (pow s 5))) (* 1/48 (/ 1 (pow s 3))))) (* 1/4 (/ 1 s))))) |
2 |
(+ 2 (* -1 (/ x s))) |
(+ 2 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 2 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
1 |
(+ 1 (* -1 (/ x s))) |
(+ 1 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 1 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
(* -1 (/ x s)) |
(* -1 x) |
(/ 1 (+ 1 (exp (* -1 (/ x s))))) |
(+ 1 (exp (* -1 (/ x s)))) |
(exp (* -1 (/ x s))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))) (pow s 2)))) (* -1/4 (/ x s))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/24 (pow x 3)) (+ (* 1/16 (pow x 3)) (* 1/2 (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))))))) (pow s 3)))) (+ (* -1/4 (/ x s)) (+ (* -1/8 (/ (pow x 2) (pow s 2))) (* 1/8 (/ (pow x 2) (pow s 2)))))) |
(+ 2 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 2 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 1 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 1 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 1/2 (* -1 (/ (- (+ (* -1/8 (/ (pow x 2) s)) (* 1/8 (/ (pow x 2) s))) (* 1/4 x)) s))) |
(+ 1/2 (* -1 (/ (- (* -1 (/ (- (+ (* -1/2 (/ (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (+ (* -1/16 (/ (pow x 3) s)) (* 1/24 (/ (pow x 3) s)))) (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (* 1/4 x)) s))) |
(+ 2 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 2 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
(+ 1 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 1 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
| Outputs |
|---|
1/2 |
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
(+ 1/2 (* 1/4 (/ x s))) |
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
(+ 1/2 (* x (+ (* -1/48 (/ (pow x 2) (pow s 3))) (* 1/4 (/ 1 s))))) |
(exp.f32 (/.f32 (neg.f32 x) s)) |
(+ 1/2 (* x (+ (* (pow x 2) (- (* 1/480 (/ (pow x 2) (pow s 5))) (* 1/48 (/ 1 (pow s 3))))) (* 1/4 (/ 1 s))))) |
(/.f32 (neg.f32 x) s) |
2 |
(neg.f32 x) |
| Inputs |
|---|
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
(exp.f32 (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
| Outputs |
|---|
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
(exp.f32 (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
Compiled 122 to 20 computations (83.6% saved)
5 alts after pruning (4 fresh and 1 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 6 | 4 | 10 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 0 | 0 |
| Total | 6 | 5 | 11 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 99.9% | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| ▶ | 6.1% | (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
| ▶ | 4.8% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
| ▶ | 44.2% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| ▶ | 10.6% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 (/.f32 (neg.f32 x) s))) |
Compiled 67 to 56 computations (16.4% saved)
| 1× | egg-herbie |
Found 14 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (neg.f32 x) | |
| cost-diff | 0 | #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) | |
| cost-diff | 0 | (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) | |
| cost-diff | 0 | (neg.f32 x) | |
| cost-diff | 0 | (/.f32 (neg.f32 x) s) | |
| cost-diff | 0 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) | |
| cost-diff | 0 | (/.f32 (neg.f32 x) s) | |
| cost-diff | 0 | (exp.f32 (/.f32 (neg.f32 x) s)) | |
| cost-diff | 0 | (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) | |
| cost-diff | 0 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) | |
| cost-diff | 0 | (neg.f32 x) | |
| cost-diff | 0 | (/.f32 (neg.f32 x) s) | |
| cost-diff | 0 | (exp.f32 (/.f32 (neg.f32 x) s)) | |
| cost-diff | 0 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 (/.f32 (neg.f32 x) s))) |
| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 (/.f32 (neg.f32 x) s))) |
(exp.f32 (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
x |
s |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
#s(literal 1 binary32) |
(exp.f32 (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
x |
s |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
x |
s |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(literal 1 binary32) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
(neg.f32 x) |
x |
| Outputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 (/.f32 (neg.f32 x) s))) |
(exp.f32 (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
x |
s |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
#s(literal 1 binary32) |
(exp.f32 (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
x |
s |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
x |
s |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(literal 1 binary32) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
(neg.f32 x) |
x |
Found 14 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.0 | (neg.f32 x) | |
| accuracy | 0.01953125 | (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) | |
| accuracy | 30.082787599724327 | #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) | |
| accuracy | 0.0 | (/.f32 (neg.f32 x) s) | |
| accuracy | 0.0 | (neg.f32 x) | |
| accuracy | 30.475246606736228 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) | |
| accuracy | 0.0 | (neg.f32 x) | |
| accuracy | 0.01171875 | (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) | |
| accuracy | 0.03956751178494127 | (exp.f32 (/.f32 (neg.f32 x) s)) | |
| accuracy | 17.866151139313658 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) | |
| accuracy | 0.0 | (/.f32 (neg.f32 x) s) | |
| accuracy | 0.0 | (neg.f32 x) | |
| accuracy | 0.03956751178494127 | (exp.f32 (/.f32 (neg.f32 x) s)) | |
| accuracy | 28.620083851275144 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 (/.f32 (neg.f32 x) s))) |
| 17.0ms | 256× | 0 | valid |
Compiled 205 to 28 computations (86.3% saved)
ival-div: 3.0ms (35.6% of total)ival-exp: 2.0ms (23.7% of total)ival-add: 1.0ms (11.9% of total)ival-neg: 1.0ms (11.9% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 (/.f32 (neg.f32 x) s))) |
(exp.f32 (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
| Outputs |
|---|
1/2 |
(+ 1/2 (* 1/4 (/ x s))) |
(+ 1/2 (* x (+ (* -1/48 (/ (pow x 2) (pow s 3))) (* 1/4 (/ 1 s))))) |
(+ 1/2 (* x (+ (* (pow x 2) (- (* 1/480 (/ (pow x 2) (pow s 5))) (* 1/48 (/ 1 (pow s 3))))) (* 1/4 (/ 1 s))))) |
1 |
(+ 1 (* -1 (/ x s))) |
(+ 1 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 1 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
(* -1 (/ x s)) |
(* -1 x) |
2 |
(+ 2 (* -1 (/ x s))) |
(+ 2 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 2 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
(/ 1 (+ 1 (exp (* -1 (/ x s))))) |
(exp (* -1 (/ x s))) |
(+ 1 (exp (* -1 (/ x s)))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))) (pow s 2)))) (* -1/4 (/ x s))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/24 (pow x 3)) (+ (* 1/16 (pow x 3)) (* 1/2 (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))))))) (pow s 3)))) (+ (* -1/4 (/ x s)) (+ (* -1/8 (/ (pow x 2) (pow s 2))) (* 1/8 (/ (pow x 2) (pow s 2)))))) |
(+ 1 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 1 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 2 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 2 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 1/2 (* -1 (/ (- (+ (* -1/8 (/ (pow x 2) s)) (* 1/8 (/ (pow x 2) s))) (* 1/4 x)) s))) |
(+ 1/2 (* -1 (/ (- (* -1 (/ (- (+ (* -1/2 (/ (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (+ (* -1/16 (/ (pow x 3) s)) (* 1/24 (/ (pow x 3) s)))) (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (* 1/4 x)) s))) |
(+ 1 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 1 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
(+ 2 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 2 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | inf | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (exp (/ (neg x) s)) (/ (neg x) s) (neg x) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s)))) |
| 1.0ms | x | @ | -inf | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (exp (/ (neg x) s)) (/ (neg x) s) (neg x) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s)))) |
| 1.0ms | s | @ | 0 | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (exp (/ (neg x) s)) (/ (neg x) s) (neg x) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s)))) |
| 1.0ms | x | @ | 0 | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (exp (/ (neg x) s)) (/ (neg x) s) (neg x) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s)))) |
| 0.0ms | s | @ | inf | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (exp (/ (neg x) s)) (/ (neg x) s) (neg x) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s)))) |
| 1× | egg-herbie |
| Inputs |
|---|
1/2 |
(+ 1/2 (* 1/4 (/ x s))) |
(+ 1/2 (* x (+ (* -1/48 (/ (pow x 2) (pow s 3))) (* 1/4 (/ 1 s))))) |
(+ 1/2 (* x (+ (* (pow x 2) (- (* 1/480 (/ (pow x 2) (pow s 5))) (* 1/48 (/ 1 (pow s 3))))) (* 1/4 (/ 1 s))))) |
1 |
(+ 1 (* -1 (/ x s))) |
(+ 1 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 1 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
(* -1 (/ x s)) |
(* -1 x) |
2 |
(+ 2 (* -1 (/ x s))) |
(+ 2 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 2 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
(/ 1 (+ 1 (exp (* -1 (/ x s))))) |
(exp (* -1 (/ x s))) |
(+ 1 (exp (* -1 (/ x s)))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))) (pow s 2)))) (* -1/4 (/ x s))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/24 (pow x 3)) (+ (* 1/16 (pow x 3)) (* 1/2 (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))))))) (pow s 3)))) (+ (* -1/4 (/ x s)) (+ (* -1/8 (/ (pow x 2) (pow s 2))) (* 1/8 (/ (pow x 2) (pow s 2)))))) |
(+ 1 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 1 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 2 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 2 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 1/2 (* -1 (/ (- (+ (* -1/8 (/ (pow x 2) s)) (* 1/8 (/ (pow x 2) s))) (* 1/4 x)) s))) |
(+ 1/2 (* -1 (/ (- (* -1 (/ (- (+ (* -1/2 (/ (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (+ (* -1/16 (/ (pow x 3) s)) (* 1/24 (/ (pow x 3) s)))) (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (* 1/4 x)) s))) |
(+ 1 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 1 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
(+ 2 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 2 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
| Outputs |
|---|
1/2 |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 (/.f32 (neg.f32 x) s))) |
(+ 1/2 (* 1/4 (/ x s))) |
(exp.f32 (/.f32 (neg.f32 x) s)) |
(+ 1/2 (* x (+ (* -1/48 (/ (pow x 2) (pow s 3))) (* 1/4 (/ 1 s))))) |
(/.f32 (neg.f32 x) s) |
(+ 1/2 (* x (+ (* (pow x 2) (- (* 1/480 (/ (pow x 2) (pow s 5))) (* 1/48 (/ 1 (pow s 3))))) (* 1/4 (/ 1 s))))) |
(neg.f32 x) |
1 |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
(+ 1 (* -1 (/ x s))) |
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
(+ 1 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(+ 1 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
(* -1 (/ x s)) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 (/.f32 (neg.f32 x) s))) |
(exp.f32 (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
| Outputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 (/.f32 (neg.f32 x) s))) |
(exp.f32 (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
Compiled 575 to 42 computations (92.7% saved)
9 alts after pruning (5 fresh and 4 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 23 | 5 | 28 |
| Fresh | 0 | 0 | 0 |
| Picked | 1 | 3 | 4 |
| Done | 0 | 1 | 1 |
| Total | 24 | 9 | 33 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 99.9% | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| ✓ | 6.1% | (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
| ✓ | 4.8% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
| ✓ | 44.2% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| ▶ | 34.2% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
| ▶ | 25.5% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
| ▶ | 9.3% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
| ▶ | 5.0% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
| ▶ | 22.8% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
Compiled 308 to 180 computations (41.6% saved)
| 1× | egg-herbie |
Found 18 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) | |
| cost-diff | 0 | #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) | |
| cost-diff | 0 | (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) | |
| cost-diff | 0 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) | |
| cost-diff | 0 | (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) | |
| cost-diff | 0 | #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) | |
| cost-diff | 0 | (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) | |
| cost-diff | 0 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) | |
| cost-diff | 0 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) | |
| cost-diff | 0 | #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))) | |
| cost-diff | 0 | (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)))) | |
| cost-diff | 0 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) | |
| cost-diff | 0 | (neg.f32 x) | |
| cost-diff | 0 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) | |
| cost-diff | 0 | #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) | |
| cost-diff | 0 | (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) | |
| cost-diff | 0 | (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) | |
| cost-diff | 0 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
(+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(literal 1 binary32) |
(exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
#s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
(neg.f32 x) |
x |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
(neg.f32 x) |
x |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)))) |
#s(literal 1 binary32) |
#s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
x |
s |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(literal 1 binary32) |
#s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
(neg.f32 x) |
x |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
(exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
#s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
(neg.f32 x) |
x |
| Outputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
(+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(literal 1 binary32) |
(exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
#s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
(neg.f32 x) |
x |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
(neg.f32 x) |
x |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)))) |
#s(literal 1 binary32) |
#s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(/.f32 (neg.f32 x) s) |
(neg.f32 x) |
x |
s |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(literal 1 binary32) |
#s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
(neg.f32 x) |
x |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
(exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
#s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
(neg.f32 x) |
x |
Found 18 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 0.03956751178494127 | (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) | |
| accuracy | 26.39342152925406 | #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) | |
| accuracy | 28.620083851275144 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) | |
| accuracy | 30.082787599724327 | #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) | |
| accuracy | 0.01953125 | (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) | |
| accuracy | 17.866151139313658 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) | |
| accuracy | 28.620083851275144 | #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) | |
| accuracy | 30.082787599724327 | #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) | |
| accuracy | 0.01171875 | (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)))) | |
| accuracy | 17.866151139313658 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) | |
| accuracy | 28.620083851275144 | #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))) | |
| accuracy | 30.475246606736228 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) | |
| accuracy | 0.0 | (neg.f32 x) | |
| accuracy | 30.39022400645069 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) | |
| accuracy | 0.03956751178494127 | (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) | |
| accuracy | 17.866151139313658 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) | |
| accuracy | 26.39342152925406 | #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) | |
| accuracy | 30.082787599724327 | #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
| 20.0ms | 256× | 0 | valid |
Compiled 525 to 36 computations (93.1% saved)
ival-div: 3.0ms (30.2% of total)ival-neg: 3.0ms (30.2% of total)ival-exp: 2.0ms (20.1% of total)ival-add: 1.0ms (10.1% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
(+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
(exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
#s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
(neg.f32 x) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)))) |
#s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
| Outputs |
|---|
1/2 |
(+ 1/2 (* 1/4 (/ x s))) |
(+ 1/2 (* x (+ (* -1/48 (/ (pow x 2) (pow s 3))) (* 1/4 (/ 1 s))))) |
(+ 1/2 (* x (+ (* (pow x 2) (- (* 1/480 (/ (pow x 2) (pow s 5))) (* 1/48 (/ 1 (pow s 3))))) (* 1/4 (/ 1 s))))) |
2 |
(+ 2 (* -1 (/ x s))) |
(+ 2 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 2 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
1 |
(+ 1 (* -1 (/ x s))) |
(+ 1 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 1 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
(* -1 (/ x s)) |
(* -1 x) |
(/ 1 (+ 1 (exp (* -1 (/ x s))))) |
(+ 1 (exp (* -1 (/ x s)))) |
(exp (* -1 (/ x s))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))) (pow s 2)))) (* -1/4 (/ x s))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/24 (pow x 3)) (+ (* 1/16 (pow x 3)) (* 1/2 (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))))))) (pow s 3)))) (+ (* -1/4 (/ x s)) (+ (* -1/8 (/ (pow x 2) (pow s 2))) (* 1/8 (/ (pow x 2) (pow s 2)))))) |
(+ 2 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 2 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 1 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 1 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 1/2 (* -1 (/ (- (+ (* -1/8 (/ (pow x 2) s)) (* 1/8 (/ (pow x 2) s))) (* 1/4 x)) s))) |
(+ 1/2 (* -1 (/ (- (* -1 (/ (- (+ (* -1/2 (/ (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (+ (* -1/16 (/ (pow x 3) s)) (* 1/24 (/ (pow x 3) s)))) (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (* 1/4 x)) s))) |
(+ 2 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 2 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
(+ 1 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 1 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 1.0ms | x | @ | inf | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ (neg x) s) (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg x) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ 1 (+ 1 (exp (/ (neg x) s)))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ 1 (+ 1 (exp (/ (neg x) s)))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s)))) |
| 1.0ms | x | @ | -inf | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ (neg x) s) (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg x) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ 1 (+ 1 (exp (/ (neg x) s)))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ 1 (+ 1 (exp (/ (neg x) s)))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s)))) |
| 1.0ms | x | @ | 0 | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ (neg x) s) (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg x) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ 1 (+ 1 (exp (/ (neg x) s)))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ 1 (+ 1 (exp (/ (neg x) s)))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s)))) |
| 1.0ms | s | @ | 0 | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ (neg x) s) (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg x) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ 1 (+ 1 (exp (/ (neg x) s)))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ 1 (+ 1 (exp (/ (neg x) s)))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s)))) |
| 1.0ms | s | @ | inf | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ (neg x) s) (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg x) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ 1 (+ 1 (exp (/ (neg x) s)))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ 1 (+ 1 (exp (/ (neg x) s)))) (/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s)))) |
| 1× | egg-herbie |
| Inputs |
|---|
1/2 |
(+ 1/2 (* 1/4 (/ x s))) |
(+ 1/2 (* x (+ (* -1/48 (/ (pow x 2) (pow s 3))) (* 1/4 (/ 1 s))))) |
(+ 1/2 (* x (+ (* (pow x 2) (- (* 1/480 (/ (pow x 2) (pow s 5))) (* 1/48 (/ 1 (pow s 3))))) (* 1/4 (/ 1 s))))) |
2 |
(+ 2 (* -1 (/ x s))) |
(+ 2 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 2 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
1 |
(+ 1 (* -1 (/ x s))) |
(+ 1 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 1 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
(* -1 (/ x s)) |
(* -1 x) |
(/ 1 (+ 1 (exp (* -1 (/ x s))))) |
(+ 1 (exp (* -1 (/ x s)))) |
(exp (* -1 (/ x s))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))) (pow s 2)))) (* -1/4 (/ x s))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/24 (pow x 3)) (+ (* 1/16 (pow x 3)) (* 1/2 (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))))))) (pow s 3)))) (+ (* -1/4 (/ x s)) (+ (* -1/8 (/ (pow x 2) (pow s 2))) (* 1/8 (/ (pow x 2) (pow s 2)))))) |
(+ 2 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 2 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 1 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 1 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 1/2 (* -1 (/ (- (+ (* -1/8 (/ (pow x 2) s)) (* 1/8 (/ (pow x 2) s))) (* 1/4 x)) s))) |
(+ 1/2 (* -1 (/ (- (* -1 (/ (- (+ (* -1/2 (/ (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (+ (* -1/16 (/ (pow x 3) s)) (* 1/24 (/ (pow x 3) s)))) (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (* 1/4 x)) s))) |
(+ 2 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 2 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
(+ 1 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 1 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
| Outputs |
|---|
1/2 |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
(+ 1/2 (* 1/4 (/ x s))) |
(+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
(+ 1/2 (* x (+ (* -1/48 (/ (pow x 2) (pow s 3))) (* 1/4 (/ 1 s))))) |
(exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
(+ 1/2 (* x (+ (* (pow x 2) (- (* 1/480 (/ (pow x 2) (pow s 5))) (* 1/48 (/ 1 (pow s 3))))) (* 1/4 (/ 1 s))))) |
#s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
2 |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
(+ 2 (* -1 (/ x s))) |
(neg.f32 x) |
(+ 2 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
(+ 2 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)))) |
1 |
#s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))) |
(+ 1 (* -1 (/ x s))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(+ 1 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
(+ 1 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
(* -1 (/ x s)) |
#s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
(* -1 x) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
(/ 1 (+ 1 (exp (* -1 (/ x s))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
(+ 1 (exp (* -1 (/ x s)))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
(+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
(exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
#s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
(neg.f32 x) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)))) |
#s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
| Outputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
(+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
(exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
#s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
(neg.f32 x) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)))) |
#s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
Compiled 1 380 to 73 computations (94.7% saved)
10 alts after pruning (1 fresh and 9 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 42 | 1 | 43 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 5 | 5 |
| Done | 0 | 4 | 4 |
| Total | 42 | 10 | 52 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 99.9% | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| ✓ | 6.1% | (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
| ✓ | 4.8% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
| ✓ | 44.2% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| ✓ | 34.2% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
| ✓ | 25.5% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
| ▶ | 22.2% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) |
| ✓ | 9.3% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
| ✓ | 5.0% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
| ✓ | 22.8% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
Compiled 223 to 130 computations (41.7% saved)
| 1× | egg-herbie |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| cost-diff | 0 | (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) | |
| cost-diff | 0 | #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) | |
| cost-diff | 0 | (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))))) | |
| cost-diff | 0 | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) |
| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))))) |
#s(literal 1 binary32) |
#s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
#s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
(neg.f32 x) |
x |
| Outputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))))) |
#s(literal 1 binary32) |
#s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
#s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
(neg.f32 x) |
x |
Found 4 expressions of interest:
| New | Metric | Score | Program |
|---|---|---|---|
| accuracy | 28.620083851275144 | #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) | |
| accuracy | 30.082787599724327 | #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) | |
| accuracy | 30.082787599724327 | #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) | |
| accuracy | 30.39022400645069 | #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
| 18.0ms | 256× | 0 | valid |
Compiled 257 to 28 computations (89.1% saved)
ival-div: 6.0ms (52.6% of total)ival-exp: 2.0ms (17.5% of total)ival-add: 1.0ms (8.8% of total)ival-neg: 1.0ms (8.8% of total)ival-true: 0.0ms (0% of total)exact: 0.0ms (0% of total)ival-assert: 0.0ms (0% of total)| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))))) |
#s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
#s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
#s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
| Outputs |
|---|
1/2 |
(+ 1/2 (* 1/4 (/ x s))) |
(+ 1/2 (* x (+ (* -1/48 (/ (pow x 2) (pow s 3))) (* 1/4 (/ 1 s))))) |
(+ 1/2 (* x (+ (* (pow x 2) (- (* 1/480 (/ (pow x 2) (pow s 5))) (* 1/48 (/ 1 (pow s 3))))) (* 1/4 (/ 1 s))))) |
2 |
(+ 2 (* -1 (/ x s))) |
(+ 2 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 2 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
1 |
(+ 1 (* -1 (/ x s))) |
(+ 1 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 1 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
(* -1 x) |
(/ 1 (+ 1 (exp (* -1 (/ x s))))) |
(+ 1 (exp (* -1 (/ x s)))) |
(exp (* -1 (/ x s))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))) (pow s 2)))) (* -1/4 (/ x s))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/24 (pow x 3)) (+ (* 1/16 (pow x 3)) (* 1/2 (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))))))) (pow s 3)))) (+ (* -1/4 (/ x s)) (+ (* -1/8 (/ (pow x 2) (pow s 2))) (* 1/8 (/ (pow x 2) (pow s 2)))))) |
(+ 2 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 2 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 1 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 1 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 1/2 (* -1 (/ (- (+ (* -1/8 (/ (pow x 2) s)) (* 1/8 (/ (pow x 2) s))) (* 1/4 x)) s))) |
(+ 1/2 (* -1 (/ (- (* -1 (/ (- (+ (* -1/2 (/ (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (+ (* -1/16 (/ (pow x 3) s)) (* 1/24 (/ (pow x 3) s)))) (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (* 1/4 x)) s))) |
(+ 2 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 2 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
(+ 1 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 1 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
6 calls:
| Time | Variable | Point | Expression | |
|---|---|---|---|---|
| 0.0ms | x | @ | inf | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg x) (+ 1 (exp (/ (neg x) s))) (+ 1 (exp (/ (neg x) s)))) |
| 0.0ms | x | @ | -inf | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg x) (+ 1 (exp (/ (neg x) s))) (+ 1 (exp (/ (neg x) s)))) |
| 0.0ms | s | @ | 0 | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg x) (+ 1 (exp (/ (neg x) s))) (+ 1 (exp (/ (neg x) s)))) |
| 0.0ms | x | @ | 0 | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg x) (+ 1 (exp (/ (neg x) s))) (+ 1 (exp (/ (neg x) s)))) |
| 0.0ms | s | @ | -inf | ((/ 1 (+ 1 (exp (/ (neg x) s)))) (+ 1 (exp (/ (neg x) s))) (exp (/ (neg x) s)) (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg x) (+ 1 (exp (/ (neg x) s))) (+ 1 (exp (/ (neg x) s)))) |
| 1× | egg-herbie |
| Inputs |
|---|
1/2 |
(+ 1/2 (* 1/4 (/ x s))) |
(+ 1/2 (* x (+ (* -1/48 (/ (pow x 2) (pow s 3))) (* 1/4 (/ 1 s))))) |
(+ 1/2 (* x (+ (* (pow x 2) (- (* 1/480 (/ (pow x 2) (pow s 5))) (* 1/48 (/ 1 (pow s 3))))) (* 1/4 (/ 1 s))))) |
2 |
(+ 2 (* -1 (/ x s))) |
(+ 2 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 2 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
1 |
(+ 1 (* -1 (/ x s))) |
(+ 1 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
(+ 1 (* x (- (* x (+ (* -1/6 (/ x (pow s 3))) (* 1/2 (/ 1 (pow s 2))))) (/ 1 s)))) |
(* -1 x) |
(/ 1 (+ 1 (exp (* -1 (/ x s))))) |
(+ 1 (exp (* -1 (/ x s)))) |
(exp (* -1 (/ x s))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))) (pow s 2)))) (* -1/4 (/ x s))) |
(- (+ 1/2 (* -1 (/ (+ (* -1/24 (pow x 3)) (+ (* 1/16 (pow x 3)) (* 1/2 (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2))))))) (pow s 3)))) (+ (* -1/4 (/ x s)) (+ (* -1/8 (/ (pow x 2) (pow s 2))) (* 1/8 (/ (pow x 2) (pow s 2)))))) |
(+ 2 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 2 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 1 (+ (* -1 (/ x s)) (* 1/2 (/ (pow x 2) (pow s 2))))) |
(+ 1 (+ (* -1 (/ x s)) (+ (* -1/6 (/ (pow x 3) (pow s 3))) (* 1/2 (/ (pow x 2) (pow s 2)))))) |
(+ 1/2 (* -1 (/ (- (+ (* -1/8 (/ (pow x 2) s)) (* 1/8 (/ (pow x 2) s))) (* 1/4 x)) s))) |
(+ 1/2 (* -1 (/ (- (* -1 (/ (- (+ (* -1/2 (/ (* x (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (+ (* -1/16 (/ (pow x 3) s)) (* 1/24 (/ (pow x 3) s)))) (+ (* -1/8 (pow x 2)) (* 1/8 (pow x 2)))) s)) (* 1/4 x)) s))) |
(+ 2 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 2 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
(+ 1 (* -1 (/ (+ x (* -1/2 (/ (pow x 2) s))) s))) |
(+ 1 (* -1 (/ (+ x (* -1 (/ (+ (* -1/6 (/ (pow x 3) s)) (* 1/2 (pow x 2))) s))) s))) |
| Outputs |
|---|
1/2 |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) |
(+ 1/2 (* 1/4 (/ x s))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))))) |
(+ 1/2 (* x (+ (* -1/48 (/ (pow x 2) (pow s 3))) (* 1/4 (/ 1 s))))) |
#s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
(+ 1/2 (* x (+ (* (pow x 2) (- (* 1/480 (/ (pow x 2) (pow s 5))) (* 1/48 (/ 1 (pow s 3))))) (* 1/4 (/ 1 s))))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
2 |
#s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
(+ 2 (* -1 (/ x s))) |
#s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
(+ 2 (* x (- (* 1/2 (/ x (pow s 2))) (/ 1 s)))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))))) |
#s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
#s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
#s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
| Outputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) |
(+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))))) |
#s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
#s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))) |
#s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)) |
Compiled 489 to 26 computations (94.7% saved)
11 alts after pruning (1 fresh and 10 done)
| Pruned | Kept | Total | |
|---|---|---|---|
| New | 11 | 1 | 12 |
| Fresh | 0 | 0 | 0 |
| Picked | 0 | 1 | 1 |
| Done | 0 | 9 | 9 |
| Total | 11 | 11 | 22 |
| Status | Accuracy | Program |
|---|---|---|
| ✓ | 99.9% | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| ✓ | 6.1% | (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
| ✓ | 4.8% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
| 5.0% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) | |
| ✓ | 44.2% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| ✓ | 34.2% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
| ✓ | 25.5% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
| ✓ | 22.2% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) |
| ✓ | 9.3% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
| ✓ | 5.0% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
| ✓ | 22.8% | #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
Compiled 531 to 184 computations (65.3% saved)
| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 (/.f32 (neg.f32 x) s))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| Outputs |
|---|
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
7 calls:
| 6.0ms | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| 4.0ms | s |
| 4.0ms | (neg.f32 x) |
| 4.0ms | x |
| 4.0ms | (/.f32 (neg.f32 x) s) |
| Accuracy | Segments | Branch |
|---|---|---|
| 99.9% | 1 | x |
| 99.9% | 1 | s |
| 99.9% | 1 | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| 99.9% | 1 | (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
| 99.9% | 1 | (exp.f32 (/.f32 (neg.f32 x) s)) |
| 99.9% | 1 | (/.f32 (neg.f32 x) s) |
| 99.9% | 1 | (neg.f32 x) |
Compiled 29 to 31 computations (-6.9% saved)
| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 (/.f32 (neg.f32 x) s))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| Outputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
7 calls:
| 15.0ms | (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
| 4.0ms | s |
| 4.0ms | (neg.f32 x) |
| 4.0ms | x |
| 3.0ms | (/.f32 (neg.f32 x) s) |
| Accuracy | Segments | Branch |
|---|---|---|
| 44.2% | 1 | x |
| 44.2% | 1 | s |
| 44.2% | 1 | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| 44.2% | 1 | (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
| 44.2% | 1 | (exp.f32 (/.f32 (neg.f32 x) s)) |
| 44.2% | 1 | (/.f32 (neg.f32 x) s) |
| 44.2% | 1 | (neg.f32 x) |
Compiled 29 to 31 computations (-6.9% saved)
| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 (/.f32 (neg.f32 x) s))) |
| Outputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
7 calls:
| 7.0ms | (neg.f32 x) |
| 3.0ms | s |
| 3.0ms | x |
| 3.0ms | (/.f32 (neg.f32 x) s) |
| 3.0ms | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 34.2% | 1 | (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
| 34.2% | 1 | (exp.f32 (/.f32 (neg.f32 x) s)) |
| 40.0% | 2 | (/.f32 (neg.f32 x) s) |
| 44.0% | 2 | (neg.f32 x) |
| 34.2% | 1 | s |
| 34.2% | 1 | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| 44.0% | 2 | x |
Compiled 29 to 31 computations (-6.9% saved)
| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))) |
| Outputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
2 calls:
| 3.0ms | x |
| 3.0ms | (neg.f32 x) |
| Accuracy | Segments | Branch |
|---|---|---|
| 43.2% | 2 | (neg.f32 x) |
| 43.2% | 2 | x |
Compiled 3 to 5 computations (-66.7% saved)
| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
| Outputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))) |
7 calls:
| 5.0ms | x |
| 3.0ms | (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
| 2.0ms | s |
| 2.0ms | (neg.f32 x) |
| 2.0ms | (/.f32 (neg.f32 x) s) |
| Accuracy | Segments | Branch |
|---|---|---|
| 30.4% | 2 | (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
| 30.4% | 2 | (exp.f32 (/.f32 (neg.f32 x) s)) |
| 30.4% | 2 | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| 25.5% | 1 | s |
| 30.4% | 2 | (/.f32 (neg.f32 x) s) |
| 30.4% | 2 | (neg.f32 x) |
| 30.4% | 2 | x |
Compiled 29 to 31 computations (-6.9% saved)
| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
| Outputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
7 calls:
| 2.0ms | s |
| 2.0ms | (neg.f32 x) |
| 2.0ms | x |
| 2.0ms | (/.f32 (neg.f32 x) s) |
| 2.0ms | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 9.3% | 1 | s |
| 9.3% | 1 | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| 9.3% | 1 | (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
| 9.3% | 1 | (exp.f32 (/.f32 (neg.f32 x) s)) |
| 9.3% | 1 | (/.f32 (neg.f32 x) s) |
| 9.3% | 1 | (neg.f32 x) |
| 9.3% | 1 | x |
Compiled 29 to 31 computations (-6.9% saved)
| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
| Outputs |
|---|
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
7 calls:
| 3.0ms | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| 2.0ms | s |
| 2.0ms | (neg.f32 x) |
| 2.0ms | (/.f32 (neg.f32 x) s) |
| 2.0ms | x |
| Accuracy | Segments | Branch |
|---|---|---|
| 6.1% | 1 | s |
| 6.1% | 1 | (neg.f32 x) |
| 6.1% | 1 | (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
| 6.1% | 1 | (exp.f32 (/.f32 (neg.f32 x) s)) |
| 6.1% | 1 | (/.f32 (neg.f32 x) s) |
| 6.1% | 1 | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| 6.1% | 1 | x |
Compiled 29 to 31 computations (-6.9% saved)
Total -0.3b remaining (-1.1%)
Threshold costs -0.3b (-1.1%)
| Inputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)) |
| Outputs |
|---|
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
7 calls:
| 2.0ms | x |
| 1.0ms | (neg.f32 x) |
| 1.0ms | s |
| 1.0ms | (/.f32 (neg.f32 x) s) |
| 1.0ms | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| Accuracy | Segments | Branch |
|---|---|---|
| 5.0% | 1 | (/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
| 5.0% | 1 | x |
| 5.0% | 1 | s |
| 5.0% | 1 | (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))) |
| 5.0% | 1 | (exp.f32 (/.f32 (neg.f32 x) s)) |
| 5.0% | 1 | (/.f32 (neg.f32 x) s) |
| 5.0% | 1 | (neg.f32 x) |
Compiled 29 to 31 computations (-6.9% saved)
| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 0.20152753591537476 | 351.4359436035156 |
Compiled 12 to 13 computations (-8.3% saved)
| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 0.20152753591537476 | 351.4359436035156 |
Compiled 12 to 13 computations (-8.3% saved)
| 1× | binary-search |
| 1× | narrow-enough |
| Time | Left | Right |
|---|---|---|
| 0.0ms | 7.79114941451553e-8 | 1.0005204842400417e-7 |
Compiled 12 to 13 computations (-8.3% saved)
| 1× | egg-herbie |
| Inputs |
|---|
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
(if (<=.f32 x #s(literal 13421773/33554432 binary32)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
(if (<=.f32 x #s(literal 13421773/33554432 binary32)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
(if (<=.f32 x #s(literal 14073749/140737488355328 binary32)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
| Outputs |
|---|
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))) |
(if (<=.f32 x #s(literal 13421773/33554432 binary32)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
(if (<=.f32 x #s(literal 13421773/33554432 binary32)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) #s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))))) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
(if (<=.f32 x #s(literal 14073749/140737488355328 binary32)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) #s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))))) |
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))) |
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x)) |
| 1× | fuel |
Compiled 300 to 42 computations (86% saved)
Compiled 618 to 100 computations (83.8% saved)
Loading profile data...