neg log

Time bar (total: 5.5s)

start4.0ms (0.1%)

Memory
-34.0MiB live, 0.1MiB allocated

analyze2.0ms (0%)

Memory
4.4MiB live, 4.4MiB allocated
Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
0%0%50%0%0%50%0%3
33.3%12.5%25%0%0%62.5%0%4
60%18.7%12.5%0%0%68.7%0%5
77.8%21.9%6.2%0%0%71.8%0%6
88.2%23.4%3.1%0%0%73.4%0%7
93.9%24.2%1.6%0%0%74.2%0%8
96.9%24.6%0.8%0%0%74.6%0%9
98.4%24.8%0.4%0%0%74.8%0%10
99.2%24.9%0.2%0%0%74.9%0%11
99.6%24.9%0.1%0%0%74.9%0%12
Compiler

Compiled 9 to 8 computations (11.1% saved)

sample668.0ms (12.1%)

Memory
43.7MiB live, 838.0MiB allocated
Samples
440.0ms8 256×0valid
1.0ms22×0invalid
Precisions
Click to see histograms. Total time spent on operations: 295.0ms
ival-log: 128.0ms (43.3% of total)
ival-div: 67.0ms (22.7% of total)
ival-neg: 45.0ms (15.2% of total)
ival-sub: 43.0ms (14.6% of total)
ival-true: 6.0ms (2% of total)
exact: 5.0ms (1.7% of total)
ival-assert: 3.0ms (1% of total)
Bogosity

explain89.0ms (1.6%)

Memory
-2.1MiB live, 122.3MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
00-0-(/.f64 #s(literal 1 binary64) x)
00-0-#s(literal 1 binary64)
00-0-(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
00-0-(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
00-0-x
Confusion
Predicted +Predicted -
+00
-0256
Precision
0/0
Recall
0/0
Confusion?
Predicted +Predicted MaybePredicted -
+000
-00256
Precision?
0/0
Recall?
0/0
Freqs
test
numberfreq
0256
Total Confusion?
Predicted +Predicted MaybePredicted -
+000
-001
Precision?
0/0
Recall?
0/0
Samples
32.0ms512×0valid
Compiler

Compiled 57 to 22 computations (61.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 16.0ms
ival-log: 6.0ms (37.1% of total)
ival-div: 4.0ms (24.8% of total)
ival-sub: 2.0ms (12.4% of total)
ival-neg: 2.0ms (12.4% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess15.0ms (0.3%)

Memory
13.5MiB live, 13.5MiB allocated
Algorithm
egg-herbie
Rules
26×sub-neg
16×+-commutative
12×lower-+.f64
12×lower-+.f32
12×associate-+l-
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
12113
23913
36213
47413
58313
69113
710013
810313
067
0107
1177
2207
3227
4247
5287
6337
0337
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
Outputs
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
Compiler

Compiled 7 to 6 computations (14.3% saved)

eval0.0ms (0%)

Memory
0.2MiB live, 0.2MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
0.7MiB live, 0.7MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
Compiler

Compiled 7 to 6 computations (14.3% saved)

simplify4.0ms (0.1%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(/.f64 #s(literal 1 binary64) x)
cost-diff0
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
cost-diff0
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
cost-diff0
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
Rules
12×lower-+.f64
12×lower-+.f32
sub-neg
lower--.f32
lower--.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0623
01023
11723
22023
32223
42423
52823
63323
03323
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x
Outputs
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) x)
#s(literal 1 binary64)
x

localize19.0ms (0.3%)

Memory
15.9MiB live, 15.9MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(/.f64 #s(literal 1 binary64) x)
accuracy0
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
accuracy0.00390625
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
accuracy0.00390625
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
Samples
13.0ms256×0valid
Compiler

Compiled 25 to 8 computations (68% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-log: 3.0ms (38.1% of total)
ival-div: 2.0ms (25.4% of total)
ival-sub: 1.0ms (12.7% of total)
ival-neg: 1.0ms (12.7% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series3.0ms (0.1%)

Memory
2.3MiB live, 2.3MiB allocated
Counts
4 → 48
Calls
Call 1
Inputs
#s(alt (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) (patch (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) #<representation binary64>) () ())
#s(alt (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) (patch (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) #<representation binary64>) () ())
#s(alt (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) (patch (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) #<representation binary64>) () ())
#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())
Outputs
#s(alt (log x) (taylor 0 x) (#s(alt (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) (patch (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- x (* -1 (log x))) (taylor 0 x) (#s(alt (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) (patch (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* 1/2 x))) (* -1 (log x))) (taylor 0 x) (#s(alt (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) (patch (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x))) (taylor 0 x) (#s(alt (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) (patch (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* -1 (log x)) (taylor 0 x) (#s(alt (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) (patch (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1 x) (* -1 (log x))) (taylor 0 x) (#s(alt (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) (patch (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1 (log x)) (* x (- (* -1/2 x) 1))) (taylor 0 x) (#s(alt (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) (patch (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (* -1 (log x)) (* x (- (* x (- (* -1/3 x) 1/2)) 1))) (taylor 0 x) (#s(alt (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) (patch (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor 0 x) (#s(alt (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) (patch (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (+ 1 (* -1 x)) x) (taylor 0 x) (#s(alt (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) (patch (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (+ 1 (* -1 x)) x) (taylor 0 x) (#s(alt (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) (patch (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ (+ 1 (* -1 x)) x) (taylor 0 x) (#s(alt (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) (patch (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor 0 x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor inf x) (#s(alt (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) (patch (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor inf x) (#s(alt (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) (patch (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor inf x) (#s(alt (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) (patch (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1)) (taylor inf x) (#s(alt (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) (patch (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (log -1) (taylor inf x) (#s(alt (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) (patch (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (- (log -1) (/ 1 x)) (taylor inf x) (#s(alt (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) (patch (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (/ (+ 1 (* 1/2 (/ 1 x))) x))) (taylor inf x) (#s(alt (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) (patch (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (- (+ (log -1) (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) (pow x 2)))) (/ 1 x)) (taylor inf x) (#s(alt (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) (patch (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt -1 (taylor inf x) (#s(alt (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) (patch (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) 1) (taylor inf x) (#s(alt (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) (patch (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) 1) (taylor inf x) (#s(alt (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) (patch (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) 1) (taylor inf x) (#s(alt (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) (patch (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor -inf x) (#s(alt (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) (patch (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor -inf x) (#s(alt (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) (patch (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor -inf x) (#s(alt (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) (patch (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1)) (taylor -inf x) (#s(alt (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) (patch (neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))) #<representation binary64>) () ())) ())
#s(alt (log -1) (taylor -inf x) (#s(alt (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) (patch (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (- (log -1) (/ 1 x)) (taylor -inf x) (#s(alt (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) (patch (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (/ (+ 1 (* 1/2 (/ 1 x))) x))) (taylor -inf x) (#s(alt (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) (patch (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (/ (+ 1 (+ (/ 1/3 (pow x 2)) (* 1/2 (/ 1 x)))) x))) (taylor -inf x) (#s(alt (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) (patch (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))) #<representation binary64>) () ())) ())
#s(alt -1 (taylor -inf x) (#s(alt (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) (patch (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) 1) (taylor -inf x) (#s(alt (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) (patch (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) 1) (taylor -inf x) (#s(alt (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) (patch (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) 1) (taylor -inf x) (#s(alt (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) (patch (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
#s(alt (/ 1 x) (taylor -inf x) (#s(alt (/.f64 #s(literal 1 binary64) x) (patch (/.f64 #s(literal 1 binary64) x) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@0
((neg (log (- (/ 1 x) 1))) (log (- (/ 1 x) 1)) (- (/ 1 x) 1) (/ 1 x))
1.0ms
x
@-inf
((neg (log (- (/ 1 x) 1))) (log (- (/ 1 x) 1)) (- (/ 1 x) 1) (/ 1 x))
0.0ms
x
@inf
((neg (log (- (/ 1 x) 1))) (log (- (/ 1 x) 1)) (- (/ 1 x) 1) (/ 1 x))

simplify242.0ms (4.4%)

Memory
-27.7MiB live, 90.5MiB allocated
Algorithm
egg-herbie
Rules
5 216×lower-fma.f64
5 216×lower-fma.f32
1 376×lower-*.f64
1 376×lower-*.f32
944×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
075313
1190292
2397290
3968280
41971278
54221278
65618278
75789278
85802278
95802278
105802278
115977278
126010278
136010278
06010270
Stop Event
iter limit
saturated
Counts
48 → 48
Calls
Call 1
Inputs
(log x)
(- x (* -1 (log x)))
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(* -1 (log x))
(+ (* -1 x) (* -1 (log x)))
(+ (* -1 (log x)) (* x (- (* -1/2 x) 1)))
(+ (* -1 (log x)) (* x (- (* x (- (* -1/3 x) 1/2)) 1)))
(/ 1 x)
(/ (+ 1 (* -1 x)) x)
(/ (+ 1 (* -1 x)) x)
(/ (+ 1 (* -1 x)) x)
(/ 1 x)
(/ 1 x)
(/ 1 x)
(/ 1 x)
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(log -1)
(- (log -1) (/ 1 x))
(+ (log -1) (* -1 (/ (+ 1 (* 1/2 (/ 1 x))) x)))
(- (+ (log -1) (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) (pow x 2)))) (/ 1 x))
-1
(- (/ 1 x) 1)
(- (/ 1 x) 1)
(- (/ 1 x) 1)
(/ 1 x)
(/ 1 x)
(/ 1 x)
(/ 1 x)
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(log -1)
(- (log -1) (/ 1 x))
(+ (log -1) (* -1 (/ (+ 1 (* 1/2 (/ 1 x))) x)))
(+ (log -1) (* -1 (/ (+ 1 (+ (/ 1/3 (pow x 2)) (* 1/2 (/ 1 x)))) x)))
-1
(- (/ 1 x) 1)
(- (/ 1 x) 1)
(- (/ 1 x) 1)
(/ 1 x)
(/ 1 x)
(/ 1 x)
(/ 1 x)
Outputs
(log x)
(log.f64 x)
(- x (* -1 (log x)))
(+.f64 (log.f64 x) x)
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(* -1 (log x))
(neg.f64 (log.f64 x))
(+ (* -1 x) (* -1 (log x)))
(neg.f64 (+.f64 (log.f64 x) x))
(+ (* -1 (log x)) (* x (- (* -1/2 x) 1)))
(neg.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
(+ (* -1 (log x)) (* x (- (* x (- (* -1/3 x) 1/2)) 1)))
(neg.f64 (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)))
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ (+ 1 (* -1 x)) x)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(/ (+ 1 (* -1 x)) x)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(/ (+ 1 (* -1 x)) x)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(-.f64 (/.f64 (-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1/3 binary64) x) #s(literal -1/2 binary64)) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
(log -1)
(log.f64 #s(literal -1 binary64))
(- (log -1) (/ 1 x))
(-.f64 (log.f64 #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) x))
(+ (log -1) (* -1 (/ (+ 1 (* 1/2 (/ 1 x))) x)))
(-.f64 (log.f64 #s(literal -1 binary64)) (/.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal -1 binary64)) x))
(- (+ (log -1) (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) (pow x 2)))) (/ 1 x))
(+.f64 (/.f64 (-.f64 (/.f64 (-.f64 (/.f64 #s(literal -1/3 binary64) x) #s(literal 1/2 binary64)) x) #s(literal 1 binary64)) x) (log.f64 #s(literal -1 binary64)))
-1
#s(literal -1 binary64)
(- (/ 1 x) 1)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(- (/ 1 x) 1)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(- (/ 1 x) 1)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(-.f64 (/.f64 (-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1/3 binary64) x) #s(literal -1/2 binary64)) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
(log -1)
(log.f64 #s(literal -1 binary64))
(- (log -1) (/ 1 x))
(-.f64 (log.f64 #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) x))
(+ (log -1) (* -1 (/ (+ 1 (* 1/2 (/ 1 x))) x)))
(-.f64 (log.f64 #s(literal -1 binary64)) (/.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal -1 binary64)) x))
(+ (log -1) (* -1 (/ (+ 1 (+ (/ 1/3 (pow x 2)) (* 1/2 (/ 1 x)))) x)))
(+.f64 (/.f64 (-.f64 (/.f64 (-.f64 (/.f64 #s(literal -1/3 binary64) x) #s(literal 1/2 binary64)) x) #s(literal 1 binary64)) x) (log.f64 #s(literal -1 binary64)))
-1
#s(literal -1 binary64)
(- (/ 1 x) 1)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(- (/ 1 x) 1)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(- (/ 1 x) 1)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)
(/ 1 x)
(/.f64 #s(literal 1 binary64) x)

rewrite130.0ms (2.4%)

Memory
27.5MiB live, 133.8MiB allocated
Rules
3 528×lower-fma.f64
3 528×lower-fma.f32
2 728×lower-/.f32
2 726×lower-/.f64
1 996×lower-*.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0621
01021
13821
223621
3250421
0927918
Stop Event
iter limit
node limit
iter limit
Counts
4 → 345
Calls
Call 1
Inputs
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
(/.f64 #s(literal 1 binary64) x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval122.0ms (2.2%)

Memory
-14.7MiB live, 93.3MiB allocated
Compiler

Compiled 7 945 to 1 337 computations (83.2% saved)

prune36.0ms (0.7%)

Memory
-13.5MiB live, 22.7MiB allocated
Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New3894393
Fresh000
Picked011
Done000
Total3895394
Accuracy
100.0%
Counts
394 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
99.7%
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)))
99.5%
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
99.3%
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
98.5%
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
Compiler

Compiled 36 to 29 computations (19.4% saved)

simplify9.0ms (0.2%)

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

Found 13 expressions of interest:

NewMetricScoreProgram
cost-diff0
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))
cost-diff0
(fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64))
cost-diff0
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
cost-diff0
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)))
cost-diff0
(log.f64 x)
cost-diff0
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
cost-diff0
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
cost-diff0
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
cost-diff0
(log.f64 x)
cost-diff0
(+.f64 (log.f64 x) x)
cost-diff0
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
cost-diff0
(log.f64 x)
cost-diff0
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
Rules
404×lower-fma.f32
394×lower-fma.f64
140×lower-+.f32
138×lower-*.f64
138×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
019112
031112
149112
272112
3139112
4248112
5299112
6305112
0305112
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
(log.f64 x)
x
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
(+.f64 (log.f64 x) x)
(log.f64 x)
x
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
#s(literal 1/2 binary64)
x
#s(literal 1 binary64)
(log.f64 x)
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64))
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))
#s(literal 1/3 binary64)
x
#s(literal 1/2 binary64)
#s(literal 1 binary64)
(log.f64 x)
Outputs
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
(log.f64 x)
x
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
(+.f64 (log.f64 x) x)
(log.f64 x)
x
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
#s(literal 1/2 binary64)
x
#s(literal 1 binary64)
(log.f64 x)
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64))
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))
#s(literal 1/3 binary64)
x
#s(literal 1/2 binary64)
#s(literal 1 binary64)
(log.f64 x)

localize65.0ms (1.2%)

Memory
-11.4MiB live, 112.7MiB allocated
Localize:

Found 13 expressions of interest:

NewMetricScoreProgram
accuracy0
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))
accuracy0
(log.f64 x)
accuracy0.00390625
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
accuracy0.19219498817379527
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)))
accuracy0
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
accuracy0
(log.f64 x)
accuracy0.0078125
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
accuracy0.29669037955897837
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
accuracy0
(log.f64 x)
accuracy0.0078125
(+.f64 (log.f64 x) x)
accuracy0.45609355227733883
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
accuracy0
(log.f64 x)
accuracy0.9359780893531566
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
Samples
52.0ms256×0valid
Compiler

Compiled 94 to 22 computations (76.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 32.0ms
ival-add: 10.0ms (31.2% of total)
ival-mult: 7.0ms (21.9% of total)
ival-log: 6.0ms (18.7% of total)
const: 4.0ms (12.5% of total)
ival-div: 3.0ms (9.4% of total)
ival-sub: 1.0ms (3.1% of total)
ival-neg: 1.0ms (3.1% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series74.0ms (1.3%)

Memory
-5.3MiB live, 107.5MiB allocated
Counts
11 → 132
Calls
Call 1
Inputs
#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())
#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())
#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())
#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())
#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())
#s(alt (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())
#s(alt (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())
#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())
#s(alt (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())
#s(alt (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) #<representation binary64>) () ())
#s(alt (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) #<representation binary64>) () ())
Outputs
#s(alt (log x) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- x (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* 1/2 x))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (- x (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* 1/2 x))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (+ x (log x)) (taylor 0 x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (+ x (log x)) (taylor 0 x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (+ x (log x)) (taylor 0 x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- x (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* 1/2 x))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (+ x (log x)) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (* x (+ 1 (* 1/2 x)))) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (* x (+ 1 (* 1/2 x)))) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* 1/2 x)) (taylor 0 x) (#s(alt (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* 1/2 x)) (taylor 0 x) (#s(alt (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* 1/2 x)) (taylor 0 x) (#s(alt (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- x (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* 1/2 x))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (+ x (log x)) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (* x (+ 1 (* 1/2 x)))) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (* x (+ 1 (* x (+ 1/2 (* 1/3 x)))))) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt 1 (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* 1/2 x)) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* x (+ 1/2 (* 1/3 x)))) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1 (* x (+ 1/2 (* 1/3 x)))) (taylor 0 x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt 1/2 (taylor 0 x) (#s(alt (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1/2 (* 1/3 x)) (taylor 0 x) (#s(alt (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1/2 (* 1/3 x)) (taylor 0 x) (#s(alt (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (+ 1/2 (* 1/3 x)) (taylor 0 x) (#s(alt (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt x (taylor inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (/ (log (/ 1 x)) x)))) (taylor inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (/ (log (/ 1 x)) x)))) (taylor inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (/ (log (/ 1 x)) x)))) (taylor inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (/ 1 x))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x)))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x)))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor inf x) (#s(alt (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (/ 1 x))) (taylor inf x) (#s(alt (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (/ 1 x))) (taylor inf x) (#s(alt (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (/ 1 x))) (taylor inf x) (#s(alt (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 3)) (taylor inf x) (#s(alt (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (+ (* -1 (/ (log (/ 1 x)) (pow x 3))) (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))) (taylor inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 x) (taylor inf x) (#s(alt (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt x (taylor -inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1))) (taylor -inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1))) (taylor -inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1))) (taylor -inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (/ 1 x))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x)))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x)))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor -inf x) (#s(alt (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (/ 1 x))) (taylor -inf x) (#s(alt (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (/ 1 x))) (taylor -inf x) (#s(alt (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (/ 1 x))) (taylor -inf x) (#s(alt (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 3)) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (/ 1 x)) x)) 1/3))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))) x)) 1/3))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) (patch (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))) (taylor -inf x) (#s(alt (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) (patch (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 x) (taylor -inf x) (#s(alt (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (patch (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
31.0ms
x
@-inf
((neg (log (- (/ 1 x) 1))) (log x) (neg (log (- (/ 1 x) 1))) (+ (log x) x) (neg (log (- (/ 1 x) 1))) (+ (* (+ (* 1/2 x) 1) x) (log x)) (+ (* 1/2 x) 1) (neg (log (- (/ 1 x) 1))) (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (+ (* (+ (* 1/3 x) 1/2) x) 1) (+ (* 1/3 x) 1/2))
28.0ms
x
@0
((neg (log (- (/ 1 x) 1))) (log x) (neg (log (- (/ 1 x) 1))) (+ (log x) x) (neg (log (- (/ 1 x) 1))) (+ (* (+ (* 1/2 x) 1) x) (log x)) (+ (* 1/2 x) 1) (neg (log (- (/ 1 x) 1))) (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (+ (* (+ (* 1/3 x) 1/2) x) 1) (+ (* 1/3 x) 1/2))
11.0ms
x
@inf
((neg (log (- (/ 1 x) 1))) (log x) (neg (log (- (/ 1 x) 1))) (+ (log x) x) (neg (log (- (/ 1 x) 1))) (+ (* (+ (* 1/2 x) 1) x) (log x)) (+ (* 1/2 x) 1) (neg (log (- (/ 1 x) 1))) (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (+ (* (+ (* 1/3 x) 1/2) x) 1) (+ (* 1/3 x) 1/2))

simplify207.0ms (3.8%)

Memory
5.6MiB live, 201.3MiB allocated
Algorithm
egg-herbie
Rules
14 688×lower-fma.f64
14 688×lower-fma.f32
4 072×lower-*.f64
4 072×lower-*.f32
2 256×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01001015
1318967
2882945
33714936
47731926
08817836
Stop Event
iter limit
node limit
Counts
132 → 130
Calls
Call 1
Inputs
(log x)
(- x (* -1 (log x)))
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(log x)
(log x)
(log x)
(log x)
(log x)
(- x (* -1 (log x)))
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(log x)
(+ x (log x))
(+ x (log x))
(+ x (log x))
(log x)
(- x (* -1 (log x)))
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(log x)
(+ x (log x))
(+ (log x) (* x (+ 1 (* 1/2 x))))
(+ (log x) (* x (+ 1 (* 1/2 x))))
1
(+ 1 (* 1/2 x))
(+ 1 (* 1/2 x))
(+ 1 (* 1/2 x))
(log x)
(- x (* -1 (log x)))
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(log x)
(+ x (log x))
(+ (log x) (* x (+ 1 (* 1/2 x))))
(+ (log x) (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))))
1
(+ 1 (* 1/2 x))
(+ 1 (* x (+ 1/2 (* 1/3 x))))
(+ 1 (* x (+ 1/2 (* 1/3 x))))
1/2
(+ 1/2 (* 1/3 x))
(+ 1/2 (* 1/3 x))
(+ 1/2 (* 1/3 x))
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
x
(* x (+ 1 (* -1 (/ (log (/ 1 x)) x))))
(* x (+ 1 (* -1 (/ (log (/ 1 x)) x))))
(* x (+ 1 (* -1 (/ (log (/ 1 x)) x))))
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(* 1/2 x)
(* x (+ 1/2 (/ 1 x)))
(* x (+ 1/2 (/ 1 x)))
(* x (+ 1/2 (/ 1 x)))
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(* 1/3 (pow x 3))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(* (pow x 3) (+ 1/3 (+ (* -1 (/ (log (/ 1 x)) (pow x 3))) (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))))
(* 1/3 (pow x 2))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(* (pow x 2) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(* 1/3 x)
(* x (+ 1/3 (* 1/2 (/ 1 x))))
(* x (+ 1/3 (* 1/2 (/ 1 x))))
(* x (+ 1/3 (* 1/2 (/ 1 x))))
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (* -1 (log (/ -1 x))))
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
x
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))))
(* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))))
(* 1/2 x)
(* x (+ 1/2 (/ 1 x)))
(* x (+ 1/2 (/ 1 x)))
(* x (+ 1/2 (/ 1 x)))
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(* 1/3 (pow x 3))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (/ 1 x)) x)) 1/3)))
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))) x)) 1/3)))
(* 1/3 (pow x 2))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(* (pow x 2) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(* 1/3 x)
(* x (+ 1/3 (* 1/2 (/ 1 x))))
(* x (+ 1/3 (* 1/2 (/ 1 x))))
(* x (+ 1/3 (* 1/2 (/ 1 x))))
Outputs
(log x)
(log.f64 x)
(- x (* -1 (log x)))
(+.f64 (log.f64 x) x)
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(- x (* -1 (log x)))
(+.f64 (log.f64 x) x)
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(log x)
(log.f64 x)
(+ x (log x))
(+.f64 (log.f64 x) x)
(+ x (log x))
(+.f64 (log.f64 x) x)
(+ x (log x))
(+.f64 (log.f64 x) x)
(log x)
(log.f64 x)
(- x (* -1 (log x)))
(+.f64 (log.f64 x) x)
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(log x)
(log.f64 x)
(+ x (log x))
(+.f64 (log.f64 x) x)
(+ (log x) (* x (+ 1 (* 1/2 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(+ (log x) (* x (+ 1 (* 1/2 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
1
#s(literal 1 binary64)
(+ 1 (* 1/2 x))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(+ 1 (* 1/2 x))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(+ 1 (* 1/2 x))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(log x)
(log.f64 x)
(- x (* -1 (log x)))
(+.f64 (log.f64 x) x)
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(log x)
(log.f64 x)
(+ x (log x))
(+.f64 (log.f64 x) x)
(+ (log x) (* x (+ 1 (* 1/2 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(+ (log x) (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
1
#s(literal 1 binary64)
(+ 1 (* 1/2 x))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(+ 1 (* x (+ 1/2 (* 1/3 x))))
(fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64))
(+ 1 (* x (+ 1/2 (* 1/3 x))))
(fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64))
1/2
#s(literal 1/2 binary64)
(+ 1/2 (* 1/3 x))
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))
(+ 1/2 (* 1/3 x))
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))
(+ 1/2 (* 1/3 x))
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(fma.f64 (pow.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (fma.f64 #s(literal 1/2 binary64) x #s(literal 1/3 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64))))
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(fma.f64 (pow.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (fma.f64 #s(literal 1/2 binary64) x #s(literal 1/3 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64))))
x
(* x (+ 1 (* -1 (/ (log (/ 1 x)) x))))
(+.f64 (log.f64 x) x)
(* x (+ 1 (* -1 (/ (log (/ 1 x)) x))))
(+.f64 (log.f64 x) x)
(* x (+ 1 (* -1 (/ (log (/ 1 x)) x))))
(+.f64 (log.f64 x) x)
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(fma.f64 (pow.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (fma.f64 #s(literal 1/2 binary64) x #s(literal 1/3 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64))))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) x x)
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* x (+ 1/2 (/ 1 x)))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(* x (+ 1/2 (/ 1 x)))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(* x (+ 1/2 (/ 1 x)))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(fma.f64 (pow.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 3 binary64)) (fma.f64 #s(literal 1/2 binary64) x #s(literal 1/3 binary64)) (-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64))))
(* 1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)
(* (pow x 3) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(fma.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x x)
(* (pow x 3) (+ 1/3 (+ (* -1 (/ (log (/ 1 x)) (pow x 3))) (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64))
(* (pow x 2) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64))
(* 1/3 x)
(*.f64 #s(literal 1/3 binary64) x)
(* x (+ 1/3 (* 1/2 (/ 1 x))))
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))
(* x (+ 1/3 (* 1/2 (/ 1 x))))
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))
(* x (+ 1/3 (* 1/2 (/ 1 x))))
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(-.f64 (/.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1/3 binary64) x) #s(literal 1/2 binary64)) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
(+ (log -1) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))
(+ (log -1) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))
(+ (log -1) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))
(+ (log -1) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(-.f64 (/.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1/3 binary64) x) #s(literal 1/2 binary64)) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
x
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(fma.f64 (/.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x) x x)
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(fma.f64 (/.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x) x x)
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(fma.f64 (/.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x) x x)
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(-.f64 (/.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1/3 binary64) x) #s(literal 1/2 binary64)) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) x x)
(* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))))
(*.f64 x (fma.f64 #s(literal 1/2 binary64) x (-.f64 (/.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x) #s(literal -1 binary64))))
(* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))))
(*.f64 x (fma.f64 #s(literal 1/2 binary64) x (-.f64 (/.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x) #s(literal -1 binary64))))
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* x (+ 1/2 (/ 1 x)))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(* x (+ 1/2 (/ 1 x)))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(* x (+ 1/2 (/ 1 x)))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(-.f64 (/.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1/3 binary64) x) #s(literal 1/2 binary64)) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
(* 1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (/ 1 x)) x)) 1/3)))
(fma.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x x)
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))) x)) 1/3)))
(*.f64 (-.f64 (/.f64 (-.f64 #s(literal 1/2 binary64) (/.f64 (-.f64 #s(literal -1 binary64) (/.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)) x)) x) #s(literal -1/3 binary64)) (pow.f64 x #s(literal 3 binary64)))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64))
(* (pow x 2) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64))
(* 1/3 x)
(*.f64 #s(literal 1/3 binary64) x)
(* x (+ 1/3 (* 1/2 (/ 1 x))))
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))
(* x (+ 1/3 (* 1/2 (/ 1 x))))
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))
(* x (+ 1/3 (* 1/2 (/ 1 x))))
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))

rewrite276.0ms (5%)

Memory
11.8MiB live, 300.6MiB allocated
Rules
11 320×lower-fma.f32
11 310×lower-fma.f64
5 258×lower-*.f64
5 258×lower-*.f32
3 392×lower-/.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01997
03197
113697
2102397
0872593
Stop Event
iter limit
node limit
iter limit
Counts
11 → 347
Calls
Call 1
Inputs
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
(log.f64 x)
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
(+.f64 (log.f64 x) x)
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64))
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval125.0ms (2.3%)

Memory
-21.8MiB live, 133.2MiB allocated
Compiler

Compiled 10 472 to 1 425 computations (86.4% saved)

prune14.0ms (0.3%)

Memory
33.1MiB live, 33.1MiB allocated
Pruning

8 alts after pruning (3 fresh and 5 done)

PrunedKeptTotal
New5283531
Fresh000
Picked044
Done011
Total5288536
Accuracy
100.0%
Counts
536 → 8
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
99.7%
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)))
99.5%
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
99.5%
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
99.3%
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
98.5%
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
2.7%
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)))
2.7%
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
Compiler

Compiled 63 to 50 computations (20.6% saved)

simplify54.0ms (1%)

Memory
-29.7MiB live, 9.6MiB allocated
Algorithm
egg-herbie
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
cost-diff0
(+.f64 (log.f64 x) x)
cost-diff0
(*.f64 x x)
cost-diff0
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
cost-diff128
(fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))
cost-diff0
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
cost-diff0
(*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)
cost-diff0
#s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))
cost-diff0
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)))
cost-diff0
(*.f64 x x)
cost-diff0
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
cost-diff0
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
cost-diff0
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
Rules
404×lower-fma.f32
400×lower-fma.f64
140×lower-+.f32
138×lower-+.f64
138×lower-*.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
032160
041160
167160
297158
3140158
4278158
5333158
6339158
0339150
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 x x)
x
#s(literal 1/2 binary64)
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)))
#s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))
(*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))
#s(literal 1/3 binary64)
x
#s(literal 1/2 binary64)
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
(fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))
(*.f64 x x)
x
#s(literal 1/2 binary64)
(+.f64 (log.f64 x) x)
(log.f64 x)
Outputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 x x)
x
#s(literal 1/2 binary64)
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)))
#s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))
(*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64))
#s(literal 1/3 binary64)
x
#s(literal 1/2 binary64)
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
(fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(*.f64 x x)
x
#s(literal 1/2 binary64)
(+.f64 (log.f64 x) x)
(log.f64 x)

localize167.0ms (3%)

Memory
30.1MiB live, 105.6MiB allocated
Localize:

Found 12 expressions of interest:

NewMetricScoreProgram
accuracy0
(log.f64 x)
accuracy0.00390625
(fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))
accuracy0.0078125
(+.f64 (log.f64 x) x)
accuracy0.29669037955897837
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
accuracy0.015625
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
accuracy0.01953125
(*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)
accuracy0.19219498817379527
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)))
accuracy62.26931486982418
#s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))
accuracy0
(*.f64 x x)
accuracy0.01171875
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
accuracy0.29669037955897837
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
accuracy62.26931449731212
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
Samples
153.0ms256×0valid
Compiler

Compiled 102 to 26 computations (74.5% saved)

Precisions
Click to see histograms. Total time spent on operations: 142.0ms
ival-mult: 74.0ms (52.1% of total)
ival-log: 52.0ms (36.6% of total)
ival-add: 7.0ms (4.9% of total)
const: 3.0ms (2.1% of total)
ival-div: 2.0ms (1.4% of total)
ival-sub: 1.0ms (0.7% of total)
ival-neg: 1.0ms (0.7% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series37.0ms (0.7%)

Memory
-9.3MiB live, 71.2MiB allocated
Counts
12 → 144
Calls
Call 1
Inputs
#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #<representation binary64>) () ())
#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())
#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())
#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) #<representation binary64>) () ())
#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())
#s(alt (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) #<representation binary64>) () ())
#s(alt (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) (patch (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())
#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) #<representation binary64>) () ())
#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())
#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())
Outputs
#s(alt (log x) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- x (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* 1/2 x))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ x (log x)) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (* x (+ 1 (* 1/2 x)))) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (* x (+ 1 (* 1/2 x)))) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor 0 x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) #<representation binary64>) () ())) ())
#s(alt (- x (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* 1/2 x))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (+ x (log x)) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (* x (+ 1 (* 1/2 x)))) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (* x (+ 1 (* x (+ 1/2 (* 1/3 x)))))) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) (patch (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ x (log x)) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) (patch (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (* x (+ 1 (* 1/2 x)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) (patch (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (* x (+ 1 (* 1/2 x)))) (taylor 0 x) (#s(alt (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) (patch (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (- x (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* 1/2 x))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (+ x (log x)) (taylor 0 x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (+ x (log x)) (taylor 0 x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (+ x (log x)) (taylor 0 x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (/ 1 x))) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x)))) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x)))) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 3)) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (+ (* -1 (/ (log (/ 1 x)) (pow x 3))) (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 3)) (taylor inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) (patch (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (/ 1 x))) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) (patch (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x)))) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) (patch (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x)))) (taylor inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) (patch (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt x (taylor inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (/ (log (/ 1 x)) x)))) (taylor inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (/ (log (/ 1 x)) x)))) (taylor inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1 (* -1 (/ (log (/ 1 x)) x)))) (taylor inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (/ 1 x))) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x)))) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x)))) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/2 binary64)) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (pow x 2) (taylor -inf x) (#s(alt (*.f64 x x) (patch (*.f64 x x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) #<representation binary64>) () ())) ())
#s(alt (- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 3)) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (/ 1 x)) x)) 1/3))) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))) x)) 1/3))) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 3)) (taylor -inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) (patch (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) (patch (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) (patch (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (/ 1 x))) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) (patch (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x)))) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) (patch (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x)))) (taylor -inf x) (#s(alt (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) (patch (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt x (taylor -inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1))) (taylor -inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1))) (taylor -inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1))) (taylor -inf x) (#s(alt (+.f64 (log.f64 x) x) (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
14.0ms
x
@0
((neg (log (- (/ 1 x) 1))) (+ (* (+ (* 1/2 x) 1) x) (log x)) (* (* x x) 1/2) (* x x) (neg (log (- (/ 1 x) 1))) (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (* (* (+ (* 1/3 x) 1/2) x) x) (* (+ (* 1/3 x) 1/2) x) (+ (* (* x x) 1/2) (+ (log x) x)) (neg (log (- (/ 1 x) 1))) (+ (log x) x) (log x))
10.0ms
x
@-inf
((neg (log (- (/ 1 x) 1))) (+ (* (+ (* 1/2 x) 1) x) (log x)) (* (* x x) 1/2) (* x x) (neg (log (- (/ 1 x) 1))) (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (* (* (+ (* 1/3 x) 1/2) x) x) (* (+ (* 1/3 x) 1/2) x) (+ (* (* x x) 1/2) (+ (log x) x)) (neg (log (- (/ 1 x) 1))) (+ (log x) x) (log x))
8.0ms
x
@inf
((neg (log (- (/ 1 x) 1))) (+ (* (+ (* 1/2 x) 1) x) (log x)) (* (* x x) 1/2) (* x x) (neg (log (- (/ 1 x) 1))) (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (* (* (+ (* 1/3 x) 1/2) x) x) (* (+ (* 1/3 x) 1/2) x) (+ (* (* x x) 1/2) (+ (log x) x)) (neg (log (- (/ 1 x) 1))) (+ (log x) x) (log x))

simplify186.0ms (3.4%)

Memory
9.9MiB live, 287.7MiB allocated
Algorithm
egg-herbie
Rules
12 382×lower-fma.f64
12 382×lower-fma.f32
3 544×lower-*.f64
3 544×lower-*.f32
2 672×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0981105
13041059
28401028
329401010
47453994
08422913
Stop Event
iter limit
node limit
Counts
144 → 142
Calls
Call 1
Inputs
(log x)
(- x (* -1 (log x)))
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(log x)
(+ x (log x))
(+ (log x) (* x (+ 1 (* 1/2 x))))
(+ (log x) (* x (+ 1 (* 1/2 x))))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(log x)
(- x (* -1 (log x)))
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(log x)
(+ x (log x))
(+ (log x) (* x (+ 1 (* 1/2 x))))
(+ (log x) (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(* 1/2 x)
(* x (+ 1/2 (* 1/3 x)))
(* x (+ 1/2 (* 1/3 x)))
(* x (+ 1/2 (* 1/3 x)))
(log x)
(+ x (log x))
(+ (log x) (* x (+ 1 (* 1/2 x))))
(+ (log x) (* x (+ 1 (* 1/2 x))))
(log x)
(- x (* -1 (log x)))
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(log x)
(+ x (log x))
(+ x (log x))
(+ x (log x))
(log x)
(log x)
(log x)
(log x)
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(* 1/3 (pow x 3))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(* (pow x 3) (+ 1/3 (+ (* -1 (/ (log (/ 1 x)) (pow x 3))) (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))))
(* 1/3 (pow x 3))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* 1/3 (pow x 2))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
x
(* x (+ 1 (* -1 (/ (log (/ 1 x)) x))))
(* x (+ 1 (* -1 (/ (log (/ 1 x)) x))))
(* x (+ 1 (* -1 (/ (log (/ 1 x)) x))))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))))
(* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(* 1/3 (pow x 3))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (/ 1 x)) x)) 1/3)))
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))) x)) 1/3)))
(* 1/3 (pow x 3))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* 1/3 (pow x 2))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))))
(* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))))
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
x
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (* -1 (log (/ -1 x))))
Outputs
(log x)
(log.f64 x)
(- x (* -1 (log x)))
(+.f64 (log.f64 x) x)
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(log x)
(log.f64 x)
(+ x (log x))
(+.f64 (log.f64 x) x)
(+ (log x) (* x (+ 1 (* 1/2 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(+ (log x) (* x (+ 1 (* 1/2 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(log x)
(log.f64 x)
(- x (* -1 (log x)))
(+.f64 (log.f64 x) x)
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(log x)
(log.f64 x)
(+ x (log x))
(+.f64 (log.f64 x) x)
(+ (log x) (* x (+ 1 (* 1/2 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(+ (log x) (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* x (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(log x)
(log.f64 x)
(+ x (log x))
(+.f64 (log.f64 x) x)
(+ (log x) (* x (+ 1 (* 1/2 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(+ (log x) (* x (+ 1 (* 1/2 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(log x)
(log.f64 x)
(- x (* -1 (log x)))
(+.f64 (log.f64 x) x)
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(log x)
(log.f64 x)
(+ x (log x))
(+.f64 (log.f64 x) x)
(+ x (log x))
(+.f64 (log.f64 x) x)
(+ x (log x))
(+.f64 (log.f64 x) x)
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(fma.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x) (-.f64 (/.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 3 binary64))) (log.f64 #s(literal -1 binary64))))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) x x)
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(fma.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x) (-.f64 (/.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 3 binary64))) (log.f64 #s(literal -1 binary64))))
(* 1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 3) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x)
(* (pow x 3) (+ 1/3 (+ (* -1 (/ (log (/ 1 x)) (pow x 3))) (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(* 1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) x x)
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(fma.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x) (-.f64 (/.f64 #s(literal 1/3 binary64) (pow.f64 x #s(literal 3 binary64))) (log.f64 #s(literal -1 binary64))))
x
(* x (+ 1 (* -1 (/ (log (/ 1 x)) x))))
(+.f64 (log.f64 x) x)
(* x (+ 1 (* -1 (/ (log (/ 1 x)) x))))
(+.f64 (log.f64 x) x)
(* x (+ 1 (* -1 (/ (log (/ 1 x)) x))))
(+.f64 (log.f64 x) x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(-.f64 (/.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1/3 binary64) x) #s(literal 1/2 binary64)) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) x x)
(* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x))))
(* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x))))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(pow x 2)
(*.f64 x x)
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(-.f64 (/.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1/3 binary64) x) #s(literal 1/2 binary64)) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
(* 1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (/ 1 x)) x)) 1/3)))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x)
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))) x)) 1/3)))
(fma.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))))
(* 1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(fma.f64 (*.f64 #s(literal 1/2 binary64) x) x x)
(* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x))))
(* (pow x 2) (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x))))
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(-.f64 (/.f64 (-.f64 (/.f64 (+.f64 (/.f64 #s(literal 1/3 binary64) x) #s(literal 1/2 binary64)) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
x
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(-.f64 x (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64))))
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(-.f64 x (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64))))
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(-.f64 x (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64))))
(+ (log -1) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))
(+ (log -1) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))
(+ (log -1) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))
(+ (log -1) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))

rewrite167.0ms (3%)

Memory
-5.4MiB live, 303.9MiB allocated
Rules
6 828×lower-fma.f32
6 824×lower-fma.f64
3 944×lower-/.f64
3 944×lower-/.f32
3 910×lower-*.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
032146
041146
1167144
21262144
08233133
Stop Event
iter limit
node limit
iter limit
Counts
12 → 228
Calls
Call 1
Inputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 x x)
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)))
#s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x))
(*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
(+.f64 (log.f64 x) x)
(log.f64 x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval74.0ms (1.3%)

Memory
25.0MiB live, 101.2MiB allocated
Compiler

Compiled 7 307 to 1 074 computations (85.3% saved)

prune58.0ms (1.1%)

Memory
-49.1MiB live, 92.7MiB allocated
Pruning

9 alts after pruning (2 fresh and 7 done)

PrunedKeptTotal
New3892391
Fresh000
Picked123
Done055
Total3909399
Accuracy
100.0%
Counts
399 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
99.7%
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)))
99.5%
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
99.5%
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
99.3%
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
98.5%
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
2.8%
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)))
2.7%
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)))
2.7%
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
Compiler

Compiled 71 to 57 computations (19.7% saved)

simplify11.0ms (0.2%)

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

Found 8 expressions of interest:

NewMetricScoreProgram
cost-diff0
#s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64)))
cost-diff0
(*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)
cost-diff0
#s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))
cost-diff0
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)))
cost-diff0
#s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x))
cost-diff0
(*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)
cost-diff0
#s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))
cost-diff0
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)))
Rules
404×lower-fma.f64
404×lower-fma.f32
162×lower-*.f32
152×lower-*.f64
140×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026199
031199
150199
266199
3104199
4252199
5326199
6332199
0332179
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)))
#s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))
(*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)
#s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)))
#s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))
(*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)
#s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64)))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(*.f64 x x)
x
#s(literal 1/3 binary64)
Outputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)))
#s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))
(*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)
#s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x))
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)))
#s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))
(*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)
#s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64)))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(*.f64 x x)
x
#s(literal 1/3 binary64)

localize51.0ms (0.9%)

Memory
-13.0MiB live, 65.0MiB allocated
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy0.15234375
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
accuracy0.19219498817379527
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)))
accuracy59.60804374595216
#s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64)))
accuracy62.26931486982418
#s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))
accuracy0.01953125
(*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)
accuracy0.19219498817379527
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)))
accuracy1.075599604812324
#s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x))
accuracy62.26931486982418
#s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))
Samples
40.0ms256×0valid
Compiler

Compiled 91 to 21 computations (76.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 30.0ms
ival-mult: 11.0ms (36.2% of total)
ival-log: 6.0ms (19.7% of total)
const: 5.0ms (16.4% of total)
ival-add: 3.0ms (9.9% of total)
ival-div: 2.0ms (6.6% of total)
ival-sub: 1.0ms (3.3% of total)
ival-neg: 1.0ms (3.3% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series7.0ms (0.1%)

Memory
10.4MiB live, 10.4MiB allocated
Counts
9 → 108
Calls
Call 1
Inputs
#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) #<representation binary64>) () ())
#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) #<representation binary64>) () ())
#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) #<representation binary64>) () ())
#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())
#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) #<representation binary64>) () ())
#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) #<representation binary64>) () ())
#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) #<representation binary64>) () ())
#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) #<representation binary64>) () ())
Outputs
#s(alt (log x) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) #<representation binary64>) () ())) ())
#s(alt (- x (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* 1/2 x))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) #<representation binary64>) () ())) ())
#s(alt (+ x (log x)) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (* x (+ 1 (* 1/2 x)))) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (* x (+ 1 (* x (+ 1/2 (* 1/3 x)))))) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) #<representation binary64>) () ())) ())
#s(alt (- x (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* 1/2 x))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) #<representation binary64>) () ())) ())
#s(alt (- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x))) (taylor 0 x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (+ x (log x)) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (* x (+ 1 (* 1/2 x)))) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (* x (+ 1 (* x (+ 1/2 (* 1/3 x)))))) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* x (+ 1/2 (* 1/3 x))) (taylor 0 x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 3)) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (+ (* -1 (/ (log (/ 1 x)) (pow x 3))) (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 3)) (taylor inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1)) (taylor inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 3)) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (+ (* -1 (/ (log (/ 1 x)) (pow x 3))) (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))) (taylor inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 3)) (taylor inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) #<representation binary64>) () ())) ())
#s(alt (- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 3)) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (/ 1 x)) x)) 1/3))) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))) x)) 1/3))) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 3)) (taylor -inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor -inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) #<representation binary64>) () ())) ())
#s(alt (- (/ 1 x) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) #<representation binary64>) () ())) ())
#s(alt (- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1)) (taylor -inf x) (#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 3)) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (/ 1 x)) x)) 1/3))) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))) x)) 1/3))) (taylor -inf x) (#s(alt #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) (patch #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 3)) (taylor -inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) #<representation binary64>) () ())) ())
#s(alt (* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) (patch (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor -inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x)))) (taylor -inf x) (#s(alt #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) (patch #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) #<representation binary64>) () ())) ())
#s(alt (* 1/3 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) (patch (*.f64 (*.f64 x x) #s(literal 1/3 binary64)) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
1.0ms
x
@inf
((neg (log (- (/ 1 x) 1))) (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (* (* (+ (* 1/3 x) 1/2) x) x) (* (+ (* 1/3 x) 1/2) x) (neg (log (- (/ 1 x) 1))) (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (* (* (+ (* 1/3 x) 1/2) x) x) (* (+ (* 1/3 x) 1/2) x) (* (* x x) 1/3))
1.0ms
x
@-inf
((neg (log (- (/ 1 x) 1))) (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (* (* (+ (* 1/3 x) 1/2) x) x) (* (+ (* 1/3 x) 1/2) x) (neg (log (- (/ 1 x) 1))) (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (* (* (+ (* 1/3 x) 1/2) x) x) (* (+ (* 1/3 x) 1/2) x) (* (* x x) 1/3))
1.0ms
x
@0
((neg (log (- (/ 1 x) 1))) (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (* (* (+ (* 1/3 x) 1/2) x) x) (* (+ (* 1/3 x) 1/2) x) (neg (log (- (/ 1 x) 1))) (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (* (* (+ (* 1/3 x) 1/2) x) x) (* (+ (* 1/3 x) 1/2) x) (* (* x x) 1/3))

simplify105.0ms (1.9%)

Memory
9.8MiB live, 123.6MiB allocated
Algorithm
egg-herbie
Rules
7 254×lower-fma.f64
7 254×lower-fma.f32
2 832×lower-*.f64
2 832×lower-*.f32
1 392×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
084894
1246876
2647872
32233838
46492836
08159762
Stop Event
iter limit
node limit
Counts
108 → 108
Calls
Call 1
Inputs
(log x)
(- x (* -1 (log x)))
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(log x)
(+ x (log x))
(+ (log x) (* x (+ 1 (* 1/2 x))))
(+ (log x) (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(* 1/2 x)
(* x (+ 1/2 (* 1/3 x)))
(* x (+ 1/2 (* 1/3 x)))
(* x (+ 1/2 (* 1/3 x)))
(log x)
(- x (* -1 (log x)))
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(log x)
(+ x (log x))
(+ (log x) (* x (+ 1 (* 1/2 x))))
(+ (log x) (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(* 1/2 x)
(* x (+ 1/2 (* 1/3 x)))
(* x (+ 1/2 (* 1/3 x)))
(* x (+ 1/2 (* 1/3 x)))
(* 1/3 (pow x 2))
(* 1/3 (pow x 2))
(* 1/3 (pow x 2))
(* 1/3 (pow x 2))
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(* 1/3 (pow x 3))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(* (pow x 3) (+ 1/3 (+ (* -1 (/ (log (/ 1 x)) (pow x 3))) (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))))
(* 1/3 (pow x 3))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* 1/3 (pow x 2))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(* 1/3 (pow x 3))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(* (pow x 3) (+ 1/3 (+ (* -1 (/ (log (/ 1 x)) (pow x 3))) (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))))
(* 1/3 (pow x 3))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* 1/3 (pow x 2))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* 1/3 (pow x 2))
(* 1/3 (pow x 2))
(* 1/3 (pow x 2))
(* 1/3 (pow x 2))
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(* 1/3 (pow x 3))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (/ 1 x)) x)) 1/3)))
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))) x)) 1/3)))
(* 1/3 (pow x 3))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* 1/3 (pow x 2))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(* 1/3 (pow x 3))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (/ 1 x)) x)) 1/3)))
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))) x)) 1/3)))
(* 1/3 (pow x 3))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(* 1/3 (pow x 2))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(* 1/3 (pow x 2))
(* 1/3 (pow x 2))
(* 1/3 (pow x 2))
(* 1/3 (pow x 2))
Outputs
(log x)
(log.f64 x)
(- x (* -1 (log x)))
(+.f64 (log.f64 x) x)
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(log x)
(log.f64 x)
(+ x (log x))
(+.f64 (log.f64 x) x)
(+ (log x) (* x (+ 1 (* 1/2 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(+ (log x) (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(* 1/2 (pow x 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 x x))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* x (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(log x)
(log.f64 x)
(- x (* -1 (log x)))
(+.f64 (log.f64 x) x)
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(log x)
(log.f64 x)
(+ x (log x))
(+.f64 (log.f64 x) x)
(+ (log x) (* x (+ 1 (* 1/2 x))))
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(+ (log x) (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(* 1/2 (pow x 2))
(*.f64 #s(literal 1/2 binary64) (*.f64 x x))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 2) (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* x (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* x (+ 1/2 (* 1/3 x)))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(-.f64 (/.f64 (-.f64 (/.f64 (-.f64 #s(literal 1/2 binary64) (/.f64 #s(literal -1/3 binary64) x)) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
(* 1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 3) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x)
(* (pow x 3) (+ 1/3 (+ (* -1 (/ (log (/ 1 x)) (pow x 3))) (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(* 1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(-.f64 (/.f64 (-.f64 (/.f64 (-.f64 #s(literal 1/2 binary64) (/.f64 #s(literal -1/3 binary64) x)) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
(* 1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 3) (+ 1/3 (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2)))))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x)
(* (pow x 3) (+ 1/3 (+ (* -1 (/ (log (/ 1 x)) (pow x 3))) (+ (* 1/2 (/ 1 x)) (/ 1 (pow x 2))))))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(* 1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(-.f64 (/.f64 (-.f64 (/.f64 (-.f64 #s(literal 1/2 binary64) (/.f64 #s(literal -1/3 binary64) x)) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
(* 1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (/ 1 x)) x)) 1/3)))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x)
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))) x)) 1/3)))
(*.f64 (-.f64 (/.f64 (-.f64 #s(literal 1/2 binary64) (/.f64 (-.f64 #s(literal -1 binary64) (/.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)) x)) x) #s(literal -1/3 binary64)) (pow.f64 x #s(literal 3 binary64)))
(* 1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* -1 (log -1))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(- (/ 1 x) (log -1))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(-.f64 (*.f64 (+.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal 1 binary64)) (/.f64 #s(literal 1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(- (* -1 (/ (- (* -1 (/ (+ 1/2 (* 1/3 (/ 1 x))) x)) 1) x)) (log -1))
(-.f64 (/.f64 (-.f64 (/.f64 (-.f64 #s(literal 1/2 binary64) (/.f64 #s(literal -1/3 binary64) x)) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
(* 1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (/ 1 x)) x)) 1/3)))
(*.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x)
(* -1 (* (pow x 3) (- (* -1 (/ (+ 1/2 (* -1 (/ (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1) x))) x)) 1/3)))
(*.f64 (-.f64 (/.f64 (-.f64 #s(literal 1/2 binary64) (/.f64 (-.f64 #s(literal -1 binary64) (/.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)) x)) x) #s(literal -1/3 binary64)) (pow.f64 x #s(literal 3 binary64)))
(* 1/3 (pow x 3))
(*.f64 (pow.f64 x #s(literal 3 binary64)) #s(literal 1/3 binary64))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* (pow x 3) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) (*.f64 x x))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* (pow x 2) (+ 1/3 (* 1/2 (/ 1 x))))
(*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x)
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
(* 1/3 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))

rewrite173.0ms (3.1%)

Memory
-21.6MiB live, 169.2MiB allocated
Rules
7 120×lower-fma.f64
7 120×lower-fma.f32
5 016×lower-*.f32
5 006×lower-*.f64
3 754×lower-/.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026189
031189
1109189
2683189
08487167
Stop Event
iter limit
node limit
iter limit
Counts
9 → 37
Calls
Call 1
Inputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)))
#s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x))
(*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)
#s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)))
#s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x))
(*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)
#s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64)))
(*.f64 (*.f64 x x) #s(literal 1/3 binary64))
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval14.0ms (0.2%)

Memory
34.6MiB live, 34.6MiB allocated
Compiler

Compiled 1 504 to 214 computations (85.8% saved)

prune32.0ms (0.6%)

Memory
-40.1MiB live, 45.3MiB allocated
Pruning

10 alts after pruning (1 fresh and 9 done)

PrunedKeptTotal
New1441145
Fresh000
Picked022
Done077
Total14410154
Accuracy
100.0%
Counts
154 → 10
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
99.7%
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)))
99.5%
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
99.5%
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
99.3%
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
98.5%
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
2.8%
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)))
2.8%
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 #s(literal 1/3 binary64) x) x)) x)))
2.7%
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)))
2.7%
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
Compiler

Compiled 172 to 110 computations (36% saved)

regimes22.0ms (0.4%)

Memory
4.6MiB live, 42.6MiB allocated
Counts
11 → 1
Calls
Call 1
Inputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 #s(literal 1/3 binary64) x) x)) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)))
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x)))
Outputs
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
Calls

5 calls:

5.0ms
x
4.0ms
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
4.0ms
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
4.0ms
(/.f64 #s(literal 1 binary64) x)
4.0ms
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
100.0%1(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
100.0%1(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
100.0%1(/.f64 #s(literal 1 binary64) x)
Compiler

Compiled 22 to 19 computations (13.6% saved)

regimes20.0ms (0.4%)

Memory
0.8MiB live, 38.4MiB allocated
Counts
9 → 1
Calls
Call 1
Inputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 #s(literal 1/3 binary64) x) x)) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)))
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
Outputs
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
Calls

5 calls:

5.0ms
x
3.0ms
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
3.0ms
(/.f64 #s(literal 1 binary64) x)
3.0ms
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
3.0ms
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
Results
AccuracySegmentsBranch
99.5%1x
99.5%1(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
99.5%1(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
99.5%1(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
99.5%1(/.f64 #s(literal 1 binary64) x)
Compiler

Compiled 22 to 19 computations (13.6% saved)

regimes34.0ms (0.6%)

Memory
-16.4MiB live, 36.3MiB allocated
Counts
8 → 1
Calls
Call 1
Inputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 #s(literal 1/3 binary64) x) x)) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)))
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
Outputs
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
Calls

5 calls:

3.0ms
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
3.0ms
(/.f64 #s(literal 1 binary64) x)
3.0ms
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
3.0ms
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
3.0ms
x
Results
AccuracySegmentsBranch
99.5%1x
99.5%1(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
99.5%1(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
99.5%1(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
99.5%1(/.f64 #s(literal 1 binary64) x)
Compiler

Compiled 22 to 19 computations (13.6% saved)

regimes15.0ms (0.3%)

Memory
32.0MiB live, 32.0MiB allocated
Counts
7 → 1
Calls
Call 1
Inputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 #s(literal 1/3 binary64) x) x)) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)))
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
Outputs
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
Calls

5 calls:

3.0ms
(/.f64 #s(literal 1 binary64) x)
3.0ms
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
3.0ms
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
3.0ms
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
3.0ms
x
Results
AccuracySegmentsBranch
99.3%1x
99.3%1(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
99.3%1(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
99.3%1(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
99.3%1(/.f64 #s(literal 1 binary64) x)
Compiler

Compiled 22 to 19 computations (13.6% saved)

regimes16.0ms (0.3%)

Memory
-6.4MiB live, 31.6MiB allocated
Counts
6 → 1
Calls
Call 1
Inputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 #s(literal 1/3 binary64) x) x)) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)))
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
Outputs
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
Calls

5 calls:

5.0ms
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
3.0ms
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
3.0ms
(/.f64 #s(literal 1 binary64) x)
3.0ms
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
3.0ms
x
Results
AccuracySegmentsBranch
98.5%1x
98.5%1(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
98.5%1(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
98.5%1(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
98.5%1(/.f64 #s(literal 1 binary64) x)
Compiler

Compiled 22 to 19 computations (13.6% saved)

regimes15.0ms (0.3%)

Memory
-0.8MiB live, 36.6MiB allocated
Counts
5 → 1
Calls
Call 1
Inputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 #s(literal 1/2 binary64) x)) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 #s(literal 1/3 binary64) x) x)) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 x x) #s(literal 1/3 binary64))) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 (*.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x) x)))
Outputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 #s(literal 1/3 binary64) x) x)) x)))
Calls

5 calls:

5.0ms
(/.f64 #s(literal 1 binary64) x)
2.0ms
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
2.0ms
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
2.0ms
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
2.0ms
x
Results
AccuracySegmentsBranch
2.8%1(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
2.8%1(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
2.8%1(/.f64 #s(literal 1 binary64) x)
2.8%1x
2.8%1(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
Compiler

Compiled 22 to 19 computations (13.6% saved)

regimes11.0ms (0.2%)

Memory
-11.1MiB live, 25.0MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

5 calls:

4.0ms
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
2.0ms
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
2.0ms
(/.f64 #s(literal 1 binary64) x)
2.0ms
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
1.0ms
x
Results
AccuracySegmentsBranch
2.7%1(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
2.7%1(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
2.7%1(/.f64 #s(literal 1 binary64) x)
2.7%1x
2.7%1(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
Compiler

Compiled 22 to 19 computations (13.6% saved)

simplify25.0ms (0.5%)

Memory
22.8MiB live, 68.6MiB allocated
Algorithm
egg-herbie
Rules
14×*-commutative-binary64-*.f64
10×neg-mul-1-binary64-*.f64-neg.f64
+-commutative-binary64-+.f64
unsub-neg-binary64--.f64-neg.f64-+.f64
sub-neg-binary64-neg.f64-+.f64--.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042124
155124
260124
366124
473124
582124
Stop Event
saturated
Calls
Call 1
Inputs
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 #s(literal 1/3 binary64) x) x)) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
Outputs
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* (+ (* 1/3 x) 1/2) x) 1) x) (log x)) (*.f64 #s(approx (* (+ (* 1/3 x) 1/2) x) (*.f64 (*.f64 #s(literal 1/3 binary64) x) x)) x)))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 #s(literal 1/2 binary64) (*.f64 x x))))

soundness2.0s (36.5%)

Memory
3.6MiB live, 700.7MiB allocated
Rules
14 688×lower-fma.f64
14 688×lower-fma.f32
12 382×lower-fma.f64
12 382×lower-fma.f32
11 320×lower-fma.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0981105
13041059
28401028
329401010
47453994
08422913
01001015
1318967
2882945
33714936
47731926
08817836
026189
031189
1109189
2683189
08487167
01997
03197
113697
2102397
0872593
075313
1190292
2397290
3968280
41971278
54221278
65618278
75789278
85802278
95802278
105802278
115977278
126010278
136010278
06010270
Stop Event
fuel
iter limit
saturated
iter limit
node limit
iter limit
iter limit
node limit
iter limit
iter limit
node limit
iter limit
node limit
Compiler

Compiled 111 to 76 computations (31.5% saved)

preprocess105.0ms (1.9%)

Memory
-10.3MiB live, 66.5MiB allocated
Compiler

Compiled 116 to 66 computations (43.1% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...