symmetry log of sum of exp

Time bar (total: 10.5s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated; 0ms collecting garbage

analyze141.0ms (1.3%)

Memory
-23.9MiB live, 157.2MiB allocated; 23ms collecting garbage
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
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
25%25%74.9%0.1%0%0%0%4
50%50%50%0.1%0%0%0%5
50%50%50%0.1%0%0%0%6
50%50%50%0.1%0%0%0%7
50%50%50%0.1%0%0%0%8
50%50%50%0.1%0%0%0%9
50%50%50%0.1%0%0%0%10
50%50%50%0.1%0%0%0%11
50%50%50%0.1%0%0%0%12
Compiler

Compiled 8 to 8 computations (0% saved)

sample5.5s (52.4%)

Memory
155.2MiB live, 5 431.8MiB allocated; 1.3s collecting garbage
Samples
2.8s7 772×5exit
880.0ms1 641×2valid
514.0ms2 217×1valid
284.0ms4 398×0valid
Precisions
Click to see histograms. Total time spent on operations: 3.7s
adjust: 1.2s (32.2% of total)
ival-log: 1.2s (31.9% of total)
ival-exp: 1.0s (28.1% of total)
ival-add: 279.0ms (7.6% of total)
ival-assert: 7.0ms (0.2% of total)
Bogosity

explain422.0ms (4%)

Memory
-56.5MiB live, 144.2MiB allocated; 649ms collecting garbage
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
1170-0-(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
00-0-(+.f64 (exp.f64 a) (exp.f64 b))
00-0-a
00-0-(exp.f64 b)
00-0-b
00-0-(exp.f64 a)
Explanations
Click to see full explanations table
OperatorSubexpressionExplanationCount
log.f64(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))sensitivity1120
log.f64(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))oflow-rescue30
(+.f64 (exp.f64 a) (exp.f64 b))overflow3
(exp.f64 a)overflow2
(exp.f64 b)overflow1
log.f64(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))uflow-rescue20
(+.f64 (exp.f64 a) (exp.f64 b))underflow2
(exp.f64 a)underflow57
(exp.f64 b)underflow59
Confusion
Predicted +Predicted -
+1170
-0139
Precision
1.0
Recall
1.0
Confusion?
Predicted +Predicted MaybePredicted -
+11700
-00139
Precision?
1.0
Recall?
1.0
Freqs
test
numberfreq
0139
1117
Total Confusion?
Predicted +Predicted MaybePredicted -
+100
-000
Precision?
1.0
Recall?
1.0
Samples
38.0ms150×1valid
33.0ms68×2valid
17.0ms294×0valid
Compiler

Compiled 44 to 22 computations (50% saved)

Precisions
Click to see histograms. Total time spent on operations: 71.0ms
ival-log: 39.0ms (55.1% of total)
ival-exp: 21.0ms (29.7% of total)
adjust: 6.0ms (8.5% of total)
ival-add: 4.0ms (5.7% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

preprocess197.0ms (1.9%)

Memory
35.8MiB live, 170.5MiB allocated; 12ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01842
13742
29442
335842
4177342
5696742
066
0106
1176
2406
31126
45156
551796
083046
Stop Event
iter limit
node limit
iter limit
node limit
Calls
Call 1
Inputs
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
Outputs
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
(log.f64 (+.f64 (exp.f64 b) (exp.f64 a)))
Symmetry

(sort a b)

Compiler

Compiled 6 to 6 computations (0% saved)

eval0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage
Compiler

Compiled 0 to 2 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.6MiB live, 0.6MiB allocated; 0ms collecting garbage
Alt Table
Click to see full alt table
StatusAccuracyProgram
58.0%
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
Compiler

Compiled 6 to 6 computations (0% saved)

simplify149.0ms (1.4%)

Memory
-2.0MiB live, 140.8MiB allocated; 12ms collecting garbage
Localize:

Found 4 expressions of interest:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0617
01017
11717
24017
311217
451517
5517917
0830417
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
(+.f64 (exp.f64 a) (exp.f64 b))
(exp.f64 a)
a
(exp.f64 b)
b
Outputs
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
(log.f64 (+.f64 (exp.f64 b) (exp.f64 a)))
(+.f64 (exp.f64 a) (exp.f64 b))
(+.f64 (exp.f64 b) (exp.f64 a))
(exp.f64 a)
a
(exp.f64 b)
b

localize49.0ms (0.5%)

Memory
5.9MiB live, 51.9MiB allocated; 3ms collecting garbage
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(exp.f64 b)
accuracy0.0
(exp.f64 a)
accuracy0.0078125
(+.f64 (exp.f64 a) (exp.f64 b))
accuracy26.85909686266478
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
Samples
18.0ms34×2valid
15.0ms75×1valid
9.0ms147×0valid
Compiler

Compiled 19 to 8 computations (57.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 34.0ms
ival-log: 18.0ms (53.7% of total)
ival-exp: 10.0ms (29.8% of total)
adjust: 3.0ms (8.9% of total)
ival-add: 2.0ms (6% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series159.0ms (1.5%)

Memory
-26.8MiB live, 113.0MiB allocated; 15ms collecting garbage
Counts
4 → 28
Calls
Call 1
Inputs
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
(+.f64 (exp.f64 a) (exp.f64 b))
(exp.f64 a)
(exp.f64 b)
Outputs
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp b)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (/ a (+ 1 (exp b))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* 1/2 (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* a (+ (* 1/6 (* a (- (+ (* 2 (/ 1 (pow (+ 1 (exp b)) 3))) (/ 1 (+ 1 (exp b)))) (* 3 (/ 1 (pow (+ 1 (exp b)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp b))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ a (exp b)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* 1/2 a)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* a (+ 1/2 (* 1/6 a)))))))))
#s(approx (exp a) #s(hole binary64 1))
#s(approx (exp a) #s(hole binary64 (+ 1 a)))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* 1/2 a))))))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ (exp a) (exp b))))
#s(approx (exp a) #s(hole binary64 (exp a)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* 1/2 (* b (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* b (+ (* 1/6 (* b (- (+ (* 2 (/ 1 (pow (+ 1 (exp a)) 3))) (/ 1 (+ 1 (exp a)))) (* 3 (/ 1 (pow (+ 1 (exp a)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2)))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp a))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ b (exp a)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* 1/2 b)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))))
#s(approx (exp b) #s(hole binary64 1))
#s(approx (exp b) #s(hole binary64 (+ 1 b)))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* 1/2 b))))))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))))
#s(approx (exp b) #s(hole binary64 (exp b)))
Calls

6 calls:

TimeVariablePointExpression
102.0ms
a
@inf
((log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (exp b))
22.0ms
a
@-inf
((log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (exp b))
18.0ms
b
@-inf
((log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (exp b))
16.0ms
b
@inf
((log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (exp b))
1.0ms
a
@0
((log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (exp b))

simplify163.0ms (1.5%)

Memory
34.8MiB live, 173.7MiB allocated; 18ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0127518
1345518
21260514
35625514
08760468
Stop Event
iter limit
node limit
Counts
28 → 28
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp b)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (/ a (+ 1 (exp b))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* 1/2 (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* a (+ (* 1/6 (* a (- (+ (* 2 (/ 1 (pow (+ 1 (exp b)) 3))) (/ 1 (+ 1 (exp b)))) (* 3 (/ 1 (pow (+ 1 (exp b)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp b))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ a (exp b)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* 1/2 a)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* a (+ 1/2 (* 1/6 a)))))))))
#s(approx (exp a) #s(hole binary64 1))
#s(approx (exp a) #s(hole binary64 (+ 1 a)))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* 1/2 a))))))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ (exp a) (exp b))))
#s(approx (exp a) #s(hole binary64 (exp a)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* 1/2 (* b (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* b (+ (* 1/6 (* b (- (+ (* 2 (/ 1 (pow (+ 1 (exp a)) 3))) (/ 1 (+ 1 (exp a)))) (* 3 (/ 1 (pow (+ 1 (exp a)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2)))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp a))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ b (exp a)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* 1/2 b)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))))
#s(approx (exp b) #s(hole binary64 1))
#s(approx (exp b) #s(hole binary64 (+ 1 b)))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* 1/2 b))))))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))))
#s(approx (exp b) #s(hole binary64 (exp b)))
Outputs
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp b)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (/ a (+ 1 (exp b))))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 a (-.f64 (exp.f64 b) #s(literal -1 binary64))) (log1p.f64 (exp.f64 b))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* 1/2 (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (*.f64 #s(literal 1/2 binary64) a) (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 b) #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 (log1p.f64 (exp.f64 b))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* a (+ (* 1/6 (* a (- (+ (* 2 (/ 1 (pow (+ 1 (exp b)) 3))) (/ 1 (+ 1 (exp b)))) (* 3 (/ 1 (pow (+ 1 (exp b)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) a) (/.f64 (+.f64 (/.f64 #s(literal -3 binary64) (-.f64 (exp.f64 b) #s(literal -1 binary64))) (+.f64 (/.f64 #s(literal 2 binary64) (pow.f64 (-.f64 (exp.f64 b) #s(literal -1 binary64)) #s(literal 2 binary64))) #s(literal 1 binary64))) (-.f64 (exp.f64 b) #s(literal -1 binary64))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 b) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 b) #s(literal -1 binary64)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) a (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 b) #s(literal -1 binary64)))) a (log1p.f64 (exp.f64 b))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp b))))
#s(approx (+ (exp a) (exp b)) (-.f64 (exp.f64 b) #s(literal -1 binary64)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ a (exp b)))))
#s(approx (+ (exp a) (exp b)) (-.f64 (+.f64 (exp.f64 b) a) #s(literal -1 binary64)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* 1/2 a)))))))
#s(approx (+ (exp a) (exp b)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (-.f64 (exp.f64 b) #s(literal -1 binary64))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* a (+ 1/2 (* 1/6 a)))))))))
#s(approx (+ (exp a) (exp b)) (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))))
#s(approx (exp a) #s(hole binary64 1))
#s(approx (exp a) #s(literal 1 binary64))
#s(approx (exp a) #s(hole binary64 (+ 1 a)))
#s(approx (exp a) (-.f64 a #s(literal -1 binary64)))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* 1/2 a))))))
#s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))))
#s(approx (exp 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)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (log (+ (exp a) (exp b))) (log.f64 (+.f64 (exp.f64 b) (exp.f64 a))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ (exp a) (exp b))))
#s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 b) (exp.f64 a)))
#s(approx (exp a) #s(hole binary64 (exp a)))
#s(approx (exp a) (exp.f64 a))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* 1/2 (* b (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (*.f64 #s(literal 1/2 binary64) b) (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 a) #s(literal -1 binary64)) #s(literal 2 binary64)))) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64)))) b (log1p.f64 (exp.f64 a))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* b (+ (* 1/6 (* b (- (+ (* 2 (/ 1 (pow (+ 1 (exp a)) 3))) (/ 1 (+ 1 (exp a)))) (* 3 (/ 1 (pow (+ 1 (exp a)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2)))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) b) (/.f64 (+.f64 (/.f64 #s(literal -3 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64))) (+.f64 (/.f64 #s(literal 2 binary64) (pow.f64 (-.f64 (exp.f64 a) #s(literal -1 binary64)) #s(literal 2 binary64))) #s(literal 1 binary64))) (-.f64 (exp.f64 a) #s(literal -1 binary64))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 a) #s(literal -1 binary64)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) b (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64)))) b (log1p.f64 (exp.f64 a))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp a))))
#s(approx (+ (exp a) (exp b)) (-.f64 (exp.f64 a) #s(literal -1 binary64)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ b (exp a)))))
#s(approx (+ (exp a) (exp b)) (-.f64 (+.f64 (exp.f64 a) b) #s(literal -1 binary64)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* 1/2 b)))))))
#s(approx (+ (exp a) (exp b)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b (-.f64 (exp.f64 a) #s(literal -1 binary64))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))))
#s(approx (+ (exp a) (exp 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 (exp.f64 a) #s(literal -1 binary64))))
#s(approx (exp b) #s(hole binary64 1))
#s(approx (exp b) #s(literal 1 binary64))
#s(approx (exp b) #s(hole binary64 (+ 1 b)))
#s(approx (exp b) (-.f64 b #s(literal -1 binary64)))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* 1/2 b))))))
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))))
#s(approx (exp 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)))
#s(approx (exp b) #s(hole binary64 (exp b)))
#s(approx (exp b) (exp.f64 b))

rewrite143.0ms (1.4%)

Memory
2.4MiB live, 193.1MiB allocated; 25ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0615
01015
13015
222515
3292315
0858015
Stop Event
iter limit
node limit
iter limit
Counts
4 → 278
Calls
Call 1
Inputs
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
(+.f64 (exp.f64 a) (exp.f64 b))
(exp.f64 a)
(exp.f64 b)
Outputs
(/.f64 (-.f64 (pow.f64 (log.f64 (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64))) #s(literal 2 binary64)) (pow.f64 (log.f64 (-.f64 (exp.f64 b) (exp.f64 a))) #s(literal 2 binary64))) (log.f64 (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 3 binary64))))
(/.f64 (-.f64 (pow.f64 (log.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64)))) #s(literal 2 binary64)) (pow.f64 (log.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) #s(literal 2 binary64))) (log.f64 (*.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))))))
(/.f64 (-.f64 (pow.f64 (log.f64 (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64))) #s(literal 3 binary64)) (pow.f64 (log.f64 (-.f64 (exp.f64 b) (exp.f64 a))) #s(literal 3 binary64))) (+.f64 (pow.f64 (log.f64 (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64))) #s(literal 2 binary64)) (+.f64 (pow.f64 (log.f64 (-.f64 (exp.f64 b) (exp.f64 a))) #s(literal 2 binary64)) (*.f64 (log.f64 (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64))) (log.f64 (-.f64 (exp.f64 b) (exp.f64 a)))))))
(/.f64 (-.f64 (pow.f64 (log.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64)))) #s(literal 3 binary64)) (pow.f64 (log.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) #s(literal 3 binary64))) (+.f64 (pow.f64 (log.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64)))) #s(literal 2 binary64)) (+.f64 (pow.f64 (log.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) #s(literal 2 binary64)) (*.f64 (log.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64)))) (log.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))))))))
(-.f64 (log.f64 (-.f64 (*.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 a))) (*.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)))) (log.f64 (exp.f64 (+.f64 (neg.f64 b) (neg.f64 a)))))
(-.f64 (log.f64 (-.f64 (*.f64 #s(literal 1 binary64) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a)))) (*.f64 (exp.f64 (neg.f64 b)) (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64)))))) (log.f64 (*.f64 (exp.f64 (neg.f64 b)) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))))))
(-.f64 (log.f64 (-.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))) (exp.f64 (neg.f64 a))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) #s(literal 1 binary64)))) (log.f64 (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (exp.f64 (neg.f64 a)))))
(-.f64 (log.f64 (-.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a)))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64)))))) (log.f64 (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))))))
(-.f64 (log.f64 (-.f64 (pow.f64 (-.f64 (exp.f64 a) (cosh.f64 b)) #s(literal 2 binary64)) (pow.f64 (sinh.f64 b) #s(literal 2 binary64)))) (log.f64 (+.f64 (-.f64 (exp.f64 a) (cosh.f64 b)) (sinh.f64 b))))
(-.f64 (log.f64 (-.f64 (pow.f64 (cosh.f64 a) #s(literal 2 binary64)) (pow.f64 (-.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 2 binary64)))) (log.f64 (-.f64 (cosh.f64 a) (-.f64 (sinh.f64 a) (exp.f64 b)))))
(-.f64 (log.f64 (-.f64 (pow.f64 (-.f64 (exp.f64 a) (cosh.f64 b)) #s(literal 3 binary64)) (pow.f64 (sinh.f64 b) #s(literal 3 binary64)))) (log.f64 (+.f64 (pow.f64 (-.f64 (exp.f64 a) (cosh.f64 b)) #s(literal 2 binary64)) (fma.f64 (sinh.f64 b) (sinh.f64 b) (*.f64 (-.f64 (exp.f64 a) (cosh.f64 b)) (sinh.f64 b))))))
(-.f64 (log.f64 (+.f64 (pow.f64 (cosh.f64 a) #s(literal 3 binary64)) (pow.f64 (-.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 3 binary64)))) (log.f64 (fma.f64 (cosh.f64 a) (cosh.f64 a) (-.f64 (pow.f64 (-.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 2 binary64)) (*.f64 (cosh.f64 a) (-.f64 (sinh.f64 a) (exp.f64 b)))))))
(-.f64 (log.f64 (-.f64 (*.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b))) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))) (log.f64 (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b)))))
(-.f64 (log.f64 (-.f64 (*.f64 #s(literal 1 binary64) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b)))) (*.f64 (exp.f64 (neg.f64 a)) (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64)))))) (log.f64 (*.f64 (exp.f64 (neg.f64 a)) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))))))
(-.f64 (log.f64 (-.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))) (exp.f64 (neg.f64 b))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) #s(literal 1 binary64)))) (log.f64 (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (exp.f64 (neg.f64 b)))))
(-.f64 (log.f64 (-.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b)))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64)))))) (log.f64 (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))))))
(-.f64 (log.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) #s(literal 2 binary64)) (pow.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) #s(literal 2 binary64)))) (log.f64 (-.f64 (exp.f64 b) (exp.f64 a))))
(-.f64 (log.f64 (-.f64 (pow.f64 (+.f64 (cosh.f64 a) (exp.f64 b)) #s(literal 2 binary64)) (pow.f64 (sinh.f64 a) #s(literal 2 binary64)))) (log.f64 (-.f64 (+.f64 (cosh.f64 a) (exp.f64 b)) (sinh.f64 a))))
(-.f64 (log.f64 (-.f64 (pow.f64 (+.f64 (cosh.f64 b) (exp.f64 a)) #s(literal 2 binary64)) (pow.f64 (sinh.f64 b) #s(literal 2 binary64)))) (log.f64 (-.f64 (+.f64 (cosh.f64 b) (exp.f64 a)) (sinh.f64 b))))
(-.f64 (log.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) #s(literal 2 binary64)) (pow.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) #s(literal 2 binary64)))) (log.f64 (-.f64 (exp.f64 b) (exp.f64 a))))
(-.f64 (log.f64 (-.f64 (pow.f64 (cosh.f64 b) #s(literal 2 binary64)) (pow.f64 (+.f64 (sinh.f64 b) (exp.f64 a)) #s(literal 2 binary64)))) (log.f64 (-.f64 (cosh.f64 b) (+.f64 (sinh.f64 b) (exp.f64 a)))))
(-.f64 (log.f64 (-.f64 (pow.f64 (cosh.f64 a) #s(literal 2 binary64)) (pow.f64 (+.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 2 binary64)))) (log.f64 (-.f64 (cosh.f64 a) (+.f64 (sinh.f64 a) (exp.f64 b)))))
(-.f64 (log.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) #s(literal 3 binary64)))) (log.f64 (+.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) #s(literal 2 binary64)) (+.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) #s(literal 2 binary64)) (*.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))))))))
(-.f64 (log.f64 (+.f64 (pow.f64 (+.f64 (cosh.f64 a) (exp.f64 b)) #s(literal 3 binary64)) (pow.f64 (sinh.f64 a) #s(literal 3 binary64)))) (log.f64 (+.f64 (pow.f64 (+.f64 (cosh.f64 a) (exp.f64 b)) #s(literal 2 binary64)) (-.f64 (pow.f64 (sinh.f64 a) #s(literal 2 binary64)) (*.f64 (+.f64 (cosh.f64 a) (exp.f64 b)) (sinh.f64 a))))))
(-.f64 (log.f64 (+.f64 (pow.f64 (+.f64 (cosh.f64 b) (exp.f64 a)) #s(literal 3 binary64)) (pow.f64 (sinh.f64 b) #s(literal 3 binary64)))) (log.f64 (+.f64 (pow.f64 (+.f64 (cosh.f64 b) (exp.f64 a)) #s(literal 2 binary64)) (-.f64 (pow.f64 (sinh.f64 b) #s(literal 2 binary64)) (*.f64 (+.f64 (cosh.f64 b) (exp.f64 a)) (sinh.f64 b))))))
(-.f64 (log.f64 (+.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) #s(literal 3 binary64)))) (log.f64 (+.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) #s(literal 2 binary64)) (-.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) #s(literal 2 binary64)) (*.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))))))
(-.f64 (log.f64 (+.f64 (pow.f64 (cosh.f64 b) #s(literal 3 binary64)) (pow.f64 (+.f64 (sinh.f64 b) (exp.f64 a)) #s(literal 3 binary64)))) (log.f64 (fma.f64 (cosh.f64 b) (cosh.f64 b) (-.f64 (pow.f64 (+.f64 (sinh.f64 b) (exp.f64 a)) #s(literal 2 binary64)) (*.f64 (cosh.f64 b) (+.f64 (sinh.f64 b) (exp.f64 a)))))))
(-.f64 (log.f64 (+.f64 (pow.f64 (cosh.f64 a) #s(literal 3 binary64)) (pow.f64 (+.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 3 binary64)))) (log.f64 (fma.f64 (cosh.f64 a) (cosh.f64 a) (-.f64 (pow.f64 (+.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 2 binary64)) (*.f64 (cosh.f64 a) (+.f64 (sinh.f64 a) (exp.f64 b)))))))
(-.f64 (log.f64 (-.f64 (*.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) (*.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (pow.f64 (exp.f64 b) #s(literal 2 binary64))))) (log.f64 (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64))))
(-.f64 (log.f64 (fma.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) (*.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) (pow.f64 (exp.f64 b) #s(literal 3 binary64))))) (log.f64 (pow.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) #s(literal 2 binary64))))
(-.f64 (log.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 a)) (*.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)))) (log.f64 (exp.f64 (+.f64 (neg.f64 b) (neg.f64 a)))))
(-.f64 (log.f64 (fma.f64 #s(literal 1 binary64) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (*.f64 (exp.f64 (neg.f64 b)) (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64)))))) (log.f64 (*.f64 (exp.f64 (neg.f64 b)) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))))))
(-.f64 (log.f64 (fma.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))) (exp.f64 (neg.f64 a)) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) #s(literal 1 binary64)))) (log.f64 (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (exp.f64 (neg.f64 a)))))
(-.f64 (log.f64 (fma.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64)))))) (log.f64 (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))))))
(-.f64 (log.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))) (log.f64 (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b)))))
(-.f64 (log.f64 (fma.f64 #s(literal 1 binary64) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (*.f64 (exp.f64 (neg.f64 a)) (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64)))))) (log.f64 (*.f64 (exp.f64 (neg.f64 a)) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))))))
(-.f64 (log.f64 (fma.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))) (exp.f64 (neg.f64 b)) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) #s(literal 1 binary64)))) (log.f64 (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (exp.f64 (neg.f64 b)))))
(-.f64 (log.f64 (fma.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64)))))) (log.f64 (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))))))
(-.f64 (log.f64 (-.f64 (pow.f64 (exp.f64 a) #s(literal 6 binary64)) (pow.f64 (exp.f64 b) #s(literal 6 binary64)))) (log.f64 (*.f64 (+.f64 (pow.f64 (*.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b)) #s(literal 2 binary64)) (pow.f64 (exp.f64 a) #s(literal 4 binary64))) (-.f64 (exp.f64 b) (exp.f64 a)))))
(-.f64 (log.f64 (-.f64 (pow.f64 (exp.f64 a) #s(literal 6 binary64)) (pow.f64 (exp.f64 b) #s(literal 6 binary64)))) (log.f64 (*.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))))))
(-.f64 (log.f64 (+.f64 (pow.f64 (exp.f64 b) #s(literal 9 binary64)) (pow.f64 (exp.f64 a) #s(literal 9 binary64)))) (log.f64 (*.f64 (-.f64 (-.f64 (pow.f64 (exp.f64 a) #s(literal 6 binary64)) (pow.f64 (exp.f64 b) #s(literal 6 binary64))) (exp.f64 (*.f64 (+.f64 b a) #s(literal 3 binary64)))) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))))))
(-.f64 (log.f64 (-.f64 (pow.f64 (exp.f64 a) #s(literal 4 binary64)) (pow.f64 (exp.f64 b) #s(literal 4 binary64)))) (log.f64 (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 3 binary64))))
(-.f64 (log.f64 (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64))) (log.f64 (-.f64 (exp.f64 b) (exp.f64 a))))
(-.f64 (log.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64)))) (log.f64 (fma.f64 (exp.f64 b) (exp.f64 b) (fma.f64 (exp.f64 a) (exp.f64 a) (exp.f64 (+.f64 b a))))))
(-.f64 (log.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64)))) (log.f64 (neg.f64 (neg.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))))
(-.f64 (log.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64)))) (log.f64 (neg.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))))))
(-.f64 (log.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64)))) (log.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(+.f64 (log.f64 (/.f64 (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64)) (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64))))) (log.f64 (neg.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))))))
(+.f64 (log.f64 (/.f64 (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64)) (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64))))) (log.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(+.f64 (log.f64 (/.f64 (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64)) (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64)))) (log.f64 (-.f64 (exp.f64 b) (exp.f64 a))))
(+.f64 (log.f64 (/.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (pow.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) #s(literal 2 binary64)))) (log.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(+.f64 (log.f64 (/.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b)) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 6 binary64))))) (log.f64 (fma.f64 (*.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) (pow.f64 (exp.f64 a) #s(literal 4 binary64)))))
(+.f64 (log.f64 (-.f64 (exp.f64 b) (exp.f64 a))) (log.f64 (/.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (-.f64 (exp.f64 b) (exp.f64 a)))))
(+.f64 (log.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (log.f64 (/.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))))))
(log.f64 (-.f64 (exp.f64 b) (exp.f64 a)))
(*.f64 (/.f64 (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64)) (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(*.f64 (/.f64 (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64)) (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64)))) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))))
(*.f64 (/.f64 (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64)) (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64))) (-.f64 (exp.f64 b) (exp.f64 a)))
(*.f64 (/.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (pow.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) #s(literal 2 binary64))) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))))
(*.f64 (/.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (+.f64 (pow.f64 (*.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b)) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 6 binary64)))) (fma.f64 (*.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) (pow.f64 (exp.f64 a) #s(literal 4 binary64))))
(*.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (/.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (-.f64 (exp.f64 b) (exp.f64 a))))
(*.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) (/.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(/.f64 (-.f64 (fma.f64 #s(literal 2 binary64) (sinh.f64 a) (*.f64 #s(literal 2 binary64) (cosh.f64 a))) (fma.f64 #s(literal 2 binary64) (sinh.f64 b) (*.f64 #s(literal 2 binary64) (cosh.f64 b)))) #s(literal 2 binary64))
(/.f64 (-.f64 (fma.f64 #s(literal 2 binary64) (cosh.f64 a) (*.f64 #s(literal 2 binary64) (sinh.f64 a))) (fma.f64 #s(literal 2 binary64) (sinh.f64 b) (*.f64 #s(literal 2 binary64) (cosh.f64 b)))) #s(literal 2 binary64))
(/.f64 (-.f64 (fma.f64 #s(literal 2 binary64) (sinh.f64 a) (*.f64 #s(literal 2 binary64) (cosh.f64 a))) (fma.f64 #s(literal 2 binary64) (cosh.f64 b) (*.f64 #s(literal 2 binary64) (sinh.f64 b)))) #s(literal 2 binary64))
(/.f64 (-.f64 (fma.f64 #s(literal 2 binary64) (cosh.f64 a) (*.f64 #s(literal 2 binary64) (sinh.f64 a))) (fma.f64 #s(literal 2 binary64) (cosh.f64 b) (*.f64 #s(literal 2 binary64) (sinh.f64 b)))) #s(literal 2 binary64))
(/.f64 (-.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 a)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 a)))) (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 b)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 b))))) #s(literal 4 binary64))
(/.f64 (-.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 a)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 a)))) (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 b)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 b))))) #s(literal 4 binary64))
(/.f64 (-.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 a)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 a)))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 b)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 b))))) #s(literal 4 binary64))
(/.f64 (-.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 a)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 a)))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 b)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 b))))) #s(literal 4 binary64))
(/.f64 (-.f64 (fma.f64 #s(literal 2 binary64) (sinh.f64 b) (*.f64 #s(literal 2 binary64) (cosh.f64 b))) (fma.f64 #s(literal 2 binary64) (sinh.f64 a) (*.f64 #s(literal 2 binary64) (cosh.f64 a)))) #s(literal 2 binary64))
(/.f64 (-.f64 (fma.f64 #s(literal 2 binary64) (cosh.f64 b) (*.f64 #s(literal 2 binary64) (sinh.f64 b))) (fma.f64 #s(literal 2 binary64) (sinh.f64 a) (*.f64 #s(literal 2 binary64) (cosh.f64 a)))) #s(literal 2 binary64))
(/.f64 (-.f64 (fma.f64 #s(literal 2 binary64) (sinh.f64 b) (*.f64 #s(literal 2 binary64) (cosh.f64 b))) (fma.f64 #s(literal 2 binary64) (cosh.f64 a) (*.f64 #s(literal 2 binary64) (sinh.f64 a)))) #s(literal 2 binary64))
(/.f64 (-.f64 (fma.f64 #s(literal 2 binary64) (cosh.f64 b) (*.f64 #s(literal 2 binary64) (sinh.f64 b))) (fma.f64 #s(literal 2 binary64) (cosh.f64 a) (*.f64 #s(literal 2 binary64) (sinh.f64 a)))) #s(literal 2 binary64))
(/.f64 (-.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 b)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 b)))) (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 a)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 a))))) #s(literal 4 binary64))
(/.f64 (-.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 b)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 b)))) (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 a)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 a))))) #s(literal 4 binary64))
(/.f64 (-.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 b)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 b)))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 a)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 a))))) #s(literal 4 binary64))
(/.f64 (-.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 b)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 b)))) (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 a)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 a))))) #s(literal 4 binary64))
(/.f64 (-.f64 (pow.f64 (-.f64 (exp.f64 a) (cosh.f64 b)) #s(literal 2 binary64)) (pow.f64 (sinh.f64 b) #s(literal 2 binary64))) (+.f64 (-.f64 (exp.f64 a) (cosh.f64 b)) (sinh.f64 b)))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) #s(literal 2 binary64)) (pow.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) #s(literal 2 binary64))) (-.f64 (exp.f64 b) (exp.f64 a)))
(/.f64 (-.f64 (pow.f64 (cosh.f64 a) #s(literal 2 binary64)) (pow.f64 (-.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 2 binary64))) (-.f64 (cosh.f64 a) (-.f64 (sinh.f64 a) (exp.f64 b))))
(/.f64 (-.f64 (pow.f64 (+.f64 (cosh.f64 a) (exp.f64 b)) #s(literal 2 binary64)) (pow.f64 (sinh.f64 a) #s(literal 2 binary64))) (-.f64 (+.f64 (cosh.f64 a) (exp.f64 b)) (sinh.f64 a)))
(/.f64 (-.f64 (pow.f64 (+.f64 (cosh.f64 b) (exp.f64 a)) #s(literal 2 binary64)) (pow.f64 (sinh.f64 b) #s(literal 2 binary64))) (-.f64 (+.f64 (cosh.f64 b) (exp.f64 a)) (sinh.f64 b)))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) #s(literal 2 binary64)) (pow.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) #s(literal 2 binary64))) (-.f64 (exp.f64 b) (exp.f64 a)))
(/.f64 (-.f64 (pow.f64 (cosh.f64 b) #s(literal 2 binary64)) (pow.f64 (+.f64 (sinh.f64 b) (exp.f64 a)) #s(literal 2 binary64))) (-.f64 (cosh.f64 b) (+.f64 (sinh.f64 b) (exp.f64 a))))
(/.f64 (-.f64 (pow.f64 (cosh.f64 a) #s(literal 2 binary64)) (pow.f64 (+.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 2 binary64))) (-.f64 (cosh.f64 a) (+.f64 (sinh.f64 a) (exp.f64 b))))
(/.f64 (-.f64 (pow.f64 (-.f64 (exp.f64 a) (cosh.f64 b)) #s(literal 3 binary64)) (pow.f64 (sinh.f64 b) #s(literal 3 binary64))) (+.f64 (pow.f64 (-.f64 (exp.f64 a) (cosh.f64 b)) #s(literal 2 binary64)) (fma.f64 (sinh.f64 b) (sinh.f64 b) (*.f64 (-.f64 (exp.f64 a) (cosh.f64 b)) (sinh.f64 b)))))
(/.f64 (-.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) #s(literal 2 binary64)) (+.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) #s(literal 2 binary64)) (*.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a)))))))
(/.f64 (+.f64 (pow.f64 (cosh.f64 a) #s(literal 3 binary64)) (pow.f64 (-.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 3 binary64))) (fma.f64 (cosh.f64 a) (cosh.f64 a) (-.f64 (pow.f64 (-.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 2 binary64)) (*.f64 (cosh.f64 a) (-.f64 (sinh.f64 a) (exp.f64 b))))))
(/.f64 (+.f64 (pow.f64 (+.f64 (cosh.f64 a) (exp.f64 b)) #s(literal 3 binary64)) (pow.f64 (sinh.f64 a) #s(literal 3 binary64))) (+.f64 (pow.f64 (+.f64 (cosh.f64 a) (exp.f64 b)) #s(literal 2 binary64)) (-.f64 (pow.f64 (sinh.f64 a) #s(literal 2 binary64)) (*.f64 (+.f64 (cosh.f64 a) (exp.f64 b)) (sinh.f64 a)))))
(/.f64 (+.f64 (pow.f64 (+.f64 (cosh.f64 b) (exp.f64 a)) #s(literal 3 binary64)) (pow.f64 (sinh.f64 b) #s(literal 3 binary64))) (+.f64 (pow.f64 (+.f64 (cosh.f64 b) (exp.f64 a)) #s(literal 2 binary64)) (-.f64 (pow.f64 (sinh.f64 b) #s(literal 2 binary64)) (*.f64 (+.f64 (cosh.f64 b) (exp.f64 a)) (sinh.f64 b)))))
(/.f64 (+.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) #s(literal 3 binary64)) (pow.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) #s(literal 3 binary64))) (+.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) #s(literal 2 binary64)) (-.f64 (pow.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) #s(literal 2 binary64)) (*.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))))))))
(/.f64 (+.f64 (pow.f64 (cosh.f64 b) #s(literal 3 binary64)) (pow.f64 (+.f64 (sinh.f64 b) (exp.f64 a)) #s(literal 3 binary64))) (fma.f64 (cosh.f64 b) (cosh.f64 b) (-.f64 (pow.f64 (+.f64 (sinh.f64 b) (exp.f64 a)) #s(literal 2 binary64)) (*.f64 (cosh.f64 b) (+.f64 (sinh.f64 b) (exp.f64 a))))))
(/.f64 (+.f64 (pow.f64 (cosh.f64 a) #s(literal 3 binary64)) (pow.f64 (+.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 3 binary64))) (fma.f64 (cosh.f64 a) (cosh.f64 a) (-.f64 (pow.f64 (+.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 2 binary64)) (*.f64 (cosh.f64 a) (+.f64 (sinh.f64 a) (exp.f64 b))))))
(/.f64 (-.f64 (*.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b))) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))) (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b))))
(/.f64 (-.f64 (*.f64 #s(literal 1 binary64) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b)))) (*.f64 (exp.f64 (neg.f64 a)) (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))))) (*.f64 (exp.f64 (neg.f64 a)) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b)))))
(/.f64 (-.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))) (exp.f64 (neg.f64 b))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) #s(literal 1 binary64))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (exp.f64 (neg.f64 b))))
(/.f64 (-.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b)))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b)))))
(/.f64 (-.f64 (*.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) (*.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (pow.f64 (exp.f64 b) #s(literal 2 binary64)))) (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64)))
(/.f64 (-.f64 (*.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 a))) (*.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64))) (exp.f64 (+.f64 (neg.f64 b) (neg.f64 a))))
(/.f64 (-.f64 (*.f64 #s(literal 1 binary64) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a)))) (*.f64 (exp.f64 (neg.f64 b)) (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))))) (*.f64 (exp.f64 (neg.f64 b)) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a)))))
(/.f64 (-.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))) (exp.f64 (neg.f64 a))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) #s(literal 1 binary64))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (exp.f64 (neg.f64 a))))
(/.f64 (-.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a)))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a)))))
(/.f64 (fma.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) (*.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) (pow.f64 (exp.f64 b) #s(literal 3 binary64)))) (pow.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) #s(literal 2 binary64)))
(/.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 a)) (*.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64))) (exp.f64 (+.f64 (neg.f64 b) (neg.f64 a))))
(/.f64 (fma.f64 #s(literal 1 binary64) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (*.f64 (exp.f64 (neg.f64 b)) (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))))) (*.f64 (exp.f64 (neg.f64 b)) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a)))))
(/.f64 (fma.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))) (exp.f64 (neg.f64 a)) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) #s(literal 1 binary64))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (exp.f64 (neg.f64 a))))
(/.f64 (fma.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a)))))
(/.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))) (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b))))
(/.f64 (fma.f64 #s(literal 1 binary64) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (*.f64 (exp.f64 (neg.f64 a)) (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))))) (*.f64 (exp.f64 (neg.f64 a)) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b)))))
(/.f64 (fma.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))) (exp.f64 (neg.f64 b)) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) #s(literal 1 binary64))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (exp.f64 (neg.f64 b))))
(/.f64 (fma.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))))) (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b)))))
(/.f64 (-.f64 (pow.f64 (exp.f64 a) #s(literal 4 binary64)) (pow.f64 (exp.f64 b) #s(literal 4 binary64))) (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 3 binary64)))
(/.f64 (-.f64 (pow.f64 (exp.f64 a) #s(literal 6 binary64)) (pow.f64 (exp.f64 b) #s(literal 6 binary64))) (*.f64 (+.f64 (pow.f64 (*.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b)) #s(literal 2 binary64)) (pow.f64 (exp.f64 a) #s(literal 4 binary64))) (-.f64 (exp.f64 b) (exp.f64 a))))
(/.f64 (-.f64 (pow.f64 (exp.f64 a) #s(literal 6 binary64)) (pow.f64 (exp.f64 b) #s(literal 6 binary64))) (*.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (fma.f64 (exp.f64 b) (exp.f64 b) (fma.f64 (exp.f64 a) (exp.f64 a) (exp.f64 (+.f64 b a)))))
(/.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (neg.f64 (neg.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))))))
(/.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (neg.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))))
(/.f64 (+.f64 (pow.f64 (exp.f64 b) #s(literal 9 binary64)) (pow.f64 (exp.f64 a) #s(literal 9 binary64))) (*.f64 (-.f64 (-.f64 (pow.f64 (exp.f64 a) #s(literal 6 binary64)) (pow.f64 (exp.f64 b) #s(literal 6 binary64))) (exp.f64 (*.f64 (+.f64 b a) #s(literal 3 binary64)))) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(/.f64 (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a)))
(neg.f64 (-.f64 (exp.f64 b) (exp.f64 a)))
(fma.f64 (sqrt.f64 (neg.f64 (neg.f64 (exp.f64 b)))) (sqrt.f64 (neg.f64 (neg.f64 (exp.f64 b)))) (exp.f64 a))
(fma.f64 (sqrt.f64 (neg.f64 (exp.f64 b))) (sqrt.f64 (neg.f64 (exp.f64 b))) (exp.f64 a))
(fma.f64 (sqrt.f64 (exp.f64 b)) (sqrt.f64 (exp.f64 b)) (exp.f64 a))
(fma.f64 (sqrt.f64 (neg.f64 (neg.f64 (exp.f64 a)))) (sqrt.f64 (neg.f64 (neg.f64 (exp.f64 a)))) (exp.f64 b))
(fma.f64 (sqrt.f64 (neg.f64 (exp.f64 a))) (sqrt.f64 (neg.f64 (exp.f64 a))) (exp.f64 b))
(fma.f64 (sqrt.f64 (exp.f64 a)) (sqrt.f64 (exp.f64 a)) (exp.f64 b))
(fma.f64 (pow.f64 (exp.f64 b) (pow.f64 (cosh.f64 a) #s(literal 2 binary64))) (pow.f64 (exp.f64 b) (*.f64 (sinh.f64 (neg.f64 a)) (sinh.f64 a))) (exp.f64 a))
(fma.f64 (pow.f64 (exp.f64 b) (pow.f64 (cosh.f64 b) #s(literal 2 binary64))) (pow.f64 (exp.f64 b) (*.f64 (sinh.f64 (neg.f64 b)) (sinh.f64 b))) (exp.f64 a))
(fma.f64 (pow.f64 (exp.f64 a) (pow.f64 (cosh.f64 a) #s(literal 2 binary64))) (pow.f64 (exp.f64 a) (*.f64 (sinh.f64 (neg.f64 a)) (sinh.f64 a))) (exp.f64 b))
(fma.f64 (pow.f64 (exp.f64 a) (pow.f64 (cosh.f64 b) #s(literal 2 binary64))) (pow.f64 (exp.f64 a) (*.f64 (sinh.f64 (neg.f64 b)) (sinh.f64 b))) (exp.f64 b))
(fma.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) #s(literal 2 binary64))) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(fma.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b)) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 6 binary64)))) (fma.f64 (*.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) (pow.f64 (exp.f64 a) #s(literal 4 binary64))) (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(fma.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64)))) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))))
(fma.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (pow.f64 (-.f64 (exp.f64 b) (exp.f64 a)) #s(literal 2 binary64))) (-.f64 (exp.f64 b) (exp.f64 a)) (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))))
(fma.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (pow.f64 (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) #s(literal 2 binary64))) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(fma.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (+.f64 (pow.f64 (*.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b)) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 6 binary64)))) (fma.f64 (*.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) (pow.f64 (exp.f64 a) #s(literal 4 binary64))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(fma.f64 (pow.f64 (exp.f64 b) #s(literal 3/2 binary64)) (/.f64 (pow.f64 (exp.f64 b) #s(literal 3/2 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(fma.f64 (pow.f64 (exp.f64 a) #s(literal 3/2 binary64)) (/.f64 (pow.f64 (exp.f64 a) #s(literal 3/2 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(fma.f64 (neg.f64 (exp.f64 a)) (/.f64 (neg.f64 (exp.f64 a)) (-.f64 (exp.f64 b) (exp.f64 a))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))))
(fma.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (/.f64 (exp.f64 b) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(fma.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (/.f64 (exp.f64 a) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(fma.f64 (exp.f64 b) (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(fma.f64 (exp.f64 a) (/.f64 (exp.f64 a) (-.f64 (exp.f64 b) (exp.f64 a))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))))
(fma.f64 (exp.f64 a) (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(-.f64 (-.f64 (exp.f64 a) (sinh.f64 b)) (cosh.f64 b))
(-.f64 (-.f64 (exp.f64 b) (sinh.f64 a)) (cosh.f64 a))
(-.f64 (-.f64 (exp.f64 b) (cosh.f64 a)) (sinh.f64 a))
(-.f64 (-.f64 (exp.f64 a) (cosh.f64 b)) (sinh.f64 b))
(-.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(-.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))))
(-.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))))
(-.f64 (exp.f64 b) (exp.f64 a))
(-.f64 (exp.f64 a) (exp.f64 b))
(+.f64 (neg.f64 (cosh.f64 a)) (neg.f64 (-.f64 (sinh.f64 a) (exp.f64 b))))
(+.f64 (-.f64 (sinh.f64 a) (exp.f64 b)) (cosh.f64 a))
(+.f64 (+.f64 (sinh.f64 b) (exp.f64 a)) (cosh.f64 b))
(+.f64 (+.f64 (sinh.f64 a) (exp.f64 b)) (cosh.f64 a))
(+.f64 (+.f64 (cosh.f64 a) (exp.f64 b)) (sinh.f64 a))
(+.f64 (+.f64 (cosh.f64 b) (exp.f64 a)) (sinh.f64 b))
(+.f64 (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(+.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (-.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 b) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(+.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 (exp.f64 b) (exp.f64 a))))
(+.f64 (sinh.f64 b) (-.f64 (cosh.f64 b) (exp.f64 a)))
(+.f64 (sinh.f64 b) (+.f64 (cosh.f64 b) (exp.f64 a)))
(+.f64 (cosh.f64 b) (-.f64 (sinh.f64 b) (exp.f64 a)))
(+.f64 (cosh.f64 b) (+.f64 (sinh.f64 b) (exp.f64 a)))
(+.f64 (sinh.f64 a) (-.f64 (cosh.f64 a) (exp.f64 b)))
(+.f64 (sinh.f64 a) (+.f64 (cosh.f64 a) (exp.f64 b)))
(+.f64 (cosh.f64 a) (-.f64 (sinh.f64 a) (exp.f64 b)))
(+.f64 (cosh.f64 a) (+.f64 (sinh.f64 a) (exp.f64 b)))
(+.f64 (exp.f64 b) (exp.f64 a))
(+.f64 (exp.f64 a) (exp.f64 b))
(*.f64 (sqrt.f64 (neg.f64 (neg.f64 (exp.f64 a)))) (sqrt.f64 (neg.f64 (neg.f64 (exp.f64 a)))))
(*.f64 (sqrt.f64 (neg.f64 (exp.f64 a))) (sqrt.f64 (neg.f64 (exp.f64 a))))
(*.f64 (sqrt.f64 (exp.f64 a)) (sqrt.f64 (exp.f64 a)))
(*.f64 (pow.f64 (exp.f64 a) (pow.f64 (cosh.f64 a) #s(literal 2 binary64))) (pow.f64 (exp.f64 a) (*.f64 (sinh.f64 (neg.f64 a)) (sinh.f64 a))))
(*.f64 (pow.f64 (exp.f64 a) (pow.f64 (cosh.f64 b) #s(literal 2 binary64))) (pow.f64 (exp.f64 a) (*.f64 (sinh.f64 (neg.f64 b)) (sinh.f64 b))))
(pow.f64 (pow.f64 (exp.f64 a) (exp.f64 b)) (exp.f64 (neg.f64 b)))
(pow.f64 (pow.f64 (exp.f64 a) (exp.f64 a)) (exp.f64 (neg.f64 a)))
(pow.f64 (neg.f64 (exp.f64 a)) #s(literal 1 binary64))
(pow.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64))
(pow.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) #s(literal 1/2 binary64))
(pow.f64 (exp.f64 a) #s(literal 1 binary64))
(/.f64 (fabs.f64 (fabs.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))))) (fabs.f64 (fabs.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))))))
(/.f64 (fabs.f64 (fma.f64 #s(literal 2 binary64) (sinh.f64 a) (*.f64 #s(literal 2 binary64) (cosh.f64 a)))) #s(literal 2 binary64))
(/.f64 (fabs.f64 (fma.f64 #s(literal 2 binary64) (cosh.f64 a) (*.f64 #s(literal 2 binary64) (sinh.f64 a)))) #s(literal 2 binary64))
(/.f64 (fabs.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 a)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 a))))) #s(literal 4 binary64))
(/.f64 (fabs.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 a)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 a))))) #s(literal 4 binary64))
(/.f64 (sqrt.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))) (exp.f64 a))) (sqrt.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a)))))
(/.f64 (sqrt.f64 (*.f64 #s(literal 1 binary64) (exp.f64 a))) (sqrt.f64 (exp.f64 (neg.f64 a))))
(/.f64 (sqrt.f64 (*.f64 (exp.f64 a) (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))))) (sqrt.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a)))))
(/.f64 (sqrt.f64 (*.f64 (exp.f64 a) #s(literal 1 binary64))) (sqrt.f64 (exp.f64 (neg.f64 a))))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 (*.f64 (cosh.f64 a) (exp.f64 a)) #s(literal 2 binary64)) (pow.f64 (*.f64 (sinh.f64 a) (exp.f64 a)) #s(literal 2 binary64)))) (sqrt.f64 (-.f64 (*.f64 (cosh.f64 a) (exp.f64 a)) (*.f64 (sinh.f64 a) (exp.f64 a)))))
(/.f64 (hypot.f64 (pow.f64 (*.f64 (cosh.f64 a) (exp.f64 a)) #s(literal 3/2 binary64)) (pow.f64 (*.f64 (sinh.f64 a) (exp.f64 a)) #s(literal 3/2 binary64))) (sqrt.f64 (+.f64 (pow.f64 (*.f64 (cosh.f64 a) (exp.f64 a)) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 (sinh.f64 a) (exp.f64 a)) #s(literal 2 binary64)) (*.f64 (*.f64 (cosh.f64 a) (exp.f64 a)) (*.f64 (sinh.f64 a) (exp.f64 a)))))))
(/.f64 (sqrt.f64 (*.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))))) (sqrt.f64 (*.f64 (exp.f64 (neg.f64 a)) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))))))
(/.f64 (sqrt.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))) #s(literal 1 binary64))) (sqrt.f64 (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))) (exp.f64 (neg.f64 a)))))
(/.f64 (exp.f64 (log.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))))) (exp.f64 (log.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))))))
(/.f64 (pow.f64 (exp.f64 a) (pow.f64 (cosh.f64 a) #s(literal 2 binary64))) (pow.f64 (exp.f64 a) (pow.f64 (sinh.f64 a) #s(literal 2 binary64))))
(/.f64 (pow.f64 (exp.f64 a) (pow.f64 (cosh.f64 b) #s(literal 2 binary64))) (pow.f64 (exp.f64 a) (pow.f64 (sinh.f64 b) #s(literal 2 binary64))))
(/.f64 (-.f64 (pow.f64 (sinh.f64 a) #s(literal 2 binary64)) (pow.f64 (cosh.f64 a) #s(literal 2 binary64))) (-.f64 (sinh.f64 a) (cosh.f64 a)))
(/.f64 (fma.f64 #s(literal 2 binary64) (sinh.f64 a) (*.f64 #s(literal 2 binary64) (cosh.f64 a))) #s(literal 2 binary64))
(/.f64 (fma.f64 #s(literal 2 binary64) (cosh.f64 a) (*.f64 #s(literal 2 binary64) (sinh.f64 a))) #s(literal 2 binary64))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64)))) (neg.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a)))))
(/.f64 #s(literal -1 binary64) (neg.f64 (exp.f64 (neg.f64 a))))
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 a)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 a)))) #s(literal 4 binary64))
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 a)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 a)))) #s(literal 4 binary64))
(/.f64 (fabs.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64)))) (fabs.f64 (fma.f64 (sinh.f64 a) (sinh.f64 a) (-.f64 (pow.f64 (cosh.f64 a) #s(literal 2 binary64)) (*.f64 (sinh.f64 a) (cosh.f64 a))))))
(/.f64 (fabs.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64)))) (fabs.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a)))))
(/.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 a)))
(/.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))) (fma.f64 (sinh.f64 a) (sinh.f64 a) (-.f64 (pow.f64 (cosh.f64 a) #s(literal 2 binary64)) (*.f64 (sinh.f64 a) (cosh.f64 a)))))
(/.f64 (+.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (pow.f64 (cosh.f64 a) #s(literal 3 binary64))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a))))
(sqrt.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)))
(-.f64 (/.f64 (pow.f64 (cosh.f64 a) #s(literal 2 binary64)) (exp.f64 (neg.f64 a))) (/.f64 (pow.f64 (sinh.f64 a) #s(literal 2 binary64)) (exp.f64 (neg.f64 a))))
(-.f64 (cosh.f64 a) (sinh.f64 (neg.f64 a)))
(fabs.f64 (-.f64 (/.f64 (pow.f64 (sinh.f64 a) #s(literal 2 binary64)) (exp.f64 (neg.f64 a))) (/.f64 (pow.f64 (cosh.f64 a) #s(literal 2 binary64)) (exp.f64 (neg.f64 a)))))
(fabs.f64 (neg.f64 (neg.f64 (exp.f64 a))))
(fabs.f64 (neg.f64 (exp.f64 a)))
(fabs.f64 (exp.f64 a))
(exp.f64 (/.f64 (*.f64 #s(literal 2 binary64) a) #s(literal 2 binary64)))
(exp.f64 (*.f64 a #s(literal 1 binary64)))
(exp.f64 a)
(+.f64 (/.f64 (pow.f64 (cosh.f64 a) #s(literal 3 binary64)) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a)))) (/.f64 (pow.f64 (sinh.f64 a) #s(literal 3 binary64)) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) a)) (*.f64 (sinh.f64 a) (cosh.f64 a)))))
(+.f64 (sinh.f64 a) (cosh.f64 a))
(+.f64 (cosh.f64 a) (sinh.f64 a))
(*.f64 (sqrt.f64 (neg.f64 (neg.f64 (exp.f64 b)))) (sqrt.f64 (neg.f64 (neg.f64 (exp.f64 b)))))
(*.f64 (sqrt.f64 (neg.f64 (exp.f64 b))) (sqrt.f64 (neg.f64 (exp.f64 b))))
(*.f64 (sqrt.f64 (exp.f64 b)) (sqrt.f64 (exp.f64 b)))
(*.f64 (pow.f64 (exp.f64 b) (pow.f64 (cosh.f64 a) #s(literal 2 binary64))) (pow.f64 (exp.f64 b) (*.f64 (sinh.f64 (neg.f64 a)) (sinh.f64 a))))
(*.f64 (pow.f64 (exp.f64 b) (pow.f64 (cosh.f64 b) #s(literal 2 binary64))) (pow.f64 (exp.f64 b) (*.f64 (sinh.f64 (neg.f64 b)) (sinh.f64 b))))
(pow.f64 (pow.f64 (exp.f64 b) (exp.f64 b)) (exp.f64 (neg.f64 b)))
(pow.f64 (pow.f64 (exp.f64 b) (exp.f64 a)) (exp.f64 (neg.f64 a)))
(pow.f64 (neg.f64 (exp.f64 b)) #s(literal 1 binary64))
(pow.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64))
(pow.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) #s(literal 1/2 binary64))
(pow.f64 (exp.f64 b) #s(literal 1 binary64))
(/.f64 (fabs.f64 (fabs.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))))) (fabs.f64 (fabs.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))))))
(/.f64 (fabs.f64 (fma.f64 #s(literal 2 binary64) (sinh.f64 b) (*.f64 #s(literal 2 binary64) (cosh.f64 b)))) #s(literal 2 binary64))
(/.f64 (fabs.f64 (fma.f64 #s(literal 2 binary64) (cosh.f64 b) (*.f64 #s(literal 2 binary64) (sinh.f64 b)))) #s(literal 2 binary64))
(/.f64 (fabs.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 b)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 b))))) #s(literal 4 binary64))
(/.f64 (fabs.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 b)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 b))))) #s(literal 4 binary64))
(/.f64 (sqrt.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))) (exp.f64 b))) (sqrt.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b)))))
(/.f64 (sqrt.f64 (*.f64 #s(literal 1 binary64) (exp.f64 b))) (sqrt.f64 (exp.f64 (neg.f64 b))))
(/.f64 (sqrt.f64 (*.f64 (exp.f64 b) (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))))) (sqrt.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b)))))
(/.f64 (sqrt.f64 (*.f64 (exp.f64 b) #s(literal 1 binary64))) (sqrt.f64 (exp.f64 (neg.f64 b))))
(/.f64 (sqrt.f64 (-.f64 (pow.f64 (*.f64 (cosh.f64 b) (exp.f64 b)) #s(literal 2 binary64)) (pow.f64 (*.f64 (sinh.f64 b) (exp.f64 b)) #s(literal 2 binary64)))) (sqrt.f64 (-.f64 (*.f64 (cosh.f64 b) (exp.f64 b)) (*.f64 (sinh.f64 b) (exp.f64 b)))))
(/.f64 (hypot.f64 (pow.f64 (*.f64 (cosh.f64 b) (exp.f64 b)) #s(literal 3/2 binary64)) (pow.f64 (*.f64 (sinh.f64 b) (exp.f64 b)) #s(literal 3/2 binary64))) (sqrt.f64 (+.f64 (pow.f64 (*.f64 (cosh.f64 b) (exp.f64 b)) #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 (sinh.f64 b) (exp.f64 b)) #s(literal 2 binary64)) (*.f64 (*.f64 (cosh.f64 b) (exp.f64 b)) (*.f64 (sinh.f64 b) (exp.f64 b)))))))
(/.f64 (sqrt.f64 (*.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))) #s(literal 1 binary64))) (sqrt.f64 (*.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))) (exp.f64 (neg.f64 b)))))
(/.f64 (sqrt.f64 (*.f64 #s(literal 1 binary64) (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))))) (sqrt.f64 (*.f64 (exp.f64 (neg.f64 b)) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))))))
(/.f64 (exp.f64 (log.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))))) (exp.f64 (log.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))))))
(/.f64 (pow.f64 (exp.f64 b) (pow.f64 (cosh.f64 a) #s(literal 2 binary64))) (pow.f64 (exp.f64 b) (pow.f64 (sinh.f64 a) #s(literal 2 binary64))))
(/.f64 (pow.f64 (exp.f64 b) (pow.f64 (cosh.f64 b) #s(literal 2 binary64))) (pow.f64 (exp.f64 b) (pow.f64 (sinh.f64 b) #s(literal 2 binary64))))
(/.f64 (-.f64 (pow.f64 (sinh.f64 b) #s(literal 2 binary64)) (pow.f64 (cosh.f64 b) #s(literal 2 binary64))) (-.f64 (sinh.f64 b) (cosh.f64 b)))
(/.f64 (fma.f64 #s(literal 2 binary64) (sinh.f64 b) (*.f64 #s(literal 2 binary64) (cosh.f64 b))) #s(literal 2 binary64))
(/.f64 (fma.f64 #s(literal 2 binary64) (cosh.f64 b) (*.f64 #s(literal 2 binary64) (sinh.f64 b))) #s(literal 2 binary64))
(/.f64 #s(literal -1 binary64) (neg.f64 (exp.f64 (neg.f64 b))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64)))) (neg.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b)))))
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (sinh.f64 b)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (cosh.f64 b)))) #s(literal 4 binary64))
(/.f64 (fma.f64 (*.f64 #s(literal 2 binary64) (cosh.f64 b)) #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (*.f64 #s(literal 2 binary64) (sinh.f64 b)))) #s(literal 4 binary64))
(/.f64 (fabs.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64)))) (fabs.f64 (fma.f64 (sinh.f64 b) (sinh.f64 b) (-.f64 (pow.f64 (cosh.f64 b) #s(literal 2 binary64)) (*.f64 (sinh.f64 b) (cosh.f64 b))))))
(/.f64 (fabs.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64)))) (fabs.f64 (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b)))))
(/.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)))
(/.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))) (fma.f64 (sinh.f64 b) (sinh.f64 b) (-.f64 (pow.f64 (cosh.f64 b) #s(literal 2 binary64)) (*.f64 (sinh.f64 b) (cosh.f64 b)))))
(/.f64 (+.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (pow.f64 (cosh.f64 b) #s(literal 3 binary64))) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b))))
(sqrt.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)))
(-.f64 (/.f64 (pow.f64 (cosh.f64 b) #s(literal 2 binary64)) (exp.f64 (neg.f64 b))) (/.f64 (pow.f64 (sinh.f64 b) #s(literal 2 binary64)) (exp.f64 (neg.f64 b))))
(-.f64 (cosh.f64 b) (sinh.f64 (neg.f64 b)))
(fabs.f64 (-.f64 (/.f64 (pow.f64 (sinh.f64 b) #s(literal 2 binary64)) (exp.f64 (neg.f64 b))) (/.f64 (pow.f64 (cosh.f64 b) #s(literal 2 binary64)) (exp.f64 (neg.f64 b)))))
(fabs.f64 (neg.f64 (neg.f64 (exp.f64 b))))
(fabs.f64 (neg.f64 (exp.f64 b)))
(fabs.f64 (exp.f64 b))
(exp.f64 (/.f64 (*.f64 #s(literal 2 binary64) b) #s(literal 2 binary64)))
(exp.f64 (*.f64 b #s(literal 1 binary64)))
(exp.f64 b)
(+.f64 (/.f64 (pow.f64 (cosh.f64 b) #s(literal 3 binary64)) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b)))) (/.f64 (pow.f64 (sinh.f64 b) #s(literal 3 binary64)) (-.f64 (cosh.f64 (*.f64 #s(literal 2 binary64) b)) (*.f64 (sinh.f64 b) (cosh.f64 b)))))
(+.f64 (sinh.f64 b) (cosh.f64 b))
(+.f64 (cosh.f64 b) (sinh.f64 b))

eval38.0ms (0.4%)

Memory
-22.0MiB live, 69.5MiB allocated; 9ms collecting garbage
Compiler

Compiled 7 760 to 1 228 computations (84.2% saved)

prune10.0ms (0.1%)

Memory
28.2MiB live, 28.2MiB allocated; 0ms collecting garbage
Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New2979306
Fresh000
Picked011
Done000
Total29710307
Accuracy
99.7%
Counts
307 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
54.3%
(-.f64 (log.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))) (log.f64 (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b)))))
54.2%
(-.f64 (log.f64 (+.f64 (pow.f64 (cosh.f64 a) #s(literal 3 binary64)) (pow.f64 (+.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 3 binary64)))) (log.f64 (fma.f64 (cosh.f64 a) (cosh.f64 a) (-.f64 (pow.f64 (+.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 2 binary64)) (*.f64 (cosh.f64 a) (+.f64 (sinh.f64 a) (exp.f64 b)))))))
58.0%
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
57.4%
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp 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)))))
56.9%
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
56.3%
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (-.f64 b #s(literal -1 binary64)))))
55.5%
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
98.5%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
55.5%
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
54.4%
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
Compiler

Compiled 288 to 214 computations (25.7% saved)

simplify135.0ms (1.3%)

Memory
14.1MiB live, 191.5MiB allocated; 29ms collecting garbage
Localize:

Found 19 expressions of interest:

NewMetricScoreProgram
cost-diff1
(+.f64 (neg.f64 a) (neg.f64 b))
cost-diff1
(fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))
cost-diff2
(log.f64 (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b))))
cost-diff2
(*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))
cost-diff0
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
cost-diff0
(exp.f64 a)
cost-diff0
(+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
cost-diff0
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
cost-diff0
(exp.f64 b)
cost-diff0
#s(approx (exp a) #s(literal 1 binary64))
cost-diff0
(+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b))
cost-diff0
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
cost-diff0
(exp.f64 a)
cost-diff0
(log1p.f64 (exp.f64 a))
cost-diff0
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
cost-diff0
(-.f64 (exp.f64 a) #s(literal -1 binary64))
cost-diff0
(/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))
cost-diff0
(+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a)))
cost-diff0
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036214
064195
1109195
2273195
31295195
47317195
08491195
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
(+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a)))
(/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))
b
(-.f64 (exp.f64 a) #s(literal -1 binary64))
(exp.f64 a)
a
#s(literal -1 binary64)
(log1p.f64 (exp.f64 a))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
(log1p.f64 (exp.f64 a))
(exp.f64 a)
a
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
(+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b))
#s(approx (exp a) #s(literal 1 binary64))
#s(literal 1 binary64)
(exp.f64 b)
b
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
(exp.f64 a)
a
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64))
#s(literal 1/2 binary64)
b
#s(literal 1 binary64)
(-.f64 (log.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))) (log.f64 (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b)))))
(log.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))))
(fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))
#s(literal 1 binary64)
(exp.f64 (neg.f64 b))
(neg.f64 b)
b
(*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))
(exp.f64 (neg.f64 a))
(neg.f64 a)
a
(log.f64 (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b))))
(exp.f64 (+.f64 (neg.f64 a) (neg.f64 b)))
(+.f64 (neg.f64 a) (neg.f64 b))
Outputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (log1p.f64 (exp.f64 a)) (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))))
(+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a)))
(+.f64 (log1p.f64 (exp.f64 a)) (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))))
(/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))
b
(-.f64 (exp.f64 a) #s(literal -1 binary64))
(exp.f64 a)
a
#s(literal -1 binary64)
(log1p.f64 (exp.f64 a))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
(log1p.f64 (exp.f64 a))
(exp.f64 a)
a
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
(log.f64 (+.f64 (exp.f64 b) #s(approx (exp a) #s(literal 1 binary64))))
(+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b))
(+.f64 (exp.f64 b) #s(approx (exp a) #s(literal 1 binary64)))
#s(approx (exp a) #s(literal 1 binary64))
#s(literal 1 binary64)
(exp.f64 b)
b
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(log.f64 (+.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (exp.f64 a)))
(+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
(+.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (exp.f64 a))
(exp.f64 a)
a
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64))
#s(literal 1/2 binary64)
b
#s(literal 1 binary64)
(-.f64 (log.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))) (log.f64 (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b)))))
(-.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b)))) (-.f64 (neg.f64 a) b))
(log.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))))
(log.f64 (+.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b))))
(fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))
(+.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b)))
#s(literal 1 binary64)
(exp.f64 (neg.f64 b))
(neg.f64 b)
b
(*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))
(exp.f64 (neg.f64 a))
(exp.f64 (neg.f64 a))
(neg.f64 a)
a
(log.f64 (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b))))
(-.f64 (neg.f64 a) b)
(exp.f64 (+.f64 (neg.f64 a) (neg.f64 b)))
(exp.f64 (-.f64 (neg.f64 a) b))
(+.f64 (neg.f64 a) (neg.f64 b))
(-.f64 (neg.f64 a) b)

localize279.0ms (2.7%)

Memory
-29.8MiB live, 254.3MiB allocated; 47ms collecting garbage
Localize:

Found 19 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(exp.f64 (neg.f64 a))
accuracy0.5181851797454121
(log.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))))
accuracy0.7292666547053411
(-.f64 (log.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))) (log.f64 (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b)))))
accuracy31.306250770239707
(log.f64 (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b))))
accuracy0.00390625
(fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))
accuracy0.0078125
(+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
accuracy0.7813324166544336
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
accuracy0.9908220402526772
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
accuracy0.0
(exp.f64 b)
accuracy0.0078125
(+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b))
accuracy0.9908220402526772
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
accuracy1.099743507152716
#s(approx (exp a) #s(literal 1 binary64))
accuracy0.0
(log1p.f64 (exp.f64 a))
accuracy0.0
(exp.f64 a)
accuracy2.3275551328428286
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
accuracy0.0
(exp.f64 a)
accuracy0.00390625
(-.f64 (exp.f64 a) #s(literal -1 binary64))
accuracy0.0078125
(+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a)))
accuracy0.9642977432428482
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
Samples
206.0ms113×5exit
35.0ms139×0valid
2.0ms1valid
Compiler

Compiled 183 to 30 computations (83.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 200.0ms
ival-log: 82.0ms (41% of total)
adjust: 54.0ms (27% of total)
ival-exp: 30.0ms (15% of total)
ival-add: 11.0ms (5.5% of total)
ival-mult: 10.0ms (5% of total)
ival-sub: 5.0ms (2.5% of total)
ival-div: 3.0ms (1.5% of total)
ival-log1p: 2.0ms (1% of total)
ival-neg: 2.0ms (1% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series215.0ms (2.1%)

Memory
28.5MiB live, 210.0MiB allocated; 58ms collecting garbage
Counts
22 → 122
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
(+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a)))
(/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))
(-.f64 (exp.f64 a) #s(literal -1 binary64))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
(log1p.f64 (exp.f64 a))
(exp.f64 a)
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
(+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b))
#s(approx (exp a) #s(literal 1 binary64))
(exp.f64 b)
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
(*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))
(log.f64 (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b))))
(fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))
(+.f64 (neg.f64 a) (neg.f64 b))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))
(-.f64 (log.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))) (log.f64 (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b)))))
(log.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))))
(exp.f64 (neg.f64 a))
Outputs
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp b)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (/ a (+ 1 (exp b))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* 1/2 (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* a (+ (* 1/6 (* a (- (+ (* 2 (/ 1 (pow (+ 1 (exp b)) 3))) (/ 1 (+ 1 (exp b)))) (* 3 (/ 1 (pow (+ 1 (exp b)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- 1/8 (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- (+ 1/8 (* -1 (* a (+ (* -1/2 (+ (* -1/8 b) (* 1/8 b))) (+ (* -1/16 b) (* 1/24 b)))))) (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (/ b (- (exp a) -1)) #s(hole binary64 (* 1/2 b)))
#s(approx (/ b (- (exp a) -1)) #s(hole binary64 (+ (* -1/4 (* a b)) (* 1/2 b))))
#s(approx (/ b (- (exp a) -1)) #s(hole binary64 (+ (* 1/2 b) (* a (- (* -1 (* a (+ (* -1/8 b) (* 1/8 b)))) (* 1/4 b))))))
#s(approx (/ b (- (exp a) -1)) #s(hole binary64 (+ (* 1/2 b) (* a (- (* a (- (* -1 (* a (+ (* -1/2 (+ (* -1/8 b) (* 1/8 b))) (+ (* -1/16 b) (* 1/24 b))))) (+ (* -1/8 b) (* 1/8 b)))) (* 1/4 b))))))
#s(approx (- (exp a) -1) #s(hole binary64 2))
#s(approx (- (exp a) -1) #s(hole binary64 (+ 2 a)))
#s(approx (- (exp a) -1) #s(hole binary64 (+ 2 (* a (+ 1 (* 1/2 a))))))
#s(approx (- (exp a) -1) #s(hole binary64 (+ 2 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log 2)))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* 1/2 a))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* a (+ 1/2 (* 1/8 a))))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* a (+ 1/2 (* a (+ 1/8 (* -1/192 (pow a 2)))))))))
#s(approx (exp a) #s(hole binary64 1))
#s(approx (exp a) #s(hole binary64 (+ 1 a)))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* 1/2 a))))))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp b))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ a (exp b)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* 1/2 a)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* a (+ 1/2 (* 1/6 a)))))))))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 1))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 (+ 1 (* -1 a))))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 (+ 1 (* a (- (* 1/2 a) 1)))))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 (+ 1 (* a (- (* a (+ 1/2 (* -1/6 a))) 1)))))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* -1 b)))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (- (* -1 a) b)))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (exp (neg b)))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg b)) (* -1 a)))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg b)) (* a (- (* 1/2 a) 1))))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg b)) (* a (- (* a (+ 1/2 (* -1/6 a))) 1))))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* -1 b)))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (- (* -1 a) b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (log (+ 1 (exp (neg b)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- 1 (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* 1/2 (* a (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2)))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* a (+ (* 1/6 (* a (- (* 3 (/ 1 (pow (+ 1 (exp (neg b))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg b))) 3))) (/ 1 (+ 1 (exp (neg b)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2))))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (log (+ 1 (exp (neg b))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg b)))) (* -1 (/ a (+ 1 (exp (neg b))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg b)))) (* a (- (* 1/2 (* a (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2))))) (/ 1 (+ 1 (exp (neg b)))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg b)))) (* a (- (* a (+ (* 1/6 (* a (- (* 3 (/ 1 (pow (+ 1 (exp (neg b))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg b))) 3))) (/ 1 (+ 1 (exp (neg b)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2)))))) (/ 1 (+ 1 (exp (neg b)))))))))
#s(approx (exp (neg a)) #s(hole binary64 1))
#s(approx (exp (neg a)) #s(hole binary64 (+ 1 (* -1 a))))
#s(approx (exp (neg a)) #s(hole binary64 (+ 1 (* a (- (* 1/2 a) 1)))))
#s(approx (exp (neg a)) #s(hole binary64 (+ 1 (* a (- (* a (+ 1/2 (* -1/6 a))) 1)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (/ b (- (exp a) -1)) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (- (exp a) -1) #s(hole binary64 (+ 1 (exp a))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (exp a) #s(hole binary64 (exp a)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ (exp a) (exp b))))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 (exp (neg a))))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* -1 a)))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* a (- (* -1 (/ b a)) 1))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ (exp (neg a)) (exp (neg b)))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* -1 a)))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* a (- (* -1 (/ b a)) 1))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 a))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* a (+ 1 (+ (/ b a) (/ (log (+ (exp (neg a)) (exp (neg b)))) a))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (log (+ (exp (neg a)) (exp (neg b))))))
#s(approx (exp (neg a)) #s(hole binary64 (exp (neg a))))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 (exp (* -1 a))))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* -1 (* a (+ 1 (/ b a))))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ (exp (neg b)) (exp (* -1 a)))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* -1 (* a (+ 1 (/ b a))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* a (- (* -1 (/ (+ b (log (+ (exp (neg b)) (exp (* -1 a))))) a)) 1)))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (log (+ (exp (neg b)) (exp (* -1 a))))))
#s(approx (exp (neg a)) #s(hole binary64 (exp (* -1 a))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* 1/2 (* b (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* b (+ (* 1/6 (* b (- (+ (* 2 (/ 1 (pow (+ 1 (exp a)) 3))) (/ 1 (+ 1 (exp a)))) (* 3 (/ 1 (pow (+ 1 (exp a)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2)))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp a))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ b (exp a)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* 1/2 b)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))))
#s(approx (exp b) #s(hole binary64 1))
#s(approx (exp b) #s(hole binary64 (+ 1 b)))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* 1/2 b))))))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (- (* -1 b) a)))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (exp (neg a)))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg a)) (* -1 b)))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg a)) (* b (- (* 1/2 b) 1))))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg a)) (* b (- (* b (+ 1/2 (* -1/6 b))) 1))))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (- (* -1 b) a)))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 1))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 (+ 1 b)))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 (+ 1 (* b (+ 1 (* 1/2 b))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (log (+ 1 (exp (neg a)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- 1 (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* 1/2 (* b (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2)))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* b (+ (* 1/6 (* b (- (* 3 (/ 1 (pow (+ 1 (exp (neg a))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg a))) 3))) (/ 1 (+ 1 (exp (neg a)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2))))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (log (+ 1 (exp (neg a))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg a)))) (* -1 (/ b (+ 1 (exp (neg a))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg a)))) (* b (- (* 1/2 (* b (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2))))) (/ 1 (+ 1 (exp (neg a)))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg a)))) (* b (- (* b (+ (* 1/6 (* b (- (* 3 (/ 1 (pow (+ 1 (exp (neg a))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg a))) 3))) (/ 1 (+ 1 (exp (neg a)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2)))))) (/ 1 (+ 1 (exp (neg a)))))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* b (+ (/ 1 (+ 1 (exp a))) (/ (log (+ 1 (exp a))) b)))))
#s(approx (exp b) #s(hole binary64 (exp b)))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* b (- (* -1 (/ a b)) 1))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* b (- (* -1 (/ a b)) 1))))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 (* 1/2 (pow b 2))))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 (* (pow b 2) (+ 1/2 (/ 1 b)))))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 (* (pow b 2) (+ 1/2 (+ (/ 1 b) (/ 1 (pow b 2)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* b (+ 1 (+ (/ a b) (/ (log (+ (exp (neg a)) (exp (neg b)))) b))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp a))) b)) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* -1 (* b (+ 1 (/ a b))))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ (exp (neg a)) (exp (* -1 b)))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* -1 (* b (+ 1 (/ a b))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (+ a (log (+ (exp (neg a)) (exp (* -1 b))))) b)) 1)))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (log (+ (exp (neg a)) (exp (* -1 b))))))
Calls

6 calls:

TimeVariablePointExpression
84.0ms
b
@inf
((log (+ (exp a) (exp b))) (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (/ b (- (exp a) -1)) (- (exp a) -1) (log (+ (exp a) (exp b))) (log (+ 1 (exp a))) (exp a) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (exp b) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp b) (* (exp (neg a)) 1) (log (exp (+ (neg a) (neg b)))) (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (+ (neg a) (neg b)) (+ (* (+ (* 1/2 b) 1) b) 1) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (exp (neg a)))
39.0ms
a
@-inf
((log (+ (exp a) (exp b))) (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (/ b (- (exp a) -1)) (- (exp a) -1) (log (+ (exp a) (exp b))) (log (+ 1 (exp a))) (exp a) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (exp b) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp b) (* (exp (neg a)) 1) (log (exp (+ (neg a) (neg b)))) (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (+ (neg a) (neg b)) (+ (* (+ (* 1/2 b) 1) b) 1) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (exp (neg a)))
39.0ms
a
@inf
((log (+ (exp a) (exp b))) (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (/ b (- (exp a) -1)) (- (exp a) -1) (log (+ (exp a) (exp b))) (log (+ 1 (exp a))) (exp a) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (exp b) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp b) (* (exp (neg a)) 1) (log (exp (+ (neg a) (neg b)))) (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (+ (neg a) (neg b)) (+ (* (+ (* 1/2 b) 1) b) 1) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (exp (neg a)))
26.0ms
b
@-inf
((log (+ (exp a) (exp b))) (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (/ b (- (exp a) -1)) (- (exp a) -1) (log (+ (exp a) (exp b))) (log (+ 1 (exp a))) (exp a) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (exp b) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp b) (* (exp (neg a)) 1) (log (exp (+ (neg a) (neg b)))) (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (+ (neg a) (neg b)) (+ (* (+ (* 1/2 b) 1) b) 1) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (exp (neg a)))
18.0ms
a
@0
((log (+ (exp a) (exp b))) (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (/ b (- (exp a) -1)) (- (exp a) -1) (log (+ (exp a) (exp b))) (log (+ 1 (exp a))) (exp a) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (exp b) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp b) (* (exp (neg a)) 1) (log (exp (+ (neg a) (neg b)))) (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (+ (neg a) (neg b)) (+ (* (+ (* 1/2 b) 1) b) 1) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (exp (neg a)))

simplify138.0ms (1.3%)

Memory
-2.8MiB live, 134.4MiB allocated; 20ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
04862504
112232474
241882453
080752242
Stop Event
iter limit
node limit
Counts
122 → 122
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp b)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (/ a (+ 1 (exp b))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* 1/2 (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* a (+ (* 1/6 (* a (- (+ (* 2 (/ 1 (pow (+ 1 (exp b)) 3))) (/ 1 (+ 1 (exp b)))) (* 3 (/ 1 (pow (+ 1 (exp b)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- 1/8 (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- (+ 1/8 (* -1 (* a (+ (* -1/2 (+ (* -1/8 b) (* 1/8 b))) (+ (* -1/16 b) (* 1/24 b)))))) (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (/ b (- (exp a) -1)) #s(hole binary64 (* 1/2 b)))
#s(approx (/ b (- (exp a) -1)) #s(hole binary64 (+ (* -1/4 (* a b)) (* 1/2 b))))
#s(approx (/ b (- (exp a) -1)) #s(hole binary64 (+ (* 1/2 b) (* a (- (* -1 (* a (+ (* -1/8 b) (* 1/8 b)))) (* 1/4 b))))))
#s(approx (/ b (- (exp a) -1)) #s(hole binary64 (+ (* 1/2 b) (* a (- (* a (- (* -1 (* a (+ (* -1/2 (+ (* -1/8 b) (* 1/8 b))) (+ (* -1/16 b) (* 1/24 b))))) (+ (* -1/8 b) (* 1/8 b)))) (* 1/4 b))))))
#s(approx (- (exp a) -1) #s(hole binary64 2))
#s(approx (- (exp a) -1) #s(hole binary64 (+ 2 a)))
#s(approx (- (exp a) -1) #s(hole binary64 (+ 2 (* a (+ 1 (* 1/2 a))))))
#s(approx (- (exp a) -1) #s(hole binary64 (+ 2 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log 2)))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* 1/2 a))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* a (+ 1/2 (* 1/8 a))))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* a (+ 1/2 (* a (+ 1/8 (* -1/192 (pow a 2)))))))))
#s(approx (exp a) #s(hole binary64 1))
#s(approx (exp a) #s(hole binary64 (+ 1 a)))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* 1/2 a))))))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp b))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ a (exp b)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* 1/2 a)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* a (+ 1/2 (* 1/6 a)))))))))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 1))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 (+ 1 (* -1 a))))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 (+ 1 (* a (- (* 1/2 a) 1)))))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 (+ 1 (* a (- (* a (+ 1/2 (* -1/6 a))) 1)))))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* -1 b)))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (- (* -1 a) b)))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (exp (neg b)))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg b)) (* -1 a)))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg b)) (* a (- (* 1/2 a) 1))))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg b)) (* a (- (* a (+ 1/2 (* -1/6 a))) 1))))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* -1 b)))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (- (* -1 a) b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (log (+ 1 (exp (neg b)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- 1 (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* 1/2 (* a (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2)))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* a (+ (* 1/6 (* a (- (* 3 (/ 1 (pow (+ 1 (exp (neg b))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg b))) 3))) (/ 1 (+ 1 (exp (neg b)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2))))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (log (+ 1 (exp (neg b))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg b)))) (* -1 (/ a (+ 1 (exp (neg b))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg b)))) (* a (- (* 1/2 (* a (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2))))) (/ 1 (+ 1 (exp (neg b)))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg b)))) (* a (- (* a (+ (* 1/6 (* a (- (* 3 (/ 1 (pow (+ 1 (exp (neg b))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg b))) 3))) (/ 1 (+ 1 (exp (neg b)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2)))))) (/ 1 (+ 1 (exp (neg b)))))))))
#s(approx (exp (neg a)) #s(hole binary64 1))
#s(approx (exp (neg a)) #s(hole binary64 (+ 1 (* -1 a))))
#s(approx (exp (neg a)) #s(hole binary64 (+ 1 (* a (- (* 1/2 a) 1)))))
#s(approx (exp (neg a)) #s(hole binary64 (+ 1 (* a (- (* a (+ 1/2 (* -1/6 a))) 1)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (/ b (- (exp a) -1)) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (- (exp a) -1) #s(hole binary64 (+ 1 (exp a))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (exp a) #s(hole binary64 (exp a)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ (exp a) (exp b))))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 (exp (neg a))))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* -1 a)))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* a (- (* -1 (/ b a)) 1))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ (exp (neg a)) (exp (neg b)))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* -1 a)))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* a (- (* -1 (/ b a)) 1))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 a))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* a (+ 1 (+ (/ b a) (/ (log (+ (exp (neg a)) (exp (neg b)))) a))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (log (+ (exp (neg a)) (exp (neg b))))))
#s(approx (exp (neg a)) #s(hole binary64 (exp (neg a))))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 (exp (* -1 a))))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* -1 (* a (+ 1 (/ b a))))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ (exp (neg b)) (exp (* -1 a)))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* -1 (* a (+ 1 (/ b a))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* a (- (* -1 (/ (+ b (log (+ (exp (neg b)) (exp (* -1 a))))) a)) 1)))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (log (+ (exp (neg b)) (exp (* -1 a))))))
#s(approx (exp (neg a)) #s(hole binary64 (exp (* -1 a))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* 1/2 (* b (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* b (+ (* 1/6 (* b (- (+ (* 2 (/ 1 (pow (+ 1 (exp a)) 3))) (/ 1 (+ 1 (exp a)))) (* 3 (/ 1 (pow (+ 1 (exp a)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2)))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp a))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ b (exp a)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* 1/2 b)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))))
#s(approx (exp b) #s(hole binary64 1))
#s(approx (exp b) #s(hole binary64 (+ 1 b)))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* 1/2 b))))))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (- (* -1 b) a)))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (exp (neg a)))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg a)) (* -1 b)))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg a)) (* b (- (* 1/2 b) 1))))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg a)) (* b (- (* b (+ 1/2 (* -1/6 b))) 1))))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (- (* -1 b) a)))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 1))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 (+ 1 b)))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 (+ 1 (* b (+ 1 (* 1/2 b))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (log (+ 1 (exp (neg a)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- 1 (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* 1/2 (* b (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2)))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* b (+ (* 1/6 (* b (- (* 3 (/ 1 (pow (+ 1 (exp (neg a))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg a))) 3))) (/ 1 (+ 1 (exp (neg a)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2))))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (log (+ 1 (exp (neg a))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg a)))) (* -1 (/ b (+ 1 (exp (neg a))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg a)))) (* b (- (* 1/2 (* b (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2))))) (/ 1 (+ 1 (exp (neg a)))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg a)))) (* b (- (* b (+ (* 1/6 (* b (- (* 3 (/ 1 (pow (+ 1 (exp (neg a))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg a))) 3))) (/ 1 (+ 1 (exp (neg a)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2)))))) (/ 1 (+ 1 (exp (neg a)))))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* b (+ (/ 1 (+ 1 (exp a))) (/ (log (+ 1 (exp a))) b)))))
#s(approx (exp b) #s(hole binary64 (exp b)))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* b (- (* -1 (/ a b)) 1))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* b (- (* -1 (/ a b)) 1))))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 (* 1/2 (pow b 2))))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 (* (pow b 2) (+ 1/2 (/ 1 b)))))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 (* (pow b 2) (+ 1/2 (+ (/ 1 b) (/ 1 (pow b 2)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* b (+ 1 (+ (/ a b) (/ (log (+ (exp (neg a)) (exp (neg b)))) b))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp a))) b)) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* -1 (* b (+ 1 (/ a b))))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ (exp (neg a)) (exp (* -1 b)))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* -1 (* b (+ 1 (/ a b))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (+ a (log (+ (exp (neg a)) (exp (* -1 b))))) b)) 1)))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (log (+ (exp (neg a)) (exp (* -1 b))))))
Outputs
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp b)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (/ a (+ 1 (exp b))))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 a (+.f64 #s(literal 1 binary64) (exp.f64 b))) (log1p.f64 (exp.f64 b))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* 1/2 (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (*.f64 #s(literal 1/2 binary64) a) (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 b))) (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) #s(literal 2 binary64)))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 b)))) a (log1p.f64 (exp.f64 b))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* a (+ (* 1/6 (* a (- (+ (* 2 (/ 1 (pow (+ 1 (exp b)) 3))) (/ 1 (+ 1 (exp b)))) (* 3 (/ 1 (pow (+ 1 (exp b)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) a) (+.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 b))) (/.f64 (+.f64 (/.f64 #s(literal 2 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 b))) #s(literal -3 binary64)) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) #s(literal 2 binary64)))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 b))) (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) a (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 b)))) a (log1p.f64 (exp.f64 b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) a (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- 1/8 (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 (fma.f64 #s(literal 1/8 binary64) a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))) a (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- (+ 1/8 (* -1 (* a (+ (* -1/2 (+ (* -1/8 b) (* 1/8 b))) (+ (* -1/16 b) (* 1/24 b)))))) (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 (fma.f64 #s(literal -1/4 binary64) b (fma.f64 (fma.f64 (fma.f64 #s(literal 1/48 binary64) b #s(literal 0 binary64)) a #s(literal 1/8 binary64)) a #s(literal 1/2 binary64))) a (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (/ b (- (exp a) -1)) #s(hole binary64 (* 1/2 b)))
#s(approx (/ b (- (exp a) -1)) (*.f64 #s(literal 1/2 binary64) b))
#s(approx (/ b (- (exp a) -1)) #s(hole binary64 (+ (* -1/4 (* a b)) (* 1/2 b))))
#s(approx (/ b (- (exp a) -1)) (*.f64 b (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64))))
#s(approx (/ b (- (exp a) -1)) #s(hole binary64 (+ (* 1/2 b) (* a (- (* -1 (* a (+ (* -1/8 b) (* 1/8 b)))) (* 1/4 b))))))
#s(approx (/ b (- (exp a) -1)) (fma.f64 (fma.f64 #s(literal -1/4 binary64) b (*.f64 #s(literal 0 binary64) a)) a (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (/ b (- (exp a) -1)) #s(hole binary64 (+ (* 1/2 b) (* a (- (* a (- (* -1 (* a (+ (* -1/2 (+ (* -1/8 b) (* 1/8 b))) (+ (* -1/16 b) (* 1/24 b))))) (+ (* -1/8 b) (* 1/8 b)))) (* 1/4 b))))))
#s(approx (/ b (- (exp a) -1)) (fma.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/48 binary64) b #s(literal 0 binary64)) a #s(literal 0 binary64)) a (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (- (exp a) -1) #s(hole binary64 2))
#s(approx (- (exp a) -1) #s(literal 2 binary64))
#s(approx (- (exp a) -1) #s(hole binary64 (+ 2 a)))
#s(approx (- (exp a) -1) (-.f64 a #s(literal -2 binary64)))
#s(approx (- (exp a) -1) #s(hole binary64 (+ 2 (* a (+ 1 (* 1/2 a))))))
#s(approx (- (exp a) -1) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))
#s(approx (- (exp a) -1) #s(hole binary64 (+ 2 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))))
#s(approx (- (exp a) -1) (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 2 binary64)))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log 2)))
#s(approx (log (+ 1 (exp a))) (log.f64 #s(literal 2 binary64)))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* 1/2 a))))
#s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* a (+ 1/2 (* 1/8 a))))))
#s(approx (log (+ 1 (exp a))) (fma.f64 (fma.f64 #s(literal 1/8 binary64) a #s(literal 1/2 binary64)) a (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* a (+ 1/2 (* a (+ 1/8 (* -1/192 (pow a 2)))))))))
#s(approx (log (+ 1 (exp a))) (fma.f64 (fma.f64 (fma.f64 (*.f64 a a) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) a #s(literal 1/2 binary64)) a (log.f64 #s(literal 2 binary64))))
#s(approx (exp a) #s(hole binary64 1))
#s(approx (exp a) #s(literal 1 binary64))
#s(approx (exp a) #s(hole binary64 (+ 1 a)))
#s(approx (exp a) (+.f64 #s(literal 1 binary64) a))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* 1/2 a))))))
#s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))))
#s(approx (exp 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)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp b))))
#s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 b)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ a (exp b)))))
#s(approx (+ (exp a) (exp b)) (+.f64 (+.f64 (exp.f64 b) a) #s(literal 1 binary64)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* 1/2 a)))))))
#s(approx (+ (exp a) (exp b)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (+.f64 #s(literal 1 binary64) (exp.f64 b))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* a (+ 1/2 (* 1/6 a)))))))))
#s(approx (+ (exp a) (exp b)) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (+.f64 #s(literal 1 binary64) (exp.f64 b))))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 1))
#s(approx (exp (neg a)) #s(literal 1 binary64))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 (+ 1 (* -1 a))))
#s(approx (exp (neg a)) (-.f64 #s(literal 1 binary64) a))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 (+ 1 (* a (- (* 1/2 a) 1)))))
#s(approx (exp (neg a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal -1 binary64)) a #s(literal 1 binary64)))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 (+ 1 (* a (- (* a (+ 1/2 (* -1/6 a))) 1)))))
#s(approx (exp (neg 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)))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* -1 b)))
#s(approx (log (exp (+ (neg a) (neg b)))) (neg.f64 b))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (- (* -1 a) b)))
#s(approx (log (exp (+ (neg a) (neg b)))) (-.f64 (neg.f64 b) a))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (exp (neg b)))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg b)) (* -1 a)))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (-.f64 (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)) a))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg b)) (* a (- (* 1/2 a) 1))))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal -1 binary64)) a (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg b)) (* a (- (* a (+ 1/2 (* -1/6 a))) 1))))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (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 (neg.f64 b)) #s(literal 1 binary64))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* -1 b)))
#s(approx (log (exp (+ (neg a) (neg b)))) (neg.f64 b))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (- (* -1 a) b)))
#s(approx (log (exp (+ (neg a) (neg b)))) (-.f64 (neg.f64 b) a))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (log (+ 1 (exp (neg b)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- 1 (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)))) a (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* 1/2 (* a (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2)))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (fma.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)) #s(literal 2 binary64)))) (*.f64 #s(literal 1/2 binary64) a) (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64))))) a (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* a (+ (* 1/6 (* a (- (* 3 (/ 1 (pow (+ 1 (exp (neg b))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg b))) 3))) (/ 1 (+ 1 (exp (neg b)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2))))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (fma.f64 (fma.f64 (-.f64 (/.f64 #s(literal 3 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)) #s(literal 2 binary64))) (+.f64 (/.f64 #s(literal 2 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)) #s(literal 3 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64))))) (*.f64 #s(literal 1/6 binary64) a) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) a (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64))))) a (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (log (+ 1 (exp (neg b))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log1p.f64 (exp.f64 (neg.f64 b))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg b)))) (* -1 (/ a (+ 1 (exp (neg b))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (-.f64 (log1p.f64 (exp.f64 (neg.f64 b))) (/.f64 a (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg b)))) (* a (- (* 1/2 (* a (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2))))) (/ 1 (+ 1 (exp (neg b)))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (fma.f64 (-.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)) #s(literal 2 binary64)))) (*.f64 #s(literal 1/2 binary64) a)) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)))) a (log1p.f64 (exp.f64 (neg.f64 b)))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg b)))) (* a (- (* a (+ (* 1/6 (* a (- (* 3 (/ 1 (pow (+ 1 (exp (neg b))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg b))) 3))) (/ 1 (+ 1 (exp (neg b)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2)))))) (/ 1 (+ 1 (exp (neg b)))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (fma.f64 (-.f64 (*.f64 (fma.f64 (-.f64 (/.f64 #s(literal 3 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)) #s(literal 2 binary64))) (+.f64 (/.f64 #s(literal 2 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)) #s(literal 3 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64))))) (*.f64 #s(literal 1/6 binary64) a) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) a) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64)))) a (log1p.f64 (exp.f64 (neg.f64 b)))))
#s(approx (exp (neg a)) #s(hole binary64 1))
#s(approx (exp (neg a)) #s(literal 1 binary64))
#s(approx (exp (neg a)) #s(hole binary64 (+ 1 (* -1 a))))
#s(approx (exp (neg a)) (-.f64 #s(literal 1 binary64) a))
#s(approx (exp (neg a)) #s(hole binary64 (+ 1 (* a (- (* 1/2 a) 1)))))
#s(approx (exp (neg a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal -1 binary64)) a #s(literal 1 binary64)))
#s(approx (exp (neg a)) #s(hole binary64 (+ 1 (* a (- (* a (+ 1/2 (* -1/6 a))) 1)))))
#s(approx (exp (neg 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)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (log (+ (exp a) (exp b))) (log.f64 (+.f64 (exp.f64 b) (exp.f64 a))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log1p.f64 (exp.f64 a))))
#s(approx (/ b (- (exp a) -1)) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (/ b (- (exp a) -1)) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))))
#s(approx (- (exp a) -1) #s(hole binary64 (+ 1 (exp a))))
#s(approx (- (exp a) -1) (+.f64 #s(literal 1 binary64) (exp.f64 a)))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (log (+ 1 (exp a))) (log1p.f64 (exp.f64 a)))
#s(approx (exp a) #s(hole binary64 (exp a)))
#s(approx (exp a) (exp.f64 a))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ (exp a) (exp b))))
#s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 b) (exp.f64 a)))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 (exp (neg a))))
#s(approx (exp (neg a)) (exp.f64 (neg.f64 a)))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* -1 a)))
#s(approx (log (exp (+ (neg a) (neg b)))) (neg.f64 a))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* a (- (* -1 (/ b a)) 1))))
#s(approx (log (exp (+ (neg a) (neg b)))) (neg.f64 (fma.f64 (/.f64 b a) a a)))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ (exp (neg a)) (exp (neg b)))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* -1 a)))
#s(approx (log (exp (+ (neg a) (neg b)))) (neg.f64 a))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* a (- (* -1 (/ b a)) 1))))
#s(approx (log (exp (+ (neg a) (neg b)))) (neg.f64 (fma.f64 (/.f64 b a) a a)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 a))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) a)
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* a (+ 1 (+ (/ b a) (/ (log (+ (exp (neg a)) (exp (neg b)))) a))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (/.f64 (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) b) a) a a))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (log (+ (exp (neg a)) (exp (neg b))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))))
#s(approx (exp (neg a)) #s(hole binary64 (exp (neg a))))
#s(approx (exp (neg a)) (exp.f64 (neg.f64 a)))
#s(approx (* (exp (neg a)) 1) #s(hole binary64 (exp (* -1 a))))
#s(approx (exp (neg a)) (exp.f64 (neg.f64 a)))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* -1 (* a (+ 1 (/ b a))))))
#s(approx (log (exp (+ (neg a) (neg b)))) (neg.f64 (fma.f64 (/.f64 b a) a a)))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ (exp (neg b)) (exp (* -1 a)))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* -1 (* a (+ 1 (/ b a))))))
#s(approx (log (exp (+ (neg a) (neg b)))) (neg.f64 (fma.f64 (/.f64 b a) a a)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* a (- (* -1 (/ (+ b (log (+ (exp (neg b)) (exp (* -1 a))))) a)) 1)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (*.f64 (-.f64 (/.f64 (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) b) (neg.f64 a)) #s(literal 1 binary64)) (neg.f64 a)))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (log (+ (exp (neg b)) (exp (* -1 a))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))))
#s(approx (exp (neg a)) #s(hole binary64 (exp (* -1 a))))
#s(approx (exp (neg a)) (exp.f64 (neg.f64 a)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log1p.f64 (exp.f64 a))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* 1/2 (* b (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 2 binary64)))) (*.f64 #s(literal 1/2 binary64) b) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))) b (log1p.f64 (exp.f64 a))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* b (+ (* 1/6 (* b (- (+ (* 2 (/ 1 (pow (+ 1 (exp a)) 3))) (/ 1 (+ 1 (exp a)))) (* 3 (/ 1 (pow (+ 1 (exp a)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2)))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) b) (+.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 (+.f64 (/.f64 #s(literal 2 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(literal -3 binary64)) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 2 binary64)))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) b (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))) b (log1p.f64 (exp.f64 a))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (log1p.f64 (exp.f64 a)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp a))))
#s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 a)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ b (exp a)))))
#s(approx (+ (exp a) (exp b)) (+.f64 (+.f64 b (exp.f64 a)) #s(literal 1 binary64)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* 1/2 b)))))))
#s(approx (+ (exp a) (exp b)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b (+.f64 #s(literal 1 binary64) (exp.f64 a))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))))
#s(approx (+ (exp a) (exp 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))))
#s(approx (exp b) #s(hole binary64 1))
#s(approx (exp b) #s(literal 1 binary64))
#s(approx (exp b) #s(hole binary64 (+ 1 b)))
#s(approx (exp b) (+.f64 #s(literal 1 binary64) b))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* 1/2 b))))))
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))))
#s(approx (exp 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)))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (- (* -1 b) a)))
#s(approx (log (exp (+ (neg a) (neg b)))) (-.f64 (neg.f64 b) a))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (exp (neg a)))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg a)) (* -1 b)))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (-.f64 (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)) b))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg a)) (* b (- (* 1/2 b) 1))))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal -1 binary64)) b (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ 1 (+ (exp (neg a)) (* b (- (* b (+ 1/2 (* -1/6 b))) 1))))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (fma.f64 (fma.f64 (fma.f64 #s(literal -1/6 binary64) b #s(literal 1/2 binary64)) b #s(literal -1 binary64)) b (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (- (* -1 b) a)))
#s(approx (log (exp (+ (neg a) (neg b)))) (-.f64 (neg.f64 b) a))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 1))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(literal 1 binary64))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 (+ 1 b)))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) (+.f64 #s(literal 1 binary64) b))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 (+ 1 (* b (+ 1 (* 1/2 b))))))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (log (+ 1 (exp (neg a)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 a))) a))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- 1 (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))) b (+.f64 (log1p.f64 (exp.f64 (neg.f64 a))) a)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* 1/2 (* b (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2)))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (fma.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)) #s(literal 2 binary64)))) (*.f64 #s(literal 1/2 binary64) b) (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))))) b (+.f64 (log1p.f64 (exp.f64 (neg.f64 a))) a)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* b (+ (* 1/6 (* b (- (* 3 (/ 1 (pow (+ 1 (exp (neg a))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg a))) 3))) (/ 1 (+ 1 (exp (neg a)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2))))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (fma.f64 (fma.f64 (-.f64 (/.f64 #s(literal 3 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)) #s(literal 2 binary64))) (+.f64 (/.f64 #s(literal 2 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)) #s(literal 3 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))))) (*.f64 #s(literal 1/6 binary64) b) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) b (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))))) b (+.f64 (log1p.f64 (exp.f64 (neg.f64 a))) a)))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (log (+ 1 (exp (neg a))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log1p.f64 (exp.f64 (neg.f64 a))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg a)))) (* -1 (/ b (+ 1 (exp (neg a))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (-.f64 (log1p.f64 (exp.f64 (neg.f64 a))) (/.f64 b (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg a)))) (* b (- (* 1/2 (* b (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2))))) (/ 1 (+ 1 (exp (neg a)))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (fma.f64 (-.f64 (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)) #s(literal 2 binary64)))) (*.f64 #s(literal 1/2 binary64) b)) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))) b (log1p.f64 (exp.f64 (neg.f64 a)))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (+ (log (+ 1 (exp (neg a)))) (* b (- (* b (+ (* 1/6 (* b (- (* 3 (/ 1 (pow (+ 1 (exp (neg a))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg a))) 3))) (/ 1 (+ 1 (exp (neg a)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2)))))) (/ 1 (+ 1 (exp (neg a)))))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (fma.f64 (-.f64 (*.f64 (fma.f64 (-.f64 (/.f64 #s(literal 3 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)) #s(literal 2 binary64))) (+.f64 (/.f64 #s(literal 2 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)) #s(literal 3 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))))) (*.f64 #s(literal 1/6 binary64) b) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) b) (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))) b (log1p.f64 (exp.f64 (neg.f64 a)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* b (+ (/ 1 (+ 1 (exp a))) (/ (log (+ 1 (exp a))) b)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 (/.f64 (log1p.f64 (exp.f64 a)) b) b (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
#s(approx (exp b) #s(hole binary64 (exp b)))
#s(approx (exp b) (exp.f64 b))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* b (- (* -1 (/ a b)) 1))))
#s(approx (log (exp (+ (neg a) (neg b)))) (neg.f64 (fma.f64 (/.f64 a b) b b)))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* b (- (* -1 (/ a b)) 1))))
#s(approx (log (exp (+ (neg a) (neg b)))) (neg.f64 (fma.f64 (/.f64 a b) b b)))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 (* 1/2 (pow b 2))))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) (*.f64 (*.f64 b b) #s(literal 1/2 binary64)))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 (* (pow b 2) (+ 1/2 (/ 1 b)))))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) (*.f64 (*.f64 (+.f64 (/.f64 #s(literal 1 binary64) b) #s(literal 1/2 binary64)) b) b))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) #s(hole binary64 (* (pow b 2) (+ 1/2 (+ (/ 1 b) (/ 1 (pow b 2)))))))
#s(approx (+ (* (+ (* 1/2 b) 1) b) 1) (*.f64 (+.f64 (/.f64 (+.f64 (/.f64 #s(literal 1 binary64) b) #s(literal 1 binary64)) b) #s(literal 1/2 binary64)) (*.f64 b b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* b (+ 1 (+ (/ a b) (/ (log (+ (exp (neg a)) (exp (neg b)))) b))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (/.f64 (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) a) b) b b))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp a))) b)) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (*.f64 (-.f64 (/.f64 (log1p.f64 (exp.f64 a)) (neg.f64 b)) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))) (neg.f64 b)))
#s(approx (log (exp (+ (neg a) (neg b)))) #s(hole binary64 (* -1 (* b (+ 1 (/ a b))))))
#s(approx (log (exp (+ (neg a) (neg b)))) (neg.f64 (fma.f64 (/.f64 a b) b b)))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) #s(hole binary64 (+ (exp (neg a)) (exp (* -1 b)))))
#s(approx (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1)) (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a))))
#s(approx (+ (neg a) (neg b)) #s(hole binary64 (* -1 (* b (+ 1 (/ a b))))))
#s(approx (log (exp (+ (neg a) (neg b)))) (neg.f64 (fma.f64 (/.f64 a b) b b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (+ a (log (+ (exp (neg a)) (exp (* -1 b))))) b)) 1)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (*.f64 (-.f64 (/.f64 (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) a) (neg.f64 b)) #s(literal 1 binary64)) (neg.f64 b)))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) #s(hole binary64 (log (+ (exp (neg a)) (exp (* -1 b))))))
#s(approx (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))))

rewrite73.0ms (0.7%)

Memory
26.4MiB live, 72.5MiB allocated; 2ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
036177
064159
1238159
01914159
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
22 → 246
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
(+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a)))
(/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))
(-.f64 (exp.f64 a) #s(literal -1 binary64))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
(log1p.f64 (exp.f64 a))
(exp.f64 a)
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
(+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b))
#s(approx (exp a) #s(literal 1 binary64))
(exp.f64 b)
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
(*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))
(log.f64 (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b))))
(fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))
(+.f64 (neg.f64 a) (neg.f64 b))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))
(-.f64 (log.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))) (log.f64 (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b)))))
(log.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))))
(exp.f64 (neg.f64 a))
Outputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 (log1p.f64 (exp.f64 a)) (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))))
(/.f64 (-.f64 (pow.f64 (log1p.f64 (exp.f64 a)) #s(literal 2 binary64)) (pow.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) #s(literal 2 binary64))) (-.f64 (log1p.f64 (exp.f64 a)) (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) #s(literal 2 binary64)) (pow.f64 (log1p.f64 (exp.f64 a)) #s(literal 2 binary64)))) (neg.f64 (-.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (log1p.f64 (exp.f64 a)) #s(literal 3 binary64)) (pow.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (log1p.f64 (exp.f64 a)) (-.f64 (log1p.f64 (exp.f64 a)) (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))) (pow.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) #s(literal 2 binary64)) (pow.f64 (log1p.f64 (exp.f64 a)) #s(literal 2 binary64))) (-.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
(/.f64 (+.f64 (pow.f64 (log1p.f64 (exp.f64 a)) #s(literal 3 binary64)) (pow.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) #s(literal 3 binary64))) (+.f64 (pow.f64 (log1p.f64 (exp.f64 a)) #s(literal 2 binary64)) (-.f64 (pow.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) #s(literal 2 binary64)) (*.f64 (log1p.f64 (exp.f64 a)) (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))))))
(/.f64 (+.f64 (pow.f64 (log1p.f64 (exp.f64 a)) #s(literal 3 binary64)) (pow.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) #s(literal 3 binary64))) (fma.f64 (log1p.f64 (exp.f64 a)) (-.f64 (log1p.f64 (exp.f64 a)) (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))) (pow.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) #s(literal 2 binary64))))
(fma.f64 (/.f64 b (expm1.f64 (+.f64 a a))) (+.f64 #s(literal -1 binary64) (exp.f64 a)) (log1p.f64 (exp.f64 a)))
(fma.f64 (/.f64 b (-.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) #s(literal -1 binary64))) (fma.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (exp.f64 a)) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) (log1p.f64 (exp.f64 a)))
(-.f64 (/.f64 (pow.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) #s(literal 2 binary64)) (-.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a)))) (/.f64 (pow.f64 (log1p.f64 (exp.f64 a)) #s(literal 2 binary64)) (-.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a)))))
(+.f64 (/.f64 (pow.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) #s(literal 3 binary64)) (fma.f64 (log1p.f64 (exp.f64 a)) (-.f64 (log1p.f64 (exp.f64 a)) (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))) (pow.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) #s(literal 2 binary64)))) (/.f64 (pow.f64 (log1p.f64 (exp.f64 a)) #s(literal 3 binary64)) (fma.f64 (log1p.f64 (exp.f64 a)) (-.f64 (log1p.f64 (exp.f64 a)) (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))) (pow.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) #s(literal 2 binary64)))))
(+.f64 (log1p.f64 (exp.f64 a)) (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))))
(+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a)))
(*.f64 (/.f64 b (expm1.f64 (+.f64 a a))) (+.f64 #s(literal -1 binary64) (exp.f64 a)))
(*.f64 (/.f64 b (-.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) #s(literal -1 binary64))) (fma.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (exp.f64 a)) (pow.f64 (exp.f64 a) #s(literal 2 binary64))))
(/.f64 (neg.f64 (neg.f64 b)) (neg.f64 (neg.f64 (-.f64 (exp.f64 a) #s(literal -1 binary64)))))
(/.f64 (neg.f64 b) (neg.f64 (-.f64 (exp.f64 a) #s(literal -1 binary64))))
(/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))
(neg.f64 (/.f64 (neg.f64 b) (-.f64 (exp.f64 a) #s(literal -1 binary64))))
(neg.f64 (/.f64 b (neg.f64 (-.f64 (exp.f64 a) #s(literal -1 binary64)))))
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (neg.f64 (-.f64 #s(literal 1 binary64) (exp.f64 a))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (exp.f64 a) (expm1.f64 a) #s(literal 1 binary64))))
(/.f64 (neg.f64 (expm1.f64 (+.f64 a a))) (neg.f64 (+.f64 #s(literal -1 binary64) (exp.f64 a))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) #s(literal -1 binary64))) (neg.f64 (fma.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (exp.f64 a)) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(/.f64 (expm1.f64 (+.f64 a a)) (expm1.f64 a))
(/.f64 (expm1.f64 (+.f64 a a)) (+.f64 #s(literal -1 binary64) (exp.f64 a)))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (exp.f64 a)))
(/.f64 (-.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) #s(literal -1 binary64)) (fma.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (exp.f64 a)) (pow.f64 (exp.f64 a) #s(literal 2 binary64))))
(/.f64 (+.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 (exp.f64 a) (exp.f64 a) (-.f64 #s(literal 1 binary64) (exp.f64 a))))
(/.f64 (+.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 (exp.f64 a) (expm1.f64 a) #s(literal 1 binary64)))
(fma.f64 #s(literal 1 binary64) (exp.f64 a) #s(literal 1 binary64))
(fma.f64 #s(literal -1 binary64) (*.f64 #s(literal -1 binary64) (exp.f64 a)) #s(literal 1 binary64))
(fma.f64 (exp.f64 a) #s(literal 1 binary64) #s(literal 1 binary64))
(-.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 #s(literal 1 binary64) (exp.f64 a))))
(-.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (+.f64 #s(literal -1 binary64) (exp.f64 a))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal -1 binary64) (exp.f64 a))))
(-.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (exp.f64 a)) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (/.f64 #s(literal -1 binary64) (fma.f64 #s(literal -1 binary64) (+.f64 #s(literal -1 binary64) (exp.f64 a)) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(-.f64 (exp.f64 a) #s(literal -1 binary64))
(+.f64 (+.f64 #s(literal 1 binary64) (cosh.f64 a)) (sinh.f64 a))
(+.f64 (/.f64 #s(literal 1 binary64) (fma.f64 (exp.f64 a) (expm1.f64 a) #s(literal 1 binary64))) (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 (exp.f64 a) (expm1.f64 a) #s(literal 1 binary64))))
(+.f64 (cosh.f64 a) (-.f64 (sinh.f64 a) #s(literal -1 binary64)))
(+.f64 (cosh.f64 a) (+.f64 (sinh.f64 a) #s(literal 1 binary64)))
(+.f64 #s(literal 1 binary64) (exp.f64 a))
(+.f64 (exp.f64 a) #s(literal 1 binary64))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
(log1p.f64 (exp.f64 a))
(-.f64 (log.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (log.f64 (-.f64 #s(literal 1 binary64) (exp.f64 a))))
(-.f64 (log1p.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (log1p.f64 (*.f64 (exp.f64 a) (expm1.f64 a))))
(log.f64 (-.f64 (exp.f64 a) #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) (exp.f64 a))
(*.f64 #s(literal -1 binary64) (*.f64 #s(literal -1 binary64) (exp.f64 a)))
(*.f64 (exp.f64 a) #s(literal 1 binary64))
(/.f64 (-.f64 (*.f64 (cosh.f64 a) (cosh.f64 a)) (*.f64 (sinh.f64 a) (sinh.f64 a))) (exp.f64 (neg.f64 a)))
(/.f64 (+.f64 (pow.f64 (cosh.f64 a) #s(literal 3 binary64)) (pow.f64 (sinh.f64 a) #s(literal 3 binary64))) (fma.f64 (cosh.f64 a) (cosh.f64 a) (-.f64 (*.f64 (sinh.f64 a) (sinh.f64 a)) (*.f64 (cosh.f64 a) (sinh.f64 a)))))
(fma.f64 (cosh.f64 a) #s(literal 1 binary64) (*.f64 (sinh.f64 a) #s(literal 1 binary64)))
(fma.f64 #s(literal 1 binary64) (cosh.f64 a) (*.f64 #s(literal 1 binary64) (sinh.f64 a)))
(exp.f64 (+.f64 #s(literal 0 binary64) a))
(exp.f64 a)
(+.f64 (*.f64 (cosh.f64 a) #s(literal 1 binary64)) (*.f64 (sinh.f64 a) #s(literal 1 binary64)))
(+.f64 (*.f64 #s(literal 1 binary64) (cosh.f64 a)) (*.f64 #s(literal 1 binary64) (sinh.f64 a)))
(+.f64 (sinh.f64 a) (cosh.f64 a))
(+.f64 (cosh.f64 a) (sinh.f64 a))
(-.f64 (log.f64 (-.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)) (pow.f64 (exp.f64 b) #s(literal 2 binary64)))) (log.f64 (-.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b))))
(-.f64 (log.f64 (+.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 3 binary64)) (pow.f64 (exp.f64 b) #s(literal 3 binary64)))) (log.f64 (fma.f64 (exp.f64 b) (-.f64 (exp.f64 b) #s(approx (exp a) #s(literal 1 binary64))) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)))))
(log.f64 (+.f64 (exp.f64 b) #s(approx (exp a) #s(literal 1 binary64))))
(/.f64 (-.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64))) (-.f64 (exp.f64 b) #s(approx (exp a) #s(literal 1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)) (pow.f64 (exp.f64 b) #s(literal 2 binary64)))) (neg.f64 (-.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b))))
(/.f64 (neg.f64 (+.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 3 binary64)) (pow.f64 (exp.f64 b) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (exp.f64 b) (-.f64 (exp.f64 b) #s(approx (exp a) #s(literal 1 binary64))) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)) (pow.f64 (exp.f64 b) #s(literal 2 binary64))) (-.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
(/.f64 (+.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 3 binary64)) (pow.f64 (exp.f64 b) #s(literal 3 binary64))) (fma.f64 (exp.f64 b) (exp.f64 b) (-.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)) (*.f64 (exp.f64 b) #s(approx (exp a) #s(literal 1 binary64))))))
(/.f64 (+.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 3 binary64)) (pow.f64 (exp.f64 b) #s(literal 3 binary64))) (fma.f64 (exp.f64 b) (-.f64 (exp.f64 b) #s(approx (exp a) #s(literal 1 binary64))) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64))))
(-.f64 (/.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)) (-.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 2 binary64)) (-.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b))))
(+.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (cosh.f64 b)) (sinh.f64 b))
(+.f64 (/.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 3 binary64)) (fma.f64 (exp.f64 b) (-.f64 (exp.f64 b) #s(approx (exp a) #s(literal 1 binary64))) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)))) (/.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (fma.f64 (exp.f64 b) (-.f64 (exp.f64 b) #s(approx (exp a) #s(literal 1 binary64))) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)))))
(+.f64 (cosh.f64 b) (+.f64 (sinh.f64 b) #s(approx (exp a) #s(literal 1 binary64))))
(+.f64 (exp.f64 b) #s(approx (exp a) #s(literal 1 binary64)))
(+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b))
#s(approx (exp a) #s(literal 1 binary64))
(/.f64 (-.f64 (*.f64 (cosh.f64 b) (cosh.f64 b)) (*.f64 (sinh.f64 b) (sinh.f64 b))) (exp.f64 (neg.f64 b)))
(/.f64 (+.f64 (pow.f64 (cosh.f64 b) #s(literal 3 binary64)) (pow.f64 (sinh.f64 b) #s(literal 3 binary64))) (fma.f64 (cosh.f64 b) (cosh.f64 b) (-.f64 (*.f64 (sinh.f64 b) (sinh.f64 b)) (*.f64 (cosh.f64 b) (sinh.f64 b)))))
(exp.f64 b)
(+.f64 (sinh.f64 b) (cosh.f64 b))
(+.f64 (cosh.f64 b) (sinh.f64 b))
(-.f64 (log.f64 (-.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 2 binary64)))) (log.f64 (-.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))))
(-.f64 (log.f64 (+.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64)))) (log.f64 (fma.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (-.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (exp.f64 a)) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(log.f64 (+.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (exp.f64 a)))
(/.f64 (-.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 2 binary64)) (pow.f64 (exp.f64 a) #s(literal 2 binary64))) (-.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (exp.f64 a)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 2 binary64)))) (neg.f64 (-.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))))
(/.f64 (neg.f64 (+.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (-.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (exp.f64 a)) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 2 binary64))) (-.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(/.f64 (+.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (+.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 2 binary64)) (-.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (*.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (exp.f64 a)))))
(/.f64 (+.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 3 binary64)) (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (fma.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (-.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (exp.f64 a)) (pow.f64 (exp.f64 a) #s(literal 2 binary64))))
(fma.f64 #s(literal 1 binary64) (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
(fma.f64 #s(literal -1 binary64) (*.f64 #s(literal -1 binary64) (exp.f64 a)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
(fma.f64 (exp.f64 a) #s(literal 1 binary64) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
(-.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 2 binary64)) (-.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))) (/.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 2 binary64)) (-.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))))
(+.f64 (+.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (cosh.f64 a)) (sinh.f64 a))
(+.f64 (/.f64 (pow.f64 (exp.f64 a) #s(literal 3 binary64)) (fma.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (-.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (exp.f64 a)) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))) (/.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 3 binary64)) (fma.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (-.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (exp.f64 a)) (pow.f64 (exp.f64 a) #s(literal 2 binary64)))))
(+.f64 (cosh.f64 a) (+.f64 (sinh.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(+.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (exp.f64 a))
(+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
(*.f64 (/.f64 #s(literal -1 binary64) (exp.f64 a)) #s(literal -1 binary64))
(*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 a)))
(*.f64 #s(literal -1 binary64) (/.f64 #s(literal -1 binary64) (exp.f64 a)))
(pow.f64 (exp.f64 a) #s(literal -1 binary64))
(/.f64 (-.f64 (*.f64 (cosh.f64 a) (cosh.f64 a)) (*.f64 (sinh.f64 a) (sinh.f64 a))) (exp.f64 a))
(/.f64 (-.f64 (*.f64 (cosh.f64 a) (cosh.f64 a)) (*.f64 (sinh.f64 (neg.f64 a)) (sinh.f64 (neg.f64 a)))) (-.f64 (cosh.f64 a) (sinh.f64 (neg.f64 a))))
(/.f64 (-.f64 (pow.f64 (cosh.f64 a) #s(literal 3 binary64)) (pow.f64 (sinh.f64 a) #s(literal 3 binary64))) (fma.f64 (cosh.f64 a) (cosh.f64 a) (fma.f64 (sinh.f64 a) (sinh.f64 a) (*.f64 (cosh.f64 a) (sinh.f64 a)))))
(/.f64 (+.f64 (pow.f64 (cosh.f64 a) #s(literal 3 binary64)) (pow.f64 (sinh.f64 (neg.f64 a)) #s(literal 3 binary64))) (fma.f64 (cosh.f64 a) (cosh.f64 a) (-.f64 (*.f64 (sinh.f64 (neg.f64 a)) (sinh.f64 (neg.f64 a))) (*.f64 (cosh.f64 a) (sinh.f64 (neg.f64 a))))))
(/.f64 #s(literal 1 binary64) (exp.f64 a))
(/.f64 #s(literal -1 binary64) (neg.f64 (exp.f64 a)))
(fma.f64 (cosh.f64 a) #s(literal 1 binary64) (*.f64 (sinh.f64 (neg.f64 a)) #s(literal 1 binary64)))
(fma.f64 #s(literal 1 binary64) (cosh.f64 a) (*.f64 #s(literal 1 binary64) (sinh.f64 (neg.f64 a))))
(-.f64 (cosh.f64 a) (sinh.f64 a))
(exp.f64 (-.f64 #s(literal 0 binary64) a))
(exp.f64 (+.f64 (neg.f64 a) #s(literal 0 binary64)))
(exp.f64 (+.f64 #s(literal 0 binary64) (neg.f64 a)))
(exp.f64 (neg.f64 a))
(+.f64 (*.f64 (cosh.f64 a) #s(literal 1 binary64)) (*.f64 (sinh.f64 (neg.f64 a)) #s(literal 1 binary64)))
(+.f64 (*.f64 #s(literal 1 binary64) (cosh.f64 a)) (*.f64 #s(literal 1 binary64) (sinh.f64 (neg.f64 a))))
(+.f64 (cosh.f64 a) (sinh.f64 (neg.f64 a)))
(+.f64 (sinh.f64 (neg.f64 a)) (cosh.f64 a))
(/.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (-.f64 (neg.f64 b) (neg.f64 a)))
(/.f64 (neg.f64 (fma.f64 a a (*.f64 b (neg.f64 b)))) (neg.f64 (-.f64 (neg.f64 a) (neg.f64 b))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (neg.f64 b) #s(literal 3 binary64)) (pow.f64 (neg.f64 a) #s(literal 3 binary64)))) (neg.f64 (fma.f64 a a (fma.f64 b b (*.f64 a (neg.f64 b))))))
(/.f64 (fma.f64 a a (*.f64 b (neg.f64 b))) (-.f64 (neg.f64 a) (neg.f64 b)))
(/.f64 (+.f64 (pow.f64 (neg.f64 b) #s(literal 3 binary64)) (pow.f64 (neg.f64 a) #s(literal 3 binary64))) (fma.f64 b b (-.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 a)))))
(/.f64 (+.f64 (pow.f64 (neg.f64 b) #s(literal 3 binary64)) (pow.f64 (neg.f64 a) #s(literal 3 binary64))) (fma.f64 a a (fma.f64 b b (*.f64 a (neg.f64 b)))))
(neg.f64 (+.f64 b a))
(-.f64 (/.f64 (*.f64 a a) (-.f64 (neg.f64 a) (neg.f64 b))) (/.f64 (*.f64 b b) (-.f64 (neg.f64 a) (neg.f64 b))))
(+.f64 (/.f64 (pow.f64 (neg.f64 a) #s(literal 3 binary64)) (fma.f64 a a (fma.f64 b b (*.f64 a (neg.f64 b))))) (/.f64 (pow.f64 (neg.f64 b) #s(literal 3 binary64)) (fma.f64 a a (fma.f64 b b (*.f64 a (neg.f64 b))))))
(+.f64 (log.f64 (exp.f64 (neg.f64 a))) (log.f64 (exp.f64 (neg.f64 b))))
(+.f64 (neg.f64 b) (neg.f64 a))
(+.f64 (neg.f64 a) (neg.f64 b))
(log.f64 (exp.f64 (neg.f64 (+.f64 b a))))
(*.f64 #s(literal 1 binary64) (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a))))
(/.f64 (-.f64 (pow.f64 (exp.f64 (neg.f64 a)) #s(literal 2 binary64)) (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 2 binary64))) (-.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b))))
(/.f64 (-.f64 (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 3 binary64)) (pow.f64 (/.f64 #s(literal -1 binary64) (exp.f64 a)) #s(literal 3 binary64))) (+.f64 (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 2 binary64)) (+.f64 (pow.f64 (exp.f64 (neg.f64 a)) #s(literal 2 binary64)) (*.f64 (exp.f64 (neg.f64 b)) (/.f64 #s(literal -1 binary64) (exp.f64 a))))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 2 binary64)) (pow.f64 (exp.f64 (neg.f64 a)) #s(literal 2 binary64)))) (neg.f64 (-.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (exp.f64 (neg.f64 a)) #s(literal 3 binary64)) (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (exp.f64 (neg.f64 a)) (-.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b))) (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 2 binary64)))))
(/.f64 (+.f64 (exp.f64 a) (*.f64 (exp.f64 b) #s(literal 1 binary64))) (exp.f64 (+.f64 b a)))
(/.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 b) (exp.f64 a)) (exp.f64 (+.f64 b a)))
(/.f64 (-.f64 (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 2 binary64)) (pow.f64 (exp.f64 (neg.f64 a)) #s(literal 2 binary64))) (-.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a))))
(/.f64 (+.f64 (pow.f64 (exp.f64 (neg.f64 a)) #s(literal 3 binary64)) (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 3 binary64))) (+.f64 (pow.f64 (exp.f64 (neg.f64 a)) #s(literal 2 binary64)) (-.f64 (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 2 binary64)) (exp.f64 (neg.f64 (+.f64 b a))))))
(/.f64 (+.f64 (pow.f64 (exp.f64 (neg.f64 a)) #s(literal 3 binary64)) (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 3 binary64))) (fma.f64 (exp.f64 (neg.f64 a)) (-.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b))) (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 2 binary64))))
(fma.f64 (*.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64)) #s(literal -1 binary64) (*.f64 (neg.f64 (/.f64 #s(literal -1 binary64) (exp.f64 a))) #s(literal 1 binary64)))
(fma.f64 (*.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64)) #s(literal -1 binary64) (exp.f64 (neg.f64 a)))
(fma.f64 (/.f64 #s(literal -1 binary64) (exp.f64 a)) #s(literal -1 binary64) (exp.f64 (neg.f64 b)))
(fma.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64) (*.f64 (neg.f64 (/.f64 #s(literal -1 binary64) (exp.f64 a))) #s(literal 1 binary64)))
(fma.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64) (exp.f64 (neg.f64 a)))
(fma.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64) (exp.f64 (neg.f64 b)))
(fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (neg.f64 (/.f64 #s(literal -1 binary64) (exp.f64 a))) #s(literal 1 binary64)))
(fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))
(fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b)))
(fma.f64 #s(literal -1 binary64) (/.f64 #s(literal -1 binary64) (exp.f64 b)) (*.f64 (neg.f64 (/.f64 #s(literal -1 binary64) (exp.f64 a))) #s(literal 1 binary64)))
(fma.f64 #s(literal -1 binary64) (/.f64 #s(literal -1 binary64) (exp.f64 b)) (exp.f64 (neg.f64 a)))
(fma.f64 #s(literal -1 binary64) (*.f64 #s(literal -1 binary64) (exp.f64 (neg.f64 b))) (*.f64 (neg.f64 (/.f64 #s(literal -1 binary64) (exp.f64 a))) #s(literal 1 binary64)))
(fma.f64 #s(literal -1 binary64) (*.f64 #s(literal -1 binary64) (exp.f64 (neg.f64 b))) (exp.f64 (neg.f64 a)))
(fma.f64 #s(literal -1 binary64) (/.f64 #s(literal -1 binary64) (exp.f64 a)) (exp.f64 (neg.f64 b)))
(-.f64 (+.f64 (exp.f64 (neg.f64 b)) (cosh.f64 a)) (sinh.f64 a))
(-.f64 (+.f64 (exp.f64 (neg.f64 a)) (cosh.f64 b)) (sinh.f64 b))
(-.f64 (/.f64 (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 2 binary64)) (-.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) (/.f64 (pow.f64 (exp.f64 (neg.f64 a)) #s(literal 2 binary64)) (-.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))))
(-.f64 (cosh.f64 a) (-.f64 (sinh.f64 a) (exp.f64 (neg.f64 b))))
(-.f64 (cosh.f64 b) (+.f64 (sinh.f64 b) (/.f64 #s(literal -1 binary64) (exp.f64 a))))
(-.f64 (cosh.f64 b) (-.f64 (sinh.f64 b) (exp.f64 (neg.f64 a))))
(-.f64 (exp.f64 (neg.f64 b)) (/.f64 #s(literal -1 binary64) (exp.f64 a)))
(-.f64 (exp.f64 (neg.f64 a)) (*.f64 (neg.f64 (exp.f64 (neg.f64 b))) #s(literal 1 binary64)))
(-.f64 (exp.f64 (neg.f64 a)) (*.f64 #s(literal -1 binary64) (exp.f64 (neg.f64 b))))
(+.f64 (+.f64 (exp.f64 (neg.f64 b)) (cosh.f64 a)) (sinh.f64 (neg.f64 a)))
(+.f64 (+.f64 (exp.f64 (neg.f64 a)) (cosh.f64 b)) (sinh.f64 (neg.f64 b)))
(+.f64 (/.f64 (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 3 binary64)) (fma.f64 (exp.f64 (neg.f64 a)) (-.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b))) (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 2 binary64)))) (/.f64 (pow.f64 (exp.f64 (neg.f64 a)) #s(literal 3 binary64)) (fma.f64 (exp.f64 (neg.f64 a)) (-.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b))) (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 2 binary64)))))
(+.f64 (cosh.f64 a) (+.f64 (sinh.f64 (neg.f64 a)) (exp.f64 (neg.f64 b))))
(+.f64 (cosh.f64 b) (-.f64 (sinh.f64 (neg.f64 b)) (/.f64 #s(literal -1 binary64) (exp.f64 a))))
(+.f64 (cosh.f64 b) (+.f64 (sinh.f64 (neg.f64 b)) (exp.f64 (neg.f64 a))))
(+.f64 (exp.f64 (neg.f64 b)) (*.f64 (neg.f64 (/.f64 #s(literal -1 binary64) (exp.f64 a))) #s(literal 1 binary64)))
(+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))
(+.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b)))
(/.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (-.f64 (neg.f64 b) (neg.f64 a)))
(/.f64 (neg.f64 (fma.f64 a a (*.f64 b (neg.f64 b)))) (neg.f64 (-.f64 (neg.f64 a) (neg.f64 b))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (neg.f64 b) #s(literal 3 binary64)) (pow.f64 (neg.f64 a) #s(literal 3 binary64)))) (neg.f64 (fma.f64 a a (fma.f64 b b (*.f64 a (neg.f64 b))))))
(/.f64 (fma.f64 a a (*.f64 b (neg.f64 b))) (-.f64 (neg.f64 a) (neg.f64 b)))
(/.f64 (+.f64 (pow.f64 (neg.f64 b) #s(literal 3 binary64)) (pow.f64 (neg.f64 a) #s(literal 3 binary64))) (fma.f64 b b (-.f64 (*.f64 a a) (*.f64 (neg.f64 b) (neg.f64 a)))))
(/.f64 (+.f64 (pow.f64 (neg.f64 b) #s(literal 3 binary64)) (pow.f64 (neg.f64 a) #s(literal 3 binary64))) (fma.f64 a a (fma.f64 b b (*.f64 a (neg.f64 b)))))
(neg.f64 (+.f64 b a))
(-.f64 (/.f64 (*.f64 a a) (-.f64 (neg.f64 a) (neg.f64 b))) (/.f64 (*.f64 b b) (-.f64 (neg.f64 a) (neg.f64 b))))
(+.f64 (/.f64 (pow.f64 (neg.f64 a) #s(literal 3 binary64)) (fma.f64 a a (fma.f64 b b (*.f64 a (neg.f64 b))))) (/.f64 (pow.f64 (neg.f64 b) #s(literal 3 binary64)) (fma.f64 a a (fma.f64 b b (*.f64 a (neg.f64 b))))))
(+.f64 (log.f64 (exp.f64 (neg.f64 a))) (log.f64 (exp.f64 (neg.f64 b))))
(+.f64 (neg.f64 b) (neg.f64 a))
(+.f64 (neg.f64 a) (neg.f64 b))
(log.f64 (exp.f64 (neg.f64 (+.f64 b a))))
(/.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 2 binary64))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 2 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal -1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 3 binary64)) #s(literal -1 binary64))) (neg.f64 (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b))))
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 2 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal -1 binary64)))
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 3 binary64)) #s(literal -1 binary64)) (+.f64 #s(literal 1 binary64) (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b))))
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 3 binary64)) #s(literal -1 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b)))
(fma.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal -1 binary64)) #s(literal -1 binary64) #s(literal 1 binary64))
(fma.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) (*.f64 b #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 1 binary64))
(fma.f64 b (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 b (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) #s(literal 1 binary64))
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 2 binary64)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal -1 binary64))))
(-.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal -1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64))) b))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 b) (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64))))
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 3 binary64)) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b))) (/.f64 #s(literal 1 binary64) (-.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 2 binary64)) #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b))))
(+.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b))
(/.f64 (neg.f64 (-.f64 (pow.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) #s(literal 2 binary64)) (pow.f64 (neg.f64 (+.f64 b a)) #s(literal 2 binary64)))) (neg.f64 (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) (neg.f64 (+.f64 b a)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) #s(literal 3 binary64)) (neg.f64 (pow.f64 (+.f64 b a) #s(literal 3 binary64))))) (neg.f64 (fma.f64 (neg.f64 (+.f64 b a)) (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) (neg.f64 (+.f64 b a))) (pow.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) #s(literal 2 binary64)) (pow.f64 (neg.f64 (+.f64 b a)) #s(literal 2 binary64))) (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) (neg.f64 (+.f64 b a))))
(/.f64 (-.f64 (pow.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) #s(literal 3 binary64)) (neg.f64 (pow.f64 (+.f64 b a) #s(literal 3 binary64)))) (fma.f64 (neg.f64 (+.f64 b a)) (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) (neg.f64 (+.f64 b a))) (pow.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) #s(literal 2 binary64))))
(-.f64 (-.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) (neg.f64 b)) (neg.f64 a))
(-.f64 (-.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) (neg.f64 a)) (neg.f64 b))
(-.f64 (/.f64 (pow.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) #s(literal 2 binary64)) (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) (neg.f64 (+.f64 b a)))) (/.f64 (pow.f64 (neg.f64 (+.f64 b a)) #s(literal 2 binary64)) (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) (neg.f64 (+.f64 b a)))))
(-.f64 (/.f64 (pow.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) #s(literal 3 binary64)) (fma.f64 (neg.f64 (+.f64 b a)) (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) (neg.f64 (+.f64 b a))) (pow.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) #s(literal 2 binary64)))) (/.f64 (neg.f64 (pow.f64 (+.f64 b a) #s(literal 3 binary64))) (fma.f64 (neg.f64 (+.f64 b a)) (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) (neg.f64 (+.f64 b a))) (pow.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) #s(literal 2 binary64)))))
(-.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))) (neg.f64 (+.f64 b a)))
(log.f64 (/.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a))) (exp.f64 (neg.f64 (+.f64 b a)))))
(-.f64 (log.f64 (-.f64 (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 2 binary64)) (pow.f64 (exp.f64 (neg.f64 a)) #s(literal 2 binary64)))) (log.f64 (-.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a)))))
(-.f64 (log.f64 (+.f64 (pow.f64 (exp.f64 (neg.f64 a)) #s(literal 3 binary64)) (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 3 binary64)))) (log.f64 (fma.f64 (exp.f64 (neg.f64 a)) (-.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b))) (pow.f64 (exp.f64 (neg.f64 b)) #s(literal 2 binary64)))))
(log.f64 (+.f64 (exp.f64 (neg.f64 b)) (exp.f64 (neg.f64 a))))
(*.f64 (/.f64 #s(literal -1 binary64) (exp.f64 a)) #s(literal -1 binary64))
(*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 a)))
(*.f64 #s(literal -1 binary64) (/.f64 #s(literal -1 binary64) (exp.f64 a)))
(pow.f64 (exp.f64 a) #s(literal -1 binary64))
(/.f64 (-.f64 (*.f64 (cosh.f64 a) (cosh.f64 a)) (*.f64 (sinh.f64 a) (sinh.f64 a))) (exp.f64 a))
(/.f64 (-.f64 (*.f64 (cosh.f64 a) (cosh.f64 a)) (*.f64 (sinh.f64 (neg.f64 a)) (sinh.f64 (neg.f64 a)))) (-.f64 (cosh.f64 a) (sinh.f64 (neg.f64 a))))
(/.f64 (-.f64 (pow.f64 (cosh.f64 a) #s(literal 3 binary64)) (pow.f64 (sinh.f64 a) #s(literal 3 binary64))) (fma.f64 (cosh.f64 a) (cosh.f64 a) (fma.f64 (sinh.f64 a) (sinh.f64 a) (*.f64 (cosh.f64 a) (sinh.f64 a)))))
(/.f64 (+.f64 (pow.f64 (cosh.f64 a) #s(literal 3 binary64)) (pow.f64 (sinh.f64 (neg.f64 a)) #s(literal 3 binary64))) (fma.f64 (cosh.f64 a) (cosh.f64 a) (-.f64 (*.f64 (sinh.f64 (neg.f64 a)) (sinh.f64 (neg.f64 a))) (*.f64 (cosh.f64 a) (sinh.f64 (neg.f64 a))))))
(/.f64 #s(literal 1 binary64) (exp.f64 a))
(/.f64 #s(literal -1 binary64) (neg.f64 (exp.f64 a)))
(fma.f64 (cosh.f64 a) #s(literal 1 binary64) (*.f64 (sinh.f64 (neg.f64 a)) #s(literal 1 binary64)))
(fma.f64 #s(literal 1 binary64) (cosh.f64 a) (*.f64 #s(literal 1 binary64) (sinh.f64 (neg.f64 a))))
(-.f64 (cosh.f64 a) (sinh.f64 a))
(exp.f64 (-.f64 #s(literal 0 binary64) a))
(exp.f64 (+.f64 (neg.f64 a) #s(literal 0 binary64)))
(exp.f64 (+.f64 #s(literal 0 binary64) (neg.f64 a)))
(exp.f64 (neg.f64 a))
(+.f64 (*.f64 (cosh.f64 a) #s(literal 1 binary64)) (*.f64 (sinh.f64 (neg.f64 a)) #s(literal 1 binary64)))
(+.f64 (*.f64 #s(literal 1 binary64) (cosh.f64 a)) (*.f64 #s(literal 1 binary64) (sinh.f64 (neg.f64 a))))
(+.f64 (cosh.f64 a) (sinh.f64 (neg.f64 a)))
(+.f64 (sinh.f64 (neg.f64 a)) (cosh.f64 a))

eval44.0ms (0.4%)

Memory
-29.2MiB live, 62.0MiB allocated; 6ms collecting garbage
Compiler

Compiled 9 346 to 1 483 computations (84.1% saved)

prune12.0ms (0.1%)

Memory
27.3MiB live, 27.3MiB allocated; 0ms collecting garbage
Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New36110371
Fresh314
Picked505
Done101
Total37011381
Accuracy
100.0%
Counts
381 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.4%
(-.f64 (log.f64 (+.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 3 binary64)) (pow.f64 (exp.f64 b) #s(literal 3 binary64)))) (log.f64 (fma.f64 (exp.f64 b) (-.f64 (exp.f64 b) #s(approx (exp a) #s(literal 1 binary64))) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)))))
55.0%
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp 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)))))
54.8%
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
56.6%
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
48.6%
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
55.5%
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
53.4%
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))))
52.0%
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
53.4%
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) #s(literal 1 binary64))))
54.6%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
53.1%
#s(approx (log (+ (exp a) (exp b))) #s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64)))))
Compiler

Compiled 422 to 312 computations (26.1% saved)

simplify125.0ms (1.2%)

Memory
-34.0MiB live, 107.7MiB allocated; 11ms collecting garbage
Localize:

Found 17 expressions of interest:

NewMetricScoreProgram
cost-diff0
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
cost-diff0
#s(approx (exp a) #s(literal 1 binary64))
cost-diff0
(+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
cost-diff0
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
cost-diff0
(log.f64 #s(literal 2 binary64))
cost-diff0
(fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))
cost-diff0
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
cost-diff0
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
cost-diff0
(+.f64 #s(literal 1 binary64) a)
cost-diff0
#s(approx (exp a) (+.f64 #s(literal 1 binary64) a))
cost-diff0
(log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)))
cost-diff0
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
cost-diff0
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
cost-diff0
(exp.f64 (neg.f64 b))
cost-diff0
(log1p.f64 (exp.f64 (neg.f64 b)))
cost-diff0
(+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)
cost-diff0
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
047210
063196
1111196
2280196
31339196
47715196
08051192
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
(+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)
(log1p.f64 (exp.f64 (neg.f64 b)))
(exp.f64 (neg.f64 b))
(neg.f64 b)
b
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
b
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
(log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)))
#s(approx (exp a) (+.f64 #s(literal 1 binary64) a))
(+.f64 #s(literal 1 binary64) a)
#s(literal 1 binary64)
a
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
(fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))
#s(literal 1/2 binary64)
b
(log.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
#s(approx (exp a) #s(literal 1 binary64))
#s(literal 1 binary64)
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64))
#s(literal 1/2 binary64)
b
Outputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
(+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)
(log1p.f64 (exp.f64 (neg.f64 b)))
(exp.f64 (neg.f64 b))
(neg.f64 b)
b
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
b
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (-.f64 a #s(literal -1 binary64)))))
(log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)))
(log1p.f64 #s(approx (exp a) (-.f64 a #s(literal -1 binary64))))
#s(approx (exp a) (+.f64 #s(literal 1 binary64) a))
#s(approx (exp a) (-.f64 a #s(literal -1 binary64)))
(+.f64 #s(literal 1 binary64) a)
(-.f64 a #s(literal -1 binary64))
#s(literal 1 binary64)
a
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
(fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))
#s(literal 1/2 binary64)
b
(log.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(log.f64 (+.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(approx (exp a) #s(literal 1 binary64))))
(+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
(+.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(approx (exp a) #s(literal 1 binary64)))
#s(approx (exp a) #s(literal 1 binary64))
#s(literal 1 binary64)
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64))
#s(literal 1/2 binary64)
b

localize284.0ms (2.7%)

Memory
45.5MiB live, 277.7MiB allocated; 15ms collecting garbage
Localize:

Found 17 expressions of interest:

NewMetricScoreProgram
accuracy0.0078125
(+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
accuracy0.7813324166544336
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
accuracy0.9908220402526772
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
accuracy1.099743507152716
#s(approx (exp a) #s(literal 1 binary64))
accuracy0.0
(log.f64 #s(literal 2 binary64))
accuracy0.0078125
(fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))
accuracy0.9642977432428482
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
accuracy1.0639723260022196
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
accuracy0.0
(+.f64 #s(literal 1 binary64) a)
accuracy0.0
(log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)))
accuracy0.8525214901419954
#s(approx (exp a) (+.f64 #s(literal 1 binary64) a))
accuracy2.3275551328428286
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
accuracy32.88228786679925
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
accuracy0.0
(exp.f64 (neg.f64 b))
accuracy0.0078125
(+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)
accuracy0.0078125
(log1p.f64 (exp.f64 (neg.f64 b)))
accuracy1.0639723260022196
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
Samples
216.0ms113×5exit
44.0ms140×0valid
2.0ms1valid
Compiler

Compiled 142 to 35 computations (75.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 217.0ms
adjust: 76.0ms (35.1% of total)
ival-log: 62.0ms (28.6% of total)
ival-log1p: 21.0ms (9.7% of total)
ival-exp: 20.0ms (9.2% of total)
ival-add: 15.0ms (6.9% of total)
ival-mult: 12.0ms (5.5% of total)
ival-sub: 5.0ms (2.3% of total)
ival-div: 2.0ms (0.9% of total)
ival-neg: 2.0ms (0.9% of total)
exact: 1.0ms (0.5% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series116.0ms (1.1%)

Memory
10.1MiB live, 148.2MiB allocated; 55ms collecting garbage
Counts
17 → 84
Calls
Call 1
Inputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
(+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)
(log1p.f64 (exp.f64 (neg.f64 b)))
(exp.f64 (neg.f64 b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
(log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)))
#s(approx (exp a) (+.f64 #s(literal 1 binary64) a))
(+.f64 #s(literal 1 binary64) a)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
(fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))
(log.f64 #s(literal 2 binary64))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
#s(approx (exp a) #s(literal 1 binary64))
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
Outputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (log (+ 1 (exp (neg b)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- 1 (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* 1/2 (* a (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2)))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* a (+ (* 1/6 (* a (- (* 3 (/ 1 (pow (+ 1 (exp (neg b))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg b))) 3))) (/ 1 (+ 1 (exp (neg b)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2))))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp b)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (/ a (+ 1 (exp b))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* 1/2 (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* a (+ (* 1/6 (* a (- (+ (* 2 (/ 1 (pow (+ 1 (exp b)) 3))) (/ 1 (+ 1 (exp b)))) (* 3 (/ 1 (pow (+ 1 (exp b)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log 2)))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* 1/2 a))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* a (+ 1/2 (* 1/8 a))))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* a (+ 1/2 (* a (+ 1/8 (* -1/192 (pow a 2)))))))))
#s(approx (exp a) #s(hole binary64 1))
#s(approx (exp a) #s(hole binary64 (+ 1 a)))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* 1/2 a))))))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))))
#s(approx (+ 1 a) #s(hole binary64 1))
#s(approx (+ 1 a) #s(hole binary64 (+ 1 a)))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- 1/8 (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- (+ 1/8 (* -1 (* a (+ (* -1/2 (+ (* -1/8 b) (* 1/8 b))) (+ (* -1/16 b) (* 1/24 b)))))) (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp b))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ a (exp b)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* 1/2 a)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* a (+ 1/2 (* 1/6 a)))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 a))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* a (+ 1 (+ (/ b a) (/ (log (+ (exp (neg a)) (exp (neg b)))) a))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (exp a) #s(hole binary64 (exp a)))
#s(approx (+ 1 a) #s(hole binary64 a))
#s(approx (+ 1 a) #s(hole binary64 (* a (+ 1 (/ 1 a)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ (exp a) (exp b))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* a (- (* -1 (/ (+ b (log (+ (exp (neg b)) (exp (* -1 a))))) a)) 1)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (log (+ 1 (exp (neg a)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- 1 (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* 1/2 (* b (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2)))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* b (+ (* 1/6 (* b (- (* 3 (/ 1 (pow (+ 1 (exp (neg a))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg a))) 3))) (/ 1 (+ 1 (exp (neg a)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2))))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (log 2)))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* 1/8 b))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* b (+ 1/8 (* -1/192 (pow b 2)))))))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log 2)))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* -1/2 b))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* b (- (* 1/8 b) 1/2)))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* b (- (* b (+ 1/8 (* -1/192 (pow b 2)))) 1/2)))))
#s(approx (exp (neg b)) #s(hole binary64 1))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* -1 b))))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* b (- (* 1/2 b) 1)))))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* b (- (* b (+ 1/2 (* -1/6 b))) 1)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* 1/2 (* b (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* b (+ (* 1/6 (* b (- (+ (* 2 (/ 1 (pow (+ 1 (exp a)) 3))) (/ 1 (+ 1 (exp a)))) (* 3 (/ 1 (pow (+ 1 (exp a)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2)))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (log 2)))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp a))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ b (exp a)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* 1/2 b)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))))
#s(approx (exp b) #s(hole binary64 1))
#s(approx (exp b) #s(hole binary64 (+ 1 b)))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* 1/2 b))))))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* b (+ 1 (+ (/ a b) (/ (log (+ (exp (neg a)) (exp (neg b)))) b))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 b))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (* b (+ 1 (/ (log (+ 1 (exp (neg b)))) b)))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log (+ 1 (exp (neg b))))))
#s(approx (exp (neg b)) #s(hole binary64 (exp (neg b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* b (+ (/ 1 (+ 1 (exp a))) (/ (log (+ 1 (exp a))) b)))))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* 1/2 b)))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* b (+ 1/2 (/ (log 2) b)))))
#s(approx (exp b) #s(hole binary64 (exp b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (+ a (log (+ (exp (neg a)) (exp (* -1 b))))) b)) 1)))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp (* -1 b)))) b)) 1)))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log (+ 1 (exp (* -1 b))))))
#s(approx (exp (neg b)) #s(hole binary64 (exp (* -1 b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp a))) b)) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log 2) b)) 1/2)))))
Calls

6 calls:

TimeVariablePointExpression
33.0ms
a
@inf
((- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (log (+ 1 (exp (neg b)))) (exp (neg b)) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (log (+ (exp a) (exp b))) (log (+ 1 (exp a))) (exp a) (+ 1 a) (log (+ (exp a) (exp b))) (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (+ (* 1/2 b) (log 2)) (log 2) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (exp b))
30.0ms
b
@inf
((- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (log (+ 1 (exp (neg b)))) (exp (neg b)) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (log (+ (exp a) (exp b))) (log (+ 1 (exp a))) (exp a) (+ 1 a) (log (+ (exp a) (exp b))) (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (+ (* 1/2 b) (log 2)) (log 2) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (exp b))
24.0ms
b
@-inf
((- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (log (+ 1 (exp (neg b)))) (exp (neg b)) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (log (+ (exp a) (exp b))) (log (+ 1 (exp a))) (exp a) (+ 1 a) (log (+ (exp a) (exp b))) (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (+ (* 1/2 b) (log 2)) (log 2) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (exp b))
20.0ms
a
@-inf
((- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (log (+ 1 (exp (neg b)))) (exp (neg b)) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (log (+ (exp a) (exp b))) (log (+ 1 (exp a))) (exp a) (+ 1 a) (log (+ (exp a) (exp b))) (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (+ (* 1/2 b) (log 2)) (log 2) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (exp b))
6.0ms
b
@0
((- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (log (+ 1 (exp (neg b)))) (exp (neg b)) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (log (+ (exp a) (exp b))) (log (+ 1 (exp a))) (exp a) (+ 1 a) (log (+ (exp a) (exp b))) (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (+ (* 1/2 b) (log 2)) (log 2) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (exp b))

simplify136.0ms (1.3%)

Memory
0.1MiB live, 144.7MiB allocated; 16ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
04081749
110831735
237201717
080861526
Stop Event
iter limit
node limit
Counts
84 → 84
Calls
Call 1
Inputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (log (+ 1 (exp (neg b)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- 1 (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* 1/2 (* a (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2)))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* a (+ (* 1/6 (* a (- (* 3 (/ 1 (pow (+ 1 (exp (neg b))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg b))) 3))) (/ 1 (+ 1 (exp (neg b)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2))))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp b)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (/ a (+ 1 (exp b))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* 1/2 (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* a (+ (* 1/6 (* a (- (+ (* 2 (/ 1 (pow (+ 1 (exp b)) 3))) (/ 1 (+ 1 (exp b)))) (* 3 (/ 1 (pow (+ 1 (exp b)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log 2)))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* 1/2 a))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* a (+ 1/2 (* 1/8 a))))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* a (+ 1/2 (* a (+ 1/8 (* -1/192 (pow a 2)))))))))
#s(approx (exp a) #s(hole binary64 1))
#s(approx (exp a) #s(hole binary64 (+ 1 a)))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* 1/2 a))))))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))))
#s(approx (+ 1 a) #s(hole binary64 1))
#s(approx (+ 1 a) #s(hole binary64 (+ 1 a)))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- 1/8 (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- (+ 1/8 (* -1 (* a (+ (* -1/2 (+ (* -1/8 b) (* 1/8 b))) (+ (* -1/16 b) (* 1/24 b)))))) (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp b))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ a (exp b)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* 1/2 a)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* a (+ 1/2 (* 1/6 a)))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 a))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* a (+ 1 (+ (/ b a) (/ (log (+ (exp (neg a)) (exp (neg b)))) a))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (exp a) #s(hole binary64 (exp a)))
#s(approx (+ 1 a) #s(hole binary64 a))
#s(approx (+ 1 a) #s(hole binary64 (* a (+ 1 (/ 1 a)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ (exp a) (exp b))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* a (- (* -1 (/ (+ b (log (+ (exp (neg b)) (exp (* -1 a))))) a)) 1)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (log (+ 1 (exp (neg a)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- 1 (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* 1/2 (* b (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2)))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* b (+ (* 1/6 (* b (- (* 3 (/ 1 (pow (+ 1 (exp (neg a))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg a))) 3))) (/ 1 (+ 1 (exp (neg a)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2))))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (log 2)))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* 1/8 b))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* b (+ 1/8 (* -1/192 (pow b 2)))))))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log 2)))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* -1/2 b))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* b (- (* 1/8 b) 1/2)))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* b (- (* b (+ 1/8 (* -1/192 (pow b 2)))) 1/2)))))
#s(approx (exp (neg b)) #s(hole binary64 1))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* -1 b))))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* b (- (* 1/2 b) 1)))))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* b (- (* b (+ 1/2 (* -1/6 b))) 1)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* 1/2 (* b (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* b (+ (* 1/6 (* b (- (+ (* 2 (/ 1 (pow (+ 1 (exp a)) 3))) (/ 1 (+ 1 (exp a)))) (* 3 (/ 1 (pow (+ 1 (exp a)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2)))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (log 2)))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp a))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ b (exp a)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* 1/2 b)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))))
#s(approx (exp b) #s(hole binary64 1))
#s(approx (exp b) #s(hole binary64 (+ 1 b)))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* 1/2 b))))))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* b (+ 1 (+ (/ a b) (/ (log (+ (exp (neg a)) (exp (neg b)))) b))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 b))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (* b (+ 1 (/ (log (+ 1 (exp (neg b)))) b)))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log (+ 1 (exp (neg b))))))
#s(approx (exp (neg b)) #s(hole binary64 (exp (neg b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* b (+ (/ 1 (+ 1 (exp a))) (/ (log (+ 1 (exp a))) b)))))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* 1/2 b)))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* b (+ 1/2 (/ (log 2) b)))))
#s(approx (exp b) #s(hole binary64 (exp b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (+ a (log (+ (exp (neg a)) (exp (* -1 b))))) b)) 1)))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp (* -1 b)))) b)) 1)))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log (+ 1 (exp (* -1 b))))))
#s(approx (exp (neg b)) #s(hole binary64 (exp (* -1 b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp a))) b)) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log 2) b)) 1/2)))))
Outputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (log (+ 1 (exp (neg b)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- 1 (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64)))) a (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* 1/2 (* a (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2)))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (fma.f64 (*.f64 #s(literal 1/2 binary64) a) (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64)) #s(literal 2 binary64)))) (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64))))) a (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* a (+ (* 1/6 (* a (- (* 3 (/ 1 (pow (+ 1 (exp (neg b))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg b))) 3))) (/ 1 (+ 1 (exp (neg b)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2))))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) a) (-.f64 (-.f64 (/.f64 #s(literal 3 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64)) #s(literal 2 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64)))) (/.f64 #s(literal 2 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64)) #s(literal 3 binary64)))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) a (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64))))) a (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp b)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (/ a (+ 1 (exp b))))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 a (-.f64 (exp.f64 b) #s(literal -1 binary64))) (log1p.f64 (exp.f64 b))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* 1/2 (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (*.f64 #s(literal 1/2 binary64) a) (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 b) #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 (log1p.f64 (exp.f64 b))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* a (+ (* 1/6 (* a (- (+ (* 2 (/ 1 (pow (+ 1 (exp b)) 3))) (/ 1 (+ 1 (exp b)))) (* 3 (/ 1 (pow (+ 1 (exp b)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) a) (+.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 b) #s(literal -1 binary64))) (/.f64 (+.f64 (/.f64 #s(literal 2 binary64) (-.f64 (exp.f64 b) #s(literal -1 binary64))) #s(literal -3 binary64)) (pow.f64 (-.f64 (exp.f64 b) #s(literal -1 binary64)) #s(literal 2 binary64)))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 b) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 b) #s(literal -1 binary64)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) a (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 b) #s(literal -1 binary64)))) a (log1p.f64 (exp.f64 b))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log 2)))
#s(approx (log (+ 1 (exp a))) (log.f64 #s(literal 2 binary64)))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* 1/2 a))))
#s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* a (+ 1/2 (* 1/8 a))))))
#s(approx (log (+ 1 (exp a))) (fma.f64 (fma.f64 #s(literal 1/8 binary64) a #s(literal 1/2 binary64)) a (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (+ (log 2) (* a (+ 1/2 (* a (+ 1/8 (* -1/192 (pow a 2)))))))))
#s(approx (log (+ 1 (exp a))) (fma.f64 (fma.f64 (fma.f64 (*.f64 a a) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) a #s(literal 1/2 binary64)) a (log.f64 #s(literal 2 binary64))))
#s(approx (exp a) #s(hole binary64 1))
#s(approx (exp a) #s(literal 1 binary64))
#s(approx (exp a) #s(hole binary64 (+ 1 a)))
#s(approx (exp a) (-.f64 a #s(literal -1 binary64)))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* 1/2 a))))))
#s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))
#s(approx (exp a) #s(hole binary64 (+ 1 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))))
#s(approx (exp 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)))
#s(approx (+ 1 a) #s(hole binary64 1))
#s(approx (+ 1 a) #s(literal 1 binary64))
#s(approx (+ 1 a) #s(hole binary64 (+ 1 a)))
#s(approx (+ 1 a) (-.f64 a #s(literal -1 binary64)))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) a (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- 1/8 (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 (fma.f64 #s(literal -1/4 binary64) b (fma.f64 #s(literal 1/8 binary64) a #s(literal 1/2 binary64))) a (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- (+ 1/8 (* -1 (* a (+ (* -1/2 (+ (* -1/8 b) (* 1/8 b))) (+ (* -1/16 b) (* 1/24 b)))))) (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 (fma.f64 #s(literal -1/4 binary64) b (fma.f64 (fma.f64 (fma.f64 #s(literal 1/48 binary64) b #s(literal 0 binary64)) a #s(literal 1/8 binary64)) a #s(literal 1/2 binary64))) a (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp b))))
#s(approx (+ (exp a) (exp b)) (-.f64 (exp.f64 b) #s(literal -1 binary64)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ a (exp b)))))
#s(approx (+ (exp a) (exp b)) (-.f64 (+.f64 (exp.f64 b) a) #s(literal -1 binary64)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* 1/2 a)))))))
#s(approx (+ (exp a) (exp b)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (-.f64 (exp.f64 b) #s(literal -1 binary64))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp b) (* a (+ 1 (* a (+ 1/2 (* 1/6 a)))))))))
#s(approx (+ (exp a) (exp b)) (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))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 a))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) a)
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* a (+ 1 (+ (/ b a) (/ (log (+ (exp (neg a)) (exp (neg b)))) a))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (/.f64 (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b)))) b) #s(literal 1 binary64)) #s(literal 1 binary64) a))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (log (+ (exp a) (exp b))) (log.f64 (+.f64 (exp.f64 b) (exp.f64 a))))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (log (+ 1 (exp a))) (log1p.f64 (exp.f64 a)))
#s(approx (exp a) #s(hole binary64 (exp a)))
#s(approx (exp a) (exp.f64 a))
#s(approx (+ 1 a) #s(hole binary64 a))
#s(approx (+ 1 a) a)
#s(approx (+ 1 a) #s(hole binary64 (* a (+ 1 (/ 1 a)))))
#s(approx (+ 1 a) (-.f64 a #s(literal -1 binary64)))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ (exp a) (exp b))))
#s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 b) (exp.f64 a)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* a (- (* -1 (/ (+ b (log (+ (exp (neg b)) (exp (* -1 a))))) a)) 1)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (*.f64 (fma.f64 (/.f64 (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b)))) b) a) #s(literal -1 binary64) #s(literal -1 binary64)) (neg.f64 a)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (log (+ 1 (exp (neg a)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 a))) a))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- 1 (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64)))) b (+.f64 (log1p.f64 (exp.f64 (neg.f64 a))) a)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* 1/2 (* b (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2)))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (fma.f64 (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64)) #s(literal 2 binary64)))) (*.f64 #s(literal 1/2 binary64) b) (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64))))) b (+.f64 (log1p.f64 (exp.f64 (neg.f64 a))) a)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* b (+ (* 1/6 (* b (- (* 3 (/ 1 (pow (+ 1 (exp (neg a))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg a))) 3))) (/ 1 (+ 1 (exp (neg a)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2))))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) b) (-.f64 (-.f64 (/.f64 #s(literal 3 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64)) #s(literal 2 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64)))) (/.f64 #s(literal 2 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64)) #s(literal 3 binary64)))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) b (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64))))) b (+.f64 (log1p.f64 (exp.f64 (neg.f64 a))) a)))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (log 2)))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (log.f64 #s(literal 2 binary64)))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* 1/8 b))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* b (+ 1/8 (* -1/192 (pow b 2)))))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 (fma.f64 (*.f64 b b) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log 2)))
#s(approx (log (+ 1 (exp (neg b)))) (log.f64 #s(literal 2 binary64)))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* -1/2 b))))
#s(approx (log (+ 1 (exp (neg b)))) (fma.f64 #s(literal -1/2 binary64) b (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* b (- (* 1/8 b) 1/2)))))
#s(approx (log (+ 1 (exp (neg b)))) (fma.f64 (-.f64 (*.f64 #s(literal 1/8 binary64) b) #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* b (- (* b (+ 1/8 (* -1/192 (pow b 2)))) 1/2)))))
#s(approx (log (+ 1 (exp (neg b)))) (fma.f64 (-.f64 (*.f64 (fma.f64 (*.f64 b b) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) b) #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
#s(approx (exp (neg b)) #s(hole binary64 1))
#s(approx (exp (neg b)) #s(literal 1 binary64))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* -1 b))))
#s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* b (- (* 1/2 b) 1)))))
#s(approx (exp (neg b)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal -1 binary64)) b #s(literal 1 binary64)))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* b (- (* b (+ 1/2 (* -1/6 b))) 1)))))
#s(approx (exp (neg 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)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* 1/2 (* b (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 a) #s(literal -1 binary64)) #s(literal 2 binary64)))) (*.f64 #s(literal 1/2 binary64) b) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64)))) b (log1p.f64 (exp.f64 a))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* b (+ (* 1/6 (* b (- (+ (* 2 (/ 1 (pow (+ 1 (exp a)) 3))) (/ 1 (+ 1 (exp a)))) (* 3 (/ 1 (pow (+ 1 (exp a)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2)))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) b) (+.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64))) (/.f64 (+.f64 (/.f64 #s(literal 2 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64))) #s(literal -3 binary64)) (pow.f64 (-.f64 (exp.f64 a) #s(literal -1 binary64)) #s(literal 2 binary64)))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 a) #s(literal -1 binary64)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) b (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64)))) b (log1p.f64 (exp.f64 a))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (log1p.f64 (exp.f64 a)))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (log 2)))
#s(approx (+ (* 1/2 b) (log 2)) (log.f64 #s(literal 2 binary64)))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (* 1/2 b) (log 2)) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (exp a))))
#s(approx (+ (exp a) (exp b)) (-.f64 (exp.f64 a) #s(literal -1 binary64)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ b (exp a)))))
#s(approx (+ (exp a) (exp b)) (-.f64 (+.f64 (exp.f64 a) b) #s(literal -1 binary64)))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* 1/2 b)))))))
#s(approx (+ (exp a) (exp b)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b (-.f64 (exp.f64 a) #s(literal -1 binary64))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ 1 (+ (exp a) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))))
#s(approx (+ (exp a) (exp 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 (exp.f64 a) #s(literal -1 binary64))))
#s(approx (exp b) #s(hole binary64 1))
#s(approx (exp b) #s(literal 1 binary64))
#s(approx (exp b) #s(hole binary64 (+ 1 b)))
#s(approx (exp b) (-.f64 b #s(literal -1 binary64)))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* 1/2 b))))))
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))))
#s(approx (exp 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)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* b (+ 1 (+ (/ a b) (/ (log (+ (exp (neg a)) (exp (neg b)))) b))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (/.f64 (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b)))) a) b) b b))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 b))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) b)
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (* b (+ 1 (/ (log (+ 1 (exp (neg b)))) b)))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (/.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b) b b))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log (+ 1 (exp (neg b))))))
#s(approx (log (+ 1 (exp (neg b)))) (log1p.f64 (exp.f64 (neg.f64 b))))
#s(approx (exp (neg b)) #s(hole binary64 (exp (neg b))))
#s(approx (exp (neg b)) (exp.f64 (neg.f64 b)))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* b (+ (/ 1 (+ 1 (exp a))) (/ (log (+ 1 (exp a))) b)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 (/.f64 (log1p.f64 (exp.f64 a)) b) b (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* 1/2 b)))
#s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* b (+ 1/2 (/ (log 2) b)))))
#s(approx (+ (* 1/2 b) (log 2)) (*.f64 (+.f64 (/.f64 (log.f64 #s(literal 2 binary64)) b) #s(literal 1/2 binary64)) b))
#s(approx (exp b) #s(hole binary64 (exp b)))
#s(approx (exp b) (exp.f64 b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (+ a (log (+ (exp (neg a)) (exp (* -1 b))))) b)) 1)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (*.f64 (fma.f64 (/.f64 (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b)))) a) b) #s(literal -1 binary64) #s(literal -1 binary64)) (neg.f64 b)))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp (* -1 b)))) b)) 1)))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (*.f64 (fma.f64 (/.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b) #s(literal -1 binary64) #s(literal -1 binary64)) (neg.f64 b)))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log (+ 1 (exp (* -1 b))))))
#s(approx (log (+ 1 (exp (neg b)))) (log1p.f64 (exp.f64 (neg.f64 b))))
#s(approx (exp (neg b)) #s(hole binary64 (exp (* -1 b))))
#s(approx (exp (neg b)) (exp.f64 (neg.f64 b)))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp a))) b)) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (*.f64 (-.f64 (/.f64 (log1p.f64 (exp.f64 a)) (neg.f64 b)) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64)))) (neg.f64 b)))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log 2) b)) 1/2)))))
#s(approx (+ (* 1/2 b) (log 2)) (*.f64 (-.f64 (/.f64 (log.f64 #s(literal 2 binary64)) (neg.f64 b)) #s(literal 1/2 binary64)) (neg.f64 b)))

rewrite85.0ms (0.8%)

Memory
-26.7MiB live, 65.9MiB allocated; 3ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
047187
063173
1288173
02373169
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
17 → 95
Calls
Call 1
Inputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
(+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)
(log1p.f64 (exp.f64 (neg.f64 b)))
(exp.f64 (neg.f64 b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
(log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)))
#s(approx (exp a) (+.f64 #s(literal 1 binary64) a))
(+.f64 #s(literal 1 binary64) a)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
(fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))
(log.f64 #s(literal 2 binary64))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
#s(approx (exp a) #s(literal 1 binary64))
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
Outputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
(/.f64 (-.f64 (*.f64 b b) (pow.f64 (log1p.f64 (exp.f64 (neg.f64 b))) #s(literal 2 binary64))) (-.f64 b (log1p.f64 (exp.f64 (neg.f64 b)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (log1p.f64 (exp.f64 (neg.f64 b))) #s(literal 2 binary64)) (*.f64 b b))) (neg.f64 (-.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)))
(/.f64 (neg.f64 (+.f64 (pow.f64 b #s(literal 3 binary64)) (pow.f64 (log1p.f64 (exp.f64 (neg.f64 b))) #s(literal 3 binary64)))) (neg.f64 (fma.f64 b (-.f64 b (log1p.f64 (exp.f64 (neg.f64 b)))) (pow.f64 (log1p.f64 (exp.f64 (neg.f64 b))) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (log1p.f64 (exp.f64 (neg.f64 b))) #s(literal 2 binary64)) (*.f64 b b)) (-.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
(/.f64 (+.f64 (pow.f64 b #s(literal 3 binary64)) (pow.f64 (log1p.f64 (exp.f64 (neg.f64 b))) #s(literal 3 binary64))) (fma.f64 b b (-.f64 (pow.f64 (log1p.f64 (exp.f64 (neg.f64 b))) #s(literal 2 binary64)) (*.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))))
(/.f64 (+.f64 (pow.f64 b #s(literal 3 binary64)) (pow.f64 (log1p.f64 (exp.f64 (neg.f64 b))) #s(literal 3 binary64))) (fma.f64 b (-.f64 b (log1p.f64 (exp.f64 (neg.f64 b)))) (pow.f64 (log1p.f64 (exp.f64 (neg.f64 b))) #s(literal 2 binary64))))
(-.f64 (/.f64 (pow.f64 (log1p.f64 (exp.f64 (neg.f64 b))) #s(literal 2 binary64)) (-.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)) (/.f64 (*.f64 b b) (-.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)))
(+.f64 (/.f64 (pow.f64 (log1p.f64 (exp.f64 (neg.f64 b))) #s(literal 3 binary64)) (fma.f64 b (-.f64 b (log1p.f64 (exp.f64 (neg.f64 b)))) (pow.f64 (log1p.f64 (exp.f64 (neg.f64 b))) #s(literal 2 binary64)))) (/.f64 (pow.f64 b #s(literal 3 binary64)) (fma.f64 b (-.f64 b (log1p.f64 (exp.f64 (neg.f64 b)))) (pow.f64 (log1p.f64 (exp.f64 (neg.f64 b))) #s(literal 2 binary64)))))
(+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)
(+.f64 b (log1p.f64 (exp.f64 (neg.f64 b))))
(log1p.f64 (exp.f64 (neg.f64 b)))
(-.f64 (log.f64 (-.f64 #s(literal 1 binary64) (exp.f64 (*.f64 (neg.f64 b) #s(literal 2 binary64))))) (log.f64 (-.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)))))
(-.f64 (log1p.f64 (exp.f64 (*.f64 (neg.f64 b) #s(literal 3 binary64)))) (log1p.f64 (*.f64 (exp.f64 (neg.f64 b)) (expm1.f64 (neg.f64 b)))))
(log.f64 (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64)))
(*.f64 (*.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64)) #s(literal -1 binary64))
(*.f64 #s(literal -1 binary64) (/.f64 #s(literal -1 binary64) (exp.f64 b)))
(*.f64 #s(literal -1 binary64) (*.f64 #s(literal -1 binary64) (exp.f64 (neg.f64 b))))
(*.f64 (exp.f64 (neg.f64 b)) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)))
(pow.f64 (exp.f64 b) #s(literal -1 binary64))
(/.f64 (-.f64 (*.f64 (cosh.f64 b) (cosh.f64 b)) (*.f64 (sinh.f64 (neg.f64 b)) (sinh.f64 (neg.f64 b)))) (-.f64 (cosh.f64 b) (sinh.f64 (neg.f64 b))))
(/.f64 (-.f64 (*.f64 (cosh.f64 b) (cosh.f64 b)) (*.f64 (sinh.f64 b) (sinh.f64 b))) (exp.f64 b))
(/.f64 (-.f64 (pow.f64 (cosh.f64 b) #s(literal 3 binary64)) (pow.f64 (sinh.f64 b) #s(literal 3 binary64))) (fma.f64 (cosh.f64 b) (cosh.f64 b) (fma.f64 (sinh.f64 b) (sinh.f64 b) (*.f64 (cosh.f64 b) (sinh.f64 b)))))
(/.f64 (+.f64 (pow.f64 (cosh.f64 b) #s(literal 3 binary64)) (pow.f64 (sinh.f64 (neg.f64 b)) #s(literal 3 binary64))) (fma.f64 (cosh.f64 b) (cosh.f64 b) (-.f64 (*.f64 (sinh.f64 (neg.f64 b)) (sinh.f64 (neg.f64 b))) (*.f64 (cosh.f64 b) (sinh.f64 (neg.f64 b))))))
(/.f64 #s(literal -1 binary64) (neg.f64 (exp.f64 b)))
(/.f64 #s(literal 1 binary64) (exp.f64 b))
(fma.f64 (cosh.f64 b) #s(literal 1 binary64) (*.f64 (sinh.f64 (neg.f64 b)) #s(literal 1 binary64)))
(fma.f64 #s(literal 1 binary64) (cosh.f64 b) (*.f64 #s(literal 1 binary64) (sinh.f64 (neg.f64 b))))
(-.f64 (cosh.f64 b) (sinh.f64 b))
(exp.f64 (-.f64 #s(literal 0 binary64) b))
(exp.f64 (+.f64 (neg.f64 b) #s(literal 0 binary64)))
(exp.f64 (+.f64 #s(literal 0 binary64) (neg.f64 b)))
(exp.f64 (neg.f64 b))
(+.f64 (*.f64 (cosh.f64 b) #s(literal 1 binary64)) (*.f64 (sinh.f64 (neg.f64 b)) #s(literal 1 binary64)))
(+.f64 (*.f64 #s(literal 1 binary64) (cosh.f64 b)) (*.f64 #s(literal 1 binary64) (sinh.f64 (neg.f64 b))))
(+.f64 (sinh.f64 (neg.f64 b)) (cosh.f64 b))
(+.f64 (cosh.f64 b) (sinh.f64 (neg.f64 b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (-.f64 a #s(literal -1 binary64)))))
(log1p.f64 #s(approx (exp a) (-.f64 a #s(literal -1 binary64))))
(-.f64 (log.f64 (-.f64 #s(literal 1 binary64) (pow.f64 #s(approx (exp a) (-.f64 a #s(literal -1 binary64))) #s(literal 2 binary64)))) (log.f64 (-.f64 #s(literal 1 binary64) #s(approx (exp a) (-.f64 a #s(literal -1 binary64))))))
(-.f64 (log1p.f64 (pow.f64 #s(approx (exp a) (-.f64 a #s(literal -1 binary64))) #s(literal 3 binary64))) (log1p.f64 (-.f64 (pow.f64 #s(approx (exp a) (-.f64 a #s(literal -1 binary64))) #s(literal 2 binary64)) #s(approx (exp a) (-.f64 a #s(literal -1 binary64))))))
(log.f64 (-.f64 #s(approx (exp a) (-.f64 a #s(literal -1 binary64))) #s(literal -1 binary64)))
(*.f64 #s(literal -1 binary64) (*.f64 #s(literal -1 binary64) #s(approx (exp a) (-.f64 a #s(literal -1 binary64)))))
(*.f64 #s(approx (exp a) (-.f64 a #s(literal -1 binary64))) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) #s(approx (exp a) (-.f64 a #s(literal -1 binary64))))
#s(approx (exp a) (-.f64 a #s(literal -1 binary64)))
(/.f64 (-.f64 (*.f64 a a) #s(literal 1 binary64)) (-.f64 a #s(literal 1 binary64)))
(/.f64 (neg.f64 (-.f64 #s(literal 1 binary64) (*.f64 a a))) (neg.f64 (-.f64 #s(literal 1 binary64) a)))
(/.f64 (neg.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 1 binary64))) (neg.f64 (fma.f64 a (-.f64 a #s(literal 1 binary64)) #s(literal 1 binary64))))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 a a)) (-.f64 #s(literal 1 binary64) a))
(/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 a a (-.f64 #s(literal 1 binary64) a)))
(/.f64 (+.f64 (pow.f64 a #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 a (-.f64 a #s(literal 1 binary64)) #s(literal 1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) (-.f64 #s(literal 1 binary64) a)) (/.f64 (*.f64 a a) (-.f64 #s(literal 1 binary64) a)))
(-.f64 a #s(literal -1 binary64))
(+.f64 (/.f64 #s(literal 1 binary64) (fma.f64 a (-.f64 a #s(literal 1 binary64)) #s(literal 1 binary64))) (/.f64 (pow.f64 a #s(literal 3 binary64)) (fma.f64 a (-.f64 a #s(literal 1 binary64)) #s(literal 1 binary64))))
(+.f64 a #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) a)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
(/.f64 (-.f64 (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 2 binary64)) (pow.f64 (*.f64 #s(literal 1/2 binary64) b) #s(literal 2 binary64))) (-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 #s(literal 1/2 binary64) b)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) b) #s(literal 2 binary64)) (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 #s(literal 1/2 binary64) b) (log.f64 #s(literal 2 binary64)))))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 b #s(literal 3 binary64)) (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(literal 1/4 binary64) (*.f64 b b) (*.f64 (log.f64 #s(literal 2 binary64)) (-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 #s(literal 1/2 binary64) b))))))
(/.f64 (-.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) b) #s(literal 2 binary64)) (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 2 binary64))) (-.f64 (*.f64 #s(literal 1/2 binary64) b) (log.f64 #s(literal 2 binary64))))
(/.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 b #s(literal 3 binary64)) (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 3 binary64))) (fma.f64 (log.f64 #s(literal 2 binary64)) (log.f64 #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) b) #s(literal 2 binary64)) (*.f64 (*.f64 #s(literal 1/2 binary64) b) (log.f64 #s(literal 2 binary64))))))
(/.f64 (fma.f64 #s(literal 1/8 binary64) (pow.f64 b #s(literal 3 binary64)) (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 3 binary64))) (fma.f64 #s(literal 1/4 binary64) (*.f64 b b) (*.f64 (log.f64 #s(literal 2 binary64)) (-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 #s(literal 1/2 binary64) b)))))
(fma.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) b) #s(literal -1 binary64)) #s(literal -1 binary64) (log.f64 #s(literal 2 binary64)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) b) #s(literal 1 binary64) (log.f64 #s(literal 2 binary64)))
(fma.f64 #s(literal 1/2 binary64) (*.f64 b #s(literal 1 binary64)) (log.f64 #s(literal 2 binary64)))
(fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))
(fma.f64 b #s(literal 1/2 binary64) (log.f64 #s(literal 2 binary64)))
(fma.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) b) (log.f64 #s(literal 2 binary64)))
(-.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) b) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/2 binary64) b) (log.f64 #s(literal 2 binary64)))) (/.f64 (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 2 binary64)) (-.f64 (*.f64 #s(literal 1/2 binary64) b) (log.f64 #s(literal 2 binary64)))))
(-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 #s(literal -1/2 binary64) b))
(-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 (neg.f64 b) #s(literal 1/2 binary64)))
(+.f64 (/.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) b) #s(literal 3 binary64)) (fma.f64 #s(literal 1/4 binary64) (*.f64 b b) (*.f64 (log.f64 #s(literal 2 binary64)) (-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 #s(literal 1/2 binary64) b))))) (/.f64 (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 3 binary64)) (fma.f64 #s(literal 1/4 binary64) (*.f64 b b) (*.f64 (log.f64 #s(literal 2 binary64)) (-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 #s(literal 1/2 binary64) b))))))
(+.f64 (*.f64 #s(literal 1/2 binary64) b) (log.f64 #s(literal 2 binary64)))
(+.f64 (log.f64 #s(literal 2 binary64)) (*.f64 #s(literal 1/2 binary64) b))
(log.f64 #s(literal 2 binary64))
(-.f64 (log.f64 (-.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)) (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 2 binary64)))) (log.f64 (-.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))))
(-.f64 (log.f64 (+.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 3 binary64)) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 3 binary64)))) (log.f64 (fma.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (-.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(approx (exp a) #s(literal 1 binary64))) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)))))
(log.f64 (+.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(approx (exp a) #s(literal 1 binary64))))
(/.f64 (-.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 2 binary64)) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64))) (-.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(approx (exp a) #s(literal 1 binary64))))
(/.f64 (neg.f64 (-.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)) (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 2 binary64)))) (neg.f64 (-.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))))
(/.f64 (neg.f64 (+.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 3 binary64)) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (-.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(approx (exp a) #s(literal 1 binary64))) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)) (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 2 binary64))) (-.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(/.f64 (+.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 3 binary64)) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 3 binary64))) (+.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 2 binary64)) (-.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)) (*.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(approx (exp a) #s(literal 1 binary64))))))
(/.f64 (+.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 3 binary64)) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 3 binary64))) (fma.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (-.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(approx (exp a) #s(literal 1 binary64))) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64))))
(-.f64 (/.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)) (-.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))) (/.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 2 binary64)) (-.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))))
(+.f64 (/.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 3 binary64)) (fma.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (-.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(approx (exp a) #s(literal 1 binary64))) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)))) (/.f64 (pow.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(literal 3 binary64)) (fma.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) (-.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(approx (exp a) #s(literal 1 binary64))) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)))))
(+.f64 #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))) #s(approx (exp a) #s(literal 1 binary64)))
(+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
#s(approx (exp a) #s(literal 1 binary64))
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))

eval19.0ms (0.2%)

Memory
31.8MiB live, 31.8MiB allocated; 0ms collecting garbage
Compiler

Compiled 5 274 to 779 computations (85.2% saved)

prune15.0ms (0.1%)

Memory
-28.7MiB live, 21.5MiB allocated; 6ms collecting garbage
Pruning

14 alts after pruning (10 fresh and 4 done)

PrunedKeptTotal
New1646170
Fresh246
Picked145
Done000
Total16714181
Accuracy
100.0%
Counts
181 → 14
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.4%
(-.f64 (log.f64 (+.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 3 binary64)) (pow.f64 (exp.f64 b) #s(literal 3 binary64)))) (log.f64 (fma.f64 (exp.f64 b) (-.f64 (exp.f64 b) #s(approx (exp a) #s(literal 1 binary64))) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)))))
54.8%
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
54.5%
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
54.4%
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
55.2%
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 (fma.f64 (*.f64 b b) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
55.1%
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
53.4%
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (log.f64 #s(literal 2 binary64))))
48.6%
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
55.5%
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
53.4%
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))))
52.0%
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
54.6%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
11.4%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
53.1%
#s(approx (log (+ (exp a) (exp b))) #s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64)))))
Compiler

Compiled 635 to 448 computations (29.4% saved)

simplify188.0ms (1.8%)

Memory
3.7MiB live, 142.9MiB allocated; 25ms collecting garbage
Localize:

Found 19 expressions of interest:

NewMetricScoreProgram
cost-diff0
(fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64))
cost-diff0
(fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))
cost-diff0
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
cost-diff0
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
cost-diff0
#s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))
cost-diff0
(log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)))
cost-diff0
(+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b)
cost-diff0
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
cost-diff0
#s(approx (exp (neg b)) #s(literal 1 binary64))
cost-diff0
(log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)))
cost-diff0
(+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b)
cost-diff0
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
cost-diff0
(*.f64 #s(literal 1/2 binary64) b)
cost-diff0
#s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))
cost-diff0
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b)))
cost-diff0
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
cost-diff0
(exp.f64 b)
cost-diff0
(log1p.f64 (exp.f64 b))
cost-diff0
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
055268
070247
1121247
2295247
31335247
47522247
08019236
Stop Event
iter limit
node limit
iter limit
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
(log1p.f64 (exp.f64 b))
(exp.f64 b)
b
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))
(*.f64 #s(literal 1/2 binary64) b)
#s(literal 1/2 binary64)
b
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
(+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b)
(log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)))
#s(approx (exp (neg b)) #s(literal 1 binary64))
#s(literal 1 binary64)
b
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
(+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b)
(log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)))
#s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))
(-.f64 #s(literal 1 binary64) b)
#s(literal 1 binary64)
b
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
(fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))
(fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64))
#s(literal 1/8 binary64)
b
#s(literal 1/2 binary64)
(log.f64 #s(literal 2 binary64))
#s(literal 2 binary64)
Outputs
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
(log1p.f64 (exp.f64 b))
(exp.f64 b)
b
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))
(*.f64 #s(literal 1/2 binary64) b)
#s(literal 1/2 binary64)
b
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
(+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b)
(log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)))
#s(approx (exp (neg b)) #s(literal 1 binary64))
#s(literal 1 binary64)
b
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
(+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b)
(log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)))
#s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))
(-.f64 #s(literal 1 binary64) b)
#s(literal 1 binary64)
b
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
(fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))
(fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64))
#s(literal 1/8 binary64)
b
#s(literal 1/2 binary64)
(log.f64 #s(literal 2 binary64))
#s(literal 2 binary64)

localize419.0ms (4%)

Memory
32.5MiB live, 381.9MiB allocated; 150ms collecting garbage
Localize:

Found 19 expressions of interest:

NewMetricScoreProgram
accuracy0.0
(log.f64 #s(literal 2 binary64))
accuracy0.015625
(fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))
accuracy0.5444252095255256
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
accuracy1.0639723260022196
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
accuracy0.0078125
(+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b)
accuracy0.0078125
(log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)))
accuracy1.0639723260022196
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
accuracy1.099603879431069
#s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))
accuracy0.0078125
(+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b)
accuracy0.0078125
(log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)))
accuracy1.0639723260022196
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
accuracy1.6783188247868648
#s(approx (exp (neg b)) #s(literal 1 binary64))
accuracy0.0
(*.f64 #s(literal 1/2 binary64) b)
accuracy0.9642977432428482
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
accuracy1.0639723260022196
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b)))
accuracy33.714187024417285
#s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))
accuracy0.0
(exp.f64 b)
accuracy0.26546163554733604
(log1p.f64 (exp.f64 b))
accuracy1.0639723260022196
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
Samples
340.0ms113×5exit
40.0ms140×0valid
2.0ms1valid
Compiler

Compiled 175 to 38 computations (78.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 342.0ms
ival-log: 169.0ms (49.5% of total)
adjust: 75.0ms (21.9% of total)
ival-exp: 28.0ms (8.2% of total)
ival-log1p: 26.0ms (7.6% of total)
ival-add: 15.0ms (4.4% of total)
ival-sub: 13.0ms (3.8% of total)
ival-mult: 11.0ms (3.2% of total)
ival-div: 2.0ms (0.6% of total)
ival-neg: 2.0ms (0.6% of total)
exact: 1.0ms (0.3% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

series130.0ms (1.2%)

Memory
-17.6MiB live, 169.8MiB allocated; 42ms collecting garbage
Counts
20 → 78
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
(log1p.f64 (exp.f64 b))
(exp.f64 b)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))
(*.f64 #s(literal 1/2 binary64) b)
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
(+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b)
(log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)))
#s(approx (exp (neg b)) #s(literal 1 binary64))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
(+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b)
(log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)))
#s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
(fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))
(fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64))
(log.f64 #s(literal 2 binary64))
Outputs
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp b)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (/ a (+ 1 (exp b))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* 1/2 (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* a (+ (* 1/6 (* a (- (+ (* 2 (/ 1 (pow (+ 1 (exp b)) 3))) (/ 1 (+ 1 (exp b)))) (* 3 (/ 1 (pow (+ 1 (exp b)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- 1/8 (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- (+ 1/8 (* -1 (* a (+ (* -1/2 (+ (* -1/8 b) (* 1/8 b))) (+ (* -1/16 b) (* 1/24 b)))))) (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (log (+ 1 (exp (neg b)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- 1 (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* 1/2 (* a (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2)))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* a (+ (* 1/6 (* a (- (* 3 (/ 1 (pow (+ 1 (exp (neg b))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg b))) 3))) (/ 1 (+ 1 (exp (neg b)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2))))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 a))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* a (+ 1 (+ (/ b a) (/ (log (+ (exp (neg a)) (exp (neg b)))) a))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* a (- (* -1 (/ (+ b (log (+ (exp (neg b)) (exp (* -1 a))))) a)) 1)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* 1/2 (* b (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* b (+ (* 1/6 (* b (- (+ (* 2 (/ 1 (pow (+ 1 (exp a)) 3))) (/ 1 (+ 1 (exp a)))) (* 3 (/ 1 (pow (+ 1 (exp a)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2)))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ 1 (exp b))) #s(hole binary64 (log 2)))
#s(approx (log (+ 1 (exp b))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (log (+ 1 (exp b))) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* 1/8 b))))))
#s(approx (log (+ 1 (exp b))) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* b (+ 1/8 (* -1/192 (pow b 2)))))))))
#s(approx (exp b) #s(hole binary64 1))
#s(approx (exp b) #s(hole binary64 (+ 1 b)))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* 1/2 b))))))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (log 2)))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (* 1/2 b) #s(hole binary64 (* 1/2 b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (log (+ 1 (exp (neg a)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- 1 (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* 1/2 (* b (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2)))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* b (+ (* 1/6 (* b (- (* 3 (/ 1 (pow (+ 1 (exp (neg a))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg a))) 3))) (/ 1 (+ 1 (exp (neg a)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2))))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (log 2)))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* 1/8 b))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* b (+ 1/8 (* -1/192 (pow b 2)))))))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log 2)))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* -1/2 b))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* b (- (* 1/8 b) 1/2)))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* b (- (* b (+ 1/8 (* -1/192 (pow b 2)))) 1/2)))))
#s(approx (exp (neg b)) #s(hole binary64 1))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* -1 b))))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* b (- (* 1/2 b) 1)))))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* b (- (* b (+ 1/2 (* -1/6 b))) 1)))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (log 2)))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* 1/8 b))))))
#s(approx (+ (* 1/8 b) 1/2) #s(hole binary64 1/2))
#s(approx (+ (* 1/8 b) 1/2) #s(hole binary64 (+ 1/2 (* 1/8 b))))
#s(approx (log (+ 1 (exp b))) #s(hole binary64 (log (+ 1 (exp b)))))
#s(approx (exp b) #s(hole binary64 (exp b)))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* b (+ (/ 1 (+ 1 (exp a))) (/ (log (+ 1 (exp a))) b)))))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* 1/2 b)))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* b (+ 1/2 (/ (log 2) b)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* b (+ 1 (+ (/ a b) (/ (log (+ (exp (neg a)) (exp (neg b)))) b))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 b))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (* b (+ 1 (/ (log (+ 1 (exp (neg b)))) b)))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log (+ 1 (exp (neg b))))))
#s(approx (exp (neg b)) #s(hole binary64 (exp (neg b))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (* 1/8 (pow b 2))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (* (pow b 2) (+ 1/8 (* 1/2 (/ 1 b))))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (* (pow b 2) (+ 1/8 (+ (* 1/2 (/ 1 b)) (/ (log 2) (pow b 2)))))))
#s(approx (+ (* 1/8 b) 1/2) #s(hole binary64 (* 1/8 b)))
#s(approx (+ (* 1/8 b) 1/2) #s(hole binary64 (* b (+ 1/8 (* 1/2 (/ 1 b))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp a))) b)) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log 2) b)) 1/2)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (+ a (log (+ (exp (neg a)) (exp (* -1 b))))) b)) 1)))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp (* -1 b)))) b)) 1)))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log (+ 1 (exp (* -1 b))))))
#s(approx (exp (neg b)) #s(hole binary64 (exp (* -1 b))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (* (pow b 2) (+ 1/8 (* -1 (/ (- (* -1 (/ (log 2) b)) 1/2) b))))))
Calls

6 calls:

TimeVariablePointExpression
36.0ms
b
@-inf
((log (+ (exp a) (exp b))) (log (+ 1 (exp b))) (exp b) (log (+ (exp a) (exp b))) (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (+ (* 1/2 b) (log 2)) (* 1/2 b) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (log (+ 1 (exp (neg b)))) (exp (neg b)) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (log (+ 1 (exp (neg b)))) (exp (neg b)) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (+ (* 1/8 b) 1/2) (log 2))
28.0ms
b
@inf
((log (+ (exp a) (exp b))) (log (+ 1 (exp b))) (exp b) (log (+ (exp a) (exp b))) (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (+ (* 1/2 b) (log 2)) (* 1/2 b) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (log (+ 1 (exp (neg b)))) (exp (neg b)) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (log (+ 1 (exp (neg b)))) (exp (neg b)) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (+ (* 1/8 b) 1/2) (log 2))
24.0ms
b
@0
((log (+ (exp a) (exp b))) (log (+ 1 (exp b))) (exp b) (log (+ (exp a) (exp b))) (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (+ (* 1/2 b) (log 2)) (* 1/2 b) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (log (+ 1 (exp (neg b)))) (exp (neg b)) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (log (+ 1 (exp (neg b)))) (exp (neg b)) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (+ (* 1/8 b) 1/2) (log 2))
14.0ms
a
@-inf
((log (+ (exp a) (exp b))) (log (+ 1 (exp b))) (exp b) (log (+ (exp a) (exp b))) (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (+ (* 1/2 b) (log 2)) (* 1/2 b) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (log (+ 1 (exp (neg b)))) (exp (neg b)) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (log (+ 1 (exp (neg b)))) (exp (neg b)) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (+ (* 1/8 b) 1/2) (log 2))
14.0ms
a
@inf
((log (+ (exp a) (exp b))) (log (+ 1 (exp b))) (exp b) (log (+ (exp a) (exp b))) (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (+ (* 1/2 b) (log 2)) (* 1/2 b) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (log (+ 1 (exp (neg b)))) (exp (neg b)) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (log (+ 1 (exp (neg b)))) (exp (neg b)) (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+ (log (+ 1 (exp (neg b)))) b) (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (+ (* 1/8 b) 1/2) (log 2))

simplify185.0ms (1.8%)

Memory
-6.7MiB live, 184.6MiB allocated; 24ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03811733
110071719
234051695
091231496
Stop Event
iter limit
node limit
Counts
78 → 78
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp b)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (/ a (+ 1 (exp b))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* 1/2 (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* a (+ (* 1/6 (* a (- (+ (* 2 (/ 1 (pow (+ 1 (exp b)) 3))) (/ 1 (+ 1 (exp b)))) (* 3 (/ 1 (pow (+ 1 (exp b)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- 1/8 (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- (+ 1/8 (* -1 (* a (+ (* -1/2 (+ (* -1/8 b) (* 1/8 b))) (+ (* -1/16 b) (* 1/24 b)))))) (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (log (+ 1 (exp (neg b)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- 1 (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* 1/2 (* a (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2)))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* a (+ (* 1/6 (* a (- (* 3 (/ 1 (pow (+ 1 (exp (neg b))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg b))) 3))) (/ 1 (+ 1 (exp (neg b)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2))))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 a))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* a (+ 1 (+ (/ b a) (/ (log (+ (exp (neg a)) (exp (neg b)))) a))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* a (- (* -1 (/ (+ b (log (+ (exp (neg b)) (exp (* -1 a))))) a)) 1)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* 1/2 (* b (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* b (+ (* 1/6 (* b (- (+ (* 2 (/ 1 (pow (+ 1 (exp a)) 3))) (/ 1 (+ 1 (exp a)))) (* 3 (/ 1 (pow (+ 1 (exp a)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2)))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ 1 (exp b))) #s(hole binary64 (log 2)))
#s(approx (log (+ 1 (exp b))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (log (+ 1 (exp b))) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* 1/8 b))))))
#s(approx (log (+ 1 (exp b))) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* b (+ 1/8 (* -1/192 (pow b 2)))))))))
#s(approx (exp b) #s(hole binary64 1))
#s(approx (exp b) #s(hole binary64 (+ 1 b)))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* 1/2 b))))))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (log 2)))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (* 1/2 b) #s(hole binary64 (* 1/2 b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (log (+ 1 (exp (neg a)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- 1 (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* 1/2 (* b (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2)))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* b (+ (* 1/6 (* b (- (* 3 (/ 1 (pow (+ 1 (exp (neg a))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg a))) 3))) (/ 1 (+ 1 (exp (neg a)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2))))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (log 2)))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* 1/8 b))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* b (+ 1/8 (* -1/192 (pow b 2)))))))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log 2)))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* -1/2 b))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* b (- (* 1/8 b) 1/2)))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* b (- (* b (+ 1/8 (* -1/192 (pow b 2)))) 1/2)))))
#s(approx (exp (neg b)) #s(hole binary64 1))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* -1 b))))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* b (- (* 1/2 b) 1)))))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* b (- (* b (+ 1/2 (* -1/6 b))) 1)))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (log 2)))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* 1/8 b))))))
#s(approx (+ (* 1/8 b) 1/2) #s(hole binary64 1/2))
#s(approx (+ (* 1/8 b) 1/2) #s(hole binary64 (+ 1/2 (* 1/8 b))))
#s(approx (log (+ 1 (exp b))) #s(hole binary64 (log (+ 1 (exp b)))))
#s(approx (exp b) #s(hole binary64 (exp b)))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* b (+ (/ 1 (+ 1 (exp a))) (/ (log (+ 1 (exp a))) b)))))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* 1/2 b)))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* b (+ 1/2 (/ (log 2) b)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* b (+ 1 (+ (/ a b) (/ (log (+ (exp (neg a)) (exp (neg b)))) b))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 b))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (* b (+ 1 (/ (log (+ 1 (exp (neg b)))) b)))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log (+ 1 (exp (neg b))))))
#s(approx (exp (neg b)) #s(hole binary64 (exp (neg b))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (* 1/8 (pow b 2))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (* (pow b 2) (+ 1/8 (* 1/2 (/ 1 b))))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (* (pow b 2) (+ 1/8 (+ (* 1/2 (/ 1 b)) (/ (log 2) (pow b 2)))))))
#s(approx (+ (* 1/8 b) 1/2) #s(hole binary64 (* 1/8 b)))
#s(approx (+ (* 1/8 b) 1/2) #s(hole binary64 (* b (+ 1/8 (* 1/2 (/ 1 b))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp a))) b)) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log 2) b)) 1/2)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (+ a (log (+ (exp (neg a)) (exp (* -1 b))))) b)) 1)))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp (* -1 b)))) b)) 1)))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log (+ 1 (exp (* -1 b))))))
#s(approx (exp (neg b)) #s(hole binary64 (exp (* -1 b))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (* (pow b 2) (+ 1/8 (* -1 (/ (- (* -1 (/ (log 2) b)) 1/2) b))))))
Outputs
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp b)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (/ a (+ 1 (exp b))))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 a (-.f64 (exp.f64 b) #s(literal -1 binary64))) (log1p.f64 (exp.f64 b))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* 1/2 (* a (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (*.f64 #s(literal 1/2 binary64) a) (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 b) #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 (log1p.f64 (exp.f64 b))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp b))) (* a (+ (* a (+ (* 1/6 (* a (- (+ (* 2 (/ 1 (pow (+ 1 (exp b)) 3))) (/ 1 (+ 1 (exp b)))) (* 3 (/ 1 (pow (+ 1 (exp b)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp b))) (/ 1 (pow (+ 1 (exp b)) 2)))))) (/ 1 (+ 1 (exp b))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) a) (+.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 b) #s(literal -1 binary64))) (/.f64 (+.f64 (/.f64 #s(literal 2 binary64) (-.f64 (exp.f64 b) #s(literal -1 binary64))) #s(literal -3 binary64)) (pow.f64 (-.f64 (exp.f64 b) #s(literal -1 binary64)) #s(literal 2 binary64)))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 b) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 b) #s(literal -1 binary64)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) a (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 b) #s(literal -1 binary64)))) a (log1p.f64 (exp.f64 b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) a (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- 1/8 (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 (fma.f64 #s(literal -1/4 binary64) b (fma.f64 #s(literal 1/8 binary64) a #s(literal 1/2 binary64))) a (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- (+ 1/2 (* a (- (+ 1/8 (* -1 (* a (+ (* -1/2 (+ (* -1/8 b) (* 1/8 b))) (+ (* -1/16 b) (* 1/24 b)))))) (+ (* -1/8 b) (* 1/8 b))))) (* 1/4 b)))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 (fma.f64 #s(literal -1/4 binary64) b (fma.f64 (fma.f64 (*.f64 a b) #s(literal 1/48 binary64) #s(literal 1/8 binary64)) a #s(literal 1/2 binary64))) a (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (log (+ 1 (exp (neg b)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- 1 (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64)))) a (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* 1/2 (* a (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2)))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (fma.f64 (*.f64 #s(literal 1/2 binary64) a) (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64)) #s(literal 2 binary64)))) (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64))))) a (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ b (+ (log (+ 1 (exp (neg b)))) (* a (- (+ 1 (* a (+ (* 1/6 (* a (- (* 3 (/ 1 (pow (+ 1 (exp (neg b))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg b))) 3))) (/ 1 (+ 1 (exp (neg b)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg b)))) (/ 1 (pow (+ 1 (exp (neg b))) 2))))))) (/ 1 (+ 1 (exp (neg b))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) a) (-.f64 (/.f64 #s(literal 3 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64)) #s(literal 2 binary64))) (+.f64 (/.f64 #s(literal 2 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64)) #s(literal 3 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64))))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) a (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 b)) #s(literal -1 binary64))))) a (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (log (+ (exp a) (exp b))) (log.f64 (+.f64 (exp.f64 b) (exp.f64 a))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 a))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) a)
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* a (+ 1 (+ (/ b a) (/ (log (+ (exp (neg a)) (exp (neg b)))) a))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (/.f64 (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b)))) b) a) a a))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* a (- (* -1 (/ (+ b (log (+ (exp (neg b)) (exp (* -1 a))))) a)) 1)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (*.f64 (-.f64 (/.f64 (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b)))) b) (neg.f64 a)) #s(literal 1 binary64)) (neg.f64 a)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* 1/2 (* b (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 a) #s(literal -1 binary64)) #s(literal 2 binary64)))) (*.f64 #s(literal 1/2 binary64) b) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64)))) b (log1p.f64 (exp.f64 a))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (+ (log (+ 1 (exp a))) (* b (+ (* b (+ (* 1/6 (* b (- (+ (* 2 (/ 1 (pow (+ 1 (exp a)) 3))) (/ 1 (+ 1 (exp a)))) (* 3 (/ 1 (pow (+ 1 (exp a)) 2)))))) (* 1/2 (- (/ 1 (+ 1 (exp a))) (/ 1 (pow (+ 1 (exp a)) 2)))))) (/ 1 (+ 1 (exp a))))))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) b) (+.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64))) (/.f64 (+.f64 (/.f64 #s(literal 2 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64))) #s(literal -3 binary64)) (pow.f64 (-.f64 (exp.f64 a) #s(literal -1 binary64)) #s(literal 2 binary64)))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 a) #s(literal -1 binary64)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) b (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64)))) b (log1p.f64 (exp.f64 a))))
#s(approx (log (+ 1 (exp b))) #s(hole binary64 (log 2)))
#s(approx (log (+ 1 (exp b))) (log.f64 #s(literal 2 binary64)))
#s(approx (log (+ 1 (exp b))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (log (+ 1 (exp b))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ 1 (exp b))) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* 1/8 b))))))
#s(approx (log (+ 1 (exp b))) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ 1 (exp b))) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* b (+ 1/8 (* -1/192 (pow b 2)))))))))
#s(approx (log (+ 1 (exp b))) (fma.f64 (fma.f64 (fma.f64 (*.f64 b b) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
#s(approx (exp b) #s(hole binary64 1))
#s(approx (exp b) #s(literal 1 binary64))
#s(approx (exp b) #s(hole binary64 (+ 1 b)))
#s(approx (exp b) (-.f64 b #s(literal -1 binary64)))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* 1/2 b))))))
#s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))
#s(approx (exp b) #s(hole binary64 (+ 1 (* b (+ 1 (* b (+ 1/2 (* 1/6 b))))))))
#s(approx (exp 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)))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (log1p.f64 (exp.f64 a)))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (log 2)))
#s(approx (+ (* 1/2 b) (log 2)) (log.f64 #s(literal 2 binary64)))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (* 1/2 b) (log 2)) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
#s(approx (* 1/2 b) #s(hole binary64 (* 1/2 b)))
#s(approx (* 1/2 b) (*.f64 #s(literal 1/2 binary64) b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (log (+ 1 (exp (neg a)))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 a))) a))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- 1 (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64)))) b (+.f64 (log1p.f64 (exp.f64 (neg.f64 a))) a)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* 1/2 (* b (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2)))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (fma.f64 (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64)) #s(literal 2 binary64)))) (*.f64 #s(literal 1/2 binary64) b) (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64))))) b (+.f64 (log1p.f64 (exp.f64 (neg.f64 a))) a)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (+ a (+ (log (+ 1 (exp (neg a)))) (* b (- (+ 1 (* b (+ (* 1/6 (* b (- (* 3 (/ 1 (pow (+ 1 (exp (neg a))) 2))) (+ (* 2 (/ 1 (pow (+ 1 (exp (neg a))) 3))) (/ 1 (+ 1 (exp (neg a)))))))) (* 1/2 (- (/ 1 (+ 1 (exp (neg a)))) (/ 1 (pow (+ 1 (exp (neg a))) 2))))))) (/ 1 (+ 1 (exp (neg a))))))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (fma.f64 (fma.f64 (-.f64 (/.f64 #s(literal 3 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64)) #s(literal 2 binary64))) (+.f64 (/.f64 #s(literal 2 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64)) #s(literal 3 binary64))) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64))))) (*.f64 #s(literal 1/6 binary64) b) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64))) (/.f64 #s(literal 1 binary64) (pow.f64 (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64)) #s(literal 2 binary64)))) #s(literal 1/2 binary64))) b (-.f64 #s(literal 1 binary64) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 (neg.f64 a)) #s(literal -1 binary64))))) b (+.f64 (log1p.f64 (exp.f64 (neg.f64 a))) a)))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (log 2)))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (log.f64 #s(literal 2 binary64)))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* 1/8 b))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* b (+ 1/8 (* -1/192 (pow b 2)))))))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 (fma.f64 (*.f64 b b) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log 2)))
#s(approx (log (+ 1 (exp (neg b)))) (log.f64 #s(literal 2 binary64)))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* -1/2 b))))
#s(approx (log (+ 1 (exp (neg b)))) (fma.f64 #s(literal -1/2 binary64) b (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* b (- (* 1/8 b) 1/2)))))
#s(approx (log (+ 1 (exp (neg b)))) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal -1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (+ (log 2) (* b (- (* b (+ 1/8 (* -1/192 (pow b 2)))) 1/2)))))
#s(approx (log (+ 1 (exp (neg b)))) (fma.f64 (fma.f64 (fma.f64 (*.f64 b b) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) b #s(literal -1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
#s(approx (exp (neg b)) #s(hole binary64 1))
#s(approx (exp (neg b)) #s(literal 1 binary64))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* -1 b))))
#s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* b (- (* 1/2 b) 1)))))
#s(approx (exp (neg b)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal -1 binary64)) b #s(literal 1 binary64)))
#s(approx (exp (neg b)) #s(hole binary64 (+ 1 (* b (- (* b (+ 1/2 (* -1/6 b))) 1)))))
#s(approx (exp (neg 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)))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (log 2)))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (log.f64 #s(literal 2 binary64)))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (+ (log 2) (* b (+ 1/2 (* 1/8 b))))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
#s(approx (+ (* 1/8 b) 1/2) #s(hole binary64 1/2))
#s(approx (+ (* 1/8 b) 1/2) #s(literal 1/2 binary64))
#s(approx (+ (* 1/8 b) 1/2) #s(hole binary64 (+ 1/2 (* 1/8 b))))
#s(approx (+ (* 1/8 b) 1/2) (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)))
#s(approx (log (+ 1 (exp b))) #s(hole binary64 (log (+ 1 (exp b)))))
#s(approx (log (+ 1 (exp b))) (log1p.f64 (exp.f64 b)))
#s(approx (exp b) #s(hole binary64 (exp b)))
#s(approx (exp b) (exp.f64 b))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* b (+ (/ 1 (+ 1 (exp a))) (/ (log (+ 1 (exp a))) b)))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 (/.f64 (log1p.f64 (exp.f64 a)) b) b (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64)))))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* 1/2 b)))
#s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* b (+ 1/2 (/ (log 2) b)))))
#s(approx (+ (* 1/2 b) (log 2)) (*.f64 (-.f64 (/.f64 (log.f64 #s(literal 2 binary64)) b) #s(literal -1/2 binary64)) b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* b (+ 1 (+ (/ a b) (/ (log (+ (exp (neg a)) (exp (neg b)))) b))))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (fma.f64 (/.f64 (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b)))) a) b) b b))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 b))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) b)
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (* b (+ 1 (/ (log (+ 1 (exp (neg b)))) b)))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (/.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b) b b))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log (+ 1 (exp (neg b))))))
#s(approx (log (+ 1 (exp (neg b)))) (log1p.f64 (exp.f64 (neg.f64 b))))
#s(approx (exp (neg b)) #s(hole binary64 (exp (neg b))))
#s(approx (exp (neg b)) (exp.f64 (neg.f64 b)))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (* 1/8 (pow b 2))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (*.f64 b b) #s(literal 1/8 binary64)))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (* (pow b 2) (+ 1/8 (* 1/2 (/ 1 b))))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) b) #s(literal 1/8 binary64)) b) b))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (* (pow b 2) (+ 1/8 (+ (* 1/2 (/ 1 b)) (/ (log 2) (pow b 2)))))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (+.f64 (/.f64 (-.f64 (/.f64 (log.f64 #s(literal 2 binary64)) b) #s(literal -1/2 binary64)) b) #s(literal 1/8 binary64)) (*.f64 b b)))
#s(approx (+ (* 1/8 b) 1/2) #s(hole binary64 (* 1/8 b)))
#s(approx (+ (* 1/8 b) 1/2) (*.f64 #s(literal 1/8 binary64) b))
#s(approx (+ (* 1/8 b) 1/2) #s(hole binary64 (* b (+ 1/8 (* 1/2 (/ 1 b))))))
#s(approx (+ (* 1/8 b) 1/2) (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) b) #s(literal 1/8 binary64)) b))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp a))) b)) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (*.f64 (-.f64 (/.f64 (log1p.f64 (exp.f64 a)) (neg.f64 b)) (/.f64 #s(literal 1 binary64) (-.f64 (exp.f64 a) #s(literal -1 binary64)))) (neg.f64 b)))
#s(approx (+ (* 1/2 b) (log 2)) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log 2) b)) 1/2)))))
#s(approx (+ (* 1/2 b) (log 2)) (*.f64 (-.f64 (/.f64 (log.f64 #s(literal 2 binary64)) b) #s(literal -1/2 binary64)) b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (+ a (log (+ (exp (neg a)) (exp (* -1 b))))) b)) 1)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (*.f64 (-.f64 (/.f64 (+.f64 (log.f64 (+.f64 (exp.f64 (neg.f64 a)) (exp.f64 (neg.f64 b)))) a) (neg.f64 b)) #s(literal 1 binary64)) (neg.f64 b)))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp (* -1 b)))) b)) 1)))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (*.f64 (-.f64 (/.f64 (log1p.f64 (exp.f64 (neg.f64 b))) (neg.f64 b)) #s(literal 1 binary64)) (neg.f64 b)))
#s(approx (log (+ 1 (exp (neg b)))) #s(hole binary64 (log (+ 1 (exp (* -1 b))))))
#s(approx (log (+ 1 (exp (neg b)))) (log1p.f64 (exp.f64 (neg.f64 b))))
#s(approx (exp (neg b)) #s(hole binary64 (exp (* -1 b))))
#s(approx (exp (neg b)) (exp.f64 (neg.f64 b)))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) #s(hole binary64 (* (pow b 2) (+ 1/8 (* -1 (/ (- (* -1 (/ (log 2) b)) 1/2) b))))))
#s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (+.f64 (/.f64 (-.f64 (/.f64 (log.f64 #s(literal 2 binary64)) b) #s(literal -1/2 binary64)) b) #s(literal 1/8 binary64)) (*.f64 b b)))

rewrite102.0ms (1%)

Memory
10.9MiB live, 111.0MiB allocated; 7ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
055254
070233
1328233
02671222
Stop Event
iter limit
iter limit
node limit
iter limit
Counts
20 → 92
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
(log1p.f64 (exp.f64 b))
(exp.f64 b)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))
(*.f64 #s(literal 1/2 binary64) b)
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
(+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b)
(log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)))
#s(approx (exp (neg b)) #s(literal 1 binary64))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
(+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b)
(log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)))
#s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
(fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))
(fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64))
(log.f64 #s(literal 2 binary64))
Outputs
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
(log1p.f64 (exp.f64 b))
(-.f64 (log.f64 (-.f64 #s(literal 1 binary64) (pow.f64 (exp.f64 b) #s(literal 2 binary64)))) (log.f64 (-.f64 #s(literal 1 binary64) (exp.f64 b))))
(-.f64 (log1p.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64))) (log1p.f64 (*.f64 (exp.f64 b) (expm1.f64 b))))
(log.f64 (-.f64 (exp.f64 b) #s(literal -1 binary64)))
(*.f64 #s(literal 1 binary64) (exp.f64 b))
(*.f64 #s(literal -1 binary64) (*.f64 #s(literal -1 binary64) (exp.f64 b)))
(*.f64 (exp.f64 b) #s(literal 1 binary64))
(/.f64 (-.f64 (*.f64 (cosh.f64 b) (cosh.f64 b)) (*.f64 (sinh.f64 b) (sinh.f64 b))) (exp.f64 (neg.f64 b)))
(/.f64 (+.f64 (pow.f64 (cosh.f64 b) #s(literal 3 binary64)) (pow.f64 (sinh.f64 b) #s(literal 3 binary64))) (fma.f64 (cosh.f64 b) (cosh.f64 b) (-.f64 (*.f64 (sinh.f64 b) (sinh.f64 b)) (*.f64 (cosh.f64 b) (sinh.f64 b)))))
(fma.f64 (cosh.f64 b) #s(literal 1 binary64) (*.f64 (sinh.f64 b) #s(literal 1 binary64)))
(fma.f64 #s(literal 1 binary64) (cosh.f64 b) (*.f64 #s(literal 1 binary64) (sinh.f64 b)))
(exp.f64 (+.f64 #s(literal 0 binary64) b))
(exp.f64 b)
(+.f64 (*.f64 (cosh.f64 b) #s(literal 1 binary64)) (*.f64 (sinh.f64 b) #s(literal 1 binary64)))
(+.f64 (*.f64 #s(literal 1 binary64) (cosh.f64 b)) (*.f64 #s(literal 1 binary64) (sinh.f64 b)))
(+.f64 (sinh.f64 b) (cosh.f64 b))
(+.f64 (cosh.f64 b) (sinh.f64 b))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))
(*.f64 #s(literal 1/2 binary64) b)
(*.f64 b #s(literal 1/2 binary64))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
(/.f64 (-.f64 (*.f64 b b) (pow.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) #s(literal 2 binary64))) (-.f64 b (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) #s(literal 2 binary64)) (*.f64 b b))) (neg.f64 (-.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) #s(literal 3 binary64)) (pow.f64 b #s(literal 3 binary64)))) (neg.f64 (fma.f64 b (-.f64 b (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)))) (pow.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) #s(literal 2 binary64)) (*.f64 b b)) (-.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
(/.f64 (+.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) #s(literal 3 binary64)) (pow.f64 b #s(literal 3 binary64))) (fma.f64 b b (-.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) #s(literal 2 binary64)) (*.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))))
(/.f64 (+.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) #s(literal 3 binary64)) (pow.f64 b #s(literal 3 binary64))) (fma.f64 b (-.f64 b (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)))) (pow.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) #s(literal 2 binary64))))
(-.f64 (/.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) #s(literal 2 binary64)) (-.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b)) (/.f64 (*.f64 b b) (-.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b)))
(+.f64 (/.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) #s(literal 3 binary64)) (fma.f64 b (-.f64 b (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)))) (pow.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) #s(literal 2 binary64)))) (/.f64 (pow.f64 b #s(literal 3 binary64)) (fma.f64 b (-.f64 b (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)))) (pow.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) #s(literal 2 binary64)))))
(+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b)
(+.f64 b (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))))
(log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)))
(-.f64 (log1p.f64 (*.f64 (neg.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) #s(approx (exp (neg b)) #s(literal 1 binary64)))) (log.f64 (-.f64 #s(literal 1 binary64) #s(approx (exp (neg b)) #s(literal 1 binary64)))))
(-.f64 (log1p.f64 (pow.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)) #s(literal 3 binary64))) (log1p.f64 (*.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)) (-.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)) #s(literal 1 binary64)))))
(log.f64 (-.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)) #s(literal -1 binary64)))
(*.f64 #s(approx (exp (neg b)) #s(literal 1 binary64)) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) #s(approx (exp (neg b)) #s(literal 1 binary64)))
(*.f64 #s(literal -1 binary64) (*.f64 #s(literal -1 binary64) #s(approx (exp (neg b)) #s(literal 1 binary64))))
#s(approx (exp (neg b)) #s(literal 1 binary64))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
(/.f64 (-.f64 (*.f64 b b) (pow.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) #s(literal 2 binary64))) (-.f64 b (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) #s(literal 2 binary64)) (*.f64 b b))) (neg.f64 (-.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b)))
(/.f64 (neg.f64 (+.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) #s(literal 3 binary64)) (pow.f64 b #s(literal 3 binary64)))) (neg.f64 (fma.f64 b (-.f64 b (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)))) (pow.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) #s(literal 2 binary64)) (*.f64 b b)) (-.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
(/.f64 (+.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) #s(literal 3 binary64)) (pow.f64 b #s(literal 3 binary64))) (fma.f64 b b (-.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) #s(literal 2 binary64)) (*.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))))
(/.f64 (+.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) #s(literal 3 binary64)) (pow.f64 b #s(literal 3 binary64))) (fma.f64 b (-.f64 b (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)))) (pow.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) #s(literal 2 binary64))))
(-.f64 (/.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) #s(literal 2 binary64)) (-.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b)) (/.f64 (*.f64 b b) (-.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b)))
(+.f64 (/.f64 (pow.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) #s(literal 3 binary64)) (fma.f64 b (-.f64 b (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)))) (pow.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) #s(literal 2 binary64)))) (/.f64 (pow.f64 b #s(literal 3 binary64)) (fma.f64 b (-.f64 b (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)))) (pow.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) #s(literal 2 binary64)))))
(+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b)
(+.f64 b (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))))
(log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)))
(-.f64 (log.f64 (-.f64 #s(literal 1 binary64) (pow.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)) #s(literal 2 binary64)))) (log.f64 (-.f64 #s(literal 1 binary64) #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)))))
(-.f64 (log1p.f64 (pow.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)) #s(literal 3 binary64))) (log1p.f64 (-.f64 (pow.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)) #s(literal 2 binary64)) #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)))))
(log.f64 (-.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)) #s(literal -1 binary64)))
(*.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)) #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b)))
(*.f64 #s(literal -1 binary64) (*.f64 #s(literal -1 binary64) #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))))
#s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))
(/.f64 (-.f64 (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 2 binary64)) (pow.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) #s(literal 2 binary64))) (-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) #s(literal 2 binary64)) (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 2 binary64)))) (neg.f64 (-.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) (log.f64 #s(literal 2 binary64)))))
(/.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) #s(literal 3 binary64)) (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 3 binary64)))) (neg.f64 (fma.f64 (log.f64 #s(literal 2 binary64)) (-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b)) (pow.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) #s(literal 2 binary64)))))
(/.f64 (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) #s(literal 2 binary64)) (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 2 binary64))) (-.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) (log.f64 #s(literal 2 binary64))))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) #s(literal 3 binary64)) (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 3 binary64))) (fma.f64 (log.f64 #s(literal 2 binary64)) (log.f64 #s(literal 2 binary64)) (-.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) #s(literal 2 binary64)) (*.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) (log.f64 #s(literal 2 binary64))))))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) #s(literal 3 binary64)) (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 3 binary64))) (fma.f64 (log.f64 #s(literal 2 binary64)) (-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b)) (pow.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) #s(literal 2 binary64))))
(fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))
(fma.f64 b (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) (log.f64 #s(literal 2 binary64)))
(-.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) #s(literal 2 binary64)) (-.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) (log.f64 #s(literal 2 binary64)))) (/.f64 (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 2 binary64)) (-.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) (log.f64 #s(literal 2 binary64)))))
(-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 (neg.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64))) b))
(-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 (neg.f64 b) (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64))))
(+.f64 (/.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) #s(literal 3 binary64)) (fma.f64 (log.f64 #s(literal 2 binary64)) (-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b)) (pow.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) #s(literal 2 binary64)))) (/.f64 (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 3 binary64)) (fma.f64 (log.f64 #s(literal 2 binary64)) (-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b)) (pow.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) #s(literal 2 binary64)))))
(+.f64 (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b) (log.f64 #s(literal 2 binary64)))
(+.f64 (log.f64 #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b))
(/.f64 (-.f64 #s(literal 1/4 binary64) (*.f64 #s(literal 1/64 binary64) (*.f64 b b))) (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/8 binary64) b)))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/64 binary64) (*.f64 b b) #s(literal -1/4 binary64))) (neg.f64 (-.f64 (*.f64 #s(literal 1/8 binary64) b) #s(literal 1/2 binary64))))
(/.f64 (neg.f64 (fma.f64 #s(literal 1/512 binary64) (pow.f64 b #s(literal 3 binary64)) #s(literal 1/8 binary64))) (neg.f64 (fma.f64 #s(literal 1/64 binary64) (*.f64 b b) (-.f64 #s(literal 1/4 binary64) (*.f64 b #s(literal 1/16 binary64))))))
(/.f64 (fma.f64 #s(literal 1/64 binary64) (*.f64 b b) #s(literal -1/4 binary64)) (-.f64 (*.f64 #s(literal 1/8 binary64) b) #s(literal 1/2 binary64)))
(/.f64 (fma.f64 #s(literal 1/512 binary64) (pow.f64 b #s(literal 3 binary64)) #s(literal 1/8 binary64)) (+.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 #s(literal 1/64 binary64) (*.f64 b b)) (*.f64 b #s(literal 1/16 binary64)))))
(/.f64 (fma.f64 #s(literal 1/512 binary64) (pow.f64 b #s(literal 3 binary64)) #s(literal 1/8 binary64)) (fma.f64 #s(literal 1/64 binary64) (*.f64 b b) (-.f64 #s(literal 1/4 binary64) (*.f64 b #s(literal 1/16 binary64)))))
(fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64))
(fma.f64 b #s(literal 1/8 binary64) #s(literal 1/2 binary64))
(-.f64 (/.f64 (*.f64 #s(literal 1/64 binary64) (*.f64 b b)) (-.f64 (*.f64 #s(literal 1/8 binary64) b) #s(literal 1/2 binary64))) (/.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 #s(literal 1/8 binary64) b) #s(literal 1/2 binary64))))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/8 binary64) b))
(-.f64 #s(literal 1/2 binary64) (*.f64 (neg.f64 b) #s(literal 1/8 binary64)))
(+.f64 (/.f64 (*.f64 #s(literal 1/512 binary64) (pow.f64 b #s(literal 3 binary64))) (fma.f64 #s(literal 1/64 binary64) (*.f64 b b) (-.f64 #s(literal 1/4 binary64) (*.f64 b #s(literal 1/16 binary64))))) (/.f64 #s(literal 1/8 binary64) (fma.f64 #s(literal 1/64 binary64) (*.f64 b b) (-.f64 #s(literal 1/4 binary64) (*.f64 b #s(literal 1/16 binary64))))))
(+.f64 (*.f64 #s(literal 1/8 binary64) b) #s(literal 1/2 binary64))
(+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/8 binary64) b))
(log.f64 #s(literal 2 binary64))

eval20.0ms (0.2%)

Memory
-12.0MiB live, 34.2MiB allocated; 3ms collecting garbage
Compiler

Compiled 5 977 to 734 computations (87.7% saved)

prune14.0ms (0.1%)

Memory
27.1MiB live, 27.1MiB allocated; 0ms collecting garbage
Pruning

16 alts after pruning (7 fresh and 9 done)

PrunedKeptTotal
New1592161
Fresh055
Picked055
Done044
Total15916175
Accuracy
100.0%
Counts
175 → 16
Alt Table
Click to see full alt table
StatusAccuracyProgram
55.4%
(-.f64 (log.f64 (+.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 3 binary64)) (pow.f64 (exp.f64 b) #s(literal 3 binary64)))) (log.f64 (fma.f64 (exp.f64 b) (-.f64 (exp.f64 b) #s(approx (exp a) #s(literal 1 binary64))) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)))))
54.8%
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
54.5%
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
54.4%
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
55.2%
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 (fma.f64 (*.f64 b b) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
55.1%
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
53.4%
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (log.f64 #s(literal 2 binary64))))
5.1%
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (*.f64 b b) #s(literal 1/8 binary64)))))
48.6%
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
55.5%
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
54.3%
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp b) (-.f64 b #s(literal -1 binary64)))))
53.4%
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))))
52.0%
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
54.6%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
11.4%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
53.1%
#s(approx (log (+ (exp a) (exp b))) #s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64)))))
Compiler

Compiled 1 027 to 462 computations (55% saved)

regimes40.0ms (0.4%)

Memory
-33.8MiB live, 59.9MiB allocated; 3ms collecting garbage
Counts
28 → 1
Calls
Call 1
Inputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (*.f64 b b) #s(literal 1/8 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) #s(literal 1 binary64))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp b) (-.f64 b #s(literal -1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
#s(approx (log (+ (exp a) (exp b))) #s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp 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)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 (fma.f64 (*.f64 b b) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (-.f64 b #s(literal -1 binary64)))))
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp 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)))))
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
(-.f64 (log.f64 (fma.f64 #s(literal 1 binary64) (exp.f64 (neg.f64 b)) (*.f64 (exp.f64 (neg.f64 a)) #s(literal 1 binary64)))) (log.f64 (exp.f64 (+.f64 (neg.f64 a) (neg.f64 b)))))
(-.f64 (log.f64 (+.f64 (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 3 binary64)) (pow.f64 (exp.f64 b) #s(literal 3 binary64)))) (log.f64 (fma.f64 (exp.f64 b) (-.f64 (exp.f64 b) #s(approx (exp a) #s(literal 1 binary64))) (pow.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(literal 2 binary64)))))
(-.f64 (log.f64 (+.f64 (pow.f64 (cosh.f64 a) #s(literal 3 binary64)) (pow.f64 (+.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 3 binary64)))) (log.f64 (fma.f64 (cosh.f64 a) (cosh.f64 a) (-.f64 (pow.f64 (+.f64 (sinh.f64 a) (exp.f64 b)) #s(literal 2 binary64)) (*.f64 (cosh.f64 a) (+.f64 (sinh.f64 a) (exp.f64 b)))))))
Outputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
Calls

6 calls:

8.0ms
b
7.0ms
a
6.0ms
(exp.f64 b)
5.0ms
(+.f64 (exp.f64 a) (exp.f64 b))
5.0ms
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
Results
AccuracySegmentsBranch
98.5%1(exp.f64 b)
98.5%1(exp.f64 a)
98.5%1(+.f64 (exp.f64 a) (exp.f64 b))
98.5%1(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
98.5%1a
98.5%1b
Compiler

Compiled 17 to 21 computations (-23.5% saved)

regimes41.0ms (0.4%)

Memory
-0.1MiB live, 52.5MiB allocated; 10ms collecting garbage
Counts
24 → 2
Calls
Call 1
Inputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (*.f64 b b) #s(literal 1/8 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) #s(literal 1 binary64))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp b) (-.f64 b #s(literal -1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
#s(approx (log (+ (exp a) (exp b))) #s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp 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)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 (fma.f64 (*.f64 b b) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (-.f64 b #s(literal -1 binary64)))))
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp 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)))))
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
Outputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
Calls

6 calls:

14.0ms
a
6.0ms
b
5.0ms
(+.f64 (exp.f64 a) (exp.f64 b))
5.0ms
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
5.0ms
(exp.f64 a)
Results
AccuracySegmentsBranch
99.6%2(exp.f64 a)
99.6%2a
58.0%1(exp.f64 b)
99.4%2(+.f64 (exp.f64 a) (exp.f64 b))
99.4%2(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
73.6%4b
Compiler

Compiled 17 to 21 computations (-23.5% saved)

regimes21.0ms (0.2%)

Memory
34.0MiB live, 34.0MiB allocated; 0ms collecting garbage
Counts
23 → 2
Calls
Call 1
Inputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (*.f64 b b) #s(literal 1/8 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) #s(literal 1 binary64))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp b) (-.f64 b #s(literal -1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
#s(approx (log (+ (exp a) (exp b))) #s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp 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)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 (fma.f64 (*.f64 b b) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (-.f64 b #s(literal -1 binary64)))))
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp 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)))))
Outputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b))
Calls

4 calls:

6.0ms
a
5.0ms
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
5.0ms
(+.f64 (exp.f64 a) (exp.f64 b))
4.0ms
(exp.f64 a)
Results
AccuracySegmentsBranch
99.4%2(+.f64 (exp.f64 a) (exp.f64 b))
99.4%2(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
99.4%2(exp.f64 a)
99.4%2a
Compiler

Compiled 14 to 16 computations (-14.3% saved)

regimes18.0ms (0.2%)

Memory
-18.1MiB live, 29.0MiB allocated; 1ms collecting garbage
Counts
19 → 2
Calls
Call 1
Inputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (*.f64 b b) #s(literal 1/8 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) #s(literal 1 binary64))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp b) (-.f64 b #s(literal -1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
#s(approx (log (+ (exp a) (exp b))) #s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp 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)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 (fma.f64 (*.f64 b b) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
Outputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b)))
Calls

4 calls:

5.0ms
a
4.0ms
(+.f64 (exp.f64 a) (exp.f64 b))
4.0ms
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
4.0ms
(exp.f64 a)
Results
AccuracySegmentsBranch
99.0%2(exp.f64 a)
98.3%2(+.f64 (exp.f64 a) (exp.f64 b))
98.3%2(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
99.0%2a
Compiler

Compiled 14 to 16 computations (-14.3% saved)

regimes9.0ms (0.1%)

Memory
15.3MiB live, 15.3MiB allocated; 0ms collecting garbage
Counts
17 → 2
Calls
Call 1
Inputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (*.f64 b b) #s(literal 1/8 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) #s(literal 1 binary64))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp b) (-.f64 b #s(literal -1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
#s(approx (log (+ (exp a) (exp b))) #s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp 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)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 (fma.f64 (*.f64 b b) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 a)))
Outputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 (fma.f64 (*.f64 b b) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
Calls

2 calls:

5.0ms
a
3.0ms
(exp.f64 a)
Results
AccuracySegmentsBranch
98.7%2(exp.f64 a)
98.7%2a
Compiler

Compiled 3 to 5 computations (-66.7% saved)

regimes9.0ms (0.1%)

Memory
-32.7MiB live, 14.2MiB allocated; 1ms collecting garbage
Counts
15 → 2
Calls
Call 1
Inputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (*.f64 b b) #s(literal 1/8 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) #s(literal 1 binary64))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp b) (-.f64 b #s(literal -1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
#s(approx (log (+ (exp a) (exp b))) #s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64)))))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) #s(approx (exp 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)))))
Outputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64)))))
Calls

2 calls:

5.0ms
a
3.0ms
(exp.f64 a)
Results
AccuracySegmentsBranch
98.6%2(exp.f64 a)
98.6%2a
Compiler

Compiled 3 to 5 computations (-66.7% saved)

regimes12.0ms (0.1%)

Memory
21.2MiB live, 21.2MiB allocated; 0ms collecting garbage
Counts
12 → 2
Calls
Call 1
Inputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (*.f64 b b) #s(literal 1/8 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) #s(literal 1 binary64))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp b) (-.f64 b #s(literal -1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
#s(approx (log (+ (exp a) (exp b))) #s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) (-.f64 #s(literal 1 binary64) b))) b))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))))
Outputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
Calls

4 calls:

4.0ms
a
3.0ms
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
3.0ms
(+.f64 (exp.f64 a) (exp.f64 b))
3.0ms
(exp.f64 a)
Results
AccuracySegmentsBranch
97.3%2(+.f64 (exp.f64 a) (exp.f64 b))
97.3%2(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
97.9%2(exp.f64 a)
97.9%2a
Compiler

Compiled 14 to 16 computations (-14.3% saved)

regimes6.0ms (0.1%)

Memory
10.1MiB live, 10.1MiB allocated; 0ms collecting garbage
Counts
9 → 2
Calls
Call 1
Inputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (*.f64 b b) #s(literal 1/8 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) #s(literal 1 binary64))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp b) (-.f64 b #s(literal -1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 #s(approx (exp (neg b)) #s(literal 1 binary64))) b))
#s(approx (log (+ (exp a) (exp b))) #s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64)))))
Outputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp b) (-.f64 b #s(literal -1 binary64)))))
Calls

2 calls:

3.0ms
a
2.0ms
(exp.f64 a)
Results
AccuracySegmentsBranch
97.8%2(exp.f64 a)
97.8%2a
Compiler

Compiled 3 to 5 computations (-66.7% saved)

regimes5.0ms (0%)

Memory
-39.0MiB live, 8.1MiB allocated; 1ms collecting garbage
Counts
6 → 2
Calls
Call 1
Inputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (*.f64 b b) #s(literal 1/8 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) #s(literal 1 binary64))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (log.f64 #s(literal 2 binary64))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
Outputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a))))
Calls

2 calls:

3.0ms
a
2.0ms
(exp.f64 a)
Results
AccuracySegmentsBranch
97.3%2a
97.3%2(exp.f64 a)
Compiler

Compiled 3 to 5 computations (-66.7% saved)

regimes7.0ms (0.1%)

Memory
13.0MiB live, 13.0MiB allocated; 0ms collecting garbage
Counts
5 → 2
Calls
Call 1
Inputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (*.f64 b b) #s(literal 1/8 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) #s(literal 1 binary64))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (log.f64 #s(literal 2 binary64))))
Outputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) #s(literal 1 binary64))))
Calls

4 calls:

2.0ms
a
1.0ms
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
1.0ms
(+.f64 (exp.f64 a) (exp.f64 b))
1.0ms
(exp.f64 a)
Results
AccuracySegmentsBranch
96.2%2(+.f64 (exp.f64 a) (exp.f64 b))
96.2%2(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
96.9%2(exp.f64 a)
96.9%2a
Compiler

Compiled 14 to 16 computations (-14.3% saved)

regimes8.0ms (0.1%)

Memory
16.2MiB live, 16.2MiB allocated; 0ms collecting garbage
Accuracy

Total -28.0b remaining (-85%)

Threshold costs -28b (-85%)

Counts
3 → 1
Calls
Call 1
Inputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) #s(approx (+ (* 1/2 b) (log 2)) (*.f64 #s(literal 1/2 binary64) b))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) #s(approx (+ (* (+ (* 1/8 b) 1/2) b) (log 2)) (*.f64 (*.f64 b b) #s(literal 1/8 binary64)))))
Outputs
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
Calls

6 calls:

1.0ms
b
1.0ms
a
1.0ms
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
1.0ms
(+.f64 (exp.f64 a) (exp.f64 b))
1.0ms
(exp.f64 b)
Results
AccuracySegmentsBranch
48.6%1(exp.f64 b)
48.6%1b
48.6%1(+.f64 (exp.f64 a) (exp.f64 b))
48.6%1(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
48.6%1(exp.f64 a)
48.6%1a
Compiler

Compiled 17 to 21 computations (-23.5% saved)

bsearch26.0ms (0.2%)

Memory
-3.2MiB live, 44.9MiB allocated; 2ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
23.0ms
-424.69208502878456
-8.487123768546885e-6
Samples
15.0ms109×1valid
2.0ms35×0valid
Compiler

Compiled 261 to 227 computations (13% saved)

Precisions
Click to see histograms. Total time spent on operations: 12.0ms
ival-exp: 4.0ms (32.6% of total)
ival-log: 4.0ms (32.6% of total)
adjust: 2.0ms (16.3% of total)
ival-add: 1.0ms (8.2% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch25.0ms (0.2%)

Memory
-13.3MiB live, 32.7MiB allocated; 5ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
23.0ms
-424.69208502878456
-8.487123768546885e-6
Samples
19.0ms96×1valid
Compiler

Compiled 450 to 353 computations (21.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-exp: 9.0ms (56.8% of total)
ival-log: 3.0ms (18.9% of total)
adjust: 2.0ms (12.6% of total)
ival-add: 1.0ms (6.3% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)

bsearch9.0ms (0.1%)

Memory
14.9MiB live, 14.9MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
8.0ms
-424.69208502878456
-8.487123768546885e-6
Samples
6.0ms44×1valid
0.0ms0valid
Compiler

Compiled 297 to 254 computations (14.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 5.0ms
ival-exp: 2.0ms (43.6% of total)
adjust: 1.0ms (21.8% of total)
ival-log: 1.0ms (21.8% of total)
ival-true: 0.0ms (0% of total)
ival-add: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

bsearch2.0ms (0%)

Memory
2.8MiB live, 2.8MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
1.0ms
-424.69208502878456
-8.487123768546885e-6
Compiler

Compiled 594 to 434 computations (26.9% saved)

bsearch1.0ms (0%)

Memory
2.5MiB live, 2.5MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
1.0ms
-424.69208502878456
-8.487123768546885e-6
Compiler

Compiled 549 to 407 computations (25.9% saved)

bsearch1.0ms (0%)

Memory
1.7MiB live, 1.7MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
1.0ms
-424.69208502878456
-8.487123768546885e-6
Compiler

Compiled 432 to 344 computations (20.4% saved)

bsearch0.0ms (0%)

Memory
0.4MiB live, 0.4MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
3.6188531820745227e-185
0.999991512912247
Compiler

Compiled 9 to 11 computations (-22.2% saved)

bsearch0.0ms (0%)

Memory
0.3MiB live, 0.3MiB allocated; 0ms collecting garbage
Algorithm
left-value
Steps
TimeLeftRight
0.0ms
3.6188531820745227e-185
0.999991512912247
Compiler

Compiled 9 to 11 computations (-22.2% saved)

bsearch1.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated; 0ms collecting garbage
Algorithm
binary-search
Stop Event
narrow-enough
Steps
TimeLeftRight
1.0ms
-424.69208502878456
-8.487123768546885e-6
Compiler

Compiled 315 to 263 computations (16.5% saved)

simplify49.0ms (0.5%)

Memory
-14.4MiB live, 32.4MiB allocated; 2ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
093373
1139373
2297373
31429373
Stop Event
node limit
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
(if (<=.f64 a #s(literal -36 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) (log.f64 (+.f64 (exp.f64 a) (exp.f64 b))))
(if (<=.f64 a #s(literal -108 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)))
(if (<=.f64 a #s(literal -30 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b))))
(if (<=.f64 a #s(literal -30 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 (fma.f64 (*.f64 b b) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))))
(if (<=.f64 a #s(literal -30 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))))
(if (<=.f64 a #s(literal -31 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))))
(if (<=.f64 (exp.f64 a) #s(literal 3827252586451049/76545051729020975577310162521900618820659871603466655644272117978380005723696097587725184512638784526308634214455061267843403507870735540391292521535824647434568377082591826884769598224146796816367616 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp b) (-.f64 b #s(literal -1 binary64))))))
(if (<=.f64 (exp.f64 a) #s(literal 3827252586451049/76545051729020975577310162521900618820659871603466655644272117978380005723696097587725184512638784526308634214455061267843403507870735540391292521535824647434568377082591826884769598224146796816367616 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)))))
(if (<=.f64 a #s(literal -30 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) #s(literal 1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)
Outputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (-.f64 (exp.f64 a) #s(literal -1 binary64))) (log1p.f64 (exp.f64 a))))
(if (<=.f64 a #s(literal -36 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) (log.f64 (+.f64 (exp.f64 a) (exp.f64 b))))
(if (<=.f64 a #s(literal -108 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) (+.f64 (log1p.f64 (exp.f64 (neg.f64 b))) b)))
(if (<=.f64 a #s(literal -30 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (log (+ (exp a) (exp b))) (log1p.f64 (exp.f64 b))))
(if (<=.f64 a #s(literal -30 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 (fma.f64 (*.f64 b b) #s(literal -1/192 binary64) #s(literal 1/8 binary64)) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))))
(if (<=.f64 a #s(literal -30 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) #s(approx (+ (log (+ 1 (exp (neg b)))) b) (fma.f64 (fma.f64 #s(literal 1/8 binary64) b #s(literal 1/2 binary64)) b (log.f64 #s(literal 2 binary64))))))
(if (<=.f64 a #s(literal -31 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (- (exp a) -1)) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))))
(if (<=.f64 (exp.f64 a) #s(literal 3827252586451049/76545051729020975577310162521900618820659871603466655644272117978380005723696097587725184512638784526308634214455061267843403507870735540391292521535824647434568377082591826884769598224146796816367616 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp b) (-.f64 b #s(literal -1 binary64))))))
(if (<=.f64 (exp.f64 a) #s(literal 3827252586451049/76545051729020975577310162521900618820659871603466655644272117978380005723696097587725184512638784526308634214455061267843403507870735540391292521535824647434568377082591826884769598224146796816367616 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)))))
(if (<=.f64 a #s(literal -30 binary64)) #s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b) #s(approx (log (+ (exp a) (exp b))) (log1p.f64 #s(approx (exp a) #s(literal 1 binary64)))))
#s(approx (- (log (+ (* 1 (exp (neg b))) (* (exp (neg a)) 1))) (log (exp (+ (neg a) (neg b))))) b)

derivations438.0ms (4.2%)

Memory
29.4MiB live, 361.7MiB allocated; 23ms collecting garbage
Stop Event
fuel
Compiler

Compiled 464 to 95 computations (79.5% saved)

preprocess62.0ms (0.6%)

Memory
-16.0MiB live, 77.5MiB allocated; 4ms collecting garbage
Compiler

Compiled 1 004 to 248 computations (75.3% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated; 0ms collecting garbage

Profiling

Loading profile data...