neg log

Time bar (total: 4.9s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze2.0ms (0%)

Memory
4.1MiB live, 4.1MiB 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)

sample683.0ms (13.8%)

Memory
30.6MiB live, 862.3MiB allocated
Samples
448.0ms8 256×0valid
1.0ms20×0invalid
Precisions
Click to see histograms. Total time spent on operations: 285.0ms
ival-log: 107.0ms (37.5% of total)
ival-div: 81.0ms (28.4% of total)
ival-sub: 48.0ms (16.8% of total)
ival-neg: 35.0ms (12.3% of total)
ival-true: 6.0ms (2.1% of total)
exact: 5.0ms (1.8% of total)
ival-assert: 3.0ms (1.1% of total)
Bogosity

explain112.0ms (2.3%)

Memory
1.7MiB live, 86.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
70.0ms512×0valid
Compiler

Compiled 57 to 22 computations (61.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 17.0ms
ival-log: 7.0ms (41.3% of total)
ival-div: 4.0ms (23.6% of total)
ival-sub: 2.0ms (11.8% of total)
ival-neg: 2.0ms (11.8% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess18.0ms (0.4%)

Memory
-12.3MiB live, 24.0MiB allocated
Algorithm
egg-herbie
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.3MiB live, 0.3MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune1.0ms (0%)

Memory
1.1MiB live, 1.1MiB 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)

simplify3.0ms (0.1%)

Memory
4.2MiB live, 4.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))))
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.4%)

Memory
28.6MiB live, 28.6MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(/.f64 #s(literal 1 binary64) x)
accuracy0
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
accuracy0
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
accuracy0
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
Samples
14.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 (37.8% of total)
ival-div: 2.0ms (25.2% of total)
ival-sub: 1.0ms (12.6% of total)
ival-neg: 1.0ms (12.6% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series20.0ms (0.4%)

Memory
-33.7MiB live, 4.6MiB 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
17.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))
1.0ms
x
@-inf
((neg (log (- (/ 1 x) 1))) (log (- (/ 1 x) 1)) (- (/ 1 x) 1) (/ 1 x))

simplify274.0ms (5.5%)

Memory
9.0MiB live, 123.8MiB allocated
Algorithm
egg-herbie
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)

rewrite211.0ms (4.3%)

Memory
-8.4MiB live, 208.5MiB allocated
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>

eval92.0ms (1.9%)

Memory
9.0MiB live, 128.5MiB allocated
Compiler

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

prune8.0ms (0.2%)

Memory
-7.8MiB live, 28.4MiB allocated
Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New3903393
Fresh000
Picked011
Done000
Total3904394
Accuracy
100.0%
Counts
394 → 4
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 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
99.4%
#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 24 to 20 computations (16.7% saved)

simplify5.0ms (0.1%)

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

Found 9 expressions of interest:

NewMetricScoreProgram
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))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01465
02065
13265
24365
36465
48565
58965
69465
09465
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)
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)

localize52.0ms (1.1%)

Memory
10.7MiB live, 58.8MiB allocated
Localize:

Found 9 expressions of interest:

NewMetricScoreProgram
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.2088737744392521
#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.38775474696917106
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
accuracy0
(log.f64 x)
accuracy0.9899493157151624
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
Samples
44.0ms256×0valid
Compiler

Compiled 53 to 15 computations (71.7% saved)

Precisions
Click to see histograms. Total time spent on operations: 35.0ms
ival-add: 21.0ms (59.2% of total)
ival-log: 6.0ms (16.9% of total)
ival-div: 3.0ms (8.5% of total)
ival-mult: 3.0ms (8.5% of total)
ival-sub: 1.0ms (2.8% of total)
ival-neg: 1.0ms (2.8% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series111.0ms (2.2%)

Memory
-4.6MiB live, 104.8MiB allocated
Counts
7 → 84
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>) () ())
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 (* -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))) (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>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
43.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))
42.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))
22.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))

simplify262.0ms (5.3%)

Memory
-20.9MiB live, 193.9MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
072632
1215597
2503586
31977563
46337554
08278516
Stop Event
iter limit
node limit
Counts
84 → 82
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))
(* -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 (/ (- (* -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)))
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))
(* -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 #s(literal 1/2 binary64) (*.f64 x x)) (/.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 #s(literal 1/3 binary64) (pow.f64 x #s(literal 3 binary64))) (/.f64 #s(literal 1/2 binary64) (*.f64 x x))) (log.f64 #s(literal -1 binary64))) (/.f64 #s(literal -1 binary64) 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 #s(literal 1/2 binary64) (*.f64 x x)) (/.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 #s(literal 1/3 binary64) (pow.f64 x #s(literal 3 binary64))) (/.f64 #s(literal 1/2 binary64) (*.f64 x x))) (log.f64 #s(literal -1 binary64))) (/.f64 #s(literal -1 binary64) 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)
(* 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 #s(literal 1/2 binary64) (*.f64 x x)) (/.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 #s(literal 1/3 binary64) (pow.f64 x #s(literal 3 binary64))) (/.f64 #s(literal 1/2 binary64) (*.f64 x x))) (log.f64 #s(literal -1 binary64))) (/.f64 #s(literal -1 binary64) x))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) 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 #s(literal 1/2 binary64) (*.f64 x x)) (/.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 #s(literal 1/2 binary64) (*.f64 x x)) (/.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 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(+.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(+.f64 (+.f64 (log.f64 (neg.f64 x)) (log.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 #s(literal 1/2 binary64) (*.f64 x x)) (/.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)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #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 (neg.f64 x)) (log.f64 #s(literal -1 binary64))))
(* (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 (neg.f64 x)) (log.f64 #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))

rewrite268.0ms (5.4%)

Memory
7.6MiB live, 316.8MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01456
02056
18556
261756
3738456
0890853
Stop Event
iter limit
node limit
iter limit
Counts
7 → 256
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))
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>

eval180.0ms (3.6%)

Memory
35.7MiB live, 146.8MiB allocated
Compiler

Compiled 7 709 to 1 044 computations (86.5% saved)

prune147.0ms (3%)

Memory
-28.4MiB live, 49.0MiB allocated
Pruning

6 alts after pruning (2 fresh and 4 done)

PrunedKeptTotal
New3842386
Fresh000
Picked033
Done011
Total3846390
Accuracy
100.0%
Counts
390 → 6
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 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
99.7%
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
99.4%
#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/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
Compiler

Compiled 41 to 33 computations (19.5% saved)

simplify9.0ms (0.2%)

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

Found 8 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 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))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02087
02587
14387
26285
36585
48685
59085
69585
09581
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))) (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))) (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)

localize110.0ms (2.2%)

Memory
-11.3MiB live, 276.6MiB allocated
Localize:

Found 8 expressions of interest:

NewMetricScoreProgram
accuracy0
(log.f64 x)
accuracy0.0078125
(fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x))
accuracy0.0078125
(+.f64 (log.f64 x) x)
accuracy0.2088737744392521
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
accuracy0
(*.f64 x x)
accuracy0.015625
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
accuracy0.2088737744392521
#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.273805608296854
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
Samples
98.0ms256×0valid
Compiler

Compiled 57 to 18 computations (68.4% saved)

Precisions
Click to see histograms. Total time spent on operations: 60.0ms
ival-add: 28.0ms (46.4% of total)
ival-mult: 12.0ms (19.9% of total)
ival-log: 12.0ms (19.9% of total)
ival-div: 4.0ms (6.6% of total)
ival-sub: 2.0ms (3.3% of total)
ival-neg: 2.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)

series60.0ms (1.2%)

Memory
-3.9MiB live, 74.6MiB allocated
Counts
8 → 96
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 (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 (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/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/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
41.0ms
x
@0
((neg (log (- (/ 1 x) 1))) (+ (* (+ (* 1/2 x) 1) x) (log x)) (* (* x x) 1/2) (* x x) (+ (* (* x x) 1/2) (+ (log x) x)) (neg (log (- (/ 1 x) 1))) (+ (log x) x) (log x))
9.0ms
x
@-inf
((neg (log (- (/ 1 x) 1))) (+ (* (+ (* 1/2 x) 1) x) (log x)) (* (* x x) 1/2) (* x x) (+ (* (* x x) 1/2) (+ (log x) x)) (neg (log (- (/ 1 x) 1))) (+ (log x) x) (log x))
7.0ms
x
@inf
((neg (log (- (/ 1 x) 1))) (+ (* (+ (* 1/2 x) 1) x) (log x)) (* (* x x) 1/2) (* x x) (+ (* (* x x) 1/2) (+ (log x) x)) (neg (log (- (/ 1 x) 1))) (+ (log x) x) (log x))

simplify113.0ms (2.3%)

Memory
14.8MiB live, 130.3MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
071694
1205657
2498639
31458611
44148584
08099546
Stop Event
iter limit
node limit
Counts
96 → 94
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 (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/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/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 (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 #s(literal 1/2 binary64) (*.f64 x x)) (/.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 (/.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)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) 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/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) 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 #s(literal 1/2 binary64) (*.f64 x x)) (/.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 (/.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
(* 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 #s(literal 1/2 binary64) (*.f64 x x)) (/.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)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #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 (neg.f64 x)) (log.f64 #s(literal -1 binary64))))
(* (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 (neg.f64 x)) (log.f64 #s(literal -1 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))
(* 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/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #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 (neg.f64 x)) (log.f64 #s(literal -1 binary64))))
(* (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 (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 #s(literal 1/2 binary64) (*.f64 x x)) (/.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 (log.f64 (neg.f64 x)) (+.f64 (log.f64 #s(literal -1 binary64)) x))
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(+.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 #s(literal -1 binary64)) x))
(* -1 (* x (- (* -1 (/ (+ (log -1) (* -1 (log (/ -1 x)))) x)) 1)))
(+.f64 (log.f64 (neg.f64 x)) (+.f64 (log.f64 #s(literal -1 binary64)) x))
(+ (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)))

rewrite279.0ms (5.7%)

Memory
-10.3MiB live, 278.3MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02080
02580
110978
284678
0866972
Stop Event
iter limit
node limit
iter limit
Counts
8 → 218
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)
(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>

eval46.0ms (0.9%)

Memory
-20.8MiB live, 90.9MiB allocated
Compiler

Compiled 7 093 to 966 computations (86.4% saved)

prune16.0ms (0.3%)

Memory
-6.4MiB live, 43.2MiB allocated
Pruning

7 alts after pruning (1 fresh and 6 done)

PrunedKeptTotal
New3361337
Fresh000
Picked022
Done044
Total3367343
Accuracy
100.0%
Counts
343 → 7
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 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
99.7%
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
99.4%
#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/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
2.7%
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)))
Compiler

Compiled 48 to 39 computations (18.8% saved)

simplify4.0ms (0.1%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 #s(literal 1/2 binary64) x)
cost-diff0
(*.f64 (*.f64 #s(literal 1/2 binary64) x) x)
cost-diff0
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))
cost-diff0
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01650
01850
13250
24250
35450
47950
58350
68850
08846
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 #s(literal 1/2 binary64) x) x)))
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))
(*.f64 (*.f64 #s(literal 1/2 binary64) x) x)
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x
Outputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)))
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))
(*.f64 (*.f64 #s(literal 1/2 binary64) x) x)
(*.f64 #s(literal 1/2 binary64) x)
#s(literal 1/2 binary64)
x

localize33.0ms (0.7%)

Memory
25.7MiB live, 63.5MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 (*.f64 #s(literal 1/2 binary64) x) x)
accuracy0
(*.f64 #s(literal 1/2 binary64) x)
accuracy0.2088737744392521
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)))
accuracy62.273805608296854
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))
Samples
26.0ms256×0valid
Compiler

Compiled 29 to 15 computations (48.3% saved)

Precisions
Click to see histograms. Total time spent on operations: 18.0ms
ival-log: 6.0ms (33.4% of total)
ival-mult: 5.0ms (27.9% of total)
ival-div: 2.0ms (11.1% of total)
ival-add: 2.0ms (11.1% of total)
ival-sub: 1.0ms (5.6% of total)
ival-neg: 1.0ms (5.6% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series6.0ms (0.1%)

Memory
-29.3MiB live, 7.9MiB allocated
Counts
4 → 48
Calls
Call 1
Inputs
#s(alt #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) #<representation binary64>) () ())
#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) #<representation binary64>) () ())
#s(alt (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) #<representation binary64>) () ())
#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) 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 #s(literal 1/2 binary64) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.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/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.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/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.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/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (+ x (log x)) (taylor 0 x) (#s(alt #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.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/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.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/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor 0 x) (#s(alt (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor 0 x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.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/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.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/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.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/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.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/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) #<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 #s(literal 1/2 binary64) x) x)) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) #<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 #s(literal 1/2 binary64) x) x)) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) 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 #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) 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 #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.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/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.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/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.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/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.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/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) (patch #s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))) #<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 #s(literal 1/2 binary64) x) x)) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) #<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 #s(literal 1/2 binary64) x) x)) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) 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 #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) 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 #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) (patch #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 (pow x 2)) (taylor -inf x) (#s(alt (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) (patch (*.f64 (*.f64 #s(literal 1/2 binary64) x) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
#s(alt (* 1/2 x) (taylor -inf x) (#s(alt (*.f64 #s(literal 1/2 binary64) x) (patch (*.f64 #s(literal 1/2 binary64) x) #<representation binary64>) () ())) ())
Calls

3 calls:

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

simplify119.0ms (2.4%)

Memory
41.3MiB live, 190.7MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
064328
1181316
2435309
31194304
44312298
08209279
Stop Event
iter limit
node limit
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)))
(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))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 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))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 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))
(* 1/2 x)
(* 1/2 x)
(* 1/2 x)
(* 1/2 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))
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #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 #s(literal 1/2 binary64) (*.f64 x x)) (/.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 #s(literal 1/3 binary64) (pow.f64 x #s(literal 3 binary64))) (log.f64 #s(literal -1 binary64))) (/.f64 #s(literal -1/2 binary64) (*.f64 x x))) (/.f64 #s(literal -1 binary64) x))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) 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))
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #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 #s(literal 1/2 binary64) (*.f64 x x)) (/.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/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #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 (neg.f64 x)) (log.f64 #s(literal -1 binary64))))
(* (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 (neg.f64 x)) (log.f64 #s(literal -1 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))
(* 1/2 (pow x 2))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)
(* 1/2 x)
(*.f64 #s(literal 1/2 binary64) x)

rewrite191.0ms (3.9%)

Memory
0.2MiB live, 156.4MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01648
01848
17548
251848
3617148
0825343
Stop Event
iter limit
node limit
iter limit
Counts
4 → 19
Calls
Call 1
Inputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)))
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x))
(*.f64 (*.f64 #s(literal 1/2 binary64) x) x)
(*.f64 #s(literal 1/2 binary64) x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval28.0ms (0.6%)

Memory
-27.3MiB live, 10.5MiB allocated
Compiler

Compiled 568 to 126 computations (77.8% saved)

prune11.0ms (0.2%)

Memory
17.4MiB live, 17.4MiB allocated
Pruning

7 alts after pruning (0 fresh and 7 done)

PrunedKeptTotal
New67067
Fresh000
Picked011
Done066
Total67774
Accuracy
100.0%
Counts
74 → 7
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 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
99.7%
#s(approx (neg (log (- (/ 1 x) 1))) (fma.f64 (*.f64 x x) #s(literal 1/2 binary64) (+.f64 (log.f64 x) x)))
99.4%
#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/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64))))
2.7%
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)))
Compiler

Compiled 96 to 63 computations (34.4% saved)

regimes15.0ms (0.3%)

Memory
20.1MiB live, 20.1MiB 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 #s(literal 1/2 binary64) 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))) (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))))
Outputs
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
Calls

5 calls:

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
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
3.0ms
x
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)

regimes68.0ms (1.4%)

Memory
-27.8MiB live, 35.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 #s(literal 1/2 binary64) 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))) (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 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
Calls

5 calls:

57.0ms
(/.f64 #s(literal 1 binary64) x)
3.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
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
2.0ms
x
Results
AccuracySegmentsBranch
99.7%1x
99.7%1(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
99.7%1(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
99.7%1(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
99.7%1(/.f64 #s(literal 1 binary64) x)
Compiler

Compiled 22 to 19 computations (13.6% saved)

regimes14.0ms (0.3%)

Memory
-13.9MiB live, 23.7MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) 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))) (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:

4.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
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
2.0ms
(/.f64 #s(literal 1 binary64) x)
2.0ms
x
Results
AccuracySegmentsBranch
99.4%1x
99.4%1(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
99.4%1(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
99.4%1(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
99.4%1(/.f64 #s(literal 1 binary64) x)
Compiler

Compiled 22 to 19 computations (13.6% saved)

regimes10.0ms (0.2%)

Memory
21.6MiB live, 21.6MiB allocated
Counts
3 → 1
Calls
Call 1
Inputs
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) 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))) (log.f64 x))
Outputs
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
Calls

5 calls:

2.0ms
(neg.f64 (log.f64 (-.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
(/.f64 #s(literal 1 binary64) x)
2.0ms
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
2.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)

regimes11.0ms (0.2%)

Memory
-18.6MiB live, 18.7MiB 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 #s(literal 1/2 binary64) 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
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)))
Calls

5 calls:

5.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
(/.f64 #s(literal 1 binary64) x)
2.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)

simplify23.0ms (0.5%)

Memory
11.1MiB live, 47.7MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02769
13869
24369
34969
45669
56569
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 (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/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)))
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 (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/2 x) 1) x) (log x)) (*.f64 (*.f64 #s(literal 1/2 binary64) x) x)))

soundness1.3s (25.7%)

Memory
4.7MiB live, 385.4MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
072632
1215597
2503586
31977563
46337554
08278516
02080
02580
110978
284678
0866972
075313
1190292
2397290
3968280
41971278
54221278
65618278
75789278
85802278
95802278
105802278
115977278
126010278
136010278
06010270
Stop Event
done
iter limit
saturated
iter limit
node limit
iter limit
iter limit
node limit
Compiler

Compiled 60 to 42 computations (30% saved)

preprocess33.0ms (0.7%)

Memory
29.3MiB live, 107.3MiB allocated
Compiler

Compiled 76 to 48 computations (36.8% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...