Logistic function

Time bar (total: 1.5s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze44.0ms (3%)

Memory
22.9MiB live, 55.0MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
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
Compiler

Compiled 17 to 14 computations (17.6% saved)

sample975.0ms (66.3%)

Memory
-23.8MiB live, 1 335.1MiB allocated
Samples
706.0ms8 256×0valid
Precisions
Click to see histograms. Total time spent on operations: 512.0ms
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)
Bogosity

explain91.0ms (6.2%)

Memory
19.5MiB live, 133.3MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-s
00-0-#s(literal 1 binary32)
00-0-(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))
06(-0.0030783144757151604 1.1786364666477311e-5)0-(exp.f32 (/.f32 (neg.f32 x) s))
00-0-(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))))
00-0-(neg.f32 x)
00-0-(/.f32 (neg.f32 x) s)
00-0-x
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
exp.f32(exp.f32 (/.f32 (neg.f32 x) s))sensitivity62
Confusion
Predicted +Predicted -
+00
-6250
Precision
0.0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-62248
Precision?
0.0
Recall?
0/0
Freqs
test
numberfreq
0250
16
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-100
Precision?
0.0
Recall?
0/0
Samples
31.0ms512×0valid
Compiler

Compiled 103 to 36 computations (65% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
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)

preprocess3.0ms (0.2%)

Memory
4.5MiB live, 4.5MiB allocated
Algorithm
egg-herbie
Calls
Call 1
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))))
Compiler

Compiled 9 to 8 computations (11.1% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.9%
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))))
Compiler

Compiled 9 to 8 computations (11.1% saved)

simplify0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f32 (neg.f32 x) s)
cost-diff0
(exp.f32 (/.f32 (neg.f32 x) s))
cost-diff0
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))
cost-diff0
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))))
Calls
Call 1
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

localize24.0ms (1.6%)

Memory
-13.0MiB live, 28.8MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(neg.f32 x)
accuracy0.01171875
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))
accuracy0.01953125
(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))))
accuracy0.03956751178494127
(exp.f32 (/.f32 (neg.f32 x) s))
Samples
15.0ms256×0valid
Compiler

Compiled 62 to 18 computations (71% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
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)

series9.0ms (0.6%)

Memory
11.0MiB live, 11.0MiB allocated
Counts
5 → 29
Calls
Call 1
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)))
Calls

6 calls:

TimeVariablePointExpression
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))

simplify1.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
egg-herbie
Counts
29 → 5
Calls
Call 1
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)

rewrite0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated
Counts
5 → 5
Calls
Call 1
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)

eval1.0ms (0%)

Memory
1.1MiB live, 1.1MiB allocated
Compiler

Compiled 122 to 20 computations (83.6% saved)

prune2.0ms (0.1%)

Memory
2.6MiB live, 2.6MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New6410
Fresh000
Picked011
Done000
Total6511
Accuracy
99.9%
Counts
11 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
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)))
Compiler

Compiled 67 to 56 computations (16.4% saved)

simplify1.0ms (0%)

Memory
0.9MiB live, 0.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 14 expressions of interest:

NewMetricScoreProgram
cost-diff0
(neg.f32 x)
cost-diff0
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))
cost-diff0
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))
cost-diff0
(neg.f32 x)
cost-diff0
(/.f32 (neg.f32 x) s)
cost-diff0
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))
cost-diff0
(/.f32 (neg.f32 x) s)
cost-diff0
(exp.f32 (/.f32 (neg.f32 x) s))
cost-diff0
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))
cost-diff0
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))))
cost-diff0
(neg.f32 x)
cost-diff0
(/.f32 (neg.f32 x) s)
cost-diff0
(exp.f32 (/.f32 (neg.f32 x) s))
cost-diff0
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 (/.f32 (neg.f32 x) s)))
Calls
Call 1
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

localize27.0ms (1.9%)

Memory
-1.7MiB live, 35.4MiB allocated
Localize:

Found 14 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(neg.f32 x)
accuracy0.01953125
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))
accuracy30.082787599724327
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))
accuracy0.0
(/.f32 (neg.f32 x) s)
accuracy0.0
(neg.f32 x)
accuracy30.475246606736228
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))
accuracy0.0
(neg.f32 x)
accuracy0.01171875
(+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s)))
accuracy0.03956751178494127
(exp.f32 (/.f32 (neg.f32 x) s))
accuracy17.866151139313658
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))))
accuracy0.0
(/.f32 (neg.f32 x) s)
accuracy0.0
(neg.f32 x)
accuracy0.03956751178494127
(exp.f32 (/.f32 (neg.f32 x) s))
accuracy28.620083851275144
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (exp.f32 (/.f32 (neg.f32 x) s)))
Samples
17.0ms256×0valid
Compiler

Compiled 205 to 28 computations (86.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
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)

series4.0ms (0.3%)

Memory
6.9MiB live, 6.9MiB allocated
Counts
9 → 29
Calls
Call 1
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)))
Calls

6 calls:

TimeVariablePointExpression
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))))

simplify1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Algorithm
egg-herbie
Counts
29 → 9
Calls
Call 1
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))

rewrite2.0ms (0.1%)

Memory
-36.7MiB live, 1.1MiB allocated
Counts
9 → 9
Calls
Call 1
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))

eval2.0ms (0.1%)

Memory
3.0MiB live, 3.0MiB allocated
Compiler

Compiled 575 to 42 computations (92.7% saved)

prune4.0ms (0.3%)

Memory
7.6MiB live, 7.6MiB allocated
Pruning

9 alts after pruning (5 fresh and 4 done)

PrunedKeptTotal
New23528
Fresh000
Picked134
Done011
Total24933
Accuracy
99.9%
Counts
33 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
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)))))
Compiler

Compiled 308 to 180 computations (41.6% saved)

simplify1.0ms (0.1%)

Memory
1.9MiB live, 1.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
cost-diff0
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))
cost-diff0
#s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))
cost-diff0
(exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))
cost-diff0
#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-diff0
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))
cost-diff0
#s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))
cost-diff0
(+.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-diff0
#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-diff0
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))
cost-diff0
#s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)))
cost-diff0
(+.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-diff0
#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-diff0
(neg.f32 x)
cost-diff0
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x))
cost-diff0
#s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))
cost-diff0
(exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))
cost-diff0
(+.f32 #s(literal 1 binary32) (exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))))
cost-diff0
#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))))))
Calls
Call 1
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

localize31.0ms (2.1%)

Memory
12.6MiB live, 50.1MiB allocated
Localize:

Found 18 expressions of interest:

NewMetricScoreProgram
accuracy0.03956751178494127
(exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))
accuracy26.39342152925406
#s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))
accuracy28.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)))))
accuracy30.082787599724327
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))
accuracy0.01953125
(/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))
accuracy17.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))))))
accuracy28.620083851275144
#s(approx (exp (/ (neg x) s)) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))
accuracy30.082787599724327
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))
accuracy0.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))))
accuracy17.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)))))
accuracy28.620083851275144
#s(approx (exp (/ (neg x) s)) #s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s)))
accuracy30.475246606736228
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (/.f32 (neg.f32 x) s))
accuracy0.0
(neg.f32 x)
accuracy30.39022400645069
#s(approx (/ 1 (+ 1 (exp (/ (neg x) s)))) (neg.f32 x))
accuracy0.03956751178494127
(exp.f32 #s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))
accuracy17.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))))))
accuracy26.39342152925406
#s(approx (/ (neg x) s) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x)))
accuracy30.082787599724327
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))
Samples
20.0ms256×0valid
Compiler

Compiled 525 to 36 computations (93.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
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)

series10.0ms (0.7%)

Memory
-22.1MiB live, 18.7MiB allocated
Counts
16 → 29
Calls
Call 1
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)))
Calls

6 calls:

TimeVariablePointExpression
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))))

simplify1.0ms (0.1%)

Memory
2.2MiB live, 2.2MiB allocated
Algorithm
egg-herbie
Counts
29 → 16
Calls
Call 1
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))

rewrite1.0ms (0.1%)

Memory
2.8MiB live, 2.8MiB allocated
Counts
16 → 16
Calls
Call 1
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))

eval2.0ms (0.2%)

Memory
7.4MiB live, 7.4MiB allocated
Compiler

Compiled 1 380 to 73 computations (94.7% saved)

prune6.0ms (0.4%)

Memory
14.8MiB live, 14.8MiB allocated
Pruning

10 alts after pruning (1 fresh and 9 done)

PrunedKeptTotal
New42143
Fresh000
Picked055
Done044
Total421052
Accuracy
99.9%
Counts
52 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
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)))))
Compiler

Compiled 223 to 130 computations (41.7% saved)

simplify1.0ms (0%)

Memory
1.5MiB live, 1.6MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.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-diff0
#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-diff0
(+.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-diff0
#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)))))))))
Calls
Call 1
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

localize25.0ms (1.7%)

Memory
4.0MiB live, 41.7MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy28.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)))))))
accuracy30.082787599724327
#s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))
accuracy30.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)))))
accuracy30.39022400645069
#s(approx (neg x) (/.f32 #s(literal 1 binary32) #s(approx (+ 1 (exp (/ (neg x) s))) (neg.f32 x))))
Samples
18.0ms256×0valid
Compiler

Compiled 257 to 28 computations (89.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 11.0ms
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)

series3.0ms (0.2%)

Memory
4.6MiB live, 4.6MiB allocated
Counts
7 → 28
Calls
Call 1
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)))
Calls

6 calls:

TimeVariablePointExpression
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))))

simplify1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Algorithm
egg-herbie
Counts
28 → 7
Calls
Call 1
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))

rewrite1.0ms (0%)

Memory
1.0MiB live, 1.0MiB allocated
Counts
7 → 7
Calls
Call 1
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))

eval1.0ms (0.1%)

Memory
1.7MiB live, 1.7MiB allocated
Compiler

Compiled 489 to 26 computations (94.7% saved)

prune9.0ms (0.6%)

Memory
-27.1MiB live, 9.8MiB allocated
Pruning

11 alts after pruning (1 fresh and 10 done)

PrunedKeptTotal
New11112
Fresh000
Picked011
Done099
Total111122
Accuracy
99.9%
Counts
22 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
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)))))
Compiler

Compiled 531 to 184 computations (65.3% saved)

regimes28.0ms (1.9%)

Memory
9.1MiB live, 46.9MiB allocated
Counts
12 → 1
Calls
Call 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))
(/.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))))
Calls

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)
Results
AccuracySegmentsBranch
99.9%1x
99.9%1s
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)
Compiler

Compiled 29 to 31 computations (-6.9% saved)

regimes36.0ms (2.4%)

Memory
-4.1MiB live, 44.3MiB allocated
Counts
11 → 1
Calls
Call 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))
(/.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))))
Calls

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)
Results
AccuracySegmentsBranch
44.2%1x
44.2%1s
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)
Compiler

Compiled 29 to 31 computations (-6.9% saved)

regimes25.0ms (1.7%)

Memory
4.5MiB live, 42.4MiB allocated
Counts
10 → 2
Calls
Call 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))
(/.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))))))
Calls

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))))
Results
AccuracySegmentsBranch
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%1s
34.2%1(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))))
44.0%2x
Compiler

Compiled 29 to 31 computations (-6.9% saved)

regimes6.0ms (0.4%)

Memory
12.9MiB live, 12.9MiB allocated
Counts
8 → 2
Calls
Call 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))
(/.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))))))
Calls

2 calls:

3.0ms
x
3.0ms
(neg.f32 x)
Results
AccuracySegmentsBranch
43.2%2(neg.f32 x)
43.2%2x
Compiler

Compiled 3 to 5 computations (-66.7% saved)

regimes20.0ms (1.3%)

Memory
-31.6MiB live, 46.0MiB allocated
Counts
6 → 2
Calls
Call 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))
(/.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))))))
Calls

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)
Results
AccuracySegmentsBranch
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%1s
30.4%2(/.f32 (neg.f32 x) s)
30.4%2(neg.f32 x)
30.4%2x
Compiler

Compiled 29 to 31 computations (-6.9% saved)

regimes13.0ms (0.9%)

Memory
30.5MiB live, 30.6MiB allocated
Counts
4 → 1
Calls
Call 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))
(/.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)))))
Calls

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))))
Results
AccuracySegmentsBranch
9.3%1s
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%1x
Compiler

Compiled 29 to 31 computations (-6.9% saved)

regimes13.0ms (0.9%)

Memory
-15.2MiB live, 28.6MiB allocated
Counts
3 → 1
Calls
Call 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))
(/.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)))
Calls

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
Results
AccuracySegmentsBranch
6.1%1s
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%1x
Compiler

Compiled 29 to 31 computations (-6.9% saved)

regimes10.0ms (0.7%)

Memory
-15.2MiB live, 24.2MiB allocated
Accuracy

Total -0.3b remaining (-1.1%)

Threshold costs -0.3b (-1.1%)

Counts
2 → 1
Calls
Call 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))
Calls

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))))
Results
AccuracySegmentsBranch
5.0%1(/.f32 #s(literal 1 binary32) (+.f32 #s(literal 1 binary32) (exp.f32 (/.f32 (neg.f32 x) s))))
5.0%1x
5.0%1s
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)
Compiler

Compiled 29 to 31 computations (-6.9% saved)

bsearch0.0ms (0%)

Memory
0.8MiB live, 0.8MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
0.0ms
0.20152753591537476
351.4359436035156
Compiler

Compiled 12 to 13 computations (-8.3% saved)

bsearch0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
0.0ms
0.20152753591537476
351.4359436035156
Compiler

Compiled 12 to 13 computations (-8.3% saved)

bsearch0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
0.0ms
7.79114941451553e-8
1.0005204842400417e-7
Compiler

Compiled 12 to 13 computations (-8.3% saved)

simplify5.0ms (0.4%)

Memory
12.5MiB live, 12.5MiB allocated
Algorithm
egg-herbie
Calls
Call 1
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))

soundness2.0ms (0.1%)

Memory
4.2MiB live, 4.2MiB allocated
Stop Event
fuel
Compiler

Compiled 300 to 42 computations (86% saved)

preprocess29.0ms (2%)

Memory
-8.8MiB live, 68.3MiB allocated
Compiler

Compiled 618 to 100 computations (83.8% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...