neg log

Time bar (total: 5.1s)

start0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

analyze11.0ms (0.2%)

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

sample1.0s (20.1%)

Memory
79.9MiB live, 964.8MiB allocated
Samples
779.0ms8 256×0valid
1.0ms19×0invalid
Precisions
Click to see histograms. Total time spent on operations: 317.0ms
ival-log: 140.0ms (44.2% of total)
ival-div: 74.0ms (23.3% of total)
ival-sub: 47.0ms (14.8% of total)
ival-neg: 42.0ms (13.2% of total)
ival-true: 6.0ms (1.9% of total)
exact: 5.0ms (1.6% of total)
ival-assert: 3.0ms (0.9% of total)
Bogosity

explain81.0ms (1.6%)

Memory
1.1MiB live, 113.8MiB 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
27.0ms512×0valid
Compiler

Compiled 80 to 28 computations (65% saved)

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

preprocess14.0ms (0.3%)

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

prune0.0ms (0%)

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

Compiled 7 to 6 computations (14.3% saved)

simplify4.0ms (0.1%)

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

localize27.0ms (0.5%)

Memory
-21.4MiB live, 24.8MiB 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.00390625
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
Samples
21.0ms256×0valid
Compiler

Compiled 48 to 14 computations (70.8% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-log: 11.0ms (71% of total)
ival-div: 2.0ms (12.9% of total)
ival-sub: 1.0ms (6.5% of total)
ival-neg: 1.0ms (6.5% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series4.0ms (0.1%)

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

3 calls:

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

simplify240.0ms (4.7%)

Memory
24.8MiB live, 98.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.f64 x)
(+.f64 (log.f64 x) x)
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(neg.f64 (log.f64 x))
(neg.f64 (+.f64 (log.f64 x) x))
(neg.f64 (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)))
(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)))
(/.f64 #s(literal 1 binary64) x)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(/.f64 #s(literal 1 binary64) x)
(/.f64 #s(literal 1 binary64) x)
(/.f64 #s(literal 1 binary64) x)
(/.f64 #s(literal 1 binary64) x)
(neg.f64 (log.f64 #s(literal -1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
(-.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.f64 #s(literal -1 binary64))
(-.f64 (log.f64 #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) x))
(-.f64 (log.f64 #s(literal -1 binary64)) (/.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal -1 binary64)) 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)))
#s(literal -1 binary64)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(/.f64 #s(literal 1 binary64) x)
(/.f64 #s(literal 1 binary64) x)
(/.f64 #s(literal 1 binary64) x)
(/.f64 #s(literal 1 binary64) x)
(neg.f64 (log.f64 #s(literal -1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(-.f64 (/.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal -1 binary64)) x) (log.f64 #s(literal -1 binary64)))
(-.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.f64 #s(literal -1 binary64))
(-.f64 (log.f64 #s(literal -1 binary64)) (/.f64 #s(literal 1 binary64) x))
(-.f64 (log.f64 #s(literal -1 binary64)) (/.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) x) #s(literal -1 binary64)) 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)))
#s(literal -1 binary64)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(/.f64 (-.f64 #s(literal 1 binary64) x) x)
(/.f64 #s(literal 1 binary64) x)
(/.f64 #s(literal 1 binary64) x)
(/.f64 #s(literal 1 binary64) x)
(/.f64 #s(literal 1 binary64) x)

rewrite196.0ms (3.8%)

Memory
-16.5MiB live, 137.7MiB 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>

eval120.0ms (2.3%)

Memory
5.7MiB live, 107.1MiB allocated
Compiler

Compiled 8 197 to 1 342 computations (83.6% saved)

prune9.0ms (0.2%)

Memory
-9.9MiB live, 26.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.1%
#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)))
98.8%
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
97.4%
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
Compiler

Compiled 45 to 35 computations (22.2% saved)

simplify5.0ms (0.1%)

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

localize41.0ms (0.8%)

Memory
-21.7MiB live, 100.2MiB 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.021816259768442016
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
accuracy0.5530183243912379
#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.015625
(+.f64 (log.f64 x) x)
accuracy0.7915048955202898
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
accuracy0
(log.f64 x)
accuracy1.6672563156354152
#s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x))
Samples
27.0ms256×0valid
Compiler

Compiled 118 to 30 computations (74.6% saved)

Precisions
Click to see histograms. Total time spent on operations: 18.0ms
ival-log: 6.0ms (33% of total)
ival-div: 4.0ms (22% of total)
ival-add: 3.0ms (16.5% of total)
ival-mult: 3.0ms (16.5% of total)
ival-sub: 1.0ms (5.5% of total)
ival-neg: 1.0ms (5.5% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series75.0ms (1.5%)

Memory
25.1MiB live, 101.3MiB allocated
Counts
7 → 84
Calls
Call 1
Inputs
#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (log.f64 x) #<representation binary64>) () ())
#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())
#s(alt #<batchref> (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 #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())
#s(alt #<batchref> (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())
Outputs
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (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 #<batchref> (taylor 0 x) (#s(alt #<batchref> (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 #<batchref> (taylor 0 x) (#s(alt #<batchref> (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 #<batchref> (taylor 0 x) (#s(alt #<batchref> (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 #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor 0 x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (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 #<batchref> (taylor inf x) (#s(alt #<batchref> (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 #<batchref> (taylor inf x) (#s(alt #<batchref> (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 #<batchref> (taylor inf x) (#s(alt #<batchref> (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 #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch #s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (+.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (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 #<batchref> (taylor -inf x) (#s(alt #<batchref> (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 #<batchref> (taylor -inf x) (#s(alt #<batchref> (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 #<batchref> (taylor -inf x) (#s(alt #<batchref> (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 #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
#s(alt #<batchref> (taylor -inf x) (#s(alt #<batchref> (patch (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
46.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))
18.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))
7.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))

simplify165.0ms (3.2%)

Memory
-0.7MiB live, 113.3MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
072632
1215597
2503586
31980563
46289554
08233516
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.f64 x)
(+.f64 (log.f64 x) x)
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(log.f64 x)
(log.f64 x)
(log.f64 x)
(log.f64 x)
(log.f64 x)
(+.f64 (log.f64 x) x)
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(log.f64 x)
(+.f64 (log.f64 x) x)
(+.f64 (log.f64 x) x)
(+.f64 (log.f64 x) x)
(log.f64 x)
(+.f64 (log.f64 x) x)
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(log.f64 x)
(+.f64 (log.f64 x) x)
(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))
#s(literal 1 binary64)
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(-.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(-.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))
(log.f64 x)
(log.f64 x)
(log.f64 x)
(log.f64 x)
(neg.f64 (log.f64 #s(literal -1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(-.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(-.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
(+.f64 (log.f64 x) x)
(+.f64 (log.f64 x) x)
(+.f64 (log.f64 x) x)
(neg.f64 (log.f64 #s(literal -1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(-.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(-.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))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x)
(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))
(*.f64 #s(literal 1/2 binary64) x)
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(-.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(-.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)))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))
(neg.f64 (log.f64 #s(literal -1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(-.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(-.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
(+.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)
(+.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)
(+.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)
(neg.f64 (log.f64 #s(literal -1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(-.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(-.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)))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) 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))))
(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))))
(*.f64 #s(literal 1/2 binary64) x)
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))
(fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64))

rewrite187.0ms (3.6%)

Memory
-0.5MiB live, 192.4MiB 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>

eval89.0ms (1.7%)

Memory
-36.2MiB live, 101.1MiB allocated
Compiler

Compiled 10 703 to 1 056 computations (90.1% saved)

prune10.0ms (0.2%)

Memory
24.6MiB live, 24.6MiB allocated
Pruning

5 alts after pruning (1 fresh and 4 done)

PrunedKeptTotal
New3851386
Fresh000
Picked033
Done011
Total3855390
Accuracy
100.0%
Counts
390 → 5
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
99.1%
#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)))
98.8%
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
97.4%
#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 69 to 52 computations (24.6% saved)

simplify5.0ms (0.1%)

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

Found 4 expressions of interest:

NewMetricScoreProgram
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
01650
01850
13250
24450
35650
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 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)
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)

localize55.0ms (1.1%)

Memory
-10.1MiB live, 63.3MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0
(*.f64 x x)
accuracy0.0078125
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
accuracy0.5530183243912379
#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.2797177017799
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (*.f64 x x) #s(literal 1/2 binary64)))
Samples
48.0ms256×0valid
Compiler

Compiled 79 to 33 computations (58.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 41.0ms
ival-log: 26.0ms (63.1% of total)
ival-mult: 6.0ms (14.6% of total)
ival-add: 5.0ms (12.1% of total)
ival-div: 2.0ms (4.9% of total)
ival-sub: 1.0ms (2.4% of total)
ival-neg: 1.0ms (2.4% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series4.0ms (0.1%)

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

3 calls:

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

simplify144.0ms (2.8%)

Memory
-10.7MiB live, 145.2MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
064328
1181316
2434309
31189304
44334298
08230279
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))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (* -1 (/ (- (* -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)
Outputs
(log.f64 x)
(+.f64 (log.f64 x) x)
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(log.f64 x)
(+.f64 (log.f64 x) x)
(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))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(neg.f64 (log.f64 #s(literal -1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(-.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(-.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))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x)
(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))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(neg.f64 (log.f64 #s(literal -1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(-.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(-.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)))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) 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))))
(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))))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)

rewrite174.0ms (3.4%)

Memory
15.7MiB live, 245.7MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01648
01848
17748
252548
3618348
0827043
Stop Event
iter limit
node limit
iter limit
Counts
4 → 31
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)
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>

eval8.0ms (0.2%)

Memory
19.1MiB live, 19.1MiB allocated
Compiler

Compiled 2 003 to 194 computations (90.3% saved)

prune13.0ms (0.3%)

Memory
-15.7MiB live, 20.5MiB allocated
Pruning

6 alts after pruning (1 fresh and 5 done)

PrunedKeptTotal
New78179
Fresh000
Picked011
Done044
Total78684
Accuracy
100.0%
Counts
84 → 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.1%
#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)))
98.8%
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
97.4%
#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 (neg.f64 x) (/.f64 #s(literal -1 binary64) 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 x x) #s(literal 1/2 binary64))))
Compiler

Compiled 96 to 72 computations (25% saved)

simplify36.0ms (0.7%)

Memory
15.3MiB live, 48.8MiB allocated
Algorithm
egg-herbie
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
cost-diff0
(*.f64 (/.f64 (neg.f64 x) (/.f64 #s(literal -1 binary64) x)) #s(literal 1/2 binary64))
cost-diff0
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (/.f64 (neg.f64 x) (/.f64 #s(literal -1 binary64) 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 (neg.f64 x) (/.f64 #s(literal -1 binary64) x)) #s(literal 1/2 binary64))))
cost-diff1216
(/.f64 (neg.f64 x) (/.f64 #s(literal -1 binary64) x))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01968
02368
14268
28556
318956
450056
580856
696856
7107556
8110256
9110756
0110752
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 (neg.f64 x) (/.f64 #s(literal -1 binary64) x)) #s(literal 1/2 binary64))))
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (/.f64 (neg.f64 x) (/.f64 #s(literal -1 binary64) x)) #s(literal 1/2 binary64)))
(*.f64 (/.f64 (neg.f64 x) (/.f64 #s(literal -1 binary64) x)) #s(literal 1/2 binary64))
(/.f64 (neg.f64 x) (/.f64 #s(literal -1 binary64) x))
(neg.f64 x)
x
(/.f64 #s(literal -1 binary64) x)
#s(literal -1 binary64)
#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)))
#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 x x)
(neg.f64 x)
x
(/.f64 #s(literal -1 binary64) x)
#s(literal -1 binary64)
#s(literal 1/2 binary64)

localize77.0ms (1.5%)

Memory
-10.6MiB live, 157.1MiB allocated
Localize:

Found 4 expressions of interest:

NewMetricScoreProgram
accuracy0.0078125
(*.f64 (/.f64 (neg.f64 x) (/.f64 #s(literal -1 binary64) x)) #s(literal 1/2 binary64))
accuracy0.15625
(/.f64 (neg.f64 x) (/.f64 #s(literal -1 binary64) x))
accuracy0.5530183243912379
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (/.f64 (neg.f64 x) (/.f64 #s(literal -1 binary64) x)) #s(literal 1/2 binary64))))
accuracy62.2797177017799
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (/.f64 (neg.f64 x) (/.f64 #s(literal -1 binary64) x)) #s(literal 1/2 binary64)))
Samples
65.0ms256×0valid
Compiler

Compiled 109 to 39 computations (64.2% saved)

Precisions
Click to see histograms. Total time spent on operations: 55.0ms
ival-div: 39.0ms (70.8% of total)
ival-log: 6.0ms (10.9% of total)
ival-mult: 4.0ms (7.3% of total)
ival-add: 2.0ms (3.6% of total)
ival-neg: 2.0ms (3.6% of total)
ival-sub: 1.0ms (1.8% of total)
ival-assert: 0.0ms (0% of total)
ival-true: 0.0ms (0% of total)
exact: 0.0ms (0% of total)

series10.0ms (0.2%)

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

3 calls:

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

simplify231.0ms (4.5%)

Memory
24.5MiB live, 182.6MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
064328
1181316
2435309
31195304
44329298
08219279
Stop Event
iter limit
node limit
Counts
48 → 48
Calls
Call 1
Inputs
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(log x)
(- x (* -1 (log x)))
(- (* x (+ 1 (* 1/2 x))) (* -1 (log x)))
(- (* x (+ 1 (* x (+ 1/2 (* 1/3 x))))) (* -1 (log x)))
(log x)
(+ x (log x))
(+ (log x) (* x (+ 1 (* 1/2 x))))
(+ (log x) (* x (+ 1 (* 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)
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (+ (/ 1/2 (pow x 2)) (+ (/ 1 x) (* 1/3 (/ 1 (pow x 3))))) (log -1))
(* 1/2 (pow x 2))
(* (pow x 2) (+ 1/2 (/ 1 x)))
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(* (pow x 2) (+ 1/2 (+ (* -1 (/ (log (/ 1 x)) (pow x 2))) (/ 1 x))))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(* 1/2 (pow x 2))
(pow x 2)
(pow x 2)
(pow x 2)
(pow x 2)
(* -1 (log -1))
(- (/ 1 x) (log -1))
(- (+ (/ 1/2 (pow x 2)) (/ 1 x)) (log -1))
(- (* -1 (/ (- (* -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))
Outputs
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(log.f64 x)
(+.f64 (log.f64 x) x)
(fma.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x (log.f64 x))
(fma.f64 (fma.f64 (fma.f64 #s(literal 1/3 binary64) x #s(literal 1/2 binary64)) x #s(literal 1 binary64)) x (log.f64 x))
(log.f64 x)
(+.f64 (log.f64 x) x)
(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))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(neg.f64 (log.f64 #s(literal -1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(-.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(-.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))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) x)
(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))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(*.f64 x x)
(neg.f64 (log.f64 #s(literal -1 binary64)))
(-.f64 (/.f64 #s(literal 1 binary64) x) (log.f64 #s(literal -1 binary64)))
(-.f64 (-.f64 (/.f64 #s(literal 1/2 binary64) (*.f64 x x)) (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))
(-.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)))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (fma.f64 #s(literal 1/2 binary64) x #s(literal 1 binary64)) 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))))
(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))))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))
(*.f64 (*.f64 x x) #s(literal 1/2 binary64))

rewrite161.0ms (3.1%)

Memory
-15.2MiB live, 140.9MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01960
02360
19648
265348
3692748
0862943
Stop Event
iter limit
node limit
iter limit
Counts
4 → 113
Calls
Call 1
Inputs
(/.f64 (neg.f64 x) (/.f64 #s(literal -1 binary64) x))
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (/.f64 (neg.f64 x) (/.f64 #s(literal -1 binary64) x)) #s(literal 1/2 binary64))))
#s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (/.f64 (neg.f64 x) (/.f64 #s(literal -1 binary64) x)) #s(literal 1/2 binary64)))
(*.f64 (/.f64 (neg.f64 x) (/.f64 #s(literal -1 binary64) x)) #s(literal 1/2 binary64))
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval23.0ms (0.4%)

Memory
-2.5MiB live, 33.9MiB allocated
Compiler

Compiled 4 590 to 566 computations (87.7% saved)

prune16.0ms (0.3%)

Memory
0.1MiB live, 38.4MiB allocated
Pruning

9 alts after pruning (4 fresh and 5 done)

PrunedKeptTotal
New1574161
Fresh000
Picked101
Done055
Total1589167
Accuracy
100.0%
Counts
167 → 9
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
99.1%
#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)))
98.8%
#s(approx (neg (log (- (/ 1 x) 1))) (+.f64 (log.f64 x) x))
97.4%
#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 (*.f64 (neg.f64 x) x) (*.f64 #s(literal -1/2 binary64) x)) x)))
2.7%
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (/.f64 (*.f64 #s(literal -1/2 binary64) x) (/.f64 #s(literal -1 binary64) x))))
1.3%
#s(approx (neg (log (- (/ 1 x) 1))) #s(approx (+ (* (+ (* 1/2 x) 1) x) (log x)) (*.f64 (/.f64 (*.f64 (*.f64 (neg.f64 x) x) (*.f64 (neg.f64 x) x)) (*.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 (*.f64 (*.f64 (neg.f64 x) x) (neg.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 x x) #s(literal 1/2 binary64))))
Compiler

Compiled 403 to 188 computations (53.3% saved)

regimes37.0ms (0.7%)

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

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

Compiled 22 to 19 computations (13.6% saved)

regimes75.0ms (1.5%)

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

53.0ms
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
7.0ms
x
6.0ms
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
4.0ms
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
4.0ms
(/.f64 #s(literal 1 binary64) x)
Results
AccuracySegmentsBranch
99.1%1x
99.1%1(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
99.1%1(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
99.1%1(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
99.1%1(/.f64 #s(literal 1 binary64) x)
Compiler

Compiled 22 to 19 computations (13.6% saved)

regimes39.0ms (0.8%)

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

9.0ms
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
9.0ms
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
7.0ms
(/.f64 #s(literal 1 binary64) x)
7.0ms
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
6.0ms
x
Results
AccuracySegmentsBranch
98.8%1(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
98.8%1(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
98.8%1(/.f64 #s(literal 1 binary64) x)
98.8%1x
98.8%1(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
Compiler

Compiled 22 to 19 computations (13.6% saved)

regimes32.0ms (0.6%)

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

7.0ms
(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
6.0ms
(/.f64 #s(literal 1 binary64) x)
6.0ms
(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
6.0ms
(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
6.0ms
x
Results
AccuracySegmentsBranch
97.4%1x
97.4%1(neg.f64 (log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))))
97.4%1(log.f64 (-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64)))
97.4%1(-.f64 (/.f64 #s(literal 1 binary64) x) #s(literal 1 binary64))
97.4%1(/.f64 #s(literal 1 binary64) x)
Compiler

Compiled 22 to 19 computations (13.6% saved)

regimes54.0ms (1%)

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

5 calls:

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

regimes17.0ms (0.3%)

Memory
23.3MiB live, 23.3MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

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

5 calls:

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

Compiled 22 to 19 computations (13.6% saved)

simplify70.0ms (1.4%)

Memory
-13.3MiB live, 61.5MiB allocated
Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03598
15198
26498
38498
411498
515198
616998
717998
818098
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 (*.f64 (neg.f64 x) x) (*.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
(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 (*.f64 x x) (*.f64 #s(literal -1/2 binary64) x)) (neg.f64 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))))

soundness1.5s (29%)

Memory
-8.0MiB live, 474.5MiB allocated
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01960
02360
19648
265348
3692748
0862943
072632
1215597
2503586
31980563
46289554
08233516
075313
1190292
2397290
3968280
41971278
54221278
65618278
75789278
85802278
95802278
105802278
115977278
126010278
136010278
06010270
01648
01848
17748
252548
3618348
0827043
Stop Event
fuel
iter limit
node limit
iter limit
iter limit
saturated
iter limit
node limit
iter limit
node limit
iter limit
Compiler

Compiled 179 to 98 computations (45.3% saved)

preprocess56.0ms (1.1%)

Memory
7.9MiB live, 85.6MiB allocated
Compiler

Compiled 210 to 84 computations (60% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...