symmetry log of sum of exp

Time bar (total: 9.6s)

start0.0ms (0%)

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

analyze131.0ms (1.4%)

Memory
40.7MiB live, 176.1MiB allocated; 17ms 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)

sample6.3s (65.9%)

Memory
-7.0MiB live, 5 897.9MiB allocated; 3.0s collecting garbage
Samples
3.5s8 099×5exit
961.0ms1 639×2valid
569.0ms2 279×1valid
306.0ms4 338×0valid
Precisions
Click to see histograms. Total time spent on operations: 4.4s
adjust: 1.8s (40.3% of total)
ival-log: 1.3s (29.8% of total)
ival-exp: 1.2s (26% of total)
ival-add!: 175.0ms (4% of total)
Bogosity

preprocess60.0ms (0.6%)

Memory
10.7MiB live, 10.7MiB allocated; 0ms collecting garbage
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01842
14142
211742
349342
4528742
Stop Event
node-limit
Alt Table
Click to see full alt table
StatusAccuracyProgram
51.9%
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
Symmetry

(sort a b)

Compiler

Compiled 12 to 12 computations (0% saved)

series100.0ms (1%)

Memory
-14.3MiB live, 30.2MiB allocated; 10ms collecting garbage
Counts
6 → 29
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
#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 a #s(hole binary64 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 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 #s(hole binary64 b))
#s(approx (exp b) #s(hole binary64 (exp b)))
Calls

6 calls:

TimeVariablePointExpression
37.0ms
a
@-inf
((log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) a (exp b) b)
30.0ms
a
@inf
((log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) a (exp b) b)
16.0ms
b
@-inf
((log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) a (exp b) b)
16.0ms
b
@inf
((log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) a (exp b) b)
1.0ms
a
@0
((log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) a (exp b) b)

rewrite636.0ms (6.6%)

Memory
-23.1MiB live, 106.9MiB allocated; 56ms collecting garbage
Counts
35 → 80
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
#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 a #s(hole binary64 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 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 #s(hole binary64 b))
#s(approx (exp b) #s(hole binary64 (exp b)))
Outputs
(-.f64 (log.f64 (-.f64 (exp.f64 (+.f64 a a)) (exp.f64 (+.f64 b b)))) (log.f64 (-.f64 (exp.f64 a) (exp.f64 b))))
(-.f64 (log.f64 (+.f64 (exp.f64 (*.f64 a #s(literal 3 binary64))) (exp.f64 (*.f64 b #s(literal 3 binary64))))) (log.f64 (-.f64 (+.f64 (exp.f64 (+.f64 a a)) (exp.f64 (+.f64 b b))) (exp.f64 (+.f64 a b)))))
(log.f64 (+.f64 (exp.f64 b) (exp.f64 a)))
(+.f64 (exp.f64 b) (exp.f64 a))
(+.f64 (exp.f64 a) (exp.f64 b))
(+.f64 (+.f64 (exp.f64 a) (cosh.f64 b)) (sinh.f64 b))
(+.f64 (+.f64 (exp.f64 b) (cosh.f64 a)) (sinh.f64 a))
(+.f64 (cosh.f64 a) (+.f64 (sinh.f64 a) (exp.f64 b)))
(+.f64 (cosh.f64 b) (+.f64 (sinh.f64 b) (exp.f64 a)))
(+.f64 (/.f64 (exp.f64 (*.f64 a #s(literal 3 binary64))) (-.f64 (+.f64 (exp.f64 (+.f64 a a)) (exp.f64 (+.f64 b b))) (exp.f64 (+.f64 a b)))) (/.f64 (exp.f64 (*.f64 b #s(literal 3 binary64))) (-.f64 (+.f64 (exp.f64 (+.f64 a a)) (exp.f64 (+.f64 b b))) (exp.f64 (+.f64 a b)))))
(-.f64 (/.f64 (exp.f64 (+.f64 a a)) (-.f64 (exp.f64 a) (exp.f64 b))) (/.f64 (exp.f64 (+.f64 b b)) (-.f64 (exp.f64 a) (exp.f64 b))))
(/.f64 (-.f64 (exp.f64 (+.f64 a a)) (exp.f64 (+.f64 b b))) (-.f64 (exp.f64 a) (exp.f64 b)))
(/.f64 (-.f64 (exp.f64 (+.f64 b b)) (exp.f64 (+.f64 a a))) (-.f64 (exp.f64 b) (exp.f64 a)))
(/.f64 (+.f64 (exp.f64 (*.f64 a #s(literal 3 binary64))) (exp.f64 (*.f64 b #s(literal 3 binary64)))) (-.f64 (+.f64 (exp.f64 (+.f64 a a)) (exp.f64 (+.f64 b b))) (exp.f64 (+.f64 a b))))
(/.f64 (+.f64 (exp.f64 (*.f64 a #s(literal 3 binary64))) (exp.f64 (*.f64 b #s(literal 3 binary64)))) (+.f64 (exp.f64 (+.f64 b b)) (-.f64 (exp.f64 (+.f64 a a)) (exp.f64 (+.f64 a b)))))
(/.f64 (neg.f64 (-.f64 (exp.f64 (+.f64 a a)) (exp.f64 (+.f64 b b)))) (neg.f64 (-.f64 (exp.f64 a) (exp.f64 b))))
(/.f64 (neg.f64 (+.f64 (exp.f64 (*.f64 a #s(literal 3 binary64))) (exp.f64 (*.f64 b #s(literal 3 binary64))))) (neg.f64 (-.f64 (+.f64 (exp.f64 (+.f64 a a)) (exp.f64 (+.f64 b b))) (exp.f64 (+.f64 a b)))))
(fma.f64 #s(literal 1 binary64) (exp.f64 a) (exp.f64 b))
(fma.f64 #s(literal 1 binary64) (exp.f64 b) (exp.f64 a))
(fma.f64 (exp.f64 a) #s(literal 1 binary64) (exp.f64 b))
(fma.f64 (exp.f64 b) #s(literal 1 binary64) (exp.f64 a))
(*.f64 #s(literal 1 binary64) (exp.f64 a))
(*.f64 (exp.f64 a) #s(literal 1 binary64))
(+.f64 (cosh.f64 a) (sinh.f64 a))
(+.f64 (sinh.f64 a) (cosh.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 (-.f64 (*.f64 (cosh.f64 a) (cosh.f64 a)) (*.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 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)))))
(exp.f64 a)
(exp.f64 (+.f64 #s(literal 0 binary64) 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)))
a
(*.f64 #s(literal 1 binary64) a)
(*.f64 a #s(literal 1 binary64))
(*.f64 #s(literal 1 binary64) (exp.f64 b))
(*.f64 (exp.f64 b) #s(literal 1 binary64))
(+.f64 (cosh.f64 b) (sinh.f64 b))
(+.f64 (sinh.f64 b) (cosh.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 (-.f64 (*.f64 (cosh.f64 b) (cosh.f64 b)) (*.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 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)
(exp.f64 (+.f64 #s(literal 0 binary64) 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)))
b
(*.f64 #s(literal 1 binary64) b)
(*.f64 b #s(literal 1 binary64))
#s(approx (log (+ (exp a) (exp b))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 a (+.f64 #s(literal 1 binary64) (exp.f64 b))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 b))) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) #s(literal -2 binary64))) (*.f64 #s(literal 1/2 binary64) a) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 b)))) a (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) #s(literal -2 binary64)) #s(literal -3 binary64) (fma.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) #s(literal -3 binary64)) #s(literal 2 binary64) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 b))))) (*.f64 #s(literal 1/6 binary64) a) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 b))) (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 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)))))
#s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 b)))
#s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 b) (+.f64 #s(literal 1 binary64) a)))
#s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 b) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64))))
#s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 b) (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) #s(literal 1 binary64))
#s(approx (exp a) (+.f64 #s(literal 1 binary64) 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) (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 a a)
#s(approx (log (+ (exp a) (exp b))) (log.f64 (+.f64 (exp.f64 b) (exp.f64 a))))
#s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 b) (exp.f64 a)))
#s(approx (exp a) (exp.f64 a))
#s(approx (log (+ (exp a) (exp b))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 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))) (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 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (fma.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal -2 binary64)) #s(literal -3 binary64) (fma.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal -3 binary64)) #s(literal 2 binary64) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a))))) (*.f64 #s(literal 1/6 binary64) b) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a))) (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 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
#s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 a)))
#s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 a) (+.f64 #s(literal 1 binary64) b)))
#s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b #s(literal 1 binary64))))
#s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 a) (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) (+.f64 #s(literal 1 binary64) 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) (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 b)
#s(approx (exp b) (exp.f64 b))

eval13.0ms (0.1%)

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

Compiled 1 159 to 319 computations (72.5% saved)

prune9.0ms (0.1%)

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

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New651075
Fresh000
Picked011
Done000
Total651176
Accuracy
98.7%
Counts
76 → 11
Alt Table
Click to see full alt table
StatusAccuracyProgram
51.9%
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
51.5%
(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)))))
51.4%
(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)))))
51.1%
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (+.f64 #s(literal 1 binary64) b))))
50.0%
(log.f64 (+.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64))) (exp.f64 b)))
48.5%
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) (exp.f64 b)))
50.3%
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
48.5%
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 b) (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)))))
49.8%
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
97.8%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
49.6%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 a (+.f64 #s(literal 1 binary64) (exp.f64 b))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)))))
Compiler

Compiled 290 to 230 computations (20.7% saved)

series103.0ms (1.1%)

Memory
11.8MiB live, 56.7MiB allocated; 7ms collecting garbage
Counts
29 → 74
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
(+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))))
(/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))
b
(+.f64 #s(literal 1 binary64) (exp.f64 a))
#s(literal 1 binary64)
(exp.f64 a)
a
(log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
#s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 a)))
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) (exp.f64 b)))
(+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) (exp.f64 b))
#s(approx (exp a) (+.f64 #s(literal 1 binary64) a))
(+.f64 #s(literal 1 binary64) a)
(exp.f64 b)
(log.f64 (+.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64))) (exp.f64 b)))
(+.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64))) (exp.f64 b))
#s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64))
#s(literal 1/2 binary64)
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 b) (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)) (+.f64 (exp.f64 b) (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))))
(+.f64 (exp.f64 b) (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)))
(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))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64))
(fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64))
#s(literal 1/6 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 (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b)))))))
#s(approx (+ (/ b (+ 1 (exp a))) (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 (+ 1 (exp a))) (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 (+ 1 (exp a))) #s(hole binary64 (* 1/2 b)))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (+ (* -1/4 (* a b)) (* 1/2 b))))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (+ (* 1/2 b) (* a (- (* -1 (* a (+ (* -1/8 b) (* 1/8 b)))) (* 1/4 b))))))
#s(approx (/ b (+ 1 (exp a))) #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 (+ 1 (exp a)) #s(hole binary64 2))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 a)))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 (* a (+ 1 (* 1/2 a))))))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 (* 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 a #s(hole binary64 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) (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 (+ (* 1/2 a) 1) #s(hole binary64 (+ 1 (* 1/2 a))))
#s(approx (+ (* (+ (* 1/6 a) 1/2) a) 1) #s(hole binary64 (+ 1 (* a (+ 1/2 (* 1/6 a))))))
#s(approx (+ (* 1/6 a) 1/2) #s(hole binary64 1/2))
#s(approx (+ (* 1/6 a) 1/2) #s(hole binary64 (+ 1/2 (* 1/6 a))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 1 (exp a))))
#s(approx (exp a) #s(hole binary64 (exp a)))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ (exp a) (exp b))))
#s(approx (+ 1 a) #s(hole binary64 (* a (+ 1 (/ 1 a)))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) 1) #s(hole binary64 (* 1/2 (pow a 2))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) 1) #s(hole binary64 (* (pow a 2) (+ 1/2 (/ 1 a)))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) 1) #s(hole binary64 (* (pow a 2) (+ 1/2 (+ (/ 1 a) (/ 1 (pow a 2)))))))
#s(approx (+ (* 1/2 a) 1) #s(hole binary64 (* 1/2 a)))
#s(approx (+ (* 1/2 a) 1) #s(hole binary64 (* a (+ 1/2 (/ 1 a)))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (* 1/6 (pow a 3))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (* (pow a 3) (+ 1/6 (* 1/2 (/ 1 a))))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (* (pow a 3) (+ 1/6 (+ (* 1/2 (/ 1 a)) (/ 1 (pow a 2)))))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (* (pow a 3) (+ 1/6 (+ (* 1/2 (/ 1 a)) (+ (/ 1 (pow a 2)) (+ (/ 1 (pow a 3)) (/ (exp b) (pow a 3)))))))))
#s(approx (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1) #s(hole binary64 (* (pow a 3) (+ 1/6 (+ (* 1/2 (/ 1 a)) (+ (/ 1 (pow a 2)) (/ 1 (pow a 3))))))))
#s(approx (+ (* (+ (* 1/6 a) 1/2) a) 1) #s(hole binary64 (* 1/6 (pow a 2))))
#s(approx (+ (* (+ (* 1/6 a) 1/2) a) 1) #s(hole binary64 (* (pow a 2) (+ 1/6 (* 1/2 (/ 1 a))))))
#s(approx (+ (* (+ (* 1/6 a) 1/2) a) 1) #s(hole binary64 (* (pow a 2) (+ 1/6 (+ (* 1/2 (/ 1 a)) (/ 1 (pow a 2)))))))
#s(approx (+ (* 1/6 a) 1/2) #s(hole binary64 (* 1/6 a)))
#s(approx (+ (* 1/6 a) 1/2) #s(hole binary64 (* a (+ 1/6 (* 1/2 (/ 1 a))))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (* -1 (* (pow a 3) (- (* -1 (/ (+ 1/2 (/ 1 a)) a)) 1/6)))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (* -1 (* (pow a 3) (- (* -1 (/ (+ 1/2 (* -1 (/ (- (* -1 (/ (+ 1 (exp b)) a)) 1) a))) a)) 1/6)))))
#s(approx (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1) #s(hole binary64 (* -1 (* (pow a 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 a) (/ 1 (pow a 2)))) a)) 1/6)))))
#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 #s(hole binary64 b))
#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 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) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (+ 2 (+ b (* a (+ 1 (* a (+ 1/2 (* 1/6 a)))))))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (+ 2 (+ (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))) (* b (+ 1 (* 1/2 b)))))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (+ 2 (+ (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))))
#s(approx (+ (/ b (+ 1 (exp a))) (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 (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp a))) b)) (/ 1 (+ 1 (exp a))))))))
Calls

6 calls:

TimeVariablePointExpression
29.0ms
a
@inf
((log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (/ b (+ 1 (exp a))) b (+ 1 (exp a)) 1 (exp a) a (log (+ 1 (exp a))) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (+ 1 a) (exp b) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (+ (* (+ (* 1/2 a) 1) a) 1) (+ (* 1/2 a) 1) 1/2 (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1) (+ (* (+ (* 1/6 a) 1/2) a) 1) (+ (* 1/6 a) 1/2) 1/6)
25.0ms
a
@-inf
((log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (/ b (+ 1 (exp a))) b (+ 1 (exp a)) 1 (exp a) a (log (+ 1 (exp a))) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (+ 1 a) (exp b) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (+ (* (+ (* 1/2 a) 1) a) 1) (+ (* 1/2 a) 1) 1/2 (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1) (+ (* (+ (* 1/6 a) 1/2) a) 1) (+ (* 1/6 a) 1/2) 1/6)
21.0ms
a
@0
((log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (/ b (+ 1 (exp a))) b (+ 1 (exp a)) 1 (exp a) a (log (+ 1 (exp a))) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (+ 1 a) (exp b) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (+ (* (+ (* 1/2 a) 1) a) 1) (+ (* 1/2 a) 1) 1/2 (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1) (+ (* (+ (* 1/6 a) 1/2) a) 1) (+ (* 1/6 a) 1/2) 1/6)
10.0ms
b
@inf
((log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (/ b (+ 1 (exp a))) b (+ 1 (exp a)) 1 (exp a) a (log (+ 1 (exp a))) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (+ 1 a) (exp b) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (+ (* (+ (* 1/2 a) 1) a) 1) (+ (* 1/2 a) 1) 1/2 (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1) (+ (* (+ (* 1/6 a) 1/2) a) 1) (+ (* 1/6 a) 1/2) 1/6)
10.0ms
b
@-inf
((log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (/ b (+ 1 (exp a))) b (+ 1 (exp a)) 1 (exp a) a (log (+ 1 (exp a))) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (+ 1 a) (exp b) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (exp a) (+ (* (+ (* 1/2 a) 1) a) 1) (+ (* 1/2 a) 1) 1/2 (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1) (+ (* (+ (* 1/6 a) 1/2) a) 1) (+ (* 1/6 a) 1/2) 1/6)

rewrite380.0ms (4%)

Memory
-28.7MiB live, 113.7MiB allocated; 30ms collecting garbage
Counts
103 → 180
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
(+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))))
(/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))
b
(+.f64 #s(literal 1 binary64) (exp.f64 a))
#s(literal 1 binary64)
(exp.f64 a)
a
(log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
#s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 a)))
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) (exp.f64 b)))
(+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) (exp.f64 b))
#s(approx (exp a) (+.f64 #s(literal 1 binary64) a))
(+.f64 #s(literal 1 binary64) a)
(exp.f64 b)
(log.f64 (+.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64))) (exp.f64 b)))
(+.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64))) (exp.f64 b))
#s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64))
#s(literal 1/2 binary64)
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 b) (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)) (+.f64 (exp.f64 b) (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))))
(+.f64 (exp.f64 b) (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)))
(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))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64))
(fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64))
#s(literal 1/6 binary64)
#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 (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b)))))))
#s(approx (+ (/ b (+ 1 (exp a))) (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 (+ 1 (exp a))) (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 (+ 1 (exp a))) #s(hole binary64 (* 1/2 b)))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (+ (* -1/4 (* a b)) (* 1/2 b))))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (+ (* 1/2 b) (* a (- (* -1 (* a (+ (* -1/8 b) (* 1/8 b)))) (* 1/4 b))))))
#s(approx (/ b (+ 1 (exp a))) #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 (+ 1 (exp a)) #s(hole binary64 2))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 a)))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 (* a (+ 1 (* 1/2 a))))))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 (* 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 a #s(hole binary64 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) (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 (+ (* 1/2 a) 1) #s(hole binary64 (+ 1 (* 1/2 a))))
#s(approx (+ (* (+ (* 1/6 a) 1/2) a) 1) #s(hole binary64 (+ 1 (* a (+ 1/2 (* 1/6 a))))))
#s(approx (+ (* 1/6 a) 1/2) #s(hole binary64 1/2))
#s(approx (+ (* 1/6 a) 1/2) #s(hole binary64 (+ 1/2 (* 1/6 a))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 1 (exp a))))
#s(approx (exp a) #s(hole binary64 (exp a)))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ (exp a) (exp b))))
#s(approx (+ 1 a) #s(hole binary64 (* a (+ 1 (/ 1 a)))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) 1) #s(hole binary64 (* 1/2 (pow a 2))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) 1) #s(hole binary64 (* (pow a 2) (+ 1/2 (/ 1 a)))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) 1) #s(hole binary64 (* (pow a 2) (+ 1/2 (+ (/ 1 a) (/ 1 (pow a 2)))))))
#s(approx (+ (* 1/2 a) 1) #s(hole binary64 (* 1/2 a)))
#s(approx (+ (* 1/2 a) 1) #s(hole binary64 (* a (+ 1/2 (/ 1 a)))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (* 1/6 (pow a 3))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (* (pow a 3) (+ 1/6 (* 1/2 (/ 1 a))))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (* (pow a 3) (+ 1/6 (+ (* 1/2 (/ 1 a)) (/ 1 (pow a 2)))))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (* (pow a 3) (+ 1/6 (+ (* 1/2 (/ 1 a)) (+ (/ 1 (pow a 2)) (+ (/ 1 (pow a 3)) (/ (exp b) (pow a 3)))))))))
#s(approx (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1) #s(hole binary64 (* (pow a 3) (+ 1/6 (+ (* 1/2 (/ 1 a)) (+ (/ 1 (pow a 2)) (/ 1 (pow a 3))))))))
#s(approx (+ (* (+ (* 1/6 a) 1/2) a) 1) #s(hole binary64 (* 1/6 (pow a 2))))
#s(approx (+ (* (+ (* 1/6 a) 1/2) a) 1) #s(hole binary64 (* (pow a 2) (+ 1/6 (* 1/2 (/ 1 a))))))
#s(approx (+ (* (+ (* 1/6 a) 1/2) a) 1) #s(hole binary64 (* (pow a 2) (+ 1/6 (+ (* 1/2 (/ 1 a)) (/ 1 (pow a 2)))))))
#s(approx (+ (* 1/6 a) 1/2) #s(hole binary64 (* 1/6 a)))
#s(approx (+ (* 1/6 a) 1/2) #s(hole binary64 (* a (+ 1/6 (* 1/2 (/ 1 a))))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (* -1 (* (pow a 3) (- (* -1 (/ (+ 1/2 (/ 1 a)) a)) 1/6)))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (* -1 (* (pow a 3) (- (* -1 (/ (+ 1/2 (* -1 (/ (- (* -1 (/ (+ 1 (exp b)) a)) 1) a))) a)) 1/6)))))
#s(approx (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1) #s(hole binary64 (* -1 (* (pow a 3) (- (* -1 (/ (+ 1/2 (+ (/ 1 a) (/ 1 (pow a 2)))) a)) 1/6)))))
#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 #s(hole binary64 b))
#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 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) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (+ 2 (+ b (* a (+ 1 (* a (+ 1/2 (* 1/6 a)))))))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (+ 2 (+ (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))) (* b (+ 1 (* 1/2 b)))))))
#s(approx (+ (exp b) (+ (* (+ (* (+ (* 1/6 a) 1/2) a) 1) a) 1)) #s(hole binary64 (+ 2 (+ (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))))
#s(approx (+ (/ b (+ 1 (exp a))) (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 (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp a))) b)) (/ 1 (+ 1 (exp a))))))))
Outputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
(+.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))))
(+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))))
(/.f64 (-.f64 (*.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))) (*.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))))) (-.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
(/.f64 (-.f64 (*.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))) (*.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))))) (-.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
(/.f64 (+.f64 (pow.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(literal 3 binary64)) (pow.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(literal 3 binary64))) (fma.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (-.f64 (*.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))) (*.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))))
(/.f64 (+.f64 (pow.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(literal 3 binary64)) (pow.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(literal 3 binary64))) (fma.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (-.f64 (*.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))) (*.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))))))
(/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))
(/.f64 (neg.f64 b) (neg.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))))
b
(+.f64 #s(literal 1 binary64) (exp.f64 a))
(+.f64 (exp.f64 a) #s(literal 1 binary64))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 (exp.f64 a) (exp.f64 a))) (-.f64 #s(literal 1 binary64) (exp.f64 a)))
(/.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (+.f64 #s(literal 1 binary64) (-.f64 (*.f64 (exp.f64 a) (exp.f64 a)) (*.f64 #s(literal 1 binary64) (exp.f64 a)))))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (exp.f64 a))
#s(literal 1 binary64)
(*.f64 #s(literal 1 binary64) #s(literal 1 binary64))
(cosh.f64 #s(literal 0 binary64))
(exp.f64 #s(literal 0 binary64))
(neg.f64 #s(literal -1 binary64))
(pow.f64 #s(literal 1 binary64) #s(literal 3 binary64))
(+.f64 (cosh.f64 a) (sinh.f64 a))
(exp.f64 a)
a
(log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))
(log1p.f64 (exp.f64 a))
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
#s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 a)))
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) (exp.f64 b)))
(+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) (exp.f64 b))
#s(approx (exp a) (+.f64 #s(literal 1 binary64) a))
(+.f64 #s(literal 1 binary64) a)
(+.f64 a #s(literal 1 binary64))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 a a)) (-.f64 #s(literal 1 binary64) a))
(/.f64 (+.f64 #s(literal 1 binary64) (*.f64 (*.f64 a a) a)) (+.f64 #s(literal 1 binary64) (-.f64 (*.f64 a a) (*.f64 #s(literal 1 binary64) a))))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) a)
(+.f64 (cosh.f64 b) (sinh.f64 b))
(exp.f64 b)
(log.f64 (+.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64))) (exp.f64 b)))
(+.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64))) (exp.f64 b))
#s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)))
(+.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 a) (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a)) #s(literal 1 binary64)) (-.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a)))
(/.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) #s(literal 3 binary64))) (+.f64 #s(literal 1 binary64) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a)) (*.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a)))))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) #s(literal 1 binary64)))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64))
(fma.f64 a (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) a))
(+.f64 (*.f64 #s(literal 1/2 binary64) a) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) a))
(/.f64 (-.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) a) (*.f64 #s(literal 1/2 binary64) a)) #s(literal 1 binary64)) (-.f64 (*.f64 #s(literal 1/2 binary64) a) #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 #s(literal 1/2 binary64) a) (*.f64 #s(literal 1/2 binary64) a))) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) a)))
(/.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) a) #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 (*.f64 #s(literal 1/2 binary64) a) (*.f64 #s(literal 1/2 binary64) a) (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 #s(literal 1/2 binary64) a) #s(literal 1 binary64)))))
(/.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (*.f64 #s(literal 1/2 binary64) a) #s(literal 3 binary64))) (+.f64 #s(literal 1 binary64) (-.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) a) (*.f64 #s(literal 1/2 binary64) a)) (*.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) a)))))
(fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) a))
(fma.f64 a #s(literal 1/2 binary64) #s(literal 1 binary64))
#s(literal 1/2 binary64)
(*.f64 #s(literal 1/2 binary64) #s(literal 1 binary64))
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 (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)) (exp.f64 b))))
#s(approx (+ (exp a) (exp b)) (+.f64 (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)) (exp.f64 b)))
(+.f64 (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)) (exp.f64 b))
(+.f64 (exp.f64 b) (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)))
(+.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64))
(+.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) (*.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) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (exp.f64 b)))
(/.f64 (-.f64 (*.f64 (exp.f64 b) (exp.f64 b)) (*.f64 (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)) (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)))) (-.f64 (exp.f64 b) (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))))
(/.f64 (+.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (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(literal 3 binary64))) (fma.f64 (exp.f64 b) (exp.f64 b) (-.f64 (*.f64 (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)) (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))) (*.f64 (exp.f64 b) (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))))))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (exp.f64 b)) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (exp.f64 b)))) (-.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (exp.f64 b))))
(/.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 3 binary64))) (+.f64 #s(literal 1 binary64) (-.f64 (*.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (exp.f64 b)) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (exp.f64 b))) (*.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (exp.f64 b))))))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (exp.f64 b)))
(+.f64 (*.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))
(+.f64 #s(literal 1 binary64) (*.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) (*.f64 (neg.f64 a) (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a) (*.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)) (-.f64 (*.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)))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a) (*.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) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a)))
(/.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a) #s(literal 3 binary64))) (+.f64 #s(literal 1 binary64) (-.f64 (*.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a) (*.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) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a)))))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a) #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a) (*.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) (*.f64 (*.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)))))
(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))
(fma.f64 a (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a))
(+.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a))
(-.f64 #s(literal 1 binary64) (*.f64 (neg.f64 a) (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a) (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a)) #s(literal 1 binary64)) (-.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a) #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a) (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a))) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a)))
(/.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a) #s(literal 3 binary64))) (+.f64 #s(literal 1 binary64) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a) (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a)) (*.f64 #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a)))))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a) #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a) (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a) (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a) #s(literal 1 binary64)))))
(fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64))
(fma.f64 a (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a))
(+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) a))
(+.f64 (*.f64 #s(literal 1/6 binary64) a) #s(literal 1/2 binary64))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/6 binary64) a))
(/.f64 (-.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) a) (*.f64 #s(literal 1/6 binary64) a)) #s(literal 1/4 binary64)) (-.f64 (*.f64 #s(literal 1/6 binary64) a) #s(literal 1/2 binary64)))
(/.f64 (-.f64 #s(literal 1/4 binary64) (*.f64 (*.f64 #s(literal 1/6 binary64) a) (*.f64 #s(literal 1/6 binary64) a))) (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) a)))
(/.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/6 binary64) a) #s(literal 3 binary64)) #s(literal 1/8 binary64)) (fma.f64 (*.f64 #s(literal 1/6 binary64) a) (*.f64 #s(literal 1/6 binary64) a) (-.f64 #s(literal 1/4 binary64) (*.f64 (*.f64 #s(literal 1/6 binary64) a) #s(literal 1/2 binary64)))))
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/6 binary64) a) #s(literal 3 binary64))) (+.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 (*.f64 #s(literal 1/6 binary64) a) (*.f64 #s(literal 1/6 binary64) a)) (*.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/6 binary64) a)))))
(fma.f64 #s(literal 1/2 binary64) #s(literal 1 binary64) (*.f64 #s(literal 1/6 binary64) a))
(fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64))
(fma.f64 a #s(literal 1/6 binary64) #s(literal 1/2 binary64))
#s(literal 1/6 binary64)
#s(approx (log (+ (exp a) (exp b))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 a (+.f64 #s(literal 1 binary64) (exp.f64 b))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 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))) (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 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) a) (fma.f64 #s(literal 2 binary64) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) #s(literal -3 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 b))) (*.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) #s(literal -2 binary64)) #s(literal 3 binary64)))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 b))) (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 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 (-.f64 (fma.f64 (-.f64 #s(literal 1/8 binary64) (*.f64 b #s(literal 0 binary64))) a #s(literal 1/2 binary64)) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 (-.f64 (fma.f64 (-.f64 (+.f64 (neg.f64 (*.f64 (fma.f64 (*.f64 b #s(literal 0 binary64)) #s(literal -1/2 binary64) (*.f64 b #s(literal -1/48 binary64))) a)) #s(literal 1/8 binary64)) (*.f64 b #s(literal 0 binary64))) a #s(literal 1/2 binary64)) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64))))
#s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b))
#s(approx (/ b (+ 1 (exp a))) (fma.f64 (*.f64 b a) #s(literal -1/4 binary64) (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (/ b (+ 1 (exp a))) (fma.f64 (-.f64 (neg.f64 (*.f64 (*.f64 b #s(literal 0 binary64)) a)) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (/ b (+ 1 (exp a))) (fma.f64 (fma.f64 (-.f64 (neg.f64 (*.f64 (fma.f64 (*.f64 b #s(literal 0 binary64)) #s(literal -1/2 binary64) (*.f64 b #s(literal -1/48 binary64))) a)) (*.f64 b #s(literal 0 binary64))) a (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (+ 1 (exp a)) #s(literal 2 binary64))
#s(approx (+ 1 (exp a)) (+.f64 #s(literal 2 binary64) a))
#s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))
#s(approx (+ 1 (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 2 binary64)))
#s(approx (exp a) #s(literal 1 binary64))
#s(approx (exp a) (+.f64 #s(literal 1 binary64) 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) (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 a a)
#s(approx (log (+ 1 (exp a))) (log.f64 #s(literal 2 binary64)))
#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))) (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))) (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) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 b)))
#s(approx (+ (exp a) (exp b)) (+.f64 (+.f64 #s(literal 1 binary64) a) (exp.f64 b)))
#s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64)))
#s(approx (+ (exp a) (exp b)) (+.f64 (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)) (exp.f64 b)))
#s(approx (+ 1 (* 1/2 a)) (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)))
#s(approx (+ 1 (* (+ 1/2 (* 1/6 a)) a)) (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)))
#s(approx (+ 1/2 (* 1/6 a)) #s(literal 1/2 binary64))
#s(approx (+ 1/2 (* 1/6 a)) (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)))
#s(approx (log (+ (exp a) (exp b))) (log.f64 (+.f64 (exp.f64 b) (exp.f64 a))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
#s(approx (/ b (+ 1 (exp a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))))
#s(approx (+ 1 (exp a)) (+.f64 #s(literal 1 binary64) (exp.f64 a)))
#s(approx (exp a) (exp.f64 a))
#s(approx (log (+ 1 (exp a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))))
#s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 b) (exp.f64 a)))
#s(approx (+ 1 a) (*.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1 binary64)) a))
#s(approx (+ 1 (* (+ 1 (* 1/2 a)) a)) (*.f64 (*.f64 a a) #s(literal 1/2 binary64)))
#s(approx (+ 1 (* (+ 1 (* 1/2 a)) a)) (*.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) (*.f64 a a)))
#s(approx (+ 1 (* (+ 1 (* 1/2 a)) a)) (*.f64 (+.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 a a))) (*.f64 a a)))
#s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a))
#s(approx (+ 1 (* 1/2 a)) (*.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) a))
#s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (*.f64 (*.f64 (*.f64 a a) a) #s(literal 1/6 binary64)))
#s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (*.f64 (*.f64 (*.f64 a a) a) (+.f64 (/.f64 #s(literal 1/2 binary64) a) #s(literal 1/6 binary64))))
#s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (*.f64 (+.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) a) #s(literal 1/6 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 a a))) (*.f64 (*.f64 a a) a)))
#s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (*.f64 (+.f64 (+.f64 (+.f64 (/.f64 #s(literal 1 binary64) (*.f64 a a)) (/.f64 #s(literal 1/2 binary64) a)) (/.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) (*.f64 (*.f64 a a) a))) #s(literal 1/6 binary64)) (*.f64 (*.f64 a a) a)))
#s(approx (+ 1 (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (*.f64 (+.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) a) #s(literal 1/6 binary64)) (+.f64 (/.f64 #s(literal 1 binary64) (*.f64 a a)) (/.f64 #s(literal 1 binary64) (*.f64 (*.f64 a a) a)))) (*.f64 (*.f64 a a) a)))
#s(approx (+ 1 (* (+ 1/2 (* 1/6 a)) a)) (*.f64 (*.f64 a a) #s(literal 1/6 binary64)))
#s(approx (+ 1 (* (+ 1/2 (* 1/6 a)) a)) (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) a) #s(literal 1/6 binary64)) (*.f64 a a)))
#s(approx (+ 1 (* (+ 1/2 (* 1/6 a)) a)) (*.f64 (+.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) a) #s(literal 1/6 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 a a))) (*.f64 a a)))
#s(approx (+ 1/2 (* 1/6 a)) (*.f64 #s(literal 1/6 binary64) a))
#s(approx (+ 1/2 (* 1/6 a)) (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) a) #s(literal 1/6 binary64)) a))
#s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (neg.f64 (*.f64 (-.f64 (neg.f64 (/.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) a)) #s(literal 1/6 binary64)) (*.f64 (*.f64 a a) a))))
#s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (neg.f64 (*.f64 (-.f64 (neg.f64 (/.f64 (+.f64 (neg.f64 (/.f64 (-.f64 (neg.f64 (/.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) a)) #s(literal 1 binary64)) a)) #s(literal 1/2 binary64)) a)) #s(literal 1/6 binary64)) (*.f64 (*.f64 a a) a))))
#s(approx (+ 1 (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (neg.f64 (*.f64 (-.f64 (neg.f64 (/.f64 (+.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) (/.f64 #s(literal 1 binary64) (*.f64 a a))) a)) #s(literal 1/6 binary64)) (*.f64 (*.f64 a a) 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 #s(literal 1 binary64) (exp.f64 a))) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))) b (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) b) (fma.f64 #s(literal 2 binary64) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal -3 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a))) (*.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal -2 binary64)) #s(literal 3 binary64)))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a))) (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 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
#s(approx b b)
#s(approx (+ (exp a) (exp b)) (+.f64 (+.f64 #s(literal 1 binary64) b) (exp.f64 a)))
#s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b (exp.f64 a)) #s(literal 1 binary64)))
#s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) b #s(literal 1/2 binary64)) b #s(literal 1 binary64)) b (exp.f64 a)) #s(literal 1 binary64)))
#s(approx (exp b) (+.f64 #s(literal 1 binary64) 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) (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 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (+.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a b) #s(literal 2 binary64)))
#s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (+.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b)) #s(literal 2 binary64)))
#s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (+.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) b #s(literal 1/2 binary64)) b #s(literal 1 binary64)) b)) #s(literal 2 binary64)))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (*.f64 (+.f64 (/.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) b) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))) b))
#s(approx (exp b) (exp.f64 b))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (neg.f64 (*.f64 (-.f64 (neg.f64 (/.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) b)) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))) b)))

eval27.0ms (0.3%)

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

Compiled 5 224 to 1 087 computations (79.2% saved)

prune22.0ms (0.2%)

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

26 alts after pruning (22 fresh and 4 done)

PrunedKeptTotal
New18219201
Fresh235
Picked235
Done011
Total18626212
Accuracy
99.0%
Counts
212 → 26
Alt Table
Click to see full alt table
StatusAccuracyProgram
51.9%
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
51.1%
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (+.f64 #s(literal 1 binary64) b))))
48.5%
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) (exp.f64 b)))
47.7%
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) #s(approx (exp b) (+.f64 #s(literal 1 binary64) b))))
3.4%
(log.f64 (+.f64 #s(approx (exp a) #s(approx (+ 1 (* (+ 1 (* 1/2 a)) a)) (*.f64 (*.f64 a a) #s(literal 1/2 binary64)))) (exp.f64 b)))
48.5%
(log.f64 (+.f64 #s(approx (exp a) #s(approx (+ 1 a) (*.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1 binary64)) a))) (exp.f64 b)))
50.3%
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
50.0%
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64))))
49.8%
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
0.5%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (*.f64 (*.f64 (*.f64 a a) a) (+.f64 (/.f64 #s(literal 1/2 binary64) a) #s(literal 1/6 binary64))))))
0.2%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (*.f64 (*.f64 (*.f64 a a) a) #s(literal 1/6 binary64)))))
47.3%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (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 2 binary64)))))
48.8%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))))
47.3%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (+.f64 #s(literal 2 binary64) a))))
49.2%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(literal 2 binary64))))
98.2%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log1p.f64 (exp.f64 a))))
97.8%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
49.0%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))))))
50.3%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(approx (log (+ 1 (exp a))) (log.f64 #s(literal 2 binary64)))))
49.3%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))) (log.f64 #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64))))))
49.6%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 a (+.f64 #s(literal 1 binary64) (exp.f64 b))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)))))
50.5%
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (fma.f64 (*.f64 b a) #s(literal -1/4 binary64) (*.f64 #s(literal 1/2 binary64) b))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
57.2%
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
49.9%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
49.0%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
97.8%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (*.f64 (+.f64 (/.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) b) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))) b)))
Compiler

Compiled 1 020 to 748 computations (26.7% saved)

series72.0ms (0.8%)

Memory
-7.2MiB live, 87.1MiB allocated; 4ms collecting garbage
Counts
33 → 86
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log1p.f64 (exp.f64 a))))
(+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log1p.f64 (exp.f64 a)))
(/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))
b
(+.f64 #s(literal 1 binary64) (exp.f64 a))
#s(literal 1 binary64)
(exp.f64 a)
a
(log1p.f64 (exp.f64 a))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(literal 2 binary64))))
#s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(literal 2 binary64)))
#s(approx (+ 1 (exp a)) #s(literal 2 binary64))
#s(literal 2 binary64)
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))))
#s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64))))
#s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64))
(fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64))
#s(literal 1/2 binary64)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64))))
(+.f64 (fma.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))
(fma.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b))
(*.f64 #s(literal 1/4 binary64) b)
#s(literal 1/4 binary64)
(*.f64 #s(literal 1/2 binary64) b)
(log.f64 #s(literal 2 binary64))
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64))))
#s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64)))
(+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b))
(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 (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b)))))))
#s(approx (+ (/ b (+ 1 (exp a))) (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 (+ 1 (exp a))) (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 (+ 1 (exp a))) #s(hole binary64 (* 1/2 b)))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (+ (* -1/4 (* a b)) (* 1/2 b))))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (+ (* 1/2 b) (* a (- (* -1 (* a (+ (* -1/8 b) (* 1/8 b)))) (* 1/4 b))))))
#s(approx (/ b (+ 1 (exp a))) #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 (+ 1 (exp a)) #s(hole binary64 2))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 a)))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 (* a (+ 1 (* 1/2 a))))))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 (* 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 a #s(hole binary64 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) (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 (+ (* 1/2 a) 1) #s(hole binary64 (+ 1 (* 1/2 a))))
#s(approx (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) #s(hole binary64 (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b))))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (exp b)))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (+ a (exp b))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (+ (exp b) (* a (+ 1 (* 1/2 a))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 1 (exp a))))
#s(approx (exp a) #s(hole binary64 (exp a)))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ (exp a) (exp b))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) 2) #s(hole binary64 (* 1/2 (pow a 2))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) 2) #s(hole binary64 (* (pow a 2) (+ 1/2 (/ 1 a)))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) 2) #s(hole binary64 (* (pow a 2) (+ 1/2 (+ (/ 1 a) (/ 2 (pow a 2)))))))
#s(approx (+ (* 1/2 a) 1) #s(hole binary64 (* 1/2 a)))
#s(approx (+ (* 1/2 a) 1) #s(hole binary64 (* a (+ 1/2 (/ 1 a)))))
#s(approx (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (* a (- 1/2 (* 1/4 b)))))
#s(approx (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (* a (- (+ 1/2 (+ (* 1/2 (/ b a)) (/ (log 2) a))) (* 1/4 b)))))
#s(approx (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* a (- (+ 1/2 (* 1/2 (/ b a))) (* 1/4 b)))))
#s(approx (+ (+ (* (+ (* 1/2 a) 1) a) (exp b)) 1) #s(hole binary64 (* (pow a 2) (+ 1/2 (+ (/ 1 a) (+ (/ 1 (pow a 2)) (/ (exp b) (pow a 2))))))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (* (pow a 2) (+ 1/2 (+ (/ 1 a) (/ (exp b) (pow a 2)))))))
#s(approx (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (* -1 (* a (+ (* -1 (- 1/2 (* 1/4 b))) (* -1 (/ (+ (log 2) (* 1/2 b)) a)))))))
#s(approx (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* -1 (* a (+ (* -1 (- 1/2 (* 1/4 b))) (* -1/2 (/ b a)))))))
#s(approx (+ (+ (* (+ (* 1/2 a) 1) a) (exp b)) 1) #s(hole binary64 (* (pow a 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ 1 (exp b)) a)) 1) a))))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (* (pow a 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (exp b) a)) 1) 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 #s(hole binary64 b))
#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 (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (+ (log 2) (+ (* 1/2 a) (* b (+ 1/2 (* -1/4 a)))))))
#s(approx (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) #s(hole binary64 (+ (* 1/2 a) (* b (+ 1/2 (* -1/4 a))))))
#s(approx (- 1/2 (* 1/4 b)) #s(hole binary64 1/2))
#s(approx (- 1/2 (* 1/4 b)) #s(hole binary64 (+ 1/2 (* -1/4 b))))
#s(approx (* 1/4 b) #s(hole binary64 (* 1/4 b)))
#s(approx (+ (+ (* (+ (* 1/2 a) 1) a) (exp b)) 1) #s(hole binary64 (+ 2 (+ b (* a (+ 1 (* 1/2 a)))))))
#s(approx (+ (+ (* (+ (* 1/2 a) 1) a) (exp b)) 1) #s(hole binary64 (+ 2 (+ (* a (+ 1 (* 1/2 a))) (* b (+ 1 (* 1/2 b)))))))
#s(approx (+ (+ (* (+ (* 1/2 a) 1) a) (exp b)) 1) #s(hole binary64 (+ 2 (+ (* a (+ 1 (* 1/2 a))) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (+ 1 (+ b (* a (+ 1 (* 1/2 a)))))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (+ 1 (+ (* a (+ 1 (* 1/2 a))) (* b (+ 1 (* 1/2 b)))))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (+ 1 (+ (* a (+ 1 (* 1/2 a))) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))))
#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 (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (* b (+ (/ 1 (+ 1 (exp a))) (/ (log (+ 1 (exp a))) b)))))
#s(approx (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (* b (+ 1/2 (* -1/4 a)))))
#s(approx (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (* b (+ 1/2 (+ (* -1/4 a) (+ (* 1/2 (/ a b)) (/ (log 2) b)))))))
#s(approx (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* b (+ 1/2 (+ (* -1/4 a) (* 1/2 (/ a b)))))))
#s(approx (- 1/2 (* 1/4 b)) #s(hole binary64 (* -1/4 b)))
#s(approx (- 1/2 (* 1/4 b)) #s(hole binary64 (* b (- (* 1/2 (/ 1 b)) 1/4))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp a))) b)) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (* -1 (* b (- (* 1/4 a) 1/2)))))
#s(approx (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (* -1 (* b (- (+ (* -1 (/ (+ (log 2) (* 1/2 a)) b)) (* 1/4 a)) 1/2)))))
#s(approx (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* -1 (* b (- (+ (* -1/2 (/ a b)) (* 1/4 a)) 1/2)))))
#s(approx (- 1/2 (* 1/4 b)) #s(hole binary64 (* -1 (* b (- 1/4 (* 1/2 (/ 1 b)))))))
Calls

6 calls:

TimeVariablePointExpression
17.0ms
a
@-inf
((log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (/ b (+ 1 (exp a))) b (+ 1 (exp a)) 1 (exp a) a (log (+ 1 (exp a))) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ 1 (exp a)) 2 (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ 1 (exp a)) (+ (* (+ (* 1/2 a) 1) a) 2) (+ (* 1/2 a) 1) 1/2 (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (- 1/2 (* 1/4 b)) (* 1/4 b) 1/4 (* 1/2 b) (log 2) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ (+ (* (+ (* 1/2 a) 1) a) (exp b)) 1) (+ (* (+ (* 1/2 a) 1) a) (exp b)) (exp b))
17.0ms
a
@inf
((log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (/ b (+ 1 (exp a))) b (+ 1 (exp a)) 1 (exp a) a (log (+ 1 (exp a))) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ 1 (exp a)) 2 (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ 1 (exp a)) (+ (* (+ (* 1/2 a) 1) a) 2) (+ (* 1/2 a) 1) 1/2 (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (- 1/2 (* 1/4 b)) (* 1/4 b) 1/4 (* 1/2 b) (log 2) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ (+ (* (+ (* 1/2 a) 1) a) (exp b)) 1) (+ (* (+ (* 1/2 a) 1) a) (exp b)) (exp b))
12.0ms
b
@-inf
((log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (/ b (+ 1 (exp a))) b (+ 1 (exp a)) 1 (exp a) a (log (+ 1 (exp a))) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ 1 (exp a)) 2 (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ 1 (exp a)) (+ (* (+ (* 1/2 a) 1) a) 2) (+ (* 1/2 a) 1) 1/2 (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (- 1/2 (* 1/4 b)) (* 1/4 b) 1/4 (* 1/2 b) (log 2) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ (+ (* (+ (* 1/2 a) 1) a) (exp b)) 1) (+ (* (+ (* 1/2 a) 1) a) (exp b)) (exp b))
11.0ms
b
@inf
((log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (/ b (+ 1 (exp a))) b (+ 1 (exp a)) 1 (exp a) a (log (+ 1 (exp a))) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ 1 (exp a)) 2 (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ 1 (exp a)) (+ (* (+ (* 1/2 a) 1) a) 2) (+ (* 1/2 a) 1) 1/2 (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (- 1/2 (* 1/4 b)) (* 1/4 b) 1/4 (* 1/2 b) (log 2) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ (+ (* (+ (* 1/2 a) 1) a) (exp b)) 1) (+ (* (+ (* 1/2 a) 1) a) (exp b)) (exp b))
6.0ms
b
@0
((log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (/ b (+ 1 (exp a))) b (+ 1 (exp a)) 1 (exp a) a (log (+ 1 (exp a))) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ 1 (exp a)) 2 (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ 1 (exp a)) (+ (* (+ (* 1/2 a) 1) a) 2) (+ (* 1/2 a) 1) 1/2 (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (- 1/2 (* 1/4 b)) (* 1/4 b) 1/4 (* 1/2 b) (log 2) (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ (+ (* (+ (* 1/2 a) 1) a) (exp b)) 1) (+ (* (+ (* 1/2 a) 1) a) (exp b)) (exp b))

rewrite401.0ms (4.2%)

Memory
-12.1MiB live, 358.4MiB allocated; 69ms collecting garbage
Counts
119 → 212
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log1p.f64 (exp.f64 a))))
(+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log1p.f64 (exp.f64 a)))
(/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))
b
(+.f64 #s(literal 1 binary64) (exp.f64 a))
#s(literal 1 binary64)
(exp.f64 a)
a
(log1p.f64 (exp.f64 a))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(literal 2 binary64))))
#s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(literal 2 binary64)))
#s(approx (+ 1 (exp a)) #s(literal 2 binary64))
#s(literal 2 binary64)
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))))
#s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64))))
#s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64))
(fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64))
#s(literal 1/2 binary64)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64))))
(+.f64 (fma.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))
(fma.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b))
(*.f64 #s(literal 1/4 binary64) b)
#s(literal 1/4 binary64)
(*.f64 #s(literal 1/2 binary64) b)
(log.f64 #s(literal 2 binary64))
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64))))
#s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64)))
(+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b))
(exp.f64 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 (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b)))))))
#s(approx (+ (/ b (+ 1 (exp a))) (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 (+ 1 (exp a))) (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 (+ 1 (exp a))) #s(hole binary64 (* 1/2 b)))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (+ (* -1/4 (* a b)) (* 1/2 b))))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (+ (* 1/2 b) (* a (- (* -1 (* a (+ (* -1/8 b) (* 1/8 b)))) (* 1/4 b))))))
#s(approx (/ b (+ 1 (exp a))) #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 (+ 1 (exp a)) #s(hole binary64 2))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 a)))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 (* a (+ 1 (* 1/2 a))))))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 (* 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 a #s(hole binary64 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) (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 (+ (* 1/2 a) 1) #s(hole binary64 (+ 1 (* 1/2 a))))
#s(approx (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) #s(hole binary64 (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b))))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (exp b)))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (+ a (exp b))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (+ (exp b) (* a (+ 1 (* 1/2 a))))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (/ b (+ 1 (exp a)))))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 1 (exp a))))
#s(approx (exp a) #s(hole binary64 (exp a)))
#s(approx (log (+ 1 (exp a))) #s(hole binary64 (log (+ 1 (exp a)))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ (exp a) (exp b))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) 2) #s(hole binary64 (* 1/2 (pow a 2))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) 2) #s(hole binary64 (* (pow a 2) (+ 1/2 (/ 1 a)))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) 2) #s(hole binary64 (* (pow a 2) (+ 1/2 (+ (/ 1 a) (/ 2 (pow a 2)))))))
#s(approx (+ (* 1/2 a) 1) #s(hole binary64 (* 1/2 a)))
#s(approx (+ (* 1/2 a) 1) #s(hole binary64 (* a (+ 1/2 (/ 1 a)))))
#s(approx (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (* a (- 1/2 (* 1/4 b)))))
#s(approx (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (* a (- (+ 1/2 (+ (* 1/2 (/ b a)) (/ (log 2) a))) (* 1/4 b)))))
#s(approx (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* a (- (+ 1/2 (* 1/2 (/ b a))) (* 1/4 b)))))
#s(approx (+ (+ (* (+ (* 1/2 a) 1) a) (exp b)) 1) #s(hole binary64 (* (pow a 2) (+ 1/2 (+ (/ 1 a) (+ (/ 1 (pow a 2)) (/ (exp b) (pow a 2))))))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (* (pow a 2) (+ 1/2 (+ (/ 1 a) (/ (exp b) (pow a 2)))))))
#s(approx (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (* -1 (* a (+ (* -1 (- 1/2 (* 1/4 b))) (* -1 (/ (+ (log 2) (* 1/2 b)) a)))))))
#s(approx (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* -1 (* a (+ (* -1 (- 1/2 (* 1/4 b))) (* -1/2 (/ b a)))))))
#s(approx (+ (+ (* (+ (* 1/2 a) 1) a) (exp b)) 1) #s(hole binary64 (* (pow a 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ 1 (exp b)) a)) 1) a))))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (* (pow a 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (exp b) a)) 1) 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 #s(hole binary64 b))
#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 (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (+ (log 2) (+ (* 1/2 a) (* b (+ 1/2 (* -1/4 a)))))))
#s(approx (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) #s(hole binary64 (+ (* 1/2 a) (* b (+ 1/2 (* -1/4 a))))))
#s(approx (- 1/2 (* 1/4 b)) #s(hole binary64 1/2))
#s(approx (- 1/2 (* 1/4 b)) #s(hole binary64 (+ 1/2 (* -1/4 b))))
#s(approx (* 1/4 b) #s(hole binary64 (* 1/4 b)))
#s(approx (+ (+ (* (+ (* 1/2 a) 1) a) (exp b)) 1) #s(hole binary64 (+ 2 (+ b (* a (+ 1 (* 1/2 a)))))))
#s(approx (+ (+ (* (+ (* 1/2 a) 1) a) (exp b)) 1) #s(hole binary64 (+ 2 (+ (* a (+ 1 (* 1/2 a))) (* b (+ 1 (* 1/2 b)))))))
#s(approx (+ (+ (* (+ (* 1/2 a) 1) a) (exp b)) 1) #s(hole binary64 (+ 2 (+ (* a (+ 1 (* 1/2 a))) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (+ 1 (+ b (* a (+ 1 (* 1/2 a)))))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (+ 1 (+ (* a (+ 1 (* 1/2 a))) (* b (+ 1 (* 1/2 b)))))))
#s(approx (+ (* (+ (* 1/2 a) 1) a) (exp b)) #s(hole binary64 (+ 1 (+ (* a (+ 1 (* 1/2 a))) (* b (+ 1 (* b (+ 1/2 (* 1/6 b)))))))))
#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 (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (* b (+ (/ 1 (+ 1 (exp a))) (/ (log (+ 1 (exp a))) b)))))
#s(approx (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (* b (+ 1/2 (* -1/4 a)))))
#s(approx (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (* b (+ 1/2 (+ (* -1/4 a) (+ (* 1/2 (/ a b)) (/ (log 2) b)))))))
#s(approx (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* b (+ 1/2 (+ (* -1/4 a) (* 1/2 (/ a b)))))))
#s(approx (- 1/2 (* 1/4 b)) #s(hole binary64 (* -1/4 b)))
#s(approx (- 1/2 (* 1/4 b)) #s(hole binary64 (* b (- (* 1/2 (/ 1 b)) 1/4))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp a))) b)) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (* -1 (* b (- (* 1/4 a) 1/2)))))
#s(approx (+ (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) (log 2)) #s(hole binary64 (* -1 (* b (- (+ (* -1 (/ (+ (log 2) (* 1/2 a)) b)) (* 1/4 a)) 1/2)))))
#s(approx (+ (* (- 1/2 (* 1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* -1 (* b (- (+ (* -1/2 (/ a b)) (* 1/4 a)) 1/2)))))
#s(approx (- 1/2 (* 1/4 b)) #s(hole binary64 (* -1 (* b (- 1/4 (* 1/2 (/ 1 b)))))))
Outputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
(+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))))
(+.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))))
(/.f64 (-.f64 (*.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))) (*.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))))) (-.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
(/.f64 (-.f64 (*.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))) (*.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))))) (-.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
(/.f64 (+.f64 (pow.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(literal 3 binary64)) (pow.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(literal 3 binary64))) (fma.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (-.f64 (*.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))) (*.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))))))
(/.f64 (+.f64 (pow.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(literal 3 binary64)) (pow.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(literal 3 binary64))) (fma.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (-.f64 (*.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))) (*.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))))
(/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))
(/.f64 (neg.f64 b) (neg.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))))
b
(+.f64 #s(literal 1 binary64) (exp.f64 a))
(+.f64 (exp.f64 a) #s(literal 1 binary64))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 (exp.f64 a) (exp.f64 a))) (-.f64 #s(literal 1 binary64) (exp.f64 a)))
(/.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (exp.f64 a) #s(literal 3 binary64))) (+.f64 #s(literal 1 binary64) (-.f64 (*.f64 (exp.f64 a) (exp.f64 a)) (*.f64 #s(literal 1 binary64) (exp.f64 a)))))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (exp.f64 a))
#s(literal 1 binary64)
(*.f64 #s(literal 1 binary64) #s(literal 1 binary64))
(cosh.f64 #s(literal 0 binary64))
(exp.f64 #s(literal 0 binary64))
(neg.f64 #s(literal -1 binary64))
(pow.f64 #s(literal 1 binary64) #s(literal 3 binary64))
(+.f64 (cosh.f64 a) (sinh.f64 a))
(exp.f64 a)
a
(log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))
(log1p.f64 (exp.f64 a))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(literal 2 binary64))))
#s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(literal 2 binary64)))
#s(approx (+ 1 (exp a)) #s(literal 2 binary64))
#s(literal 2 binary64)
(*.f64 #s(literal 2 binary64) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) #s(literal 1 binary64))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))))
#s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64))))
#s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))
(+.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) #s(literal 2 binary64))
(+.f64 #s(literal 2 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a))
(-.f64 #s(literal 2 binary64) (*.f64 (neg.f64 a) (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a)) #s(literal 4 binary64)) (-.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) #s(literal 2 binary64)))
(/.f64 (-.f64 #s(literal 4 binary64) (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a))) (-.f64 #s(literal 2 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a)))
(/.f64 (+.f64 #s(literal 8 binary64) (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) #s(literal 3 binary64))) (+.f64 #s(literal 4 binary64) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a)) (*.f64 #s(literal 2 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a)))))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) #s(literal 3 binary64)) #s(literal 8 binary64)) (fma.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (-.f64 #s(literal 4 binary64) (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) #s(literal 2 binary64)))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64))
(fma.f64 a (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) #s(literal 2 binary64))
(fma.f64 #s(literal 2 binary64) #s(literal 1 binary64) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a))
(+.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) a))
(+.f64 (*.f64 #s(literal 1/2 binary64) a) #s(literal 1 binary64))
(-.f64 #s(literal 1 binary64) (*.f64 #s(literal -1/2 binary64) a))
(/.f64 (-.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) a) (*.f64 #s(literal 1/2 binary64) a)) #s(literal 1 binary64)) (-.f64 (*.f64 #s(literal 1/2 binary64) a) #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 #s(literal 1/2 binary64) a) (*.f64 #s(literal 1/2 binary64) a))) (-.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) a)))
(/.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) a) #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 (*.f64 #s(literal 1/2 binary64) a) (*.f64 #s(literal 1/2 binary64) a) (-.f64 #s(literal 1 binary64) (*.f64 (*.f64 #s(literal 1/2 binary64) a) #s(literal 1 binary64)))))
(/.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (*.f64 #s(literal 1/2 binary64) a) #s(literal 3 binary64))) (+.f64 #s(literal 1 binary64) (-.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) a) (*.f64 #s(literal 1/2 binary64) a)) (*.f64 #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) a)))))
(fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (*.f64 #s(literal 1/2 binary64) a))
(fma.f64 a #s(literal 1/2 binary64) #s(literal 1 binary64))
#s(literal 1/2 binary64)
(*.f64 #s(literal 1/2 binary64) #s(literal 1 binary64))
(neg.f64 #s(literal -1/2 binary64))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a)))) (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))))
#s(approx (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a)))) (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
(+.f64 (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
(+.f64 (log.f64 #s(literal 2 binary64)) (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b)))
(+.f64 (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))
(+.f64 (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))
(/.f64 (-.f64 (*.f64 (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b)) (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b))) (*.f64 (log.f64 #s(literal 2 binary64)) (log.f64 #s(literal 2 binary64)))) (-.f64 (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (log.f64 #s(literal 2 binary64)) (log.f64 #s(literal 2 binary64))) (*.f64 (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b)) (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b)))) (-.f64 (log.f64 #s(literal 2 binary64)) (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b))))
(/.f64 (+.f64 (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 3 binary64)) (pow.f64 (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b)) #s(literal 3 binary64))) (fma.f64 (log.f64 #s(literal 2 binary64)) (log.f64 #s(literal 2 binary64)) (-.f64 (*.f64 (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b)) (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b))) (*.f64 (log.f64 #s(literal 2 binary64)) (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b))))))
(/.f64 (+.f64 (pow.f64 (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b)) #s(literal 3 binary64)) (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 3 binary64))) (fma.f64 (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b)) (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b)) (-.f64 (*.f64 (log.f64 #s(literal 2 binary64)) (log.f64 #s(literal 2 binary64))) (*.f64 (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64))))))
(fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
(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))))
(+.f64 (*.f64 #s(literal 1/2 binary64) b) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))
(+.f64 (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))) (*.f64 #s(literal 1/2 binary64) b))
(-.f64 (*.f64 #s(literal 1/2 binary64) b) (*.f64 (neg.f64 a) (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))
(-.f64 (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))) (*.f64 #s(literal -1/2 binary64) b))
(/.f64 (-.f64 (*.f64 (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)))) (*.f64 (*.f64 #s(literal 1/2 binary64) b) (*.f64 #s(literal 1/2 binary64) b))) (-.f64 (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))) (*.f64 #s(literal 1/2 binary64) b)))
(/.f64 (-.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) b) (*.f64 #s(literal 1/2 binary64) b)) (*.f64 (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))) (-.f64 (*.f64 #s(literal 1/2 binary64) b) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)))))
(/.f64 (+.f64 (pow.f64 (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal 1/2 binary64) b) #s(literal 3 binary64))) (fma.f64 (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))) (-.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) b) (*.f64 #s(literal 1/2 binary64) b)) (*.f64 (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))) (*.f64 #s(literal 1/2 binary64) b)))))
(/.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) b) #s(literal 3 binary64)) (pow.f64 (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))) #s(literal 3 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) b) (*.f64 #s(literal 1/2 binary64) b) (-.f64 (*.f64 (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)))) (*.f64 (*.f64 #s(literal 1/2 binary64) b) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)))))))
(fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b))
(fma.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) a (*.f64 #s(literal 1/2 binary64) b))
(fma.f64 #s(literal 1/2 binary64) b (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))
(fma.f64 b #s(literal 1/2 binary64) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))
(+.f64 (*.f64 #s(literal -1/4 binary64) b) #s(literal 1/2 binary64))
(+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/4 binary64) b))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b))
(/.f64 (-.f64 #s(literal 1/4 binary64) (*.f64 (*.f64 #s(literal 1/4 binary64) b) (*.f64 #s(literal 1/4 binary64) b))) (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)))
(/.f64 (-.f64 #s(literal 1/4 binary64) (*.f64 (*.f64 #s(literal -1/4 binary64) b) (*.f64 #s(literal -1/4 binary64) b))) (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/4 binary64) b)))
(/.f64 (-.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/4 binary64) b) #s(literal 3 binary64))) (+.f64 #s(literal 1/4 binary64) (fma.f64 (*.f64 #s(literal 1/4 binary64) b) (*.f64 #s(literal 1/4 binary64) b) (*.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)))))
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal -1/4 binary64) b) #s(literal 3 binary64))) (+.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 (*.f64 #s(literal -1/4 binary64) b) (*.f64 #s(literal -1/4 binary64) b)) (*.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/4 binary64) b)))))
(fma.f64 #s(literal 1/2 binary64) #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) b))
(fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))
(fma.f64 b #s(literal -1/4 binary64) #s(literal 1/2 binary64))
(*.f64 #s(literal 1/4 binary64) b)
(*.f64 b #s(literal 1/4 binary64))
#s(literal 1/4 binary64)
(*.f64 #s(literal 1/2 binary64) #s(literal 1/2 binary64))
(neg.f64 #s(literal -1/4 binary64))
(*.f64 #s(literal 1/2 binary64) b)
(*.f64 b #s(literal 1/2 binary64))
(log.f64 #s(literal 2 binary64))
(log1p.f64 #s(literal 1 binary64))
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)))))
#s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b))))
(+.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)))
(+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64))
(+.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (+.f64 #s(literal 1 binary64) (exp.f64 b)))
(+.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a))
(/.f64 (-.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b))) #s(literal 1 binary64)) (-.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64)))
(/.f64 (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)))) (-.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b))))
(/.f64 (+.f64 #s(literal 1 binary64) (pow.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 3 binary64))) (+.f64 #s(literal 1 binary64) (-.f64 (*.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b))) (*.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b))))))
(/.f64 (+.f64 (pow.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 3 binary64)) #s(literal 1 binary64)) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) (-.f64 #s(literal 1 binary64) (*.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64)))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (+.f64 #s(literal 1 binary64) (exp.f64 b)))
(fma.f64 a (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) (+.f64 #s(literal 1 binary64) (exp.f64 b)))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)))
(+.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (exp.f64 b))
(+.f64 (exp.f64 b) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a))
(-.f64 (exp.f64 b) (*.f64 (neg.f64 a) (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64))))
(/.f64 (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a)) (*.f64 (exp.f64 b) (exp.f64 b))) (-.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (exp.f64 b)))
(/.f64 (-.f64 (*.f64 (exp.f64 b) (exp.f64 b)) (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a))) (-.f64 (exp.f64 b) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a)))
(/.f64 (+.f64 (pow.f64 (exp.f64 b) #s(literal 3 binary64)) (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) #s(literal 3 binary64))) (fma.f64 (exp.f64 b) (exp.f64 b) (-.f64 (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a)) (*.f64 (exp.f64 b) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a)))))
(/.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) #s(literal 3 binary64)) (pow.f64 (exp.f64 b) #s(literal 3 binary64))) (fma.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (-.f64 (*.f64 (exp.f64 b) (exp.f64 b)) (*.f64 (*.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a) (exp.f64 b)))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b))
(fma.f64 a (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) (exp.f64 b))
(+.f64 (cosh.f64 b) (sinh.f64 b))
(exp.f64 b)
#s(approx (log (+ (exp a) (exp b))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 a (+.f64 #s(literal 1 binary64) (exp.f64 b))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 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))) (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 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) a) (fma.f64 #s(literal 2 binary64) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) #s(literal -3 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 b))) (*.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) #s(literal -2 binary64)) #s(literal 3 binary64)))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 b))) (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 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)))))
#s(approx (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
#s(approx (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a)))) (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a)))) (+.f64 (fma.f64 (-.f64 (fma.f64 (-.f64 #s(literal 1/8 binary64) (*.f64 b #s(literal 0 binary64))) a #s(literal 1/2 binary64)) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64))))
#s(approx (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a)))) (+.f64 (fma.f64 (-.f64 (fma.f64 (-.f64 (+.f64 (neg.f64 (*.f64 (fma.f64 (*.f64 b #s(literal 0 binary64)) #s(literal -1/2 binary64) (*.f64 b #s(literal -1/48 binary64))) a)) #s(literal 1/8 binary64)) (*.f64 b #s(literal 0 binary64))) a #s(literal 1/2 binary64)) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64))))
#s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b))
#s(approx (/ b (+ 1 (exp a))) (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b))
#s(approx (/ b (+ 1 (exp a))) (fma.f64 (-.f64 (neg.f64 (*.f64 (*.f64 b #s(literal 0 binary64)) a)) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (/ b (+ 1 (exp a))) (fma.f64 (fma.f64 (-.f64 (neg.f64 (*.f64 (fma.f64 (*.f64 b #s(literal 0 binary64)) #s(literal -1/2 binary64) (*.f64 b #s(literal -1/48 binary64))) a)) (*.f64 b #s(literal 0 binary64))) a (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (+ 1 (exp a)) #s(literal 2 binary64))
#s(approx (+ 1 (exp a)) (+.f64 #s(literal 2 binary64) a))
#s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))
#s(approx (+ 1 (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 2 binary64)))
#s(approx (exp a) #s(literal 1 binary64))
#s(approx (exp a) (+.f64 #s(literal 1 binary64) 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) (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 a a)
#s(approx (log (+ 1 (exp a))) (log.f64 #s(literal 2 binary64)))
#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))) (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))) (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) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 b)))
#s(approx (+ (exp a) (exp b)) (+.f64 (+.f64 #s(literal 1 binary64) a) (exp.f64 b)))
#s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b))))
#s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64)))
#s(approx (+ 1 (* 1/2 a)) (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)))
#s(approx (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a)) (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (+ (* (+ 1 (* 1/2 a)) a) (exp b)) (exp.f64 b))
#s(approx (+ (* (+ 1 (* 1/2 a)) a) (exp b)) (+.f64 (exp.f64 b) a))
#s(approx (+ (* (+ 1 (* 1/2 a)) a) (exp b)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)))
#s(approx (log (+ (exp a) (exp b))) (log.f64 (+.f64 (exp.f64 b) (exp.f64 a))))
#s(approx (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a)))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
#s(approx (/ b (+ 1 (exp a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))))
#s(approx (+ 1 (exp a)) (+.f64 #s(literal 1 binary64) (exp.f64 a)))
#s(approx (exp a) (exp.f64 a))
#s(approx (log (+ 1 (exp a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))))
#s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 b) (exp.f64 a)))
#s(approx (+ 2 (* (+ 1 (* 1/2 a)) a)) (*.f64 (*.f64 a a) #s(literal 1/2 binary64)))
#s(approx (+ 2 (* (+ 1 (* 1/2 a)) a)) (*.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) (*.f64 a a)))
#s(approx (+ 2 (* (+ 1 (* 1/2 a)) a)) (*.f64 (+.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) (/.f64 #s(literal 2 binary64) (*.f64 a a))) (*.f64 a a)))
#s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a))
#s(approx (+ 1 (* 1/2 a)) (*.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) a))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (-.f64 (+.f64 (/.f64 (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))) a) #s(literal 1/2 binary64)) (*.f64 #s(literal 1/4 binary64) b)) a))
#s(approx (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a)) (*.f64 (-.f64 (fma.f64 (/.f64 b a) #s(literal 1/2 binary64) #s(literal 1/2 binary64)) (*.f64 #s(literal 1/4 binary64) b)) a))
#s(approx (+ 1 (+ (* (+ 1 (* 1/2 a)) a) (exp b))) (*.f64 (+.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) (/.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) (*.f64 a a))) (*.f64 a a)))
#s(approx (+ (* (+ 1 (* 1/2 a)) a) (exp b)) (*.f64 (+.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) (/.f64 (exp.f64 b) (*.f64 a a))) (*.f64 a a)))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (neg.f64 (*.f64 (+.f64 (neg.f64 (/.f64 (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))) a)) (neg.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)))) a)))
#s(approx (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a)) (neg.f64 (*.f64 (fma.f64 (/.f64 b a) #s(literal -1/2 binary64) (neg.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)))) a)))
#s(approx (+ 1 (+ (* (+ 1 (* 1/2 a)) a) (exp b))) (*.f64 (+.f64 (neg.f64 (/.f64 (-.f64 (neg.f64 (/.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)) a)) #s(literal 1 binary64)) a)) #s(literal 1/2 binary64)) (*.f64 a a)))
#s(approx (+ (* (+ 1 (* 1/2 a)) a) (exp b)) (*.f64 (+.f64 (neg.f64 (/.f64 (-.f64 (neg.f64 (/.f64 (exp.f64 b) a)) #s(literal 1 binary64)) a)) #s(literal 1/2 binary64)) (*.f64 a 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 #s(literal 1 binary64) (exp.f64 a))) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))) b (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) b) (fma.f64 #s(literal 2 binary64) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal -3 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a))) (*.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal -2 binary64)) #s(literal 3 binary64)))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a))) (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 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
#s(approx b b)
#s(approx (+ (exp a) (exp b)) (+.f64 (+.f64 #s(literal 1 binary64) b) (exp.f64 a)))
#s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b (exp.f64 a)) #s(literal 1 binary64)))
#s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) b #s(literal 1/2 binary64)) b #s(literal 1 binary64)) b (exp.f64 a)) #s(literal 1 binary64)))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (+.f64 (log.f64 #s(literal 2 binary64)) (fma.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b (*.f64 #s(literal 1/2 binary64) a))))
#s(approx (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a)) (fma.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b (*.f64 #s(literal 1/2 binary64) a)))
#s(approx (+ 1/2 (* -1/4 b)) #s(literal 1/2 binary64))
#s(approx (+ 1/2 (* -1/4 b)) (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)))
#s(approx (* 1/4 b) (*.f64 #s(literal 1/4 binary64) b))
#s(approx (+ 1 (+ (* (+ 1 (* 1/2 a)) a) (exp b))) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a b) #s(literal 2 binary64)))
#s(approx (+ 1 (+ (* (+ 1 (* 1/2 a)) a) (exp b))) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b)))
#s(approx (+ 1 (+ (* (+ 1 (* 1/2 a)) a) (exp b))) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) b #s(literal 1/2 binary64)) b #s(literal 1 binary64)) b)))
#s(approx (+ (* (+ 1 (* 1/2 a)) a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a b) #s(literal 1 binary64)))
#s(approx (+ (* (+ 1 (* 1/2 a)) a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)) (*.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b)))
#s(approx (+ (* (+ 1 (* 1/2 a)) a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 1 binary64)) (*.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) b #s(literal 1/2 binary64)) b #s(literal 1 binary64)) b)))
#s(approx (exp b) (+.f64 #s(literal 1 binary64) 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) (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 a))) (/ b (+ 1 (exp a)))) (*.f64 (+.f64 (/.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) b) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))) b))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))
#s(approx (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a)) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (*.f64 #s(literal 1/2 binary64) a) b)) b))
#s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b))
#s(approx (+ 1/2 (* -1/4 b)) (*.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) b) #s(literal 1/4 binary64)) b))
#s(approx (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a)))) (neg.f64 (*.f64 (-.f64 (neg.f64 (/.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) b)) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))) b)))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (neg.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/4 binary64) a) #s(literal 1/2 binary64)) b)))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (neg.f64 (*.f64 (-.f64 (fma.f64 #s(literal 1/4 binary64) a (neg.f64 (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b))) #s(literal 1/2 binary64)) b)))
#s(approx (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a)) (neg.f64 (*.f64 (fma.f64 #s(literal -1/2 binary64) (/.f64 a b) (-.f64 (*.f64 #s(literal 1/4 binary64) a) #s(literal 1/2 binary64))) b)))
#s(approx (+ 1/2 (* -1/4 b)) (neg.f64 (*.f64 (-.f64 #s(literal 1/4 binary64) (/.f64 #s(literal 1/2 binary64) b)) b)))

eval65.0ms (0.7%)

Memory
-7.7MiB live, 41.4MiB allocated; 52ms collecting garbage
Compiler

Compiled 6 663 to 1 197 computations (82% saved)

prune19.0ms (0.2%)

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

29 alts after pruning (22 fresh and 7 done)

PrunedKeptTotal
New2059214
Fresh41317
Picked235
Done044
Total21129240
Accuracy
99.0%
Counts
240 → 29
Alt Table
Click to see full alt table
StatusAccuracyProgram
51.9%
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
51.1%
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (+.f64 #s(literal 1 binary64) b))))
48.5%
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) (exp.f64 b)))
47.7%
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) #s(approx (exp b) (+.f64 #s(literal 1 binary64) b))))
48.5%
(log.f64 (+.f64 #s(approx (exp a) #s(approx (+ 1 a) (*.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1 binary64)) a))) (exp.f64 b)))
50.3%
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
50.0%
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64))))
49.8%
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
0.2%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (*.f64 (*.f64 (*.f64 a a) a) #s(literal 1/6 binary64)))))
47.3%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (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 2 binary64)))))
48.8%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))))
48.6%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64)))))
47.3%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (+.f64 #s(literal 2 binary64) a))))
27.4%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(approx (+ 2 (* (+ 1 (* 1/2 a)) a)) (*.f64 (+.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) (/.f64 #s(literal 2 binary64) (*.f64 a a))) (*.f64 a a))))))
2.1%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(approx (+ 2 (* (+ 1 (* 1/2 a)) a)) (*.f64 (*.f64 a a) #s(literal 1/2 binary64))))))
49.2%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(literal 2 binary64))))
97.8%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
49.0%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))))))
50.3%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(approx (log (+ 1 (exp a))) (log.f64 #s(literal 2 binary64)))))
49.3%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))) (log.f64 #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64))))))
49.6%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 a (+.f64 #s(literal 1 binary64) (exp.f64 b))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)))))
57.6%
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) (log1p.f64 (exp.f64 a))))
57.2%
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
49.9%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
49.7%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
49.0%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) #s(literal 1/2 binary64)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
5.3%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b))))
48.8%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))))
2.6%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))))
Compiler

Compiled 1 253 to 909 computations (27.5% saved)

series148.0ms (1.5%)

Memory
9.8MiB live, 148.1MiB allocated; 15ms collecting garbage
Counts
37 → 101
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) (log1p.f64 (exp.f64 a))))
(+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) (log1p.f64 (exp.f64 a)))
#s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b))
(*.f64 #s(literal 1/2 binary64) b)
#s(literal 1/2 binary64)
b
(log1p.f64 (exp.f64 a))
(exp.f64 a)
a
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)))))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))
(*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)))
(fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))
#s(literal -1/4 binary64)
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64)))))
#s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64))))
#s(approx (+ 1 (exp a)) (fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64)))
(fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64))
#s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a))
(*.f64 #s(literal 1/2 binary64) a)
#s(literal 2 binary64)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64))))
(+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))
(fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b))
#s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b))
(*.f64 #s(literal -1/4 binary64) b)
(log.f64 #s(literal 2 binary64))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b)))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))
(*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b)
(+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b))
(fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64))
(/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)
(fma.f64 #s(literal 1/2 binary64) a (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 (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b)))))))
#s(approx (+ (/ b (+ 1 (exp a))) (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 (+ 1 (exp a))) (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 (+ 1 (exp a))) #s(hole binary64 (* 1/2 b)))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (+ (* -1/4 (* a b)) (* 1/2 b))))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (+ (* 1/2 b) (* a (- (* -1 (* a (+ (* -1/8 b) (* 1/8 b)))) (* 1/4 b))))))
#s(approx (/ b (+ 1 (exp a))) #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 (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 a #s(hole binary64 a))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (+ 1/2 (* -1/4 b)))))))
#s(approx (* a (+ (* -1/4 b) 1/2)) #s(hole binary64 (* a (+ 1/2 (* -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 (+ 1 (exp a)) #s(hole binary64 2))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 a)))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 (* a (+ 1 (* 1/2 a))))))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))))
#s(approx (+ 1 (* 1/2 a)) #s(hole binary64 (+ 1 (* 1/2 a))))
#s(approx (* 1/2 a) #s(hole binary64 (* 1/2 a)))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) #s(hole binary64 (+ (* 1/2 b) (* a (+ 1/2 (* -1/4 b))))))
#s(approx (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) #s(hole binary64 (* b (+ 1/2 (/ (log 2) b)))))
#s(approx (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) #s(hole binary64 (+ (* a (* b (- (* 1/2 (/ 1 b)) 1/4))) (* b (+ 1/2 (/ (log 2) b))))))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (+ 1/2 (/ (log 2) b))))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (+ 1/2 (+ (* a (- (* 1/2 (/ 1 b)) 1/4)) (/ (log 2) b)))))
#s(approx (+ (* -1/4 a) 1/2) #s(hole binary64 1/2))
#s(approx (+ (* -1/4 a) 1/2) #s(hole binary64 (+ 1/2 (* -1/4 a))))
#s(approx (/ (+ (* 1/2 a) (log 2)) b) #s(hole binary64 (/ (log 2) b)))
#s(approx (/ (+ (* 1/2 a) (log 2)) b) #s(hole binary64 (+ (* 1/2 (/ a b)) (/ (log 2) b))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (/ b (+ 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 (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (* a (+ 1/2 (+ (* -1/4 b) (+ (* 1/2 (/ b a)) (/ (log 2) a)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ (exp a) (exp b))))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 1 (exp a))))
#s(approx (+ (* (+ 1 (* 1/2 a)) a) 2) #s(hole binary64 (* 1/2 (pow a 2))))
#s(approx (+ (* (+ 1 (* 1/2 a)) a) 2) #s(hole binary64 (* (pow a 2) (+ 1/2 (/ 1 a)))))
#s(approx (+ (* (+ 1 (* 1/2 a)) a) 2) #s(hole binary64 (* (pow a 2) (+ 1/2 (+ (/ 1 a) (/ 2 (pow a 2)))))))
#s(approx (+ 1 (* 1/2 a)) #s(hole binary64 (* a (+ 1/2 (/ 1 a)))))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* a (+ 1/2 (+ (* -1/4 b) (* 1/2 (/ b a)))))))
#s(approx (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) #s(hole binary64 (* a (* b (- (* 1/2 (/ 1 b)) 1/4)))))
#s(approx (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) #s(hole binary64 (* a (+ (* b (- (* 1/2 (/ 1 b)) 1/4)) (/ (* b (+ 1/2 (/ (log 2) b))) a)))))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (* a (- (* 1/2 (/ 1 b)) 1/4))))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (* a (- (+ (* 1/2 (/ 1 b)) (+ (* 1/2 (/ 1 a)) (/ (log 2) (* a b)))) 1/4))))
#s(approx (+ (* -1/4 a) 1/2) #s(hole binary64 (* -1/4 a)))
#s(approx (+ (* -1/4 a) 1/2) #s(hole binary64 (* a (- (* 1/2 (/ 1 a)) 1/4))))
#s(approx (/ (+ (* 1/2 a) (log 2)) b) #s(hole binary64 (* 1/2 (/ a b))))
#s(approx (/ (+ (* 1/2 a) (log 2)) b) #s(hole binary64 (* a (+ (* 1/2 (/ 1 b)) (/ (log 2) (* a b))))))
#s(approx (+ (* 1/2 a) (log 2)) #s(hole binary64 (* a (+ 1/2 (/ (log 2) a)))))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (* -1 (* a (+ (* -1 (+ 1/2 (* -1/4 b))) (* -1 (/ (+ (log 2) (* 1/2 b)) a)))))))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* -1 (* a (+ (* -1 (+ 1/2 (* -1/4 b))) (* -1/2 (/ b a)))))))
#s(approx (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) #s(hole binary64 (* -1 (* a (* b (- 1/4 (* 1/2 (/ 1 b))))))))
#s(approx (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) #s(hole binary64 (* -1 (* a (+ (* -1 (/ (* b (+ 1/2 (/ (log 2) b))) a)) (* b (- 1/4 (* 1/2 (/ 1 b)))))))))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (* -1 (* a (- 1/4 (* 1/2 (/ 1 b)))))))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (* -1 (* a (- (+ 1/4 (* -1 (/ (+ 1/2 (/ (log 2) b)) a))) (* 1/2 (/ 1 b)))))))
#s(approx (+ (* -1/4 a) 1/2) #s(hole binary64 (* -1 (* a (- 1/4 (* 1/2 (/ 1 a)))))))
#s(approx (/ (+ (* 1/2 a) (log 2)) b) #s(hole binary64 (* -1 (* a (- (* -1 (/ (log 2) (* a b))) (* 1/2 (/ 1 b)))))))
#s(approx (+ (* 1/2 a) (log 2)) #s(hole binary64 (* -1 (* a (- (* -1 (/ (log 2) a)) 1/2)))))
#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 #s(hole binary64 b))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (+ (log 2) (+ (* 1/2 a) (* b (+ 1/2 (* -1/4 a)))))))
#s(approx (* a (+ (* -1/4 b) 1/2)) #s(hole binary64 (+ (* -1/4 (* a b)) (* 1/2 a))))
#s(approx (+ (* -1/4 b) 1/2) #s(hole binary64 (+ 1/2 (* -1/4 b))))
#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 (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) #s(hole binary64 (+ (* 1/2 a) (* b (+ 1/2 (* -1/4 a))))))
#s(approx (* -1/4 b) #s(hole binary64 (* -1/4 b)))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (/ (+ (log 2) (* 1/2 a)) b)))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (/ (+ (log 2) (+ (* 1/2 a) (* b (+ 1/2 (* -1/4 a))))) b)))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (* b (+ (/ 1 (+ 1 (exp a))) (/ (log (+ 1 (exp a))) b)))))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (* b (+ 1/2 (* -1/4 a)))))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (* b (+ 1/2 (+ (* -1/4 a) (+ (* 1/2 (/ a b)) (/ (log 2) b)))))))
#s(approx (* a (+ (* -1/4 b) 1/2)) #s(hole binary64 (* -1/4 (* a b))))
#s(approx (* a (+ (* -1/4 b) 1/2)) #s(hole binary64 (* b (+ (* -1/4 a) (* 1/2 (/ a b))))))
#s(approx (+ (* -1/4 b) 1/2) #s(hole binary64 (* b (- (* 1/2 (/ 1 b)) 1/4))))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* b (+ 1/2 (+ (* -1/4 a) (* 1/2 (/ a b)))))))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (+ 1/2 (+ (* -1/4 a) (+ (* 1/2 (/ a b)) (/ (log 2) b))))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp a))) b)) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (* -1 (* b (- (* 1/4 a) 1/2)))))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (* -1 (* b (- (+ (* -1 (/ (+ (log 2) (* 1/2 a)) b)) (* 1/4 a)) 1/2)))))
#s(approx (* a (+ (* -1/4 b) 1/2)) #s(hole binary64 (* -1 (* b (+ (* -1/2 (/ a b)) (* 1/4 a))))))
#s(approx (+ (* -1/4 b) 1/2) #s(hole binary64 (* -1 (* b (- 1/4 (* 1/2 (/ 1 b)))))))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* -1 (* b (- (+ (* -1/2 (/ a b)) (* 1/4 a)) 1/2)))))
#s(approx (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) #s(hole binary64 (* -1 (* b (+ (* -1 (+ 1/2 (* -1/4 a))) (* -1 (/ (+ (log 2) (* 1/2 a)) b)))))))
Calls

6 calls:

TimeVariablePointExpression
34.0ms
b
@0
((log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (/ b (+ 1 (exp a))) (* 1/2 b) 1/2 b (log (+ 1 (exp a))) (exp a) a (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (* a (+ (* -1/4 b) 1/2)) (+ (* -1/4 b) 1/2) -1/4 (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ 1 (exp a)) (+ (* (+ 1 (* 1/2 a)) a) 2) (+ 1 (* 1/2 a)) (* 1/2 a) 2 (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (+ 1/2 (* -1/4 b)) (* -1/4 b) (log 2) (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b) (+ (* 1/2 a) (log 2)))
33.0ms
a
@-inf
((log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (/ b (+ 1 (exp a))) (* 1/2 b) 1/2 b (log (+ 1 (exp a))) (exp a) a (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (* a (+ (* -1/4 b) 1/2)) (+ (* -1/4 b) 1/2) -1/4 (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ 1 (exp a)) (+ (* (+ 1 (* 1/2 a)) a) 2) (+ 1 (* 1/2 a)) (* 1/2 a) 2 (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (+ 1/2 (* -1/4 b)) (* -1/4 b) (log 2) (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b) (+ (* 1/2 a) (log 2)))
30.0ms
b
@inf
((log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (/ b (+ 1 (exp a))) (* 1/2 b) 1/2 b (log (+ 1 (exp a))) (exp a) a (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (* a (+ (* -1/4 b) 1/2)) (+ (* -1/4 b) 1/2) -1/4 (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ 1 (exp a)) (+ (* (+ 1 (* 1/2 a)) a) 2) (+ 1 (* 1/2 a)) (* 1/2 a) 2 (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (+ 1/2 (* -1/4 b)) (* -1/4 b) (log 2) (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b) (+ (* 1/2 a) (log 2)))
22.0ms
a
@inf
((log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (/ b (+ 1 (exp a))) (* 1/2 b) 1/2 b (log (+ 1 (exp a))) (exp a) a (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (* a (+ (* -1/4 b) 1/2)) (+ (* -1/4 b) 1/2) -1/4 (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ 1 (exp a)) (+ (* (+ 1 (* 1/2 a)) a) 2) (+ 1 (* 1/2 a)) (* 1/2 a) 2 (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (+ 1/2 (* -1/4 b)) (* -1/4 b) (log 2) (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b) (+ (* 1/2 a) (log 2)))
21.0ms
b
@-inf
((log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (/ b (+ 1 (exp a))) (* 1/2 b) 1/2 b (log (+ 1 (exp a))) (exp a) a (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (* a (+ (* -1/4 b) 1/2)) (+ (* -1/4 b) 1/2) -1/4 (log (+ (exp a) (exp b))) (+ (exp a) (exp b)) (+ 1 (exp a)) (+ (* (+ 1 (* 1/2 a)) a) 2) (+ 1 (* 1/2 a)) (* 1/2 a) 2 (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (+ 1/2 (* -1/4 b)) (* -1/4 b) (log 2) (log (+ (exp a) (exp b))) (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b) (+ (* 1/2 a) (log 2)))

rewrite364.0ms (3.8%)

Memory
7.6MiB live, 240.1MiB allocated; 84ms collecting garbage
Counts
138 → 214
Calls
Call 1
Inputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) (log1p.f64 (exp.f64 a))))
(+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) (log1p.f64 (exp.f64 a)))
#s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b))
(*.f64 #s(literal 1/2 binary64) b)
#s(literal 1/2 binary64)
b
(log1p.f64 (exp.f64 a))
(exp.f64 a)
a
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)))))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))
(*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)))
(fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))
#s(literal -1/4 binary64)
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64)))))
#s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64))))
#s(approx (+ 1 (exp a)) (fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64)))
(fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64))
#s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a))
(*.f64 #s(literal 1/2 binary64) a)
#s(literal 2 binary64)
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64))))
(+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))
(fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b))
#s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b))
(*.f64 #s(literal -1/4 binary64) b)
(log.f64 #s(literal 2 binary64))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b)))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))
(*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b)
(+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b))
(fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64))
(/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)
(fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64)))
#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 (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (* 1/2 b))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (- 1/2 (* 1/4 b)))))))
#s(approx (+ (/ b (+ 1 (exp a))) (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 (+ 1 (exp a))) (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 (+ 1 (exp a))) #s(hole binary64 (* 1/2 b)))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (+ (* -1/4 (* a b)) (* 1/2 b))))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (+ (* 1/2 b) (* a (- (* -1 (* a (+ (* -1/8 b) (* 1/8 b)))) (* 1/4 b))))))
#s(approx (/ b (+ 1 (exp a))) #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 (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 a #s(hole binary64 a))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (+ (log 2) (+ (* 1/2 b) (* a (+ 1/2 (* -1/4 b)))))))
#s(approx (* a (+ (* -1/4 b) 1/2)) #s(hole binary64 (* a (+ 1/2 (* -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 (+ 1 (exp a)) #s(hole binary64 2))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 a)))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 (* a (+ 1 (* 1/2 a))))))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 2 (* a (+ 1 (* a (+ 1/2 (* 1/6 a))))))))
#s(approx (+ 1 (* 1/2 a)) #s(hole binary64 (+ 1 (* 1/2 a))))
#s(approx (* 1/2 a) #s(hole binary64 (* 1/2 a)))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) #s(hole binary64 (+ (* 1/2 b) (* a (+ 1/2 (* -1/4 b))))))
#s(approx (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) #s(hole binary64 (* b (+ 1/2 (/ (log 2) b)))))
#s(approx (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) #s(hole binary64 (+ (* a (* b (- (* 1/2 (/ 1 b)) 1/4))) (* b (+ 1/2 (/ (log 2) b))))))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (+ 1/2 (/ (log 2) b))))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (+ 1/2 (+ (* a (- (* 1/2 (/ 1 b)) 1/4)) (/ (log 2) b)))))
#s(approx (+ (* -1/4 a) 1/2) #s(hole binary64 1/2))
#s(approx (+ (* -1/4 a) 1/2) #s(hole binary64 (+ 1/2 (* -1/4 a))))
#s(approx (/ (+ (* 1/2 a) (log 2)) b) #s(hole binary64 (/ (log 2) b)))
#s(approx (/ (+ (* 1/2 a) (log 2)) b) #s(hole binary64 (+ (* 1/2 (/ a b)) (/ (log 2) b))))
#s(approx (log (+ (exp a) (exp b))) #s(hole binary64 (log (+ (exp a) (exp b)))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (+ (log (+ 1 (exp a))) (/ b (+ 1 (exp a))))))
#s(approx (/ b (+ 1 (exp a))) #s(hole binary64 (/ b (+ 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 (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (* a (+ 1/2 (+ (* -1/4 b) (+ (* 1/2 (/ b a)) (/ (log 2) a)))))))
#s(approx (+ (exp a) (exp b)) #s(hole binary64 (+ (exp a) (exp b))))
#s(approx (+ 1 (exp a)) #s(hole binary64 (+ 1 (exp a))))
#s(approx (+ (* (+ 1 (* 1/2 a)) a) 2) #s(hole binary64 (* 1/2 (pow a 2))))
#s(approx (+ (* (+ 1 (* 1/2 a)) a) 2) #s(hole binary64 (* (pow a 2) (+ 1/2 (/ 1 a)))))
#s(approx (+ (* (+ 1 (* 1/2 a)) a) 2) #s(hole binary64 (* (pow a 2) (+ 1/2 (+ (/ 1 a) (/ 2 (pow a 2)))))))
#s(approx (+ 1 (* 1/2 a)) #s(hole binary64 (* a (+ 1/2 (/ 1 a)))))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* a (+ 1/2 (+ (* -1/4 b) (* 1/2 (/ b a)))))))
#s(approx (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) #s(hole binary64 (* a (* b (- (* 1/2 (/ 1 b)) 1/4)))))
#s(approx (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) #s(hole binary64 (* a (+ (* b (- (* 1/2 (/ 1 b)) 1/4)) (/ (* b (+ 1/2 (/ (log 2) b))) a)))))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (* a (- (* 1/2 (/ 1 b)) 1/4))))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (* a (- (+ (* 1/2 (/ 1 b)) (+ (* 1/2 (/ 1 a)) (/ (log 2) (* a b)))) 1/4))))
#s(approx (+ (* -1/4 a) 1/2) #s(hole binary64 (* -1/4 a)))
#s(approx (+ (* -1/4 a) 1/2) #s(hole binary64 (* a (- (* 1/2 (/ 1 a)) 1/4))))
#s(approx (/ (+ (* 1/2 a) (log 2)) b) #s(hole binary64 (* 1/2 (/ a b))))
#s(approx (/ (+ (* 1/2 a) (log 2)) b) #s(hole binary64 (* a (+ (* 1/2 (/ 1 b)) (/ (log 2) (* a b))))))
#s(approx (+ (* 1/2 a) (log 2)) #s(hole binary64 (* a (+ 1/2 (/ (log 2) a)))))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (* -1 (* a (+ (* -1 (+ 1/2 (* -1/4 b))) (* -1 (/ (+ (log 2) (* 1/2 b)) a)))))))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* -1 (* a (+ (* -1 (+ 1/2 (* -1/4 b))) (* -1/2 (/ b a)))))))
#s(approx (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) #s(hole binary64 (* -1 (* a (* b (- 1/4 (* 1/2 (/ 1 b))))))))
#s(approx (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) #s(hole binary64 (* -1 (* a (+ (* -1 (/ (* b (+ 1/2 (/ (log 2) b))) a)) (* b (- 1/4 (* 1/2 (/ 1 b)))))))))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (* -1 (* a (- 1/4 (* 1/2 (/ 1 b)))))))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (* -1 (* a (- (+ 1/4 (* -1 (/ (+ 1/2 (/ (log 2) b)) a))) (* 1/2 (/ 1 b)))))))
#s(approx (+ (* -1/4 a) 1/2) #s(hole binary64 (* -1 (* a (- 1/4 (* 1/2 (/ 1 a)))))))
#s(approx (/ (+ (* 1/2 a) (log 2)) b) #s(hole binary64 (* -1 (* a (- (* -1 (/ (log 2) (* a b))) (* 1/2 (/ 1 b)))))))
#s(approx (+ (* 1/2 a) (log 2)) #s(hole binary64 (* -1 (* a (- (* -1 (/ (log 2) a)) 1/2)))))
#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 #s(hole binary64 b))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (+ (log 2) (+ (* 1/2 a) (* b (+ 1/2 (* -1/4 a)))))))
#s(approx (* a (+ (* -1/4 b) 1/2)) #s(hole binary64 (+ (* -1/4 (* a b)) (* 1/2 a))))
#s(approx (+ (* -1/4 b) 1/2) #s(hole binary64 (+ 1/2 (* -1/4 b))))
#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 (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) #s(hole binary64 (+ (* 1/2 a) (* b (+ 1/2 (* -1/4 a))))))
#s(approx (* -1/4 b) #s(hole binary64 (* -1/4 b)))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (/ (+ (log 2) (* 1/2 a)) b)))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (/ (+ (log 2) (+ (* 1/2 a) (* b (+ 1/2 (* -1/4 a))))) b)))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (* b (+ (/ 1 (+ 1 (exp a))) (/ (log (+ 1 (exp a))) b)))))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (* b (+ 1/2 (* -1/4 a)))))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (* b (+ 1/2 (+ (* -1/4 a) (+ (* 1/2 (/ a b)) (/ (log 2) b)))))))
#s(approx (* a (+ (* -1/4 b) 1/2)) #s(hole binary64 (* -1/4 (* a b))))
#s(approx (* a (+ (* -1/4 b) 1/2)) #s(hole binary64 (* b (+ (* -1/4 a) (* 1/2 (/ a b))))))
#s(approx (+ (* -1/4 b) 1/2) #s(hole binary64 (* b (- (* 1/2 (/ 1 b)) 1/4))))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* b (+ 1/2 (+ (* -1/4 a) (* 1/2 (/ a b)))))))
#s(approx (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) #s(hole binary64 (+ 1/2 (+ (* -1/4 a) (+ (* 1/2 (/ a b)) (/ (log 2) b))))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(hole binary64 (* -1 (* b (- (* -1 (/ (log (+ 1 (exp a))) b)) (/ 1 (+ 1 (exp a))))))))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (* -1 (* b (- (* 1/4 a) 1/2)))))
#s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(hole binary64 (* -1 (* b (- (+ (* -1 (/ (+ (log 2) (* 1/2 a)) b)) (* 1/4 a)) 1/2)))))
#s(approx (* a (+ (* -1/4 b) 1/2)) #s(hole binary64 (* -1 (* b (+ (* -1/2 (/ a b)) (* 1/4 a))))))
#s(approx (+ (* -1/4 b) 1/2) #s(hole binary64 (* -1 (* b (- 1/4 (* 1/2 (/ 1 b)))))))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) #s(hole binary64 (* -1 (* b (- (+ (* -1/2 (/ a b)) (* 1/4 a)) 1/2)))))
#s(approx (* (+ (+ (* -1/4 a) 1/2) (/ (+ (* 1/2 a) (log 2)) b)) b) #s(hole binary64 (* -1 (* b (+ (* -1 (+ 1/2 (* -1/4 a))) (* -1 (/ (+ (log 2) (* 1/2 a)) b)))))))
Outputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
(+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))))
#s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b))
(*.f64 #s(literal 1/2 binary64) b)
(*.f64 b #s(literal 1/2 binary64))
#s(literal 1/2 binary64)
(*.f64 #s(literal 1/2 binary64) #s(literal 1 binary64))
(neg.f64 #s(literal -1/2 binary64))
b
(log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))
(log1p.f64 (exp.f64 a))
(+.f64 (cosh.f64 a) (sinh.f64 a))
(exp.f64 a)
a
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (*.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) a))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (*.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) a)))
#s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (*.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) a))
(*.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) a)
(*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)))
(+.f64 (*.f64 (*.f64 #s(literal -1/4 binary64) b) a) (*.f64 #s(literal 1/2 binary64) a))
(+.f64 (*.f64 a (*.f64 #s(literal -1/4 binary64) b)) (*.f64 #s(literal 1/2 binary64) a))
(+.f64 (*.f64 #s(literal 1/2 binary64) a) (*.f64 (*.f64 #s(literal -1/4 binary64) b) a))
(+.f64 (*.f64 #s(literal 1/2 binary64) a) (*.f64 a (*.f64 #s(literal -1/4 binary64) b)))
(fma.f64 (*.f64 #s(literal -1/4 binary64) b) a (*.f64 #s(literal 1/2 binary64) a))
(fma.f64 a (*.f64 #s(literal -1/4 binary64) b) (*.f64 #s(literal 1/2 binary64) a))
(fma.f64 #s(literal 1/2 binary64) a (*.f64 (*.f64 #s(literal -1/4 binary64) b) a))
(fma.f64 #s(literal 1/2 binary64) a (*.f64 a (*.f64 #s(literal -1/4 binary64) b)))
(fma.f64 a #s(literal 1/2 binary64) (*.f64 (*.f64 #s(literal -1/4 binary64) b) a))
(fma.f64 a #s(literal 1/2 binary64) (*.f64 a (*.f64 #s(literal -1/4 binary64) b)))
(+.f64 (*.f64 #s(literal -1/4 binary64) b) #s(literal 1/2 binary64))
(+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/4 binary64) b))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b))
(/.f64 (-.f64 #s(literal 1/4 binary64) (*.f64 (*.f64 #s(literal -1/4 binary64) b) (*.f64 #s(literal -1/4 binary64) b))) (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/4 binary64) b)))
(/.f64 (-.f64 (*.f64 (*.f64 #s(literal -1/4 binary64) b) (*.f64 #s(literal -1/4 binary64) b)) #s(literal 1/4 binary64)) (-.f64 (*.f64 #s(literal -1/4 binary64) b) #s(literal 1/2 binary64)))
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal -1/4 binary64) b) #s(literal 3 binary64))) (+.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 (*.f64 #s(literal -1/4 binary64) b) (*.f64 #s(literal -1/4 binary64) b)) (*.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/4 binary64) b)))))
(/.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/4 binary64) b) #s(literal 3 binary64)) #s(literal 1/8 binary64)) (fma.f64 (*.f64 #s(literal -1/4 binary64) b) (*.f64 #s(literal -1/4 binary64) b) (-.f64 #s(literal 1/4 binary64) (*.f64 (*.f64 #s(literal -1/4 binary64) b) #s(literal 1/2 binary64)))))
(/.f64 (-.f64 #s(literal 1/4 binary64) (*.f64 (*.f64 #s(literal 1/4 binary64) b) (*.f64 #s(literal 1/4 binary64) b))) (+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)))
(/.f64 (-.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal 1/4 binary64) b) #s(literal 3 binary64))) (+.f64 #s(literal 1/4 binary64) (fma.f64 (*.f64 #s(literal 1/4 binary64) b) (*.f64 #s(literal 1/4 binary64) b) (*.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)))))
(fma.f64 #s(literal 1/2 binary64) #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) b))
(fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))
(fma.f64 b #s(literal -1/4 binary64) #s(literal 1/2 binary64))
#s(literal -1/4 binary64)
(neg.f64 #s(literal 1/4 binary64))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64)))))
#s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64))))
#s(approx (+ 1 (exp a)) (fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64)))
(fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64))
#s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a))
(*.f64 #s(literal 1/2 binary64) a)
(*.f64 a #s(literal 1/2 binary64))
#s(literal 2 binary64)
(*.f64 #s(literal 2 binary64) #s(literal 1 binary64))
(+.f64 #s(literal 1 binary64) #s(literal 1 binary64))
(fma.f64 #s(literal 1 binary64) #s(literal 1 binary64) #s(literal 1 binary64))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64))))
(+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))
(fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b))
#s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b))
(*.f64 #s(literal -1/4 binary64) b)
(*.f64 b #s(literal -1/4 binary64))
(log.f64 #s(literal 2 binary64))
(log1p.f64 #s(literal 1 binary64))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b)))
#s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))
(*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b)
(*.f64 b (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)))
(+.f64 (*.f64 #s(literal 1/2 binary64) b) (*.f64 (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))
(+.f64 (*.f64 #s(literal 1/2 binary64) b) (*.f64 b (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b))))
(fma.f64 #s(literal 1/2 binary64) b (*.f64 (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))
(fma.f64 b #s(literal 1/2 binary64) (*.f64 (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))
(fma.f64 #s(literal 1/2 binary64) b (*.f64 b (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b))))
(fma.f64 b #s(literal 1/2 binary64) (*.f64 b (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b))))
(+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b))
(+.f64 (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b) (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)))
(+.f64 (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) #s(literal 1/2 binary64))
(+.f64 #s(literal 1/2 binary64) (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)))
(+.f64 (*.f64 #s(literal -1/4 binary64) a) (+.f64 #s(literal 1/2 binary64) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)))
(/.f64 (-.f64 (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64))) (*.f64 (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b))) (-.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)))
(/.f64 (+.f64 (pow.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) #s(literal 3 binary64)) (pow.f64 (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b) #s(literal 3 binary64))) (fma.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (-.f64 (*.f64 (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)))))
(/.f64 (-.f64 #s(literal 1/4 binary64) (*.f64 (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)))) (-.f64 #s(literal 1/2 binary64) (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b))))
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) #s(literal 3 binary64))) (+.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b))) (*.f64 #s(literal 1/2 binary64) (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b))))))
(fma.f64 #s(literal -1/4 binary64) a (+.f64 #s(literal 1/2 binary64) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)))
(fma.f64 a #s(literal -1/4 binary64) (+.f64 #s(literal 1/2 binary64) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)))
(fma.f64 #s(literal 1/2 binary64) #s(literal 1 binary64) (fma.f64 #s(literal -1/4 binary64) a (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)))
(+.f64 (*.f64 #s(literal -1/4 binary64) a) #s(literal 1/2 binary64))
(+.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/4 binary64) a))
(-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) a))
(/.f64 (-.f64 #s(literal 1/4 binary64) (*.f64 (*.f64 #s(literal -1/4 binary64) a) (*.f64 #s(literal -1/4 binary64) a))) (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/4 binary64) a)))
(/.f64 (-.f64 (*.f64 (*.f64 #s(literal -1/4 binary64) a) (*.f64 #s(literal -1/4 binary64) a)) #s(literal 1/4 binary64)) (-.f64 (*.f64 #s(literal -1/4 binary64) a) #s(literal 1/2 binary64)))
(/.f64 (+.f64 (pow.f64 (*.f64 #s(literal -1/4 binary64) a) #s(literal 3 binary64)) #s(literal 1/8 binary64)) (fma.f64 (*.f64 #s(literal -1/4 binary64) a) (*.f64 #s(literal -1/4 binary64) a) (-.f64 #s(literal 1/4 binary64) (*.f64 (*.f64 #s(literal -1/4 binary64) a) #s(literal 1/2 binary64)))))
(/.f64 (+.f64 #s(literal 1/8 binary64) (pow.f64 (*.f64 #s(literal -1/4 binary64) a) #s(literal 3 binary64))) (+.f64 #s(literal 1/4 binary64) (-.f64 (*.f64 (*.f64 #s(literal -1/4 binary64) a) (*.f64 #s(literal -1/4 binary64) a)) (*.f64 #s(literal 1/2 binary64) (*.f64 #s(literal -1/4 binary64) a)))))
(fma.f64 #s(literal 1/2 binary64) #s(literal 1 binary64) (*.f64 #s(literal -1/4 binary64) a))
(fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64))
(fma.f64 a #s(literal -1/4 binary64) #s(literal 1/2 binary64))
(+.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) a) b) (/.f64 (log.f64 #s(literal 2 binary64)) b))
(+.f64 (/.f64 (log.f64 #s(literal 2 binary64)) b) (/.f64 (*.f64 #s(literal 1/2 binary64) a) b))
(/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)
(/.f64 (neg.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64)))) (neg.f64 b))
(/.f64 (-.f64 (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) a) b) (/.f64 (*.f64 #s(literal 1/2 binary64) a) b)) (*.f64 (/.f64 (log.f64 #s(literal 2 binary64)) b) (/.f64 (log.f64 #s(literal 2 binary64)) b))) (-.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) a) b) (/.f64 (log.f64 #s(literal 2 binary64)) b)))
(/.f64 (+.f64 (pow.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) a) b) #s(literal 3 binary64)) (pow.f64 (/.f64 (log.f64 #s(literal 2 binary64)) b) #s(literal 3 binary64))) (fma.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) a) b) (/.f64 (*.f64 #s(literal 1/2 binary64) a) b) (-.f64 (*.f64 (/.f64 (log.f64 #s(literal 2 binary64)) b) (/.f64 (log.f64 #s(literal 2 binary64)) b)) (*.f64 (/.f64 (*.f64 #s(literal 1/2 binary64) a) b) (/.f64 (log.f64 #s(literal 2 binary64)) b)))))
(fma.f64 (/.f64 a b) #s(literal 1/2 binary64) (/.f64 (log.f64 #s(literal 2 binary64)) b))
(fma.f64 #s(literal 1/2 binary64) (/.f64 a b) (/.f64 (log.f64 #s(literal 2 binary64)) b))
(+.f64 (log.f64 #s(literal 2 binary64)) (*.f64 #s(literal 1/2 binary64) a))
(+.f64 (*.f64 #s(literal 1/2 binary64) a) (log.f64 #s(literal 2 binary64)))
(-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 #s(literal -1/2 binary64) a))
(/.f64 (-.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) a) (*.f64 #s(literal 1/2 binary64) a)) (*.f64 (log.f64 #s(literal 2 binary64)) (log.f64 #s(literal 2 binary64)))) (-.f64 (*.f64 #s(literal 1/2 binary64) a) (log.f64 #s(literal 2 binary64))))
(/.f64 (-.f64 (*.f64 (log.f64 #s(literal 2 binary64)) (log.f64 #s(literal 2 binary64))) (*.f64 (*.f64 #s(literal 1/2 binary64) a) (*.f64 #s(literal 1/2 binary64) a))) (-.f64 (log.f64 #s(literal 2 binary64)) (*.f64 #s(literal 1/2 binary64) a)))
(/.f64 (+.f64 (pow.f64 (*.f64 #s(literal 1/2 binary64) a) #s(literal 3 binary64)) (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 3 binary64))) (fma.f64 (*.f64 #s(literal 1/2 binary64) a) (*.f64 #s(literal 1/2 binary64) a) (-.f64 (*.f64 (log.f64 #s(literal 2 binary64)) (log.f64 #s(literal 2 binary64))) (*.f64 (*.f64 #s(literal 1/2 binary64) a) (log.f64 #s(literal 2 binary64))))))
(/.f64 (+.f64 (pow.f64 (log.f64 #s(literal 2 binary64)) #s(literal 3 binary64)) (pow.f64 (*.f64 #s(literal 1/2 binary64) a) #s(literal 3 binary64))) (fma.f64 (log.f64 #s(literal 2 binary64)) (log.f64 #s(literal 2 binary64)) (-.f64 (*.f64 (*.f64 #s(literal 1/2 binary64) a) (*.f64 #s(literal 1/2 binary64) a)) (*.f64 (log.f64 #s(literal 2 binary64)) (*.f64 #s(literal 1/2 binary64) a)))))
(fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64)))
(fma.f64 a #s(literal 1/2 binary64) (log.f64 #s(literal 2 binary64)))
#s(approx (log (+ (exp a) (exp b))) (log.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 a (+.f64 (exp.f64 b) #s(literal 1 binary64))) (log.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)))))
#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))) (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 (log.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) a) (fma.f64 #s(literal 2 binary64) (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal -3 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #s(literal 1 binary64))) (*.f64 (pow.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)) #s(literal -2 binary64)) #s(literal 3 binary64)))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 (exp.f64 b) #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 (log.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 (-.f64 (fma.f64 (-.f64 #s(literal 1/8 binary64) (*.f64 b #s(literal 0 binary64))) a #s(literal 1/2 binary64)) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 (-.f64 (fma.f64 (-.f64 (+.f64 (neg.f64 (*.f64 (fma.f64 (*.f64 b #s(literal 0 binary64)) #s(literal -1/2 binary64) (*.f64 b #s(literal -1/48 binary64))) a)) #s(literal 1/8 binary64)) (*.f64 b #s(literal 0 binary64))) a #s(literal 1/2 binary64)) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64))))
#s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b))
#s(approx (/ b (+ 1 (exp a))) (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b))
#s(approx (/ b (+ 1 (exp a))) (fma.f64 (-.f64 (neg.f64 (*.f64 (*.f64 b #s(literal 0 binary64)) a)) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (/ b (+ 1 (exp a))) (fma.f64 (fma.f64 (-.f64 (neg.f64 (*.f64 (fma.f64 (*.f64 b #s(literal 0 binary64)) #s(literal -1/2 binary64) (*.f64 b #s(literal -1/48 binary64))) a)) (*.f64 b #s(literal 0 binary64))) a (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (log (+ 1 (exp a))) (log.f64 #s(literal 2 binary64)))
#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))) (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))) (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(literal 1 binary64))
#s(approx (exp a) (+.f64 #s(literal 1 binary64) a))
#s(approx (exp a) (fma.f64 a (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) #s(literal 1 binary64)))
#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 a a)
#s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (fma.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
#s(approx (* (+ 1/2 (* -1/4 b)) a) (*.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) a))
#s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 b) #s(literal 1 binary64)))
#s(approx (+ (exp a) (exp b)) (+.f64 (+.f64 #s(literal 1 binary64) a) (exp.f64 b)))
#s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64)))
#s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) a #s(literal 1/2 binary64)) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64)))
#s(approx (+ 1 (exp a)) #s(literal 2 binary64))
#s(approx (+ 1 (exp a)) (+.f64 #s(literal 2 binary64) a))
#s(approx (+ 1 (exp a)) (fma.f64 a (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) #s(literal 2 binary64)))
#s(approx (+ 1 (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 2 binary64)))
#s(approx (+ 1 (* 1/2 a)) (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)))
#s(approx (* 1/2 a) (*.f64 #s(literal 1/2 binary64) a))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (fma.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) a (*.f64 #s(literal 1/2 binary64) b)))
#s(approx (* (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) b) (*.f64 b (+.f64 #s(literal 1/2 binary64) (/.f64 (log.f64 #s(literal 2 binary64)) b))))
#s(approx (* (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) b) (fma.f64 b (+.f64 #s(literal 1/2 binary64) (/.f64 (log.f64 #s(literal 2 binary64)) b)) (*.f64 (*.f64 b a) (-.f64 (/.f64 #s(literal 1/2 binary64) b) #s(literal 1/4 binary64)))))
#s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (+.f64 #s(literal 1/2 binary64) (/.f64 (log.f64 #s(literal 2 binary64)) b)))
#s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (+.f64 (fma.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) b) #s(literal 1/4 binary64)) a (/.f64 (log.f64 #s(literal 2 binary64)) b)) #s(literal 1/2 binary64)))
#s(approx (+ 1/2 (* -1/4 a)) #s(literal 1/2 binary64))
#s(approx (+ 1/2 (* -1/4 a)) (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)))
#s(approx (/ (+ (* 1/2 a) (log 2)) b) (/.f64 (log.f64 #s(literal 2 binary64)) b))
#s(approx (/ (+ (* 1/2 a) (log 2)) b) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b))
#s(approx (log (+ (exp a) (exp b))) (log.f64 (+.f64 (exp.f64 b) (exp.f64 a))))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
#s(approx (/ b (+ 1 (exp a))) (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))))
#s(approx (log (+ 1 (exp a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))))
#s(approx (exp a) (exp.f64 a))
#s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))) a)) a))
#s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 b) (exp.f64 a)))
#s(approx (+ 1 (exp a)) (+.f64 #s(literal 1 binary64) (exp.f64 a)))
#s(approx (+ 2 (* a (+ 1 (* 1/2 a)))) (*.f64 (*.f64 a a) #s(literal 1/2 binary64)))
#s(approx (+ 2 (* a (+ 1 (* 1/2 a)))) (*.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) (*.f64 a a)))
#s(approx (+ 2 (* a (+ 1 (* 1/2 a)))) (*.f64 (+.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) (/.f64 #s(literal 2 binary64) (*.f64 a a))) (*.f64 a a)))
#s(approx (+ 1 (* 1/2 a)) (*.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) a))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)) (/.f64 (*.f64 #s(literal 1/2 binary64) b) a)) a))
#s(approx (* (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) b) (*.f64 (*.f64 b a) (-.f64 (/.f64 #s(literal 1/2 binary64) b) #s(literal 1/4 binary64))))
#s(approx (* (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) b) (*.f64 (fma.f64 b (/.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 (log.f64 #s(literal 2 binary64)) b)) a) (*.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) b) #s(literal 1/4 binary64)) b)) a))
#s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (*.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) b) #s(literal 1/4 binary64)) a))
#s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (*.f64 (-.f64 (+.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) b) (/.f64 #s(literal 1/2 binary64) a)) (/.f64 (log.f64 #s(literal 2 binary64)) (*.f64 b a))) #s(literal 1/4 binary64)) a))
#s(approx (+ 1/2 (* -1/4 a)) (*.f64 #s(literal -1/4 binary64) a))
#s(approx (+ 1/2 (* -1/4 a)) (*.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) a) #s(literal 1/4 binary64)) a))
#s(approx (/ (+ (* 1/2 a) (log 2)) b) (/.f64 (*.f64 #s(literal 1/2 binary64) a) b))
#s(approx (/ (+ (* 1/2 a) (log 2)) b) (*.f64 (+.f64 (/.f64 (log.f64 #s(literal 2 binary64)) (*.f64 b a)) (/.f64 #s(literal 1/2 binary64) b)) a))
#s(approx (+ (* 1/2 a) (log 2)) (*.f64 (+.f64 (/.f64 (log.f64 #s(literal 2 binary64)) a) #s(literal 1/2 binary64)) a))
#s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (neg.f64 (*.f64 (+.f64 (neg.f64 (/.f64 (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64))) a)) (neg.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)))) a)))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (neg.f64 (*.f64 (fma.f64 (/.f64 b a) #s(literal -1/2 binary64) (neg.f64 (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)))) a)))
#s(approx (* (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) b) (neg.f64 (*.f64 (*.f64 b a) (-.f64 #s(literal 1/4 binary64) (/.f64 #s(literal 1/2 binary64) b)))))
#s(approx (* (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) b) (neg.f64 (*.f64 (fma.f64 (-.f64 #s(literal 1/4 binary64) (/.f64 #s(literal 1/2 binary64) b)) b (neg.f64 (*.f64 b (/.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 (log.f64 #s(literal 2 binary64)) b)) a)))) a)))
#s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (neg.f64 (*.f64 (-.f64 #s(literal 1/4 binary64) (/.f64 #s(literal 1/2 binary64) b)) a)))
#s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (neg.f64 (*.f64 (-.f64 (+.f64 (neg.f64 (/.f64 (+.f64 #s(literal 1/2 binary64) (/.f64 (log.f64 #s(literal 2 binary64)) b)) a)) #s(literal 1/4 binary64)) (/.f64 #s(literal 1/2 binary64) b)) a)))
#s(approx (+ 1/2 (* -1/4 a)) (neg.f64 (*.f64 (-.f64 #s(literal 1/4 binary64) (/.f64 #s(literal 1/2 binary64) a)) a)))
#s(approx (/ (+ (* 1/2 a) (log 2)) b) (neg.f64 (*.f64 (-.f64 (neg.f64 (/.f64 (log.f64 #s(literal 2 binary64)) (*.f64 b a))) (/.f64 #s(literal 1/2 binary64) b)) a)))
#s(approx (+ (* 1/2 a) (log 2)) (neg.f64 (*.f64 (-.f64 (neg.f64 (/.f64 (log.f64 #s(literal 2 binary64)) a)) #s(literal 1/2 binary64)) 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 #s(literal 1 binary64) (exp.f64 a))) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal -2 binary64))) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))) b (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
#s(approx (log (+ (exp a) (exp b))) (fma.f64 (fma.f64 (fma.f64 (*.f64 #s(literal 1/6 binary64) b) (fma.f64 #s(literal 2 binary64) (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal -3 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a))) (*.f64 (pow.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)) #s(literal -2 binary64)) #s(literal 3 binary64)))) (*.f64 (-.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a))) (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 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
#s(approx b b)
#s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (+.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b)))
#s(approx (* (+ 1/2 (* -1/4 b)) a) (fma.f64 #s(literal 1/2 binary64) a (*.f64 (*.f64 b a) #s(literal -1/4 binary64))))
#s(approx (+ 1/2 (* -1/4 b)) (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64)))
#s(approx (+ (exp a) (exp b)) (+.f64 (+.f64 (exp.f64 a) b) #s(literal 1 binary64)))
#s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) b #s(literal 1 binary64)) b (exp.f64 a)) #s(literal 1 binary64)))
#s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/6 binary64) b #s(literal 1/2 binary64)) b #s(literal 1 binary64)) b (exp.f64 a)) #s(literal 1 binary64)))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (fma.f64 #s(literal 1/2 binary64) a (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b)))
#s(approx (* -1/4 b) (*.f64 #s(literal -1/4 binary64) b))
#s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b))
#s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (/.f64 (+.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b)) b))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (*.f64 (+.f64 (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a))) (/.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) b)) b))
#s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b))
#s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))
#s(approx (* (+ 1/2 (* -1/4 b)) a) (*.f64 (*.f64 b a) #s(literal -1/4 binary64)))
#s(approx (* (+ 1/2 (* -1/4 b)) a) (*.f64 (fma.f64 (/.f64 a b) #s(literal 1/2 binary64) (*.f64 #s(literal -1/4 binary64) a)) b))
#s(approx (+ 1/2 (* -1/4 b)) (*.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) b) #s(literal 1/4 binary64)) b))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (*.f64 #s(literal 1/2 binary64) a) b)) b))
#s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)))
#s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (neg.f64 (*.f64 (-.f64 (neg.f64 (/.f64 (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a))) b)) (/.f64 #s(literal 1 binary64) (+.f64 #s(literal 1 binary64) (exp.f64 a)))) b)))
#s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (neg.f64 (*.f64 (-.f64 (*.f64 #s(literal 1/4 binary64) a) #s(literal 1/2 binary64)) b)))
#s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (neg.f64 (*.f64 (-.f64 (fma.f64 #s(literal 1/4 binary64) a (neg.f64 (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b))) #s(literal 1/2 binary64)) b)))
#s(approx (* (+ 1/2 (* -1/4 b)) a) (neg.f64 (*.f64 (fma.f64 #s(literal -1/2 binary64) (/.f64 a b) (*.f64 #s(literal 1/4 binary64) a)) b)))
#s(approx (+ 1/2 (* -1/4 b)) (neg.f64 (*.f64 (-.f64 #s(literal 1/4 binary64) (/.f64 #s(literal 1/2 binary64) b)) b)))
#s(approx (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (neg.f64 (*.f64 (fma.f64 #s(literal -1/2 binary64) (/.f64 a b) (-.f64 (*.f64 #s(literal 1/4 binary64) a) #s(literal 1/2 binary64))) b)))
#s(approx (* (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) b) (neg.f64 (*.f64 (+.f64 (neg.f64 (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) (neg.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)))) b)))

eval26.0ms (0.3%)

Memory
-8.7MiB live, 36.5MiB allocated; 4ms collecting garbage
Compiler

Compiled 9 113 to 1 256 computations (86.2% saved)

prune25.0ms (0.3%)

Memory
-16.0MiB live, 30.6MiB allocated; 3ms collecting garbage
Pruning

29 alts after pruning (18 fresh and 11 done)

PrunedKeptTotal
New1946200
Fresh51217
Picked145
Done077
Total20029229
Accuracy
99.0%
Counts
229 → 29
Alt Table
Click to see full alt table
StatusAccuracyProgram
51.9%
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
51.1%
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (+.f64 #s(literal 1 binary64) b))))
48.5%
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) (exp.f64 b)))
47.7%
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) #s(approx (exp b) (+.f64 #s(literal 1 binary64) b))))
48.5%
(log.f64 (+.f64 #s(approx (exp a) #s(approx (+ 1 a) (*.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1 binary64)) a))) (exp.f64 b)))
50.3%
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
50.0%
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64))))
49.8%
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
0.2%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (*.f64 (*.f64 (*.f64 a a) a) #s(literal 1/6 binary64)))))
48.8%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))))
48.6%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64)))))
47.3%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (+.f64 #s(literal 2 binary64) a))))
27.4%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(approx (+ 2 (* (+ 1 (* 1/2 a)) a)) (*.f64 (+.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) (/.f64 #s(literal 2 binary64) (*.f64 a a))) (*.f64 a a))))))
2.1%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(approx (+ 2 (* (+ 1 (* 1/2 a)) a)) (*.f64 (*.f64 a a) #s(literal 1/2 binary64))))))
49.2%
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(literal 2 binary64))))
97.8%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
49.0%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))))))
50.3%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(approx (log (+ 1 (exp a))) (log.f64 #s(literal 2 binary64)))))
49.6%
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 a (+.f64 (exp.f64 b) #s(literal 1 binary64))) (log.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)))))
57.6%
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) (log1p.f64 (exp.f64 a))))
57.2%
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
49.0%
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) #s(approx (log (+ 1 (exp a))) (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))))))
49.9%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
49.7%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
5.3%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b))))
48.3%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 #s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))))
49.8%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 #s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (+.f64 #s(literal 1/2 binary64) (/.f64 (log.f64 #s(literal 2 binary64)) b))) b))))
2.6%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))))
4.3%
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(approx (* (+ 1/2 (* -1/4 b)) a) (*.f64 (*.f64 b a) #s(literal -1/4 binary64))))))
Compiler

Compiled 1 891 to 777 computations (58.9% saved)

regimes64.0ms (0.7%)

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

6 calls:

12.0ms
a
12.0ms
b
11.0ms
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
9.0ms
(exp.f64 b)
9.0ms
(+.f64 (exp.f64 a) (exp.f64 b))
Results
AccuracySegmentsBranch
98.2%1(exp.f64 b)
98.2%1(exp.f64 a)
98.2%1(+.f64 (exp.f64 a) (exp.f64 b))
98.2%1(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
98.2%1a
98.2%1b
Compiler

Compiled 17 to 21 computations (-23.5% saved)

regimes76.0ms (0.8%)

Memory
-11.2MiB live, 80.2MiB allocated; 20ms collecting garbage
Counts
43 → 1
Calls
Call 1
Inputs
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(literal 2 binary64))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(approx (* (+ 1/2 (* -1/4 b)) a) (*.f64 (*.f64 b a) #s(literal -1/4 binary64))))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (+.f64 #s(literal 2 binary64) a))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(approx (+ 2 (* (+ 1 (* 1/2 a)) a)) (*.f64 (*.f64 a a) #s(literal 1/2 binary64))))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64)))))
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) #s(approx (exp b) (+.f64 #s(literal 1 binary64) b))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (*.f64 (*.f64 (*.f64 a a) a) #s(literal 1/6 binary64)))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 #s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (+.f64 #s(literal 1/2 binary64) (/.f64 (log.f64 #s(literal 2 binary64)) b))) b))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) #s(literal 1/2 binary64)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) 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 (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 #s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))))
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (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 2 binary64)))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (*.f64 (*.f64 (*.f64 a a) a) (+.f64 (/.f64 #s(literal 1/2 binary64) a) #s(literal 1/6 binary64))))))
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) (exp.f64 b)))
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (+.f64 #s(literal 1 binary64) b))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
(log.f64 (+.f64 #s(approx (exp a) #s(approx (+ 1 (* (+ 1 (* 1/2 a)) a)) (*.f64 (*.f64 a a) #s(literal 1/2 binary64)))) (exp.f64 b)))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(approx (log (+ 1 (exp a))) (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) (log1p.f64 (exp.f64 a))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(approx (+ 2 (* (+ 1 (* 1/2 a)) a)) (*.f64 (+.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1/2 binary64)) (/.f64 #s(literal 2 binary64) (*.f64 a a))) (*.f64 a a))))))
(log.f64 (+.f64 #s(approx (exp a) #s(approx (+ 1 a) (*.f64 (+.f64 (/.f64 #s(literal 1 binary64) a) #s(literal 1 binary64)) a))) (exp.f64 b)))
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a (exp.f64 b)) #s(literal 1 binary64))))
(log.f64 (+.f64 #s(approx (exp a) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) 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)))))
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) #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))) (+.f64 (/.f64 b #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))) (log.f64 #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64))))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (fma.f64 (*.f64 b a) #s(literal -1/4 binary64) (*.f64 #s(literal 1/2 binary64) b))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 (exp.f64 b) (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)))))
(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)))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 a (+.f64 #s(literal 1 binary64) (exp.f64 b))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 b)))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 a (+.f64 (exp.f64 b) #s(literal 1 binary64))) (log.f64 (+.f64 (exp.f64 b) #s(literal 1 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
Outputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
Calls

6 calls:

19.0ms
(exp.f64 a)
17.0ms
b
11.0ms
a
11.0ms
(exp.f64 b)
8.0ms
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
Results
AccuracySegmentsBranch
97.8%1(exp.f64 b)
97.8%1(exp.f64 a)
97.8%1(+.f64 (exp.f64 a) (exp.f64 b))
97.8%1(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
97.8%1a
97.8%1b
Compiler

Compiled 17 to 21 computations (-23.5% saved)

regimes121.0ms (1.3%)

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

6 calls:

16.0ms
b
11.0ms
a
8.0ms
(+.f64 (exp.f64 a) (exp.f64 b))
8.0ms
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
8.0ms
(exp.f64 b)
Results
AccuracySegmentsBranch
57.6%1(exp.f64 b)
57.6%1(exp.f64 a)
57.6%1(+.f64 (exp.f64 a) (exp.f64 b))
57.6%1(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
57.6%1b
57.6%1a
Compiler

Compiled 17 to 21 computations (-23.5% saved)

regimes188.0ms (2%)

Memory
-22.3MiB live, 55.1MiB allocated; 153ms collecting garbage
Counts
28 → 1
Calls
Call 1
Inputs
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(literal 2 binary64))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(approx (* (+ 1/2 (* -1/4 b)) a) (*.f64 (*.f64 b a) #s(literal -1/4 binary64))))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (+.f64 #s(literal 2 binary64) a))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(approx (+ 2 (* (+ 1 (* 1/2 a)) a)) (*.f64 (*.f64 a a) #s(literal 1/2 binary64))))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64)))))
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) #s(approx (exp b) (+.f64 #s(literal 1 binary64) b))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (*.f64 (*.f64 (*.f64 a a) a) #s(literal 1/6 binary64)))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 #s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (+.f64 #s(literal 1/2 binary64) (/.f64 (log.f64 #s(literal 2 binary64)) b))) b))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) #s(literal 1/2 binary64)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) 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 (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 #s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))))
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (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 2 binary64)))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (*.f64 (*.f64 (*.f64 a a) a) (+.f64 (/.f64 #s(literal 1/2 binary64) a) #s(literal 1/6 binary64))))))
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) (exp.f64 b)))
(log.f64 (+.f64 (exp.f64 a) #s(approx (exp b) (+.f64 #s(literal 1 binary64) b))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 (-.f64 #s(literal 1/2 binary64) (*.f64 #s(literal 1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
(log.f64 (+.f64 #s(approx (exp a) #s(approx (+ 1 (* (+ 1 (* 1/2 a)) a)) (*.f64 (*.f64 a a) #s(literal 1/2 binary64)))) (exp.f64 b)))
#s(approx (log (+ (exp a) (exp b))) (+.f64 (/.f64 b (+.f64 #s(literal 1 binary64) (exp.f64 a))) #s(approx (log (+ 1 (exp a))) (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (+.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))))
Outputs
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) b)) (log.f64 (+.f64 #s(literal 1 binary64) (exp.f64 a)))))
Calls

6 calls:

99.0ms
(exp.f64 a)
44.0ms
b
21.0ms
a
9.0ms
(+.f64 (exp.f64 a) (exp.f64 b))
9.0ms
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
Results
AccuracySegmentsBranch
57.2%1(exp.f64 b)
57.2%1(exp.f64 a)
57.2%1(+.f64 (exp.f64 a) (exp.f64 b))
57.2%1(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
57.2%1a
57.2%1b
Compiler

Compiled 17 to 21 computations (-23.5% saved)

regimes36.0ms (0.4%)

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

6 calls:

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

Compiled 17 to 21 computations (-23.5% saved)

regimes39.0ms (0.4%)

Memory
-19.5MiB live, 32.3MiB allocated; 9ms collecting garbage
Counts
22 → 1
Calls
Call 1
Inputs
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(literal 2 binary64))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) #s(approx (* (+ 1/2 (* -1/4 b)) a) (*.f64 (*.f64 b a) #s(literal -1/4 binary64))))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 a (fma.f64 #s(literal -1/4 binary64) b #s(literal 1/2 binary64))))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (+ (* (+ 1/2 (* -1/4 b)) a) (* 1/2 b)) (log 2)) (*.f64 (fma.f64 #s(literal -1/4 binary64) a #s(literal 1/2 binary64)) b))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (+.f64 #s(literal 2 binary64) a))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (fma.f64 #s(literal 1/2 binary64) b (log.f64 #s(literal 2 binary64)))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) #s(approx (+ 2 (* (+ 1 (* 1/2 a)) a)) (*.f64 (*.f64 a a) #s(literal 1/2 binary64))))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 #s(approx (+ 1 (* 1/2 a)) (*.f64 #s(literal 1/2 binary64) a)) a #s(literal 2 binary64)))))
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) #s(approx (exp b) (+.f64 #s(literal 1 binary64) b))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (*.f64 (*.f64 (*.f64 a a) a) #s(literal 1/6 binary64)))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 #s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (+.f64 #s(literal 1/2 binary64) (/.f64 (log.f64 #s(literal 2 binary64)) b))) b))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (exp a)) (fma.f64 (fma.f64 #s(literal 1/2 binary64) a #s(literal 1 binary64)) a #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) #s(literal 1/2 binary64)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
#s(approx (log (+ (exp a) (exp b))) (+.f64 #s(approx (/ b (+ 1 (exp a))) (*.f64 #s(literal 1/2 binary64) 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 (+ 1 (exp a))) (log (+ 1 (exp a)))) #s(approx (+ (log 2) (+ (* 1/2 b) (* (+ 1/2 (* -1/4 b)) a))) (*.f64 #s(approx (+ (+ 1/2 (* -1/4 a)) (/ (+ (* 1/2 a) (log 2)) b)) (/.f64 (fma.f64 #s(literal 1/2 binary64) a (log.f64 #s(literal 2 binary64))) b)) b))))
(log.f64 #s(approx (+ (exp a) (exp b)) (+.f64 #s(literal 1 binary64) (exp.f64 a))))
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
#s(approx (log (+ (exp a) (exp b))) #s(approx (+ (/ b (+ 1 (exp a))) (log (+ 1 (exp a)))) (+.f64 (fma.f64 #s(approx (+ 1/2 (* -1/4 b)) (*.f64 #s(literal -1/4 binary64) b)) a (*.f64 #s(literal 1/2 binary64) b)) (log.f64 #s(literal 2 binary64)))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ 1 (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 2 binary64)))))
(log.f64 #s(approx (+ (exp a) (exp b)) #s(approx (+ (+ 1 (exp b)) (* (+ 1 (* (+ 1/2 (* 1/6 a)) a)) a)) (*.f64 (*.f64 (*.f64 a a) a) (+.f64 (/.f64 #s(literal 1/2 binary64) a) #s(literal 1/6 binary64))))))
(log.f64 (+.f64 #s(approx (exp a) (+.f64 #s(literal 1 binary64) a)) (exp.f64 b)))
Outputs
(log.f64 (+.f64 #s(approx (exp a) #s(literal 1 binary64)) (exp.f64 b)))
Calls

6 calls:

11.0ms
a
6.0ms
b
5.0ms
(exp.f64 a)
5.0ms
(exp.f64 b)
5.0ms
(+.f64 (exp.f64 a) (exp.f64 b))
Results
AccuracySegmentsBranch
50.3%1(exp.f64 b)
50.3%1(exp.f64 a)
50.3%1(+.f64 (exp.f64 a) (exp.f64 b))
50.3%1(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
50.3%1b
50.3%1a
Compiler

Compiled 17 to 21 computations (-23.5% saved)

regimes40.0ms (0.4%)

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

6 calls:

12.0ms
a
10.0ms
b
4.0ms
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
4.0ms
(+.f64 (exp.f64 a) (exp.f64 b))
4.0ms
(exp.f64 a)
Results
AccuracySegmentsBranch
49.9%1a
49.9%1b
49.9%1(exp.f64 b)
49.9%1(exp.f64 a)
49.9%1(+.f64 (exp.f64 a) (exp.f64 b))
49.9%1(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
Compiler

Compiled 17 to 21 computations (-23.5% saved)

regimes20.0ms (0.2%)

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

Total -30.7b remaining (-94.6%)

Threshold costs -30.7b (-94.6%)

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

6 calls:

5.0ms
b
4.0ms
(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
4.0ms
(+.f64 (exp.f64 a) (exp.f64 b))
2.0ms
a
2.0ms
(exp.f64 a)
Results
AccuracySegmentsBranch
49.2%1a
49.2%1(exp.f64 b)
49.2%1(exp.f64 a)
49.2%1(+.f64 (exp.f64 a) (exp.f64 b))
49.2%1(log.f64 (+.f64 (exp.f64 a) (exp.f64 b)))
49.2%1b
Compiler

Compiled 17 to 21 computations (-23.5% saved)

derivations2.0ms (0%)

Memory
2.6MiB live, 2.6MiB allocated; 0ms collecting garbage
Stop Event
fuel
Compiler

Compiled 136 to 44 computations (67.6% saved)

preprocess90.0ms (0.9%)

Memory
0.3MiB live, 94.6MiB allocated; 15ms collecting garbage
Remove

(sort a b)

Compiler

Compiled 414 to 260 computations (37.2% saved)

end0.0ms (0%)

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

Profiling

Loading profile data...