Quotient of sum of exps

Time bar (total: 2.2s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze6.0ms (0.3%)

Memory
-24.3MiB live, 15.1MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
50%50%50%0.1%0%0%0%2
75%74.9%25%0.1%0%0%0%3
87.5%87.4%12.5%0.1%0%0%0%4
93.8%93.7%6.2%0.1%0%0%0%5
93.8%93.7%6.2%0.1%0%0%0%6
95.2%93.7%4.7%0.1%0%1.6%0%7
96%93.7%3.9%0.1%0%2.3%0%8
97.2%93.7%2.7%0.1%0%3.5%0%9
97.8%93.7%2.1%0.1%0%4.1%0%10
98.5%93.7%1.5%0.1%0%4.8%0%11
98.8%93.7%1.1%0.1%0%5.1%0%12
Compiler

Compiled 10 to 8 computations (20% saved)

sample1.0s (46.2%)

Memory
45.1MiB live, 2 375.2MiB allocated
Samples
438.0ms8 004×0valid
167.0ms2 835×0exit
Precisions
Click to see histograms. Total time spent on operations: 345.0ms
ival-exp: 183.0ms (53.1% of total)
ival-div: 85.0ms (24.7% of total)
ival-add: 62.0ms (18% of total)
ival-true: 10.0ms (2.9% of total)
ival-assert: 5.0ms (1.5% of total)
Bogosity

explain2.0ms (0.1%)

Memory
5.6MiB live, 5.6MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(+.f64 (exp.f64 a) (exp.f64 b))
00-0-a
00-0-(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
00-0-(exp.f64 b)
00-0-b
00-0-(exp.f64 a)
Confusion
Predicted +Predicted -
+00
-04
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-004
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
04
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
1.0ms0valid
Compiler

Compiled 69 to 28 computations (59.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
ival-div: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
ival-exp: 0.0ms (0% of total)
ival-add: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess88.0ms (4%)

Memory
-5.2MiB live, 33.9MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01648
14048
27548
314448
425943
546843
664543
790043
8123643
9146843
10164442
11182742
12193342
13209942
14217842
15220842
16221642
17221842
18221842
068
0108
1118
0118
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
Outputs
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
Compiler

Compiled 8 to 6 computations (25% saved)

eval0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
Compiler

Compiled 8 to 6 computations (25% saved)

simplify2.0ms (0.1%)

Memory
6.0MiB live, 6.1MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(exp.f64 b)
cost-diff0
(+.f64 (exp.f64 a) (exp.f64 b))
cost-diff0
(exp.f64 a)
cost-diff0
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0619
01019
11119
01119
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
(exp.f64 a)
a
(+.f64 (exp.f64 a) (exp.f64 b))
(exp.f64 b)
b
Outputs
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(exp.f64 a)
a
(+.f64 (exp.f64 a) (exp.f64 b))
(+.f64 (exp.f64 b) (exp.f64 a))
(exp.f64 b)
b

localize1.0ms (0%)

Memory
1.3MiB live, 1.3MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
accuracy0
(+.f64 (exp.f64 a) (exp.f64 b))
accuracy0
(exp.f64 b)
accuracy0
(exp.f64 a)
Samples
0.0ms0valid
Compiler

Compiled 40 to 14 computations (65% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
ival-div: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
ival-exp: 0.0ms (0% of total)
ival-add: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series8.0ms (0.4%)

Memory
-20.1MiB live, 18.9MiB allocated
Counts
4 → 72
Calls
Call 1
Inputs
#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())
#s(alt (exp.f64 a) (patch (exp.f64 a) #<representation binary64>) () ())
#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())
#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())
Outputs
#s(alt (/ (exp a) (+ 1 (exp a))) (taylor 0 b) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1 (/ (* b (exp a)) (pow (+ 1 (exp a)) 2))) (/ (exp a) (+ 1 (exp a)))) (taylor 0 b) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (+ (* b (- (* -1 (* b (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a)))) (taylor 0 b) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (+ (* b (- (* b (- (* -1 (* b (+ (* -1 (/ (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))) (+ 1 (exp a)))) (+ (* -1/2 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/6 (/ (exp a) (pow (+ 1 (exp a)) 2))))))) (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a)))) (taylor 0 b) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (exp a)) (taylor 0 b) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (+ b (exp a))) (taylor 0 b) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (+ (exp a) (* b (+ 1 (* 1/2 b))))) (taylor 0 b) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (+ (exp a) (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))) (taylor 0 b) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (+ 1 b) (taylor 0 b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* b (+ 1 (* 1/2 b)))) (taylor 0 b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))) (taylor 0 b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf b) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf b) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf b) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf b) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor inf b) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor inf b) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor inf b) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor inf b) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf b) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf b) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf b) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf b) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor -inf b) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor -inf b) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor -inf b) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor -inf b) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor -inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor -inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor -inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor -inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor 0 a) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (+ (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b)))) (taylor 0 a) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 3))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b)))) (taylor 0 a) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (+ (* a (- (+ (* 1/6 (/ 1 (+ 1 (exp b)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 3)))) (+ (* 1/6 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))) (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 4))))))) (/ 1 (pow (+ 1 (exp b)) 3)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b)))) (taylor 0 a) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 a) (#s(alt (exp.f64 a) (patch (exp.f64 a) #<representation binary64>) () ())) ())
#s(alt (+ 1 a) (taylor 0 a) (#s(alt (exp.f64 a) (patch (exp.f64 a) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* a (+ 1 (* 1/2 a)))) (taylor 0 a) (#s(alt (exp.f64 a) (patch (exp.f64 a) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* a (+ 1 (* a (+ 1/2 (* 1/6 a)))))) (taylor 0 a) (#s(alt (exp.f64 a) (patch (exp.f64 a) #<representation binary64>) () ())) ())
#s(alt (+ 1 (exp b)) (taylor 0 a) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (+ a (exp b))) (taylor 0 a) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (+ (exp b) (* a (+ 1 (* 1/2 a))))) (taylor 0 a) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (+ (exp b) (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))) (taylor 0 a) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf a) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf a) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf a) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf a) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (exp a) (taylor inf a) (#s(alt (exp.f64 a) (patch (exp.f64 a) #<representation binary64>) () ())) ())
#s(alt (exp a) (taylor inf a) (#s(alt (exp.f64 a) (patch (exp.f64 a) #<representation binary64>) () ())) ())
#s(alt (exp a) (taylor inf a) (#s(alt (exp.f64 a) (patch (exp.f64 a) #<representation binary64>) () ())) ())
#s(alt (exp a) (taylor inf a) (#s(alt (exp.f64 a) (patch (exp.f64 a) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor inf a) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor inf a) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor inf a) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor inf a) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf a) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf a) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf a) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf a) (#s(alt (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) (patch (/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b))) #<representation binary64>) () ())) ())
#s(alt (exp a) (taylor -inf a) (#s(alt (exp.f64 a) (patch (exp.f64 a) #<representation binary64>) () ())) ())
#s(alt (exp a) (taylor -inf a) (#s(alt (exp.f64 a) (patch (exp.f64 a) #<representation binary64>) () ())) ())
#s(alt (exp a) (taylor -inf a) (#s(alt (exp.f64 a) (patch (exp.f64 a) #<representation binary64>) () ())) ())
#s(alt (exp a) (taylor -inf a) (#s(alt (exp.f64 a) (patch (exp.f64 a) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor -inf a) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor -inf a) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor -inf a) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
#s(alt (+ (exp a) (exp b)) (taylor -inf a) (#s(alt (+.f64 (exp.f64 a) (exp.f64 b)) (patch (+.f64 (exp.f64 a) (exp.f64 b)) #<representation binary64>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
1.0ms
a
@0
((/ (exp a) (+ (exp a) (exp b))) (exp a) (+ (exp a) (exp b)) (exp b))
1.0ms
b
@0
((/ (exp a) (+ (exp a) (exp b))) (exp a) (+ (exp a) (exp b)) (exp b))
1.0ms
b
@inf
((/ (exp a) (+ (exp a) (exp b))) (exp a) (+ (exp a) (exp b)) (exp b))
1.0ms
a
@inf
((/ (exp a) (+ (exp a) (exp b))) (exp a) (+ (exp a) (exp b)) (exp b))
1.0ms
a
@-inf
((/ (exp a) (+ (exp a) (exp b))) (exp a) (+ (exp a) (exp b)) (exp b))

simplify174.0ms (7.8%)

Memory
30.5MiB live, 302.7MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0120740
1332725
2964708
33689677
08345640
Stop Event
iter limit
node limit
Counts
72 → 72
Calls
Call 1
Inputs
(/ (exp a) (+ 1 (exp a)))
(+ (* -1 (/ (* b (exp a)) (pow (+ 1 (exp a)) 2))) (/ (exp a) (+ 1 (exp a))))
(+ (* b (- (* -1 (* b (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a))))
(+ (* b (- (* b (- (* -1 (* b (+ (* -1 (/ (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))) (+ 1 (exp a)))) (+ (* -1/2 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/6 (/ (exp a) (pow (+ 1 (exp a)) 2))))))) (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a))))
(+ 1 (exp a))
(+ 1 (+ b (exp a)))
(+ 1 (+ (exp a) (* b (+ 1 (* 1/2 b)))))
(+ 1 (+ (exp a) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))
1
(+ 1 b)
(+ 1 (* b (+ 1 (* 1/2 b))))
(+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(+ (exp a) (exp b))
(+ (exp a) (exp b))
(+ (exp a) (exp b))
(+ (exp a) (exp b))
(exp b)
(exp b)
(exp b)
(exp b)
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(+ (exp a) (exp b))
(+ (exp a) (exp b))
(+ (exp a) (exp b))
(+ (exp a) (exp b))
(exp b)
(exp b)
(exp b)
(exp b)
(/ 1 (+ 1 (exp b)))
(+ (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 3))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (+ (* a (- (+ (* 1/6 (/ 1 (+ 1 (exp b)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 3)))) (+ (* 1/6 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))) (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 4))))))) (/ 1 (pow (+ 1 (exp b)) 3)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
1
(+ 1 a)
(+ 1 (* a (+ 1 (* 1/2 a))))
(+ 1 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))
(+ 1 (exp b))
(+ 1 (+ a (exp b)))
(+ 1 (+ (exp b) (* a (+ 1 (* 1/2 a)))))
(+ 1 (+ (exp b) (* a (+ 1 (* a (+ 1/2 (* 1/6 a)))))))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(exp a)
(exp a)
(exp a)
(exp a)
(+ (exp a) (exp b))
(+ (exp a) (exp b))
(+ (exp a) (exp b))
(+ (exp a) (exp b))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(exp a)
(exp a)
(exp a)
(exp a)
(+ (exp a) (exp b))
(+ (exp a) (exp b))
(+ (exp a) (exp b))
(+ (exp a) (exp b))
Outputs
(/ (exp a) (+ 1 (exp a)))
(/.f64 (exp.f64 a) (+.f64 #s(literal 1 binary64) (exp.f64 a)))
(+ (* -1 (/ (* b (exp a)) (pow (+ 1 (exp a)) 2))) (/ (exp a) (+ 1 (exp a))))
(*.f64 (+.f64 (/.f64 b (-.f64 #s(literal -1 binary64) (exp.f64 a))) #s(literal 1 binary64)) (/.f64 (exp.f64 a) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
(+ (* b (- (* -1 (* b (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a))))
(fma.f64 (fma.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 2 binary64))) (fma.f64 #s(literal -1/2 binary64) b #s(literal -1 binary64)) (*.f64 (exp.f64 a) (/.f64 b (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 3 binary64))))) b (/.f64 (exp.f64 a) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
(+ (* b (- (* b (- (* -1 (* b (+ (* -1 (/ (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))) (+ 1 (exp a)))) (+ (* -1/2 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/6 (/ (exp a) (pow (+ 1 (exp a)) 2))))))) (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a))))
(fma.f64 (*.f64 b b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) (/.f64 (exp.f64 a) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 3 binary64))) (*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 3 binary64))) (/.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal -1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))) #s(literal 1 binary64)))) b (neg.f64 (*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 2 binary64))) (fma.f64 #s(literal 1/6 binary64) b (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal -1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))))))) (*.f64 (+.f64 (/.f64 b (-.f64 #s(literal -1 binary64) (exp.f64 a))) #s(literal 1 binary64)) (/.f64 (exp.f64 a) (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
(+ 1 (exp a))
(+.f64 #s(literal 1 binary64) (exp.f64 a))
(+ 1 (+ b (exp a)))
(+.f64 (+.f64 b (exp.f64 a)) #s(literal 1 binary64))
(+ 1 (+ (exp a) (* b (+ 1 (* 1/2 b)))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b (+.f64 #s(literal 1 binary64) (exp.f64 a)))
(+ 1 (+ (exp a) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) b #s(literal 1/2 binary64)) b #s(literal 1 binary64)) b (+.f64 #s(literal 1 binary64) (exp.f64 a)))
1
#s(literal 1 binary64)
(+ 1 b)
(+.f64 b #s(literal 1 binary64))
(+ 1 (* b (+ 1 (* 1/2 b))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))
(+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) b #s(literal 1/2 binary64)) b #s(literal 1 binary64)) b #s(literal 1 binary64))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))
(exp b)
(exp.f64 b)
(exp b)
(exp.f64 b)
(exp b)
(exp.f64 b)
(exp b)
(exp.f64 b)
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))
(exp b)
(exp.f64 b)
(exp b)
(exp.f64 b)
(exp b)
(exp.f64 b)
(exp b)
(exp.f64 b)
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(+ (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(fma.f64 (+.f64 #s(literal 1 binary64) a) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (/.f64 (neg.f64 a) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 2 binary64))))
(+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 3))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (+.f64 (/.f64 a (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 3 binary64))) (*.f64 (fma.f64 a #s(literal 3/2 binary64) #s(literal 1 binary64)) (/.f64 #s(literal -1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 2 binary64)))))) a (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))))
(+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (+ (* a (- (+ (* 1/6 (/ 1 (+ 1 (exp b)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 3)))) (+ (* 1/6 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))) (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 4))))))) (/ 1 (pow (+ 1 (exp b)) 3)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (fma.f64 (fma.f64 (-.f64 (fma.f64 (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 2 binary64))) (-.f64 (/.f64 #s(literal 3/2 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #s(literal 2/3 binary64)) (/.f64 #s(literal -1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 4 binary64)))) (-.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 2 binary64))) (/.f64 #s(literal -1/2 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 3 binary64)))) (/.f64 #s(literal 1/6 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))))) a (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 3 binary64)))) a (*.f64 (fma.f64 a #s(literal 3/2 binary64) #s(literal 1 binary64)) (/.f64 #s(literal -1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 2 binary64)))))) a (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))))
1
#s(literal 1 binary64)
(+ 1 a)
(+.f64 #s(literal 1 binary64) a)
(+ 1 (* a (+ 1 (* 1/2 a))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64))
(+ 1 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a #s(literal 1 binary64))
(+ 1 (exp b))
(+.f64 (exp.f64 b) #s(literal 1 binary64))
(+ 1 (+ a (exp b)))
(+.f64 (+.f64 (exp.f64 b) a) #s(literal 1 binary64))
(+ 1 (+ (exp b) (* a (+ 1 (* 1/2 a)))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(+ 1 (+ (exp b) (* a (+ 1 (* a (+ 1/2 (* 1/6 a)))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(exp a)
(exp.f64 a)
(exp a)
(exp.f64 a)
(exp a)
(exp.f64 a)
(exp a)
(exp.f64 a)
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(exp a)
(exp.f64 a)
(exp a)
(exp.f64 a)
(exp a)
(exp.f64 a)
(exp a)
(exp.f64 a)
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))
(+ (exp a) (exp b))
(+.f64 (exp.f64 b) (exp.f64 a))

rewrite175.0ms (7.9%)

Memory
9.0MiB live, 326.6MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0617
01017
13217
220317
3193617
0863117
Stop Event
iter limit
node limit
iter limit
Counts
4 → 314
Calls
Call 1
Inputs
(/.f64 (exp.f64 a) (+.f64 (exp.f64 a) (exp.f64 b)))
(exp.f64 a)
(+.f64 (exp.f64 a) (exp.f64 b))
(exp.f64 b)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval10.0ms (0.4%)

Memory
-17.6MiB live, 21.1MiB allocated
Compiler

Compiled 10 984 to 1 193 computations (89.1% saved)

prune1.0ms (0%)

Memory
1.9MiB live, 1.8MiB allocated
Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New4121413
Fresh000
Picked101
Done000
Total4131414
Accuracy
100.0%
Counts
414 → 1
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))))
Compiler

Compiled 7 to 7 computations (0% saved)

simplify3.0ms (0.1%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(exp.f64 b)
cost-diff0
(+.f64 (exp.f64 b) #s(literal 1 binary64))
cost-diff0
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
cost-diff0
#s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01129
01429
11829
01829
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
#s(literal 1 binary64)
(+.f64 (exp.f64 b) #s(literal 1 binary64))
(exp.f64 b)
b
Outputs
#s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
#s(literal 1 binary64)
(+.f64 (exp.f64 b) #s(literal 1 binary64))
(exp.f64 b)
b

localize1.0ms (0%)

Memory
1.6MiB live, 1.6MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
accuracy0
(+.f64 (exp.f64 b) #s(literal 1 binary64))
accuracy0
(exp.f64 b)
accuracy0
#s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))))
Samples
0.0ms0valid
Compiler

Compiled 45 to 18 computations (60% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
ival-div: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
ival-exp: 0.0ms (0% of total)
ival-add: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series5.0ms (0.2%)

Memory
14.0MiB live, 14.0MiB allocated
Counts
4 → 60
Calls
Call 1
Inputs
#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())
#s(alt (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (patch (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #<representation binary64>) () ())
#s(alt (+.f64 (exp.f64 b) #s(literal 1 binary64)) (patch (+.f64 (exp.f64 b) #s(literal 1 binary64)) #<representation binary64>) () ())
#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())
Outputs
#s(alt (/ (exp a) (+ 1 (exp a))) (taylor 0 b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1 (/ (* b (exp a)) (pow (+ 1 (exp a)) 2))) (/ (exp a) (+ 1 (exp a)))) (taylor 0 b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (* b (- (* -1 (* b (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a)))) (taylor 0 b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (* b (- (* b (- (* -1 (* b (+ (* -1 (/ (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))) (+ 1 (exp a)))) (+ (* -1/2 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/6 (/ (exp a) (pow (+ 1 (exp a)) 2))))))) (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a)))) (taylor 0 b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt 1/2 (taylor 0 b) (#s(alt (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (patch (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ 1/2 (* -1/4 b)) (taylor 0 b) (#s(alt (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (patch (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ 1/2 (* b (- (* 1/48 (pow b 2)) 1/4))) (taylor 0 b) (#s(alt (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (patch (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ 1/2 (* b (- (* (pow b 2) (+ 1/48 (* -1/480 (pow b 2)))) 1/4))) (taylor 0 b) (#s(alt (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (patch (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt 2 (taylor 0 b) (#s(alt (+.f64 (exp.f64 b) #s(literal 1 binary64)) (patch (+.f64 (exp.f64 b) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2 b) (taylor 0 b) (#s(alt (+.f64 (exp.f64 b) #s(literal 1 binary64)) (patch (+.f64 (exp.f64 b) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2 (* b (+ 1 (* 1/2 b)))) (taylor 0 b) (#s(alt (+.f64 (exp.f64 b) #s(literal 1 binary64)) (patch (+.f64 (exp.f64 b) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 2 (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))) (taylor 0 b) (#s(alt (+.f64 (exp.f64 b) #s(literal 1 binary64)) (patch (+.f64 (exp.f64 b) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (+ 1 b) (taylor 0 b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* b (+ 1 (* 1/2 b)))) (taylor 0 b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))) (taylor 0 b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor inf b) (#s(alt (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (patch (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor inf b) (#s(alt (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (patch (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor inf b) (#s(alt (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (patch (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor inf b) (#s(alt (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (patch (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (exp b)) (taylor inf b) (#s(alt (+.f64 (exp.f64 b) #s(literal 1 binary64)) (patch (+.f64 (exp.f64 b) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (exp b)) (taylor inf b) (#s(alt (+.f64 (exp.f64 b) #s(literal 1 binary64)) (patch (+.f64 (exp.f64 b) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (exp b)) (taylor inf b) (#s(alt (+.f64 (exp.f64 b) #s(literal 1 binary64)) (patch (+.f64 (exp.f64 b) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (exp b)) (taylor inf b) (#s(alt (+.f64 (exp.f64 b) #s(literal 1 binary64)) (patch (+.f64 (exp.f64 b) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor -inf b) (#s(alt (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (patch (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor -inf b) (#s(alt (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (patch (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor -inf b) (#s(alt (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (patch (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor -inf b) (#s(alt (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (patch (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ 1 (exp b)) (taylor -inf b) (#s(alt (+.f64 (exp.f64 b) #s(literal 1 binary64)) (patch (+.f64 (exp.f64 b) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (exp b)) (taylor -inf b) (#s(alt (+.f64 (exp.f64 b) #s(literal 1 binary64)) (patch (+.f64 (exp.f64 b) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (exp b)) (taylor -inf b) (#s(alt (+.f64 (exp.f64 b) #s(literal 1 binary64)) (patch (+.f64 (exp.f64 b) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (exp b)) (taylor -inf b) (#s(alt (+.f64 (exp.f64 b) #s(literal 1 binary64)) (patch (+.f64 (exp.f64 b) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor -inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor -inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor -inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (exp b) (taylor -inf b) (#s(alt (exp.f64 b) (patch (exp.f64 b) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor 0 a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b)))) (taylor 0 a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 3))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b)))) (taylor 0 a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (+ (* a (- (+ (* 1/6 (/ 1 (+ 1 (exp b)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 3)))) (+ (* 1/6 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))) (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 4))))))) (/ 1 (pow (+ 1 (exp b)) 3)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b)))) (taylor 0 a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
1.0ms
b
@inf
((/ (exp a) (+ (exp a) (exp b))) (/ 1 (+ (exp b) 1)) (+ (exp b) 1) (exp b))
1.0ms
b
@-inf
((/ (exp a) (+ (exp a) (exp b))) (/ 1 (+ (exp b) 1)) (+ (exp b) 1) (exp b))
0.0ms
b
@0
((/ (exp a) (+ (exp a) (exp b))) (/ 1 (+ (exp b) 1)) (+ (exp b) 1) (exp b))
0.0ms
a
@inf
((/ (exp a) (+ (exp a) (exp b))) (/ 1 (+ (exp b) 1)) (+ (exp b) 1) (exp b))
0.0ms
a
@-inf
((/ (exp a) (+ (exp a) (exp b))) (/ 1 (+ (exp b) 1)) (+ (exp b) 1) (exp b))

simplify178.0ms (8%)

Memory
2.9MiB live, 316.4MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0117682
1307667
2893651
33473626
08181593
Stop Event
iter limit
node limit
Counts
60 → 60
Calls
Call 1
Inputs
(/ (exp a) (+ 1 (exp a)))
(+ (* -1 (/ (* b (exp a)) (pow (+ 1 (exp a)) 2))) (/ (exp a) (+ 1 (exp a))))
(+ (* b (- (* -1 (* b (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a))))
(+ (* b (- (* b (- (* -1 (* b (+ (* -1 (/ (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))) (+ 1 (exp a)))) (+ (* -1/2 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/6 (/ (exp a) (pow (+ 1 (exp a)) 2))))))) (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a))))
1/2
(+ 1/2 (* -1/4 b))
(+ 1/2 (* b (- (* 1/48 (pow b 2)) 1/4)))
(+ 1/2 (* b (- (* (pow b 2) (+ 1/48 (* -1/480 (pow b 2)))) 1/4)))
2
(+ 2 b)
(+ 2 (* b (+ 1 (* 1/2 b))))
(+ 2 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))
1
(+ 1 b)
(+ 1 (* b (+ 1 (* 1/2 b))))
(+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ 1 (+ 1 (exp b)))
(/ 1 (+ 1 (exp b)))
(/ 1 (+ 1 (exp b)))
(/ 1 (+ 1 (exp b)))
(+ 1 (exp b))
(+ 1 (exp b))
(+ 1 (exp b))
(+ 1 (exp b))
(exp b)
(exp b)
(exp b)
(exp b)
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ 1 (+ 1 (exp b)))
(/ 1 (+ 1 (exp b)))
(/ 1 (+ 1 (exp b)))
(/ 1 (+ 1 (exp b)))
(+ 1 (exp b))
(+ 1 (exp b))
(+ 1 (exp b))
(+ 1 (exp b))
(exp b)
(exp b)
(exp b)
(exp b)
(/ 1 (+ 1 (exp b)))
(+ (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 3))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (+ (* a (- (+ (* 1/6 (/ 1 (+ 1 (exp b)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 3)))) (+ (* 1/6 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))) (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 4))))))) (/ 1 (pow (+ 1 (exp b)) 3)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
Outputs
(/ (exp a) (+ 1 (exp a)))
(/.f64 (exp.f64 a) (+.f64 #s(literal 1 binary64) (exp.f64 a)))
(+ (* -1 (/ (* b (exp a)) (pow (+ 1 (exp a)) 2))) (/ (exp a) (+ 1 (exp a))))
(*.f64 (+.f64 (/.f64 b (-.f64 #s(literal -1 binary64) (exp.f64 a))) #s(literal 1 binary64)) (/.f64 (exp.f64 a) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
(+ (* b (- (* -1 (* b (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a))))
(fma.f64 (fma.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 2 binary64))) (fma.f64 #s(literal -1/2 binary64) b #s(literal -1 binary64)) (*.f64 (exp.f64 a) (/.f64 b (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 3 binary64))))) b (/.f64 (exp.f64 a) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
(+ (* b (- (* b (- (* -1 (* b (+ (* -1 (/ (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))) (+ 1 (exp a)))) (+ (* -1/2 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/6 (/ (exp a) (pow (+ 1 (exp a)) 2))))))) (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a))))
(fma.f64 (*.f64 b b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) (/.f64 (exp.f64 a) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 3 binary64))) (*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 3 binary64))) (/.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal -1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))) #s(literal 1 binary64)))) b (neg.f64 (*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 2 binary64))) (fma.f64 #s(literal 1/6 binary64) b (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal -1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))))))) (*.f64 (+.f64 (/.f64 b (-.f64 #s(literal -1 binary64) (exp.f64 a))) #s(literal 1 binary64)) (/.f64 (exp.f64 a) (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
1/2
#s(literal 1/2 binary64)
(+ 1/2 (* -1/4 b))
(fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))
(+ 1/2 (* b (- (* 1/48 (pow b 2)) 1/4)))
(fma.f64 (fma.f64 (*.f64 b b) #s(literal 1/48 binary64) #s(literal -1/4 binary64)) b #s(literal 1/2 binary64))
(+ 1/2 (* b (- (* (pow b 2) (+ 1/48 (* -1/480 (pow b 2)))) 1/4)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/480 binary64) (*.f64 b b) #s(literal 1/48 binary64)) (*.f64 b b) #s(literal -1/4 binary64)) b #s(literal 1/2 binary64))
2
#s(literal 2 binary64)
(+ 2 b)
(+.f64 #s(literal 2 binary64) b)
(+ 2 (* b (+ 1 (* 1/2 b))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 2 binary64))
(+ 2 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) b #s(literal 1/2 binary64)) b #s(literal 1 binary64)) b #s(literal 2 binary64))
1
#s(literal 1 binary64)
(+ 1 b)
(+.f64 b #s(literal 1 binary64))
(+ 1 (* b (+ 1 (* 1/2 b))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))
(+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) b #s(literal 1/2 binary64)) b #s(literal 1 binary64)) b #s(literal 1 binary64))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(+ 1 (exp b))
(+.f64 (exp.f64 b) #s(literal 1 binary64))
(+ 1 (exp b))
(+.f64 (exp.f64 b) #s(literal 1 binary64))
(+ 1 (exp b))
(+.f64 (exp.f64 b) #s(literal 1 binary64))
(+ 1 (exp b))
(+.f64 (exp.f64 b) #s(literal 1 binary64))
(exp b)
(exp.f64 b)
(exp b)
(exp.f64 b)
(exp b)
(exp.f64 b)
(exp b)
(exp.f64 b)
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(+ 1 (exp b))
(+.f64 (exp.f64 b) #s(literal 1 binary64))
(+ 1 (exp b))
(+.f64 (exp.f64 b) #s(literal 1 binary64))
(+ 1 (exp b))
(+.f64 (exp.f64 b) #s(literal 1 binary64))
(+ 1 (exp b))
(+.f64 (exp.f64 b) #s(literal 1 binary64))
(exp b)
(exp.f64 b)
(exp b)
(exp.f64 b)
(exp b)
(exp.f64 b)
(exp b)
(exp.f64 b)
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(+ (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(fma.f64 (+.f64 a #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (/.f64 (neg.f64 a) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 2 binary64))))
(+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 3))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(fma.f64 (+.f64 (fma.f64 (+.f64 (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 3 binary64))) (/.f64 #s(literal 1/2 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) a (*.f64 (fma.f64 a #s(literal 3/2 binary64) #s(literal 1 binary64)) (/.f64 #s(literal -1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 2 binary64))))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) a (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))))
(+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (+ (* a (- (+ (* 1/6 (/ 1 (+ 1 (exp b)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 3)))) (+ (* 1/6 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))) (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 4))))))) (/ 1 (pow (+ 1 (exp b)) 3)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(fma.f64 (+.f64 (fma.f64 (+.f64 (fma.f64 (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (+.f64 #s(literal 1/2 binary64) (*.f64 a #s(literal 1/6 binary64))) (*.f64 (fma.f64 (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 2 binary64))) (-.f64 (/.f64 #s(literal 3/2 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #s(literal 2/3 binary64)) (fma.f64 (-.f64 (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 2 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 3 binary64)))) #s(literal -1/2 binary64) (/.f64 #s(literal -1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 4 binary64))))) a)) (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 3 binary64)))) a (*.f64 (fma.f64 a #s(literal 3/2 binary64) #s(literal 1 binary64)) (/.f64 #s(literal -1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 2 binary64))))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))) a (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))

rewrite180.0ms (8.1%)

Memory
-17.4MiB live, 303.3MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01127
01427
15627
234427
3320327
0919525
Stop Event
iter limit
node limit
iter limit
Counts
4 → 282
Calls
Call 1
Inputs
#s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(+.f64 (exp.f64 b) #s(literal 1 binary64))
(exp.f64 b)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval6.0ms (0.3%)

Memory
16.9MiB live, 16.9MiB allocated
Compiler

Compiled 5 924 to 1 226 computations (79.3% saved)

prune1.0ms (0%)

Memory
1.9MiB live, 1.9MiB allocated
Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New3411342
Fresh000
Picked011
Done000
Total3412343
Accuracy
100.0%
Counts
343 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))))
79.7%
#s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)))
Compiler

Compiled 10 to 12 computations (-20% saved)

simplify6.0ms (0.3%)

Memory
-38.2MiB live, 5.9MiB allocated
Algorithm
egg-herbie
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
cost-diff0
#s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))
cost-diff0
#s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01226
01226
11626
01626
Stop Event
iter limit
saturated
saturated
Calls
Call 1
Inputs
#s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)))
#s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
Outputs
#s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)))
#s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))
#s(literal 1/2 binary64)

localize1.0ms (0%)

Memory
1.5MiB live, 1.5MiB allocated
Localize:

Found 2 expressions of interest:

NewMetricScoreProgram
accuracy0
#s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)))
accuracy13.0
#s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))
Samples
0.0ms0valid
Compiler

Compiled 23 to 17 computations (26.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 0.0ms
ival-div: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
ival-exp: 0.0ms (0% of total)
ival-add: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0.2%)

Memory
8.8MiB live, 8.8MiB allocated
Counts
2 → 36
Calls
Call 1
Inputs
#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())
#s(alt #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) (patch #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) #<representation binary64>) () ())
Outputs
#s(alt (/ (exp a) (+ 1 (exp a))) (taylor 0 b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1 (/ (* b (exp a)) (pow (+ 1 (exp a)) 2))) (/ (exp a) (+ 1 (exp a)))) (taylor 0 b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* b (- (* -1 (* b (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a)))) (taylor 0 b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* b (- (* b (- (* -1 (* b (+ (* -1 (/ (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))) (+ 1 (exp a)))) (+ (* -1/2 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/6 (/ (exp a) (pow (+ 1 (exp a)) 2))))))) (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a)))) (taylor 0 b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt 1/2 (taylor 0 b) (#s(alt #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) (patch #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1/2 (* -1/4 b)) (taylor 0 b) (#s(alt #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) (patch #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1/2 (* b (- (* 1/48 (pow b 2)) 1/4))) (taylor 0 b) (#s(alt #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) (patch #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1/2 (* b (- (* (pow b 2) (+ 1/48 (* -1/480 (pow b 2)))) 1/4))) (taylor 0 b) (#s(alt #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) (patch #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor inf b) (#s(alt #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) (patch #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor inf b) (#s(alt #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) (patch #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor inf b) (#s(alt #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) (patch #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor inf b) (#s(alt #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) (patch #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf b) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor -inf b) (#s(alt #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) (patch #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor -inf b) (#s(alt #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) (patch #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor -inf b) (#s(alt #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) (patch #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor -inf b) (#s(alt #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) (patch #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 (+ 1 (exp b))) (taylor 0 a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b)))) (taylor 0 a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 3))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b)))) (taylor 0 a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (+ (* a (- (+ (* 1/6 (/ 1 (+ 1 (exp b)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 3)))) (+ (* 1/6 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))) (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 4))))))) (/ 1 (pow (+ 1 (exp b)) 3)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b)))) (taylor 0 a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ (exp a) (+ (exp a) (exp b))) (taylor -inf a) (#s(alt #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) (patch #s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
Calls

6 calls:

TimeVariablePointExpression
1.0ms
b
@inf
((/ (exp a) (+ (exp a) (exp b))) (/ 1 (+ (exp b) 1)))
0.0ms
b
@-inf
((/ (exp a) (+ (exp a) (exp b))) (/ 1 (+ (exp b) 1)))
0.0ms
a
@inf
((/ (exp a) (+ (exp a) (exp b))) (/ 1 (+ (exp b) 1)))
0.0ms
a
@-inf
((/ (exp a) (+ (exp a) (exp b))) (/ 1 (+ (exp b) 1)))
0.0ms
b
@0
((/ (exp a) (+ (exp a) (exp b))) (/ 1 (+ (exp b) 1)))

simplify173.0ms (7.8%)

Memory
30.7MiB live, 299.9MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0103582
1264567
2797551
33100524
08198498
Stop Event
iter limit
node limit
Counts
36 → 36
Calls
Call 1
Inputs
(/ (exp a) (+ 1 (exp a)))
(+ (* -1 (/ (* b (exp a)) (pow (+ 1 (exp a)) 2))) (/ (exp a) (+ 1 (exp a))))
(+ (* b (- (* -1 (* b (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a))))
(+ (* b (- (* b (- (* -1 (* b (+ (* -1 (/ (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))) (+ 1 (exp a)))) (+ (* -1/2 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/6 (/ (exp a) (pow (+ 1 (exp a)) 2))))))) (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a))))
1/2
(+ 1/2 (* -1/4 b))
(+ 1/2 (* b (- (* 1/48 (pow b 2)) 1/4)))
(+ 1/2 (* b (- (* (pow b 2) (+ 1/48 (* -1/480 (pow b 2)))) 1/4)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ 1 (+ 1 (exp b)))
(/ 1 (+ 1 (exp b)))
(/ 1 (+ 1 (exp b)))
(/ 1 (+ 1 (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ 1 (+ 1 (exp b)))
(/ 1 (+ 1 (exp b)))
(/ 1 (+ 1 (exp b)))
(/ 1 (+ 1 (exp b)))
(/ 1 (+ 1 (exp b)))
(+ (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 3))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (+ (* a (- (+ (* 1/6 (/ 1 (+ 1 (exp b)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 3)))) (+ (* 1/6 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))) (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 4))))))) (/ 1 (pow (+ 1 (exp b)) 3)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
(/ (exp a) (+ (exp a) (exp b)))
Outputs
(/ (exp a) (+ 1 (exp a)))
(/.f64 (exp.f64 a) (+.f64 #s(literal 1 binary64) (exp.f64 a)))
(+ (* -1 (/ (* b (exp a)) (pow (+ 1 (exp a)) 2))) (/ (exp a) (+ 1 (exp a))))
(*.f64 (+.f64 (/.f64 b (-.f64 #s(literal -1 binary64) (exp.f64 a))) #s(literal 1 binary64)) (/.f64 (exp.f64 a) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
(+ (* b (- (* -1 (* b (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a))))
(fma.f64 (fma.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 2 binary64))) (fma.f64 #s(literal -1/2 binary64) b #s(literal -1 binary64)) (*.f64 (exp.f64 a) (/.f64 b (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 3 binary64))))) b (/.f64 (exp.f64 a) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
(+ (* b (- (* b (- (* -1 (* b (+ (* -1 (/ (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))) (+ 1 (exp a)))) (+ (* -1/2 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/6 (/ (exp a) (pow (+ 1 (exp a)) 2))))))) (+ (* -1 (/ (exp a) (pow (+ 1 (exp a)) 3))) (* 1/2 (/ (exp a) (pow (+ 1 (exp a)) 2)))))) (/ (exp a) (pow (+ 1 (exp a)) 2)))) (/ (exp a) (+ 1 (exp a))))
(fma.f64 (*.f64 b b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) (/.f64 (exp.f64 a) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 3 binary64))) (*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 3 binary64))) (/.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal -1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))) #s(literal 1 binary64)))) b (neg.f64 (*.f64 (/.f64 (exp.f64 a) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 2 binary64))) (fma.f64 #s(literal 1/6 binary64) b (+.f64 #s(literal 1/2 binary64) (/.f64 #s(literal -1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))))))) (*.f64 (+.f64 (/.f64 b (-.f64 #s(literal -1 binary64) (exp.f64 a))) #s(literal 1 binary64)) (/.f64 (exp.f64 a) (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
1/2
#s(literal 1/2 binary64)
(+ 1/2 (* -1/4 b))
(fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))
(+ 1/2 (* b (- (* 1/48 (pow b 2)) 1/4)))
(fma.f64 (fma.f64 (*.f64 b b) #s(literal 1/48 binary64) #s(literal -1/4 binary64)) b #s(literal 1/2 binary64))
(+ 1/2 (* b (- (* (pow b 2) (+ 1/48 (* -1/480 (pow b 2)))) 1/4)))
(fma.f64 (fma.f64 (fma.f64 #s(literal -1/480 binary64) (*.f64 b b) #s(literal 1/48 binary64)) (*.f64 b b) #s(literal -1/4 binary64)) b #s(literal 1/2 binary64))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(/ 1 (+ 1 (exp b)))
(/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
(+ (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(fma.f64 (+.f64 a #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (/.f64 (neg.f64 a) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 2 binary64))))
(+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 3))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(fma.f64 (fma.f64 (fma.f64 a #s(literal 1/2 binary64) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (fma.f64 (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 3 binary64))) a (*.f64 (fma.f64 a #s(literal 3/2 binary64) #s(literal 1 binary64)) (/.f64 #s(literal -1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 2 binary64)))))) a (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))))
(+ (* a (- (+ (* a (- (+ (* 1/2 (/ 1 (+ 1 (exp b)))) (+ (* a (- (+ (* 1/6 (/ 1 (+ 1 (exp b)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 3)))) (+ (* 1/6 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ 1 (pow (+ 1 (exp b)) 2))) (+ (* 1/2 (/ (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))) (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 4))))))) (/ 1 (pow (+ 1 (exp b)) 3)))) (* 3/2 (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b)))) (/ 1 (pow (+ 1 (exp b)) 2)))) (/ 1 (+ 1 (exp b))))
(fma.f64 (fma.f64 (fma.f64 a #s(literal 1/2 binary64) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (fma.f64 (fma.f64 (-.f64 (+.f64 (/.f64 #s(literal 1/6 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (fma.f64 (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 2 binary64))) (-.f64 (/.f64 #s(literal 3/2 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) #s(literal 2/3 binary64)) (/.f64 #s(literal -1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 4 binary64))))) (fma.f64 (/.f64 #s(literal -1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 3 binary64))) #s(literal 1/2 binary64) (/.f64 #s(literal 1/2 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 2 binary64))))) a (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 3 binary64)))) a (*.f64 (fma.f64 a #s(literal 3/2 binary64) #s(literal 1 binary64)) (/.f64 #s(literal -1 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal 2 binary64)))))) a (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))
(/ (exp a) (+ (exp a) (exp b)))
(/.f64 (exp.f64 a) (+.f64 (exp.f64 b) (exp.f64 a)))

rewrite172.0ms (7.7%)

Memory
-25.8MiB live, 294.2MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01225
01225
15425
234225
3320125
0918423
Stop Event
iter limit
node limit
saturated
Counts
2 → 2
Calls
Call 1
Inputs
#s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)))
#s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64))
Outputs
#<batchref>
#<batchref>

eval1.0ms (0%)

Memory
2.2MiB live, 2.2MiB allocated
Compiler

Compiled 552 to 102 computations (81.5% saved)

prune1.0ms (0%)

Memory
1.4MiB live, 1.4MiB allocated
Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New38038
Fresh000
Picked011
Done011
Total38240
Accuracy
100.0%
Counts
40 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
#s(approx (/ (exp a) (+ (exp a) (exp b))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))))
79.7%
#s(approx (/ (exp a) (+ (exp a) (exp b))) #s(approx (/ 1 (+ (exp b) 1)) #s(literal 1/2 binary64)))
Compiler

Compiled 28 to 25 computations (10.7% saved)

regimes0.0ms (0%)

Memory
0.4MiB live, 0.3MiB allocated
Compiler

Compiled 2 to 3 computations (-50% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated
Calls

1 calls:

0.0ms
(exp.f64 b)

Profiling

Loading profile data...