Jmat.Real.lambertw, estimator

Time bar (total: 2.4s)

start0.0ms (0%)

Memory
0.1MiB live, 0.1MiB allocated

analyze1.0ms (0.1%)

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%50%0%0%50%0%2
50%25%25%0%0%50%0%3
66.7%25%12.5%0%0%62.5%0%4
80%25%6.2%0%0%68.7%0%5
88.9%25%3.1%0%0%71.8%0%6
94.1%25%1.6%0%0%73.4%0%7
97%25%0.8%0%0%74.2%0%8
98.5%25%0.4%0%0%74.6%0%9
99.2%25%0.2%0%0%74.8%0%10
99.6%25%0.1%0%0%74.9%0%11
99.8%25%0%0%0%74.9%0%12
Compiler

Compiled 8 to 6 computations (25% saved)

sample628.0ms (25.7%)

Memory
32.5MiB live, 1 264.8MiB allocated
Samples
429.0ms8 256×0valid
1.0ms11×0invalid
Precisions
Click to see histograms. Total time spent on operations: 258.0ms
ival-log: 204.0ms (79% of total)
ival-sub: 45.0ms (17.4% of total)
ival-true: 6.0ms (2.3% of total)
ival-assert: 3.0ms (1.2% of total)
Bogosity

explain62.0ms (2.5%)

Memory
-21.5MiB live, 139.7MiB allocated
FPErrors
Click to see full error table
Ground TruthOverpredictionsExampleUnderpredictionsExampleSubexpression
00-0-(log.f64 (log.f64 x))
00-0-(log.f64 x)
00-0-(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
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 34 to 16 computations (52.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-log: 12.0ms (80% of total)
ival-sub: 2.0ms (13.3% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

preprocess19.0ms (0.8%)

Memory
2.3MiB live, 41.2MiB allocated
Algorithm
egg-herbie
Rules
80×lower-fma.f64
80×lower-fma.f32
48×lower-*.f64
48×lower-*.f32
34×sub-neg
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0617
11417
23316
36116
410616
515216
616916
717716
046
076
196
2146
3206
4286
5436
6766
71016
81436
91586
101666
01666
Stop Event
iter limit
saturated
iter limit
saturated
Calls
Call 1
Inputs
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Outputs
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Compiler

Compiled 6 to 4 computations (33.3% saved)

eval0.0ms (0%)

Memory
0.5MiB live, 0.5MiB allocated
Compiler

Compiled 0 to 1 computations (-∞% saved)

prune0.0ms (0%)

Memory
1.2MiB live, 1.2MiB allocated
Alt Table
Click to see full alt table
StatusAccuracyProgram
99.5%
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Compiler

Compiled 6 to 4 computations (33.3% saved)

simplify6.0ms (0.3%)

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

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(log.f64 (log.f64 x))
cost-diff0
(log.f64 x)
cost-diff0
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Rules
80×lower-fma.f64
80×lower-fma.f32
48×lower-*.f64
48×lower-*.f32
32×lower-+.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0412
0712
1912
21412
32012
42812
54312
67612
710112
814312
915812
1016612
016612
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(log.f64 x)
x
(log.f64 (log.f64 x))
Outputs
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(log.f64 x)
x
(log.f64 (log.f64 x))

localize20.0ms (0.8%)

Memory
4.1MiB live, 45.1MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(log.f64 x)
accuracy0.03125
(log.f64 (log.f64 x))
accuracy0.296875
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Samples
15.0ms256×0valid
Compiler

Compiled 14 to 6 computations (57.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 10.0ms
ival-log: 7.0ms (69.8% of total)
ival-sub: 3.0ms (29.9% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series124.0ms (5.1%)

Memory
-5.6MiB live, 267.8MiB allocated
Counts
3 → 36
Calls
Call 1
Inputs
#s(alt (-.f64 (log.f64 x) (log.f64 (log.f64 x))) (patch (-.f64 (log.f64 x) (log.f64 (log.f64 x))) #<representation binary64>) () ())
#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())
#s(alt (log.f64 (log.f64 x)) (patch (log.f64 (log.f64 x)) #<representation binary64>) () ())
Outputs
#s(alt (- (log x) (log (log x))) (taylor 0 x) (#s(alt (-.f64 (log.f64 x) (log.f64 (log.f64 x))) (patch (-.f64 (log.f64 x) (log.f64 (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (log x) (log (log x))) (taylor 0 x) (#s(alt (-.f64 (log.f64 x) (log.f64 (log.f64 x))) (patch (-.f64 (log.f64 x) (log.f64 (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (log x) (log (log x))) (taylor 0 x) (#s(alt (-.f64 (log.f64 x) (log.f64 (log.f64 x))) (patch (-.f64 (log.f64 x) (log.f64 (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (log x) (log (log x))) (taylor 0 x) (#s(alt (-.f64 (log.f64 x) (log.f64 (log.f64 x))) (patch (-.f64 (log.f64 x) (log.f64 (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log (log x)) (taylor 0 x) (#s(alt (log.f64 (log.f64 x)) (patch (log.f64 (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (log (log x)) (taylor 0 x) (#s(alt (log.f64 (log.f64 x)) (patch (log.f64 (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (log (log x)) (taylor 0 x) (#s(alt (log.f64 (log.f64 x)) (patch (log.f64 (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (log (log x)) (taylor 0 x) (#s(alt (log.f64 (log.f64 x)) (patch (log.f64 (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- (* -1 (log (/ 1 x))) (log (* -1 (log (/ 1 x))))) (taylor inf x) (#s(alt (-.f64 (log.f64 x) (log.f64 (log.f64 x))) (patch (-.f64 (log.f64 x) (log.f64 (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (* -1 (log (/ 1 x))) (log (* -1 (log (/ 1 x))))) (taylor inf x) (#s(alt (-.f64 (log.f64 x) (log.f64 (log.f64 x))) (patch (-.f64 (log.f64 x) (log.f64 (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (* -1 (log (/ 1 x))) (log (* -1 (log (/ 1 x))))) (taylor inf x) (#s(alt (-.f64 (log.f64 x) (log.f64 (log.f64 x))) (patch (-.f64 (log.f64 x) (log.f64 (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (* -1 (log (/ 1 x))) (log (* -1 (log (/ 1 x))))) (taylor inf x) (#s(alt (-.f64 (log.f64 x) (log.f64 (log.f64 x))) (patch (-.f64 (log.f64 x) (log.f64 (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (log.f64 (log.f64 x)) (patch (log.f64 (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (log (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (log.f64 (log.f64 x)) (patch (log.f64 (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (log (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (log.f64 (log.f64 x)) (patch (log.f64 (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (log (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (log.f64 (log.f64 x)) (patch (log.f64 (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (- (+ (log -1) (* -1 (log (/ -1 x)))) (log (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (-.f64 (log.f64 x) (log.f64 (log.f64 x))) (patch (-.f64 (log.f64 x) (log.f64 (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (log -1) (* -1 (log (/ -1 x)))) (log (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (-.f64 (log.f64 x) (log.f64 (log.f64 x))) (patch (-.f64 (log.f64 x) (log.f64 (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (log -1) (* -1 (log (/ -1 x)))) (log (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (-.f64 (log.f64 x) (log.f64 (log.f64 x))) (patch (-.f64 (log.f64 x) (log.f64 (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (- (+ (log -1) (* -1 (log (/ -1 x)))) (log (+ (log -1) (* -1 (log (/ -1 x)))))) (taylor -inf x) (#s(alt (-.f64 (log.f64 x) (log.f64 (log.f64 x))) (patch (-.f64 (log.f64 x) (log.f64 (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log (+ (log -1) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (log.f64 (log.f64 x)) (patch (log.f64 (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (log (+ (log -1) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (log.f64 (log.f64 x)) (patch (log.f64 (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (log (+ (log -1) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (log.f64 (log.f64 x)) (patch (log.f64 (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (log (+ (log -1) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (log.f64 (log.f64 x)) (patch (log.f64 (log.f64 x)) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
49.0ms
x
@0
((- (log x) (log (log x))) (log x) (log (log x)))
47.0ms
x
@-inf
((- (log x) (log (log x))) (log x) (log (log x)))
28.0ms
x
@inf
((- (log x) (log (log x))) (log x) (log (log x)))

simplify21.0ms (0.9%)

Memory
-10.1MiB live, 29.4MiB allocated
Algorithm
egg-herbie
Rules
384×lower-fma.f64
384×lower-fma.f32
160×lower-*.f64
160×lower-*.f32
136×lower-+.f64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
018228
134212
260212
3125212
4243212
5342212
6442212
7486212
8493212
0493212
Stop Event
iter limit
saturated
Counts
36 → 36
Calls
Call 1
Inputs
(- (log x) (log (log x)))
(- (log x) (log (log x)))
(- (log x) (log (log x)))
(- (log x) (log (log x)))
(log x)
(log x)
(log x)
(log x)
(log (log x))
(log (log x))
(log (log x))
(log (log x))
(- (* -1 (log (/ 1 x))) (log (* -1 (log (/ 1 x)))))
(- (* -1 (log (/ 1 x))) (log (* -1 (log (/ 1 x)))))
(- (* -1 (log (/ 1 x))) (log (* -1 (log (/ 1 x)))))
(- (* -1 (log (/ 1 x))) (log (* -1 (log (/ 1 x)))))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(log (* -1 (log (/ 1 x))))
(log (* -1 (log (/ 1 x))))
(log (* -1 (log (/ 1 x))))
(log (* -1 (log (/ 1 x))))
(- (+ (log -1) (* -1 (log (/ -1 x)))) (log (+ (log -1) (* -1 (log (/ -1 x))))))
(- (+ (log -1) (* -1 (log (/ -1 x)))) (log (+ (log -1) (* -1 (log (/ -1 x))))))
(- (+ (log -1) (* -1 (log (/ -1 x)))) (log (+ (log -1) (* -1 (log (/ -1 x))))))
(- (+ (log -1) (* -1 (log (/ -1 x)))) (log (+ (log -1) (* -1 (log (/ -1 x))))))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (* -1 (log (/ -1 x))))
(log (+ (log -1) (* -1 (log (/ -1 x)))))
(log (+ (log -1) (* -1 (log (/ -1 x)))))
(log (+ (log -1) (* -1 (log (/ -1 x)))))
(log (+ (log -1) (* -1 (log (/ -1 x)))))
Outputs
(- (log x) (log (log x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(- (log x) (log (log x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(- (log x) (log (log x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(- (log x) (log (log x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(log (log x))
(log.f64 (log.f64 x))
(log (log x))
(log.f64 (log.f64 x))
(log (log x))
(log.f64 (log.f64 x))
(log (log x))
(log.f64 (log.f64 x))
(- (* -1 (log (/ 1 x))) (log (* -1 (log (/ 1 x)))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(- (* -1 (log (/ 1 x))) (log (* -1 (log (/ 1 x)))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(- (* -1 (log (/ 1 x))) (log (* -1 (log (/ 1 x)))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(- (* -1 (log (/ 1 x))) (log (* -1 (log (/ 1 x)))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(log (* -1 (log (/ 1 x))))
(log.f64 (log.f64 x))
(log (* -1 (log (/ 1 x))))
(log.f64 (log.f64 x))
(log (* -1 (log (/ 1 x))))
(log.f64 (log.f64 x))
(log (* -1 (log (/ 1 x))))
(log.f64 (log.f64 x))
(- (+ (log -1) (* -1 (log (/ -1 x)))) (log (+ (log -1) (* -1 (log (/ -1 x))))))
(-.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x))) (log.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))))
(- (+ (log -1) (* -1 (log (/ -1 x)))) (log (+ (log -1) (* -1 (log (/ -1 x))))))
(-.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x))) (log.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))))
(- (+ (log -1) (* -1 (log (/ -1 x)))) (log (+ (log -1) (* -1 (log (/ -1 x))))))
(-.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x))) (log.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))))
(- (+ (log -1) (* -1 (log (/ -1 x)))) (log (+ (log -1) (* -1 (log (/ -1 x))))))
(-.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x))) (log.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))))
(+ (log -1) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))
(+ (log -1) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))
(+ (log -1) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))
(+ (log -1) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x)))
(log (+ (log -1) (* -1 (log (/ -1 x)))))
(log.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x))))
(log (+ (log -1) (* -1 (log (/ -1 x)))))
(log.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x))))
(log (+ (log -1) (* -1 (log (/ -1 x)))))
(log.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x))))
(log (+ (log -1) (* -1 (log (/ -1 x)))))
(log.f64 (-.f64 (log.f64 #s(literal -1 binary64)) (log.f64 (/.f64 #s(literal -1 binary64) x))))

rewrite117.0ms (4.8%)

Memory
12.1MiB live, 208.7MiB allocated
Rules
4 954×lower-fma.f64
4 954×lower-fma.f32
3 078×lower-/.f64
3 078×lower-/.f32
2 794×lower-*.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0411
0710
12410
215010
3139910
0971510
Stop Event
iter limit
node limit
iter limit
Counts
3 → 249
Calls
Call 1
Inputs
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(log.f64 x)
(log.f64 (log.f64 x))
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval39.0ms (1.6%)

Memory
-7.8MiB live, 112.0MiB allocated
Compiler

Compiled 9 051 to 704 computations (92.2% saved)

prune7.0ms (0.3%)

Memory
-11.3MiB live, 28.4MiB allocated
Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New3212323
Fresh000
Picked101
Done000
Total3222324
Accuracy
100.0%
Counts
324 → 2
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(neg.f64 (log.f64 (/.f64 (log.f64 x) x)))
25.0%
(log.f64 (*.f64 (log.f64 x) x))
Compiler

Compiled 11 to 9 computations (18.2% saved)

simplify4.0ms (0.2%)

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

Found 7 expressions of interest:

NewMetricScoreProgram
cost-diff0
(log.f64 x)
cost-diff0
(/.f64 (log.f64 x) x)
cost-diff0
(log.f64 (/.f64 (log.f64 x) x))
cost-diff0
(neg.f64 (log.f64 (/.f64 (log.f64 x) x)))
cost-diff0
(log.f64 x)
cost-diff0
(*.f64 (log.f64 x) x)
cost-diff0
(log.f64 (*.f64 (log.f64 x) x))
Rules
lower-+.f64
lower-*.f32
lower-+.f32
lower-*.f64
sub-neg
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0730
01330
11830
22030
32230
42430
52830
63330
03330
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(log.f64 (*.f64 (log.f64 x) x))
(*.f64 (log.f64 x) x)
(log.f64 x)
x
(neg.f64 (log.f64 (/.f64 (log.f64 x) x)))
(log.f64 (/.f64 (log.f64 x) x))
(/.f64 (log.f64 x) x)
(log.f64 x)
x
Outputs
(log.f64 (*.f64 (log.f64 x) x))
(*.f64 (log.f64 x) x)
(log.f64 x)
x
(neg.f64 (log.f64 (/.f64 (log.f64 x) x)))
(log.f64 (/.f64 (log.f64 x) x))
(/.f64 (log.f64 x) x)
(log.f64 x)
x

localize28.0ms (1.1%)

Memory
17.9MiB live, 57.2MiB allocated
Localize:

Found 7 expressions of interest:

NewMetricScoreProgram
accuracy0
(neg.f64 (log.f64 (/.f64 (log.f64 x) x)))
accuracy0
(log.f64 (/.f64 (log.f64 x) x))
accuracy0
(log.f64 x)
accuracy0.2578125
(/.f64 (log.f64 x) x)
accuracy0
(log.f64 x)
accuracy0.296875
(*.f64 (log.f64 x) x)
accuracy0.4842711682609965
(log.f64 (*.f64 (log.f64 x) x))
Samples
21.0ms256×0valid
Compiler

Compiled 32 to 9 computations (71.9% saved)

Precisions
Click to see histograms. Total time spent on operations: 15.0ms
ival-log: 10.0ms (68.4% of total)
ival-div: 2.0ms (13.7% of total)
ival-mult: 2.0ms (13.7% of total)
ival-neg: 1.0ms (6.8% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series110.0ms (4.5%)

Memory
5.2MiB live, 201.2MiB allocated
Counts
6 → 72
Calls
Call 1
Inputs
#s(alt (log.f64 (*.f64 (log.f64 x) x)) (patch (log.f64 (*.f64 (log.f64 x) x)) #<representation binary64>) () ())
#s(alt (*.f64 (log.f64 x) x) (patch (*.f64 (log.f64 x) x) #<representation binary64>) () ())
#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())
#s(alt (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) (patch (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) #<representation binary64>) () ())
#s(alt (log.f64 (/.f64 (log.f64 x) x)) (patch (log.f64 (/.f64 (log.f64 x) x)) #<representation binary64>) () ())
#s(alt (/.f64 (log.f64 x) x) (patch (/.f64 (log.f64 x) x) #<representation binary64>) () ())
Outputs
#s(alt (+ (log x) (log (log x))) (taylor 0 x) (#s(alt (log.f64 (*.f64 (log.f64 x) x)) (patch (log.f64 (*.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (log (log x))) (taylor 0 x) (#s(alt (log.f64 (*.f64 (log.f64 x) x)) (patch (log.f64 (*.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (log (log x))) (taylor 0 x) (#s(alt (log.f64 (*.f64 (log.f64 x) x)) (patch (log.f64 (*.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (log (log x))) (taylor 0 x) (#s(alt (log.f64 (*.f64 (log.f64 x) x)) (patch (log.f64 (*.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (* x (log x)) (taylor 0 x) (#s(alt (*.f64 (log.f64 x) x) (patch (*.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* x (log x)) (taylor 0 x) (#s(alt (*.f64 (log.f64 x) x) (patch (*.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* x (log x)) (taylor 0 x) (#s(alt (*.f64 (log.f64 x) x) (patch (*.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* x (log x)) (taylor 0 x) (#s(alt (*.f64 (log.f64 x) x) (patch (*.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log (log x)) (* -1 (log x)))) (taylor 0 x) (#s(alt (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) (patch (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log (log x)) (* -1 (log x)))) (taylor 0 x) (#s(alt (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) (patch (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log (log x)) (* -1 (log x)))) (taylor 0 x) (#s(alt (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) (patch (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log (log x)) (* -1 (log x)))) (taylor 0 x) (#s(alt (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) (patch (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (+ (log (log x)) (* -1 (log x))) (taylor 0 x) (#s(alt (log.f64 (/.f64 (log.f64 x) x)) (patch (log.f64 (/.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log (log x)) (* -1 (log x))) (taylor 0 x) (#s(alt (log.f64 (/.f64 (log.f64 x) x)) (patch (log.f64 (/.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log (log x)) (* -1 (log x))) (taylor 0 x) (#s(alt (log.f64 (/.f64 (log.f64 x) x)) (patch (log.f64 (/.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log (log x)) (* -1 (log x))) (taylor 0 x) (#s(alt (log.f64 (/.f64 (log.f64 x) x)) (patch (log.f64 (/.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (/ (log x) x) (taylor 0 x) (#s(alt (/.f64 (log.f64 x) x) (patch (/.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (/ (log x) x) (taylor 0 x) (#s(alt (/.f64 (log.f64 x) x) (patch (/.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (/ (log x) x) (taylor 0 x) (#s(alt (/.f64 (log.f64 x) x) (patch (/.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (/ (log x) x) (taylor 0 x) (#s(alt (/.f64 (log.f64 x) x) (patch (/.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (log (/ 1 x)))) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (log.f64 (*.f64 (log.f64 x) x)) (patch (log.f64 (*.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (log (/ 1 x)))) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (log.f64 (*.f64 (log.f64 x) x)) (patch (log.f64 (*.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (log (/ 1 x)))) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (log.f64 (*.f64 (log.f64 x) x)) (patch (log.f64 (*.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (log (/ 1 x)))) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (log.f64 (*.f64 (log.f64 x) x)) (patch (log.f64 (*.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (log (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 (log.f64 x) x) (patch (*.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (log (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 (log.f64 x) x) (patch (*.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (log (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 (log.f64 x) x) (patch (*.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (* x (log (/ 1 x)))) (taylor inf x) (#s(alt (*.f64 (log.f64 x) x) (patch (*.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x)))) (taylor inf x) (#s(alt (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) (patch (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x)))) (taylor inf x) (#s(alt (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) (patch (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x)))) (taylor inf x) (#s(alt (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) (patch (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x)))) (taylor inf x) (#s(alt (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) (patch (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 (/.f64 (log.f64 x) x)) (patch (log.f64 (/.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 (/.f64 (log.f64 x) x)) (patch (log.f64 (/.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 (/.f64 (log.f64 x) x)) (patch (log.f64 (/.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 (/.f64 (log.f64 x) x)) (patch (log.f64 (/.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (log (/ 1 x)) x)) (taylor inf x) (#s(alt (/.f64 (log.f64 x) x) (patch (/.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (log (/ 1 x)) x)) (taylor inf x) (#s(alt (/.f64 (log.f64 x) x) (patch (/.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (log (/ 1 x)) x)) (taylor inf x) (#s(alt (/.f64 (log.f64 x) x) (patch (/.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ (log (/ 1 x)) x)) (taylor inf x) (#s(alt (/.f64 (log.f64 x) x) (patch (/.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 (*.f64 (log.f64 x) x)) (patch (log.f64 (*.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 (*.f64 (log.f64 x) x)) (patch (log.f64 (*.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 (*.f64 (log.f64 x) x)) (patch (log.f64 (*.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 (*.f64 (log.f64 x) x)) (patch (log.f64 (*.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (* x (+ (log -1) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (*.f64 (log.f64 x) x) (patch (*.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ (log -1) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (*.f64 (log.f64 x) x) (patch (*.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ (log -1) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (*.f64 (log.f64 x) x) (patch (*.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (* x (+ (log -1) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (*.f64 (log.f64 x) x) (patch (*.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x)))) (taylor -inf x) (#s(alt (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) (patch (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x)))) (taylor -inf x) (#s(alt (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) (patch (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x)))) (taylor -inf x) (#s(alt (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) (patch (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x)))) (taylor -inf x) (#s(alt (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) (patch (neg.f64 (log.f64 (/.f64 (log.f64 x) x))) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x))) (taylor -inf x) (#s(alt (log.f64 (/.f64 (log.f64 x) x)) (patch (log.f64 (/.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x))) (taylor -inf x) (#s(alt (log.f64 (/.f64 (log.f64 x) x)) (patch (log.f64 (/.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x))) (taylor -inf x) (#s(alt (log.f64 (/.f64 (log.f64 x) x)) (patch (log.f64 (/.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x))) (taylor -inf x) (#s(alt (log.f64 (/.f64 (log.f64 x) x)) (patch (log.f64 (/.f64 (log.f64 x) x)) #<representation binary64>) () ())) ())
#s(alt (/ (+ (log -1) (* -1 (log (/ -1 x)))) x) (taylor -inf x) (#s(alt (/.f64 (log.f64 x) x) (patch (/.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (/ (+ (log -1) (* -1 (log (/ -1 x)))) x) (taylor -inf x) (#s(alt (/.f64 (log.f64 x) x) (patch (/.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (/ (+ (log -1) (* -1 (log (/ -1 x)))) x) (taylor -inf x) (#s(alt (/.f64 (log.f64 x) x) (patch (/.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
#s(alt (/ (+ (log -1) (* -1 (log (/ -1 x)))) x) (taylor -inf x) (#s(alt (/.f64 (log.f64 x) x) (patch (/.f64 (log.f64 x) x) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
46.0ms
x
@0
((log (* (log x) x)) (* (log x) x) (log x) (neg (log (/ (log x) x))) (log (/ (log x) x)) (/ (log x) x))
37.0ms
x
@-inf
((log (* (log x) x)) (* (log x) x) (log x) (neg (log (/ (log x) x))) (log (/ (log x) x)) (/ (log x) x))
26.0ms
x
@inf
((log (* (log x) x)) (* (log x) x) (log x) (neg (log (/ (log x) x))) (log (/ (log x) x)) (/ (log x) x))

simplify41.0ms (1.7%)

Memory
-11.6MiB live, 30.0MiB allocated
Algorithm
egg-herbie
Rules
736×lower-fma.f64
736×lower-fma.f32
448×lower-*.f64
448×lower-*.f32
240×div-sub
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
034548
196504
2172484
3311484
4602484
5937484
61428456
71600456
81611456
01611456
Stop Event
iter limit
saturated
Counts
72 → 72
Calls
Call 1
Inputs
(+ (log x) (log (log x)))
(+ (log x) (log (log x)))
(+ (log x) (log (log x)))
(+ (log x) (log (log x)))
(* x (log x))
(* x (log x))
(* x (log x))
(* x (log x))
(log x)
(log x)
(log x)
(log x)
(* -1 (+ (log (log x)) (* -1 (log x))))
(* -1 (+ (log (log x)) (* -1 (log x))))
(* -1 (+ (log (log x)) (* -1 (log x))))
(* -1 (+ (log (log x)) (* -1 (log x))))
(+ (log (log x)) (* -1 (log x)))
(+ (log (log x)) (* -1 (log x)))
(+ (log (log x)) (* -1 (log x)))
(+ (log (log x)) (* -1 (log x)))
(/ (log x) x)
(/ (log x) x)
(/ (log x) x)
(/ (log x) x)
(+ (log (* -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(+ (log (* -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(+ (log (* -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(+ (log (* -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(* -1 (* x (log (/ 1 x))))
(* -1 (* x (log (/ 1 x))))
(* -1 (* x (log (/ 1 x))))
(* -1 (* x (log (/ 1 x))))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(* -1 (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x))))
(* -1 (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x))))
(* -1 (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x))))
(* -1 (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x))))
(+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x)))
(+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x)))
(+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x)))
(+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x)))
(* -1 (/ (log (/ 1 x)) x))
(* -1 (/ (log (/ 1 x)) x))
(* -1 (/ (log (/ 1 x)) x))
(* -1 (/ (log (/ 1 x)) x))
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(* x (+ (log -1) (* -1 (log (/ -1 x)))))
(* x (+ (log -1) (* -1 (log (/ -1 x)))))
(* x (+ (log -1) (* -1 (log (/ -1 x)))))
(* x (+ (log -1) (* -1 (log (/ -1 x)))))
(+ (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 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x))))
(* -1 (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x))))
(* -1 (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x))))
(* -1 (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x))))
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x)))
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x)))
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x)))
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x)))
(/ (+ (log -1) (* -1 (log (/ -1 x)))) x)
(/ (+ (log -1) (* -1 (log (/ -1 x)))) x)
(/ (+ (log -1) (* -1 (log (/ -1 x)))) x)
(/ (+ (log -1) (* -1 (log (/ -1 x)))) x)
Outputs
(+ (log x) (log (log x)))
(+.f64 (log.f64 (log.f64 x)) (log.f64 x))
(+ (log x) (log (log x)))
(+.f64 (log.f64 (log.f64 x)) (log.f64 x))
(+ (log x) (log (log x)))
(+.f64 (log.f64 (log.f64 x)) (log.f64 x))
(+ (log x) (log (log x)))
(+.f64 (log.f64 (log.f64 x)) (log.f64 x))
(* x (log x))
(*.f64 (log.f64 x) x)
(* x (log x))
(*.f64 (log.f64 x) x)
(* x (log x))
(*.f64 (log.f64 x) x)
(* x (log x))
(*.f64 (log.f64 x) x)
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(* -1 (+ (log (log x)) (* -1 (log x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(* -1 (+ (log (log x)) (* -1 (log x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(* -1 (+ (log (log x)) (* -1 (log x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(* -1 (+ (log (log x)) (* -1 (log x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(+ (log (log x)) (* -1 (log x)))
(-.f64 (log.f64 (log.f64 x)) (log.f64 x))
(+ (log (log x)) (* -1 (log x)))
(-.f64 (log.f64 (log.f64 x)) (log.f64 x))
(+ (log (log x)) (* -1 (log x)))
(-.f64 (log.f64 (log.f64 x)) (log.f64 x))
(+ (log (log x)) (* -1 (log x)))
(-.f64 (log.f64 (log.f64 x)) (log.f64 x))
(/ (log x) x)
(/.f64 (log.f64 x) x)
(/ (log x) x)
(/.f64 (log.f64 x) x)
(/ (log x) x)
(/.f64 (log.f64 x) x)
(/ (log x) x)
(/.f64 (log.f64 x) x)
(+ (log (* -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(+.f64 (log.f64 (log.f64 x)) (log.f64 x))
(+ (log (* -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(+.f64 (log.f64 (log.f64 x)) (log.f64 x))
(+ (log (* -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(+.f64 (log.f64 (log.f64 x)) (log.f64 x))
(+ (log (* -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(+.f64 (log.f64 (log.f64 x)) (log.f64 x))
(* -1 (* x (log (/ 1 x))))
(*.f64 (log.f64 x) x)
(* -1 (* x (log (/ 1 x))))
(*.f64 (log.f64 x) x)
(* -1 (* x (log (/ 1 x))))
(*.f64 (log.f64 x) x)
(* -1 (* x (log (/ 1 x))))
(*.f64 (log.f64 x) x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(* -1 (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(* -1 (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(* -1 (+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x)))
(-.f64 (log.f64 (log.f64 x)) (log.f64 x))
(+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x)))
(-.f64 (log.f64 (log.f64 x)) (log.f64 x))
(+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x)))
(-.f64 (log.f64 (log.f64 x)) (log.f64 x))
(+ (log (* -1 (log (/ 1 x)))) (log (/ 1 x)))
(-.f64 (log.f64 (log.f64 x)) (log.f64 x))
(* -1 (/ (log (/ 1 x)) x))
(/.f64 (log.f64 x) x)
(* -1 (/ (log (/ 1 x)) x))
(/.f64 (log.f64 x) x)
(* -1 (/ (log (/ 1 x)) x))
(/.f64 (log.f64 x) x)
(* -1 (/ (log (/ 1 x)) x))
(/.f64 (log.f64 x) x)
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))) (log.f64 (neg.f64 x)))
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))) (log.f64 (neg.f64 x)))
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))) (log.f64 (neg.f64 x)))
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))) (log.f64 (neg.f64 x)))
(* x (+ (log -1) (* -1 (log (/ -1 x)))))
(*.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)
(* x (+ (log -1) (* -1 (log (/ -1 x)))))
(*.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)
(* x (+ (log -1) (* -1 (log (/ -1 x)))))
(*.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)
(* x (+ (log -1) (* -1 (log (/ -1 x)))))
(*.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)
(+ (log -1) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))
(+ (log -1) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))
(+ (log -1) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))
(+ (log -1) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))
(* -1 (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x))))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))))
(* -1 (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x))))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))))
(* -1 (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x))))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))))
(* -1 (+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x))))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))))
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x)))
(-.f64 (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))) (log.f64 (neg.f64 x)))
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x)))
(-.f64 (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))) (log.f64 (neg.f64 x)))
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x)))
(-.f64 (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))) (log.f64 (neg.f64 x)))
(+ (log (* -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (log (/ -1 x)))
(-.f64 (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))) (log.f64 (neg.f64 x)))
(/ (+ (log -1) (* -1 (log (/ -1 x)))) x)
(/.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)
(/ (+ (log -1) (* -1 (log (/ -1 x)))) x)
(/.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)
(/ (+ (log -1) (* -1 (log (/ -1 x)))) x)
(/.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)
(/ (+ (log -1) (* -1 (log (/ -1 x)))) x)
(/.f64 (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))) x)

rewrite169.0ms (6.9%)

Memory
-7.4MiB live, 182.1MiB allocated
Rules
3 776×lower-*.f32
3 774×lower-*.f64
3 614×lower-fma.f64
3 614×lower-fma.f32
3 226×lower-/.f32
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0726
01326
13125
211825
377825
4787325
0889925
Stop Event
iter limit
node limit
iter limit
Counts
6 → 945
Calls
Call 1
Inputs
(log.f64 (*.f64 (log.f64 x) x))
(*.f64 (log.f64 x) x)
(log.f64 x)
(neg.f64 (log.f64 (/.f64 (log.f64 x) x)))
(log.f64 (/.f64 (log.f64 x) x))
(/.f64 (log.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>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval136.0ms (5.6%)

Memory
38.9MiB live, 228.5MiB allocated
Compiler

Compiled 22 977 to 2 346 computations (89.8% saved)

prune24.0ms (1%)

Memory
-27.8MiB live, 67.5MiB allocated
Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New1 06511 066
Fresh000
Picked022
Done000
Total1 06531 068
Accuracy
100.0%
Counts
1 068 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(neg.f64 (log.f64 (/.f64 (log.f64 x) x)))
100.0%
(log.f64 (/.f64 x (log.f64 x)))
25.0%
(log.f64 (*.f64 (log.f64 x) x))
Compiler

Compiled 16 to 13 computations (18.8% saved)

simplify3.0ms (0.1%)

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

Found 3 expressions of interest:

NewMetricScoreProgram
cost-diff0
(log.f64 x)
cost-diff0
(/.f64 x (log.f64 x))
cost-diff0
(log.f64 (/.f64 x (log.f64 x)))
Rules
lift-log.f64
lower-log.f32
lift-/.f64
lower-/.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0412
0712
0712
Stop Event
iter limit
saturated
iter limit
Calls
Call 1
Inputs
(log.f64 (/.f64 x (log.f64 x)))
(/.f64 x (log.f64 x))
x
(log.f64 x)
Outputs
(log.f64 (/.f64 x (log.f64 x)))
(/.f64 x (log.f64 x))
x
(log.f64 x)

localize22.0ms (0.9%)

Memory
-12.4MiB live, 62.1MiB allocated
Localize:

Found 3 expressions of interest:

NewMetricScoreProgram
accuracy0
(log.f64 x)
accuracy0.00390625
(log.f64 (/.f64 x (log.f64 x)))
accuracy0.27734375
(/.f64 x (log.f64 x))
Samples
14.0ms256×0valid
Compiler

Compiled 14 to 6 computations (57.1% saved)

Precisions
Click to see histograms. Total time spent on operations: 8.0ms
ival-log: 6.0ms (72.9% of total)
ival-div: 2.0ms (24.3% of total)
ival-true: 0.0ms (0% of total)
ival-assert: 0.0ms (0% of total)

series132.0ms (5.4%)

Memory
38.8MiB live, 193.1MiB allocated
Counts
3 → 36
Calls
Call 1
Inputs
#s(alt (log.f64 (/.f64 x (log.f64 x))) (patch (log.f64 (/.f64 x (log.f64 x))) #<representation binary64>) () ())
#s(alt (/.f64 x (log.f64 x)) (patch (/.f64 x (log.f64 x)) #<representation binary64>) () ())
#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())
Outputs
#s(alt (+ (log x) (log (/ 1 (log x)))) (taylor 0 x) (#s(alt (log.f64 (/.f64 x (log.f64 x))) (patch (log.f64 (/.f64 x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (log (/ 1 (log x)))) (taylor 0 x) (#s(alt (log.f64 (/.f64 x (log.f64 x))) (patch (log.f64 (/.f64 x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (log (/ 1 (log x)))) (taylor 0 x) (#s(alt (log.f64 (/.f64 x (log.f64 x))) (patch (log.f64 (/.f64 x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (+ (log x) (log (/ 1 (log x)))) (taylor 0 x) (#s(alt (log.f64 (/.f64 x (log.f64 x))) (patch (log.f64 (/.f64 x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (/ x (log x)) (taylor 0 x) (#s(alt (/.f64 x (log.f64 x)) (patch (/.f64 x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (/ x (log x)) (taylor 0 x) (#s(alt (/.f64 x (log.f64 x)) (patch (/.f64 x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (/ x (log x)) (taylor 0 x) (#s(alt (/.f64 x (log.f64 x)) (patch (/.f64 x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (/ x (log x)) (taylor 0 x) (#s(alt (/.f64 x (log.f64 x)) (patch (/.f64 x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (log x) (taylor 0 x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log (/ -1 (log (/ 1 x)))) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (log.f64 (/.f64 x (log.f64 x))) (patch (log.f64 (/.f64 x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (+ (log (/ -1 (log (/ 1 x)))) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (log.f64 (/.f64 x (log.f64 x))) (patch (log.f64 (/.f64 x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (+ (log (/ -1 (log (/ 1 x)))) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (log.f64 (/.f64 x (log.f64 x))) (patch (log.f64 (/.f64 x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (+ (log (/ -1 (log (/ 1 x)))) (* -1 (log (/ 1 x)))) (taylor inf x) (#s(alt (log.f64 (/.f64 x (log.f64 x))) (patch (log.f64 (/.f64 x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ x (log (/ 1 x)))) (taylor inf x) (#s(alt (/.f64 x (log.f64 x)) (patch (/.f64 x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ x (log (/ 1 x)))) (taylor inf x) (#s(alt (/.f64 x (log.f64 x)) (patch (/.f64 x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ x (log (/ 1 x)))) (taylor inf x) (#s(alt (/.f64 x (log.f64 x)) (patch (/.f64 x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (/ x (log (/ 1 x)))) (taylor inf x) (#s(alt (/.f64 x (log.f64 x)) (patch (/.f64 x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (* -1 (log (/ 1 x))) (taylor inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log (/ -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 (/.f64 x (log.f64 x))) (patch (log.f64 (/.f64 x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (+ (log (/ -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 (/.f64 x (log.f64 x))) (patch (log.f64 (/.f64 x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (+ (log (/ -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 (/.f64 x (log.f64 x))) (patch (log.f64 (/.f64 x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (+ (log (/ -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 (/.f64 x (log.f64 x))) (patch (log.f64 (/.f64 x (log.f64 x))) #<representation binary64>) () ())) ())
#s(alt (/ x (+ (log -1) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (/.f64 x (log.f64 x)) (patch (/.f64 x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (/ x (+ (log -1) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (/.f64 x (log.f64 x)) (patch (/.f64 x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (/ x (+ (log -1) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (/.f64 x (log.f64 x)) (patch (/.f64 x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (/ x (+ (log -1) (* -1 (log (/ -1 x))))) (taylor -inf x) (#s(alt (/.f64 x (log.f64 x)) (patch (/.f64 x (log.f64 x)) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
#s(alt (+ (log -1) (* -1 (log (/ -1 x)))) (taylor -inf x) (#s(alt (log.f64 x) (patch (log.f64 x) #<representation binary64>) () ())) ())
Calls

3 calls:

TimeVariablePointExpression
77.0ms
x
@-inf
((log (/ x (log x))) (/ x (log x)) (log x))
30.0ms
x
@inf
((log (/ x (log x))) (/ x (log x)) (log x))
25.0ms
x
@0
((log (/ x (log x))) (/ x (log x)) (log x))

simplify28.0ms (1.2%)

Memory
-24.2MiB live, 13.5MiB allocated
Algorithm
egg-herbie
Rules
352×lower-fma.f64
352×lower-fma.f32
256×lower-*.f64
256×lower-*.f32
136×lower-+.f64
Iterations

Useful iterations: 7 (0.0ms)

IterNodesCost
025244
142220
265220
3151220
4322220
5503220
6674204
7846200
8885200
9896200
10897200
0897200
Stop Event
iter limit
saturated
Counts
36 → 36
Calls
Call 1
Inputs
(+ (log x) (log (/ 1 (log x))))
(+ (log x) (log (/ 1 (log x))))
(+ (log x) (log (/ 1 (log x))))
(+ (log x) (log (/ 1 (log x))))
(/ x (log x))
(/ x (log x))
(/ x (log x))
(/ x (log x))
(log x)
(log x)
(log x)
(log x)
(+ (log (/ -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(+ (log (/ -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(+ (log (/ -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(+ (log (/ -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(* -1 (/ x (log (/ 1 x))))
(* -1 (/ x (log (/ 1 x))))
(* -1 (/ x (log (/ 1 x))))
(* -1 (/ x (log (/ 1 x))))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(* -1 (log (/ 1 x)))
(+ (log (/ -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(+ (log (/ -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(+ (log (/ -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(+ (log (/ -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(/ x (+ (log -1) (* -1 (log (/ -1 x)))))
(/ x (+ (log -1) (* -1 (log (/ -1 x)))))
(/ x (+ (log -1) (* -1 (log (/ -1 x)))))
(/ x (+ (log -1) (* -1 (log (/ -1 x)))))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (* -1 (log (/ -1 x))))
(+ (log -1) (* -1 (log (/ -1 x))))
Outputs
(+ (log x) (log (/ 1 (log x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(+ (log x) (log (/ 1 (log x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(+ (log x) (log (/ 1 (log x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(+ (log x) (log (/ 1 (log x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(/ x (log x))
(/.f64 x (log.f64 x))
(/ x (log x))
(/.f64 x (log.f64 x))
(/ x (log x))
(/.f64 x (log.f64 x))
(/ x (log x))
(/.f64 x (log.f64 x))
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(log x)
(log.f64 x)
(+ (log (/ -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(+ (log (/ -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(+ (log (/ -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(+ (log (/ -1 (log (/ 1 x)))) (* -1 (log (/ 1 x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(* -1 (/ x (log (/ 1 x))))
(/.f64 x (log.f64 x))
(* -1 (/ x (log (/ 1 x))))
(/.f64 x (log.f64 x))
(* -1 (/ x (log (/ 1 x))))
(/.f64 x (log.f64 x))
(* -1 (/ x (log (/ 1 x))))
(/.f64 x (log.f64 x))
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(* -1 (log (/ 1 x)))
(log.f64 x)
(+ (log (/ -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))))
(+ (log (/ -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))))
(+ (log (/ -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))))
(+ (log (/ -1 (+ (log -1) (* -1 (log (/ -1 x)))))) (* -1 (log (/ -1 x))))
(-.f64 (log.f64 (neg.f64 x)) (log.f64 (-.f64 (log.f64 (/.f64 #s(literal -1 binary64) x)) (log.f64 #s(literal -1 binary64)))))
(/ x (+ (log -1) (* -1 (log (/ -1 x)))))
(/.f64 x (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))))
(/ x (+ (log -1) (* -1 (log (/ -1 x)))))
(/.f64 x (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))))
(/ x (+ (log -1) (* -1 (log (/ -1 x)))))
(/.f64 x (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))))
(/ x (+ (log -1) (* -1 (log (/ -1 x)))))
(/.f64 x (+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64))))
(+ (log -1) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))
(+ (log -1) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))
(+ (log -1) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))
(+ (log -1) (* -1 (log (/ -1 x))))
(+.f64 (log.f64 (neg.f64 x)) (log.f64 #s(literal -1 binary64)))

rewrite130.0ms (5.3%)

Memory
17.3MiB live, 175.1MiB allocated
Rules
3 778×lower-*.f64
3 778×lower-*.f32
3 560×lower-fma.f64
3 560×lower-fma.f32
2 150×lower-/.f32
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0411
0711
11711
27711
340711
4320011
01074711
Stop Event
iter limit
node limit
iter limit
Counts
3 → 668
Calls
Call 1
Inputs
(log.f64 (/.f64 x (log.f64 x)))
(/.f64 x (log.f64 x))
(log.f64 x)
Outputs
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>
#<batchref>

eval115.0ms (4.7%)

Memory
15.4MiB live, 134.2MiB allocated
Compiler

Compiled 15 615 to 1 684 computations (89.2% saved)

prune62.0ms (2.5%)

Memory
0.7MiB live, 36.5MiB allocated
Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New7040704
Fresh000
Picked011
Done022
Total7043707
Accuracy
100.0%
Counts
707 → 3
Alt Table
Click to see full alt table
StatusAccuracyProgram
100.0%
(neg.f64 (log.f64 (/.f64 (log.f64 x) x)))
100.0%
(log.f64 (/.f64 x (log.f64 x)))
25.0%
(log.f64 (*.f64 (log.f64 x) x))
Compiler

Compiled 38 to 24 computations (36.8% saved)

regimes41.0ms (1.7%)

Memory
-65.4MiB live, 10.6MiB allocated
Counts
4 → 1
Calls
Call 1
Inputs
(log.f64 (*.f64 (log.f64 x) x))
(log.f64 (/.f64 x (log.f64 x)))
(neg.f64 (log.f64 (/.f64 (log.f64 x) x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Outputs
(neg.f64 (log.f64 (/.f64 (log.f64 x) x)))
Calls

3 calls:

37.0ms
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
2.0ms
(log.f64 x)
2.0ms
x
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
100.0%1(log.f64 x)
Compiler

Compiled 9 to 7 computations (22.2% saved)

regimes5.0ms (0.2%)

Memory
11.0MiB live, 11.0MiB allocated
Counts
2 → 1
Calls
Call 1
Inputs
(log.f64 (*.f64 (log.f64 x) x))
(log.f64 (/.f64 x (log.f64 x)))
Outputs
(log.f64 (/.f64 x (log.f64 x)))
Calls

3 calls:

2.0ms
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
2.0ms
(log.f64 x)
2.0ms
x
Results
AccuracySegmentsBranch
100.0%1x
100.0%1(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
100.0%1(log.f64 x)
Compiler

Compiled 9 to 7 computations (22.2% saved)

regimes4.0ms (0.2%)

Memory
9.9MiB live, 9.9MiB allocated
Accuracy

Total 0.0b remaining (0%)

Threshold costs 0b (0%)

Counts
1 → 1
Calls
Call 1
Inputs
(log.f64 (*.f64 (log.f64 x) x))
Outputs
(log.f64 (*.f64 (log.f64 x) x))
Calls

3 calls:

1.0ms
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
1.0ms
(log.f64 x)
1.0ms
x
Results
AccuracySegmentsBranch
25.0%1x
25.0%1(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
25.0%1(log.f64 x)
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify25.0ms (1%)

Memory
9.4MiB live, 47.1MiB allocated
Algorithm
egg-herbie
Rules
*-commutative-binary64-*.f64
neg-sub0-binary64--.f64-neg.f64
+-commutative-binary64-+.f64
neg-mul-1-binary64-*.f64-neg.f64
sub-neg-binary64-neg.f64-+.f64--.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0916
11416
21616
31716
Stop Event
saturated
Calls
Call 1
Inputs
(neg.f64 (log.f64 (/.f64 (log.f64 x) x)))
(log.f64 (/.f64 x (log.f64 x)))
(log.f64 (*.f64 (log.f64 x) x))
Outputs
(neg.f64 (log.f64 (/.f64 (log.f64 x) x)))
(log.f64 (/.f64 x (log.f64 x)))
(log.f64 (*.f64 (log.f64 x) x))

soundness272.0ms (11.1%)

Memory
-22.1MiB live, 170.7MiB allocated
Rules
4 954×lower-fma.f64
4 954×lower-fma.f32
3 776×lower-*.f32
3 774×lower-*.f64
3 614×lower-fma.f64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0726
01326
13125
211825
377825
4787325
0889925
0411
0710
12410
215010
3139910
0971510
Stop Event
done
iter limit
node limit
iter limit
iter limit
node limit
iter limit
Compiler

Compiled 57 to 34 computations (40.4% saved)

preprocess49.0ms (2%)

Memory
7.1MiB live, 45.0MiB allocated
Compiler

Compiled 44 to 26 computations (40.9% saved)

end0.0ms (0%)

Memory
0.0MiB live, 0.0MiB allocated

Profiling

Loading profile data...