Details

Time bar (total: 1.6s)

analyze2.0ms (0.1%)

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 5 computations (37.5% saved)

sample1.1s (68.8%)

Results
1.1s8256×body256valid
1.0msbody256invalid
Bogosity

preprocess4.0ms (0.2%)

Algorithm
egg-herbie
Rules
38×rational.json-simplify-27
30×rational.json-simplify-31
30×rational.json-simplify-9
30×rational.json-simplify-41
28×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
11119
21819
32819
44319
55819
67719
79619
811319
911819
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Outputs
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Compiler

Compiled 8 to 5 computations (37.5% saved)

simplify5.0ms (0.3%)

Algorithm
egg-herbie
Rules
38×rational.json-simplify-27
30×rational.json-simplify-31
30×rational.json-simplify-9
30×rational.json-simplify-41
28×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0719
11119
21819
32819
44319
55819
67719
79619
811319
911819
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Outputs
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))

eval0.0ms (0%)

Compiler

Compiled 7 to 4 computations (42.9% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.2b
Counts
2 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Compiler

Compiled 7 to 4 computations (42.9% saved)

localize8.0ms (0.5%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(log.f64 (log.f64 x))
0.2b
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Compiler

Compiled 13 to 4 computations (69.2% saved)

series102.0ms (6.3%)

Counts
2 → 16
Calls

6 calls:

TimeVariablePointExpression
42.0ms
x
@-inf
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
41.0ms
x
@0
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
19.0ms
x
@inf
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
0.0ms
x
@-inf
(log.f64 (log.f64 x))
0.0ms
x
@0
(log.f64 (log.f64 x))

rewrite9.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
38×bool.json-1
36×rational.json-simplify-2
32×rational.json-1
32×rational.json-2
28×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0728
13628
28028
312028
413628
514128
Stop Event
saturated
Counts
2 → 18
Calls
Call 1
Inputs
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(log.f64 (log.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 x) (neg.f64 (log.f64 (log.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (log.f64 x) (log.f64 (log.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (log.f64 x) (log.f64 (log.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (log.f64 (log.f64 x))) (log.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (log.f64 x) (log.f64 (log.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (log.f64 x) (log.f64 (log.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (log.f64 (log.f64 x)) (log.f64 x)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (log.f64 (log.f64 x)) (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (log.f64 (log.f64 x)) (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (log.f64 x) (log.f64 (log.f64 x))) (-.f64 (log.f64 x) (log.f64 (log.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (log.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (log.f64 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (log.f64 (log.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (log.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (log.f64 (log.f64 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (log.f64 (log.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (log.f64 (log.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (log.f64 (log.f64 x)) (log.f64 (log.f64 x)))))))

simplify34.0ms (2.1%)

Algorithm
egg-herbie
Rules
188×rational.json-simplify-27
146×rational.json-simplify-41
130×rational.json-simplify-40
122×rational.json-simplify-2
116×rational.json-simplify-9
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042884
163884
2113884
3215884
4326884
5425884
6529884
7644884
8725884
9750884
10753884
Stop Event
saturated
Counts
34 → 25
Calls
Call 1
Inputs
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))
(log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))
(log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))
(log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))
(log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)))
(log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)))
(log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)))
(log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)))
(+.f64 (log.f64 x) (neg.f64 (log.f64 (log.f64 x))))
(+.f64 (-.f64 (log.f64 x) (log.f64 (log.f64 x))) 0)
(+.f64 0 (-.f64 (log.f64 x) (log.f64 (log.f64 x))))
(+.f64 (neg.f64 (log.f64 (log.f64 x))) (log.f64 x))
(*.f64 (-.f64 (log.f64 x) (log.f64 (log.f64 x))) 1)
(*.f64 1 (-.f64 (log.f64 x) (log.f64 (log.f64 x))))
(*.f64 (-.f64 (log.f64 (log.f64 x)) (log.f64 x)) -1)
(*.f64 -1 (-.f64 (log.f64 (log.f64 x)) (log.f64 x)))
(neg.f64 (-.f64 (log.f64 (log.f64 x)) (log.f64 x)))
(+.f64 (log.f64 (log.f64 x)) 0)
(+.f64 0 (log.f64 (log.f64 x)))
(-.f64 (log.f64 (log.f64 x)) 0)
(-.f64 0 (neg.f64 (log.f64 (log.f64 x))))
(*.f64 (log.f64 (log.f64 x)) 1)
(*.f64 1 (log.f64 (log.f64 x)))
(*.f64 (neg.f64 (log.f64 (log.f64 x))) -1)
(*.f64 -1 (neg.f64 (log.f64 (log.f64 x))))
(neg.f64 (neg.f64 (log.f64 (log.f64 x))))
Outputs
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (-.f64 (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 -1)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (-.f64 (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 -1)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (-.f64 (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 -1)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (-.f64 (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (log.f64 -1)))
(log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))
(log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))
(log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))
(log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))
(log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)))
(log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)))
(log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)))
(log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)))
(+.f64 (log.f64 x) (neg.f64 (log.f64 (log.f64 x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(+.f64 (-.f64 (log.f64 x) (log.f64 (log.f64 x))) 0)
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(+.f64 0 (-.f64 (log.f64 x) (log.f64 (log.f64 x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(+.f64 (neg.f64 (log.f64 (log.f64 x))) (log.f64 x))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(*.f64 (-.f64 (log.f64 x) (log.f64 (log.f64 x))) 1)
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(*.f64 1 (-.f64 (log.f64 x) (log.f64 (log.f64 x))))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(*.f64 (-.f64 (log.f64 (log.f64 x)) (log.f64 x)) -1)
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(*.f64 -1 (-.f64 (log.f64 (log.f64 x)) (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(neg.f64 (-.f64 (log.f64 (log.f64 x)) (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(+.f64 (log.f64 (log.f64 x)) 0)
(log.f64 (log.f64 x))
(+.f64 0 (log.f64 (log.f64 x)))
(log.f64 (log.f64 x))
(-.f64 (log.f64 (log.f64 x)) 0)
(log.f64 (log.f64 x))
(-.f64 0 (neg.f64 (log.f64 (log.f64 x))))
(log.f64 (log.f64 x))
(*.f64 (log.f64 (log.f64 x)) 1)
(log.f64 (log.f64 x))
(*.f64 1 (log.f64 (log.f64 x)))
(log.f64 (log.f64 x))
(*.f64 (neg.f64 (log.f64 (log.f64 x))) -1)
(log.f64 (log.f64 x))
(*.f64 -1 (neg.f64 (log.f64 (log.f64 x))))
(log.f64 (log.f64 x))
(neg.f64 (neg.f64 (log.f64 (log.f64 x))))
(log.f64 (log.f64 x))

eval4.0ms (0.2%)

Compiler

Compiled 234 to 112 computations (52.1% saved)

prune5.0ms (0.3%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New24125
Fresh000
Picked011
Done000
Total24226
Error
0.2b
Counts
26 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
0.2b
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Compiler

Compiled 22 to 17 computations (22.7% saved)

localize22.0ms (1.4%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(log.f64 (/.f64 1 x))
0.1b
(log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))
0.2b
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
Compiler

Compiled 38 to 31 computations (18.4% saved)

series36.0ms (2.2%)

Counts
3 → 24
Calls

9 calls:

TimeVariablePointExpression
21.0ms
x
@-inf
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
8.0ms
x
@inf
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
7.0ms
x
@0
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
0.0ms
x
@-inf
(log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))
0.0ms
x
@-inf
(log.f64 (/.f64 1 x))

rewrite9.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
42×rational.json-simplify-2
42×bool.json-1
36×rational.json-1
36×rational.json-2
32×rational.json-simplify-1
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01175
15275
29675
313375
414969
515469
Stop Event
saturated
Counts
3 → 27
Calls
Call 1
Inputs
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))
(log.f64 (/.f64 1 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (log.f64 (/.f64 1 x))) (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))) (neg.f64 (log.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) (log.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) (log.f64 (/.f64 1 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) (log.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))) (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x or (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (/.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (log.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (/.f64 1 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (log.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (log.f64 (/.f64 1 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (/.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (log.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (log.f64 (/.f64 1 x)) (log.f64 (/.f64 1 x)))))))

simplify41.0ms (2.5%)

Algorithm
egg-herbie
Rules
80×rational.json-simplify-2
78×rational.json-simplify-31
72×rational.json-simplify-27
72×rational.json-simplify-9
66×rational.json-simplify-41
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0521237
1801237
21211229
31551229
41851229
52141229
62461229
72751229
83001229
93071229
Stop Event
saturated
Counts
51 → 38
Calls
Call 1
Inputs
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1)))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1)))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1)))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1)))))
(log.f64 (log.f64 x))
(log.f64 (log.f64 x))
(log.f64 (log.f64 x))
(log.f64 (log.f64 x))
(log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))))
(log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))))
(log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))))
(log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))))
(*.f64 -1 (log.f64 x))
(*.f64 -1 (log.f64 x))
(*.f64 -1 (log.f64 x))
(*.f64 -1 (log.f64 x))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))
(+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(+.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))) 0)
(+.f64 0 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(+.f64 (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))) (neg.f64 (log.f64 (/.f64 1 x))))
(*.f64 -1 (+.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) (log.f64 (/.f64 1 x))))
(*.f64 1 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(*.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))) 1)
(*.f64 (+.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) (log.f64 (/.f64 1 x))) -1)
(neg.f64 (+.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) (log.f64 (/.f64 1 x))))
(+.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) 0)
(+.f64 0 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(-.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) 0)
(-.f64 0 (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(*.f64 -1 (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(*.f64 1 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(*.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) 1)
(*.f64 (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))) -1)
(neg.f64 (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(+.f64 0 (log.f64 (/.f64 1 x)))
(+.f64 (log.f64 (/.f64 1 x)) 0)
(-.f64 0 (neg.f64 (log.f64 (/.f64 1 x))))
(-.f64 (log.f64 (/.f64 1 x)) 0)
(*.f64 -1 (neg.f64 (log.f64 (/.f64 1 x))))
(*.f64 1 (log.f64 (/.f64 1 x)))
(*.f64 (neg.f64 (log.f64 (/.f64 1 x))) -1)
(*.f64 (log.f64 (/.f64 1 x)) 1)
(neg.f64 (neg.f64 (log.f64 (/.f64 1 x))))
Outputs
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1)))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1)))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1)))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1)))))
(log.f64 (log.f64 x))
(log.f64 (log.f64 x))
(log.f64 (log.f64 x))
(log.f64 (log.f64 x))
(log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))))
(log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))))
(log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))))
(log.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))))
(*.f64 -1 (log.f64 x))
(*.f64 (log.f64 x) -1)
(neg.f64 (log.f64 x))
(*.f64 -1 (log.f64 x))
(*.f64 (log.f64 x) -1)
(neg.f64 (log.f64 x))
(*.f64 -1 (log.f64 x))
(*.f64 (log.f64 x) -1)
(neg.f64 (log.f64 x))
(*.f64 -1 (log.f64 x))
(*.f64 (log.f64 x) -1)
(neg.f64 (log.f64 x))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))
(+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))
(+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(+.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))) 0)
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(+.f64 0 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(+.f64 (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))) (neg.f64 (log.f64 (/.f64 1 x))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(*.f64 -1 (+.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) (log.f64 (/.f64 1 x))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(*.f64 1 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(*.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))) 1)
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(*.f64 (+.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) (log.f64 (/.f64 1 x))) -1)
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(neg.f64 (+.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) (log.f64 (/.f64 1 x))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(+.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) 0)
(log.f64 (neg.f64 (log.f64 (/.f64 1 x))))
(+.f64 0 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(log.f64 (neg.f64 (log.f64 (/.f64 1 x))))
(-.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) 0)
(log.f64 (neg.f64 (log.f64 (/.f64 1 x))))
(-.f64 0 (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(log.f64 (neg.f64 (log.f64 (/.f64 1 x))))
(*.f64 -1 (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(log.f64 (neg.f64 (log.f64 (/.f64 1 x))))
(*.f64 1 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(log.f64 (neg.f64 (log.f64 (/.f64 1 x))))
(*.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))) 1)
(log.f64 (neg.f64 (log.f64 (/.f64 1 x))))
(*.f64 (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))) -1)
(log.f64 (neg.f64 (log.f64 (/.f64 1 x))))
(neg.f64 (neg.f64 (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(log.f64 (neg.f64 (log.f64 (/.f64 1 x))))
(+.f64 0 (log.f64 (/.f64 1 x)))
(log.f64 (/.f64 1 x))
(+.f64 (log.f64 (/.f64 1 x)) 0)
(log.f64 (/.f64 1 x))
(-.f64 0 (neg.f64 (log.f64 (/.f64 1 x))))
(log.f64 (/.f64 1 x))
(-.f64 (log.f64 (/.f64 1 x)) 0)
(log.f64 (/.f64 1 x))
(*.f64 -1 (neg.f64 (log.f64 (/.f64 1 x))))
(log.f64 (/.f64 1 x))
(*.f64 1 (log.f64 (/.f64 1 x)))
(log.f64 (/.f64 1 x))
(*.f64 (neg.f64 (log.f64 (/.f64 1 x))) -1)
(log.f64 (/.f64 1 x))
(*.f64 (log.f64 (/.f64 1 x)) 1)
(log.f64 (/.f64 1 x))
(neg.f64 (neg.f64 (log.f64 (/.f64 1 x))))
(log.f64 (/.f64 1 x))

eval18.0ms (1.1%)

Compiler

Compiled 775 to 661 computations (14.7% saved)

prune7.0ms (0.4%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New51152
Fresh000
Picked101
Done011
Total52254
Error
0.2b
Counts
54 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
0.2b
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Compiler

Compiled 18 to 13 computations (27.8% saved)

localize19.0ms (1.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(log.f64 (/.f64 1 x))
0.1b
(log.f64 (log.f64 x))
0.2b
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
Compiler

Compiled 32 to 21 computations (34.4% saved)

series0.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@-inf
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
0.0ms
x
@inf
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
0.0ms
x
@0
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))

rewrite9.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
44×rational.json-simplify-2
44×bool.json-1
38×rational.json-1
38×rational.json-2
34×rational.json-simplify-1
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01231
15631
210231
313931
415529
516029
Stop Event
saturated
Counts
1 → 9
Calls
Call 1
Inputs
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (log.f64 (/.f64 1 x))) (neg.f64 (log.f64 (log.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (log.f64 (log.f64 x))) (neg.f64 (log.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))))))))

simplify24.0ms (1.5%)

Algorithm
egg-herbie
Rules
116×rational.json-simplify-27
112×rational.json-simplify-2
96×rational.json-simplify-9
92×rational.json-simplify-31
88×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
037757
160757
287757
3131757
4190757
5255757
6313757
7360757
8386757
9394757
Stop Event
saturated
Counts
21 → 17
Calls
Call 1
Inputs
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (neg.f64 (log.f64 (log.f64 x))))
(+.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) 0)
(+.f64 0 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))))
(+.f64 (neg.f64 (log.f64 (log.f64 x))) (neg.f64 (log.f64 (/.f64 1 x))))
(*.f64 -1 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))))
(*.f64 1 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))))
(*.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) 1)
(*.f64 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))) -1)
(neg.f64 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))))
Outputs
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (neg.f64 (log.f64 (/.f64 1 x)))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))
(-.f64 (*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1))) (log.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 x))))))
(+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (neg.f64 (log.f64 (log.f64 x))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(-.f64 (neg.f64 (log.f64 (log.f64 x))) (log.f64 (/.f64 1 x)))
(+.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) 0)
(+.f64 (-.f64 (neg.f64 (log.f64 (log.f64 x))) (log.f64 (/.f64 1 x))) 0)
(+.f64 0 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))))
(+.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) 0)
(+.f64 (-.f64 (neg.f64 (log.f64 (log.f64 x))) (log.f64 (/.f64 1 x))) 0)
(+.f64 (neg.f64 (log.f64 (log.f64 x))) (neg.f64 (log.f64 (/.f64 1 x))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(-.f64 (neg.f64 (log.f64 (log.f64 x))) (log.f64 (/.f64 1 x)))
(*.f64 -1 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(-.f64 (neg.f64 (log.f64 (log.f64 x))) (log.f64 (/.f64 1 x)))
(*.f64 1 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(-.f64 (neg.f64 (log.f64 (log.f64 x))) (log.f64 (/.f64 1 x)))
(*.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) 1)
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(-.f64 (neg.f64 (log.f64 (log.f64 x))) (log.f64 (/.f64 1 x)))
(*.f64 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))) -1)
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(-.f64 (neg.f64 (log.f64 (log.f64 x))) (log.f64 (/.f64 1 x)))
(neg.f64 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(-.f64 (neg.f64 (log.f64 (log.f64 x))) (log.f64 (/.f64 1 x)))

eval10.0ms (0.6%)

Compiler

Compiled 510 to 341 computations (33.1% saved)

prune5.0ms (0.3%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New42143
Fresh000
Picked101
Done011
Total43245
Error
0.2b
Counts
45 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
0.2b
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Compiler

Compiled 17 to 12 computations (29.4% saved)

localize19.0ms (1.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(log.f64 (/.f64 1 x))
0.1b
(log.f64 (log.f64 x))
0.2b
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
Compiler

Compiled 29 to 18 computations (37.9% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite7.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
44×rational.json-simplify-2
44×bool.json-1
38×rational.json-1
38×rational.json-2
36×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01129
15329
210229
313729
415829
516729
Stop Event
saturated
Counts
1 → 9
Calls
Call 1
Inputs
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (log.f64 (/.f64 1 x))) (neg.f64 (log.f64 (log.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (log.f64 (log.f64 x))) (neg.f64 (log.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))))))))

simplify22.0ms (1.4%)

Algorithm
egg-herbie
Rules
54×rational.json-simplify-2
50×rational.json-simplify-1
32×rational.json-simplify-27
30×rational.json-simplify-31
30×rational.json-simplify-9
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
040813
159813
274813
394813
4117813
5139813
6157813
7171813
8174813
9175813
Stop Event
saturated
Counts
21 → 15
Calls
Call 1
Inputs
(*.f64 -1 (+.f64 (log.f64 (log.f64 x)) (*.f64 -1 (log.f64 x))))
(*.f64 -1 (+.f64 (log.f64 (log.f64 x)) (*.f64 -1 (log.f64 x))))
(*.f64 -1 (+.f64 (log.f64 (log.f64 x)) (*.f64 -1 (log.f64 x))))
(*.f64 -1 (+.f64 (log.f64 (log.f64 x)) (*.f64 -1 (log.f64 x))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 -1) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 -1) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 -1) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 -1) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))))
(+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (neg.f64 (log.f64 (log.f64 x))))
(+.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) 0)
(+.f64 0 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))))
(+.f64 (neg.f64 (log.f64 (log.f64 x))) (neg.f64 (log.f64 (/.f64 1 x))))
(*.f64 1 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))))
(*.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) 1)
(*.f64 -1 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))))
(*.f64 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))) -1)
(neg.f64 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))))
Outputs
(*.f64 -1 (+.f64 (log.f64 (log.f64 x)) (*.f64 -1 (log.f64 x))))
(*.f64 -1 (+.f64 (log.f64 (log.f64 x)) (*.f64 -1 (log.f64 x))))
(*.f64 -1 (+.f64 (log.f64 (log.f64 x)) (*.f64 -1 (log.f64 x))))
(*.f64 -1 (+.f64 (log.f64 (log.f64 x)) (*.f64 -1 (log.f64 x))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 1 x)) (log.f64 (neg.f64 (log.f64 (/.f64 1 x))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 -1) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 -1) (log.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 x))))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 -1) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 -1) (log.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 x))))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 -1) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 -1) (log.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 x))))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 -1) (log.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))))))
(*.f64 -1 (+.f64 (log.f64 (/.f64 -1 x)) (+.f64 (log.f64 -1) (log.f64 (+.f64 (log.f64 -1) (*.f64 -1 (log.f64 (/.f64 -1 x))))))))
(+.f64 (neg.f64 (log.f64 (/.f64 1 x))) (neg.f64 (log.f64 (log.f64 x))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(+.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) 0)
(+.f64 0 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))))
(+.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) 0)
(+.f64 (neg.f64 (log.f64 (log.f64 x))) (neg.f64 (log.f64 (/.f64 1 x))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(*.f64 1 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(*.f64 (-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x))) 1)
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(*.f64 -1 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(*.f64 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))) -1)
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(neg.f64 (+.f64 (log.f64 (log.f64 x)) (log.f64 (/.f64 1 x))))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))

eval9.0ms (0.6%)

Compiler

Compiled 469 to 310 computations (33.9% saved)

prune7.0ms (0.4%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New41041
Fresh000
Picked011
Done011
Total41243
Error
0.2b
Counts
43 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.2b
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
0.2b
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Compiler

Compiled 17 to 12 computations (29.4% saved)

regimes38.0ms (2.3%)

Accuracy

Total -0.0b remaining (-3.3%)

Threshold costs -0.0b (-3.3%)

Counts
4 → 1
Calls
Call 1
Inputs
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(-.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (log.f64 (*.f64 -1 (log.f64 (/.f64 1 x)))))
Outputs
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
Calls

3 calls:

29.0ms
x
4.0ms
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
4.0ms
(log.f64 x)
Results
ErrorSegmentsBranch
0.2b1x
0.2b1(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
0.2b1(log.f64 x)
Compiler

Compiled 52 to 34 computations (34.6% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01248
Stop Event
done
saturated
Calls
Call 1
Inputs
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Outputs
(-.f64 (neg.f64 (log.f64 (/.f64 1 x))) (log.f64 (log.f64 x)))
(-.f64 (log.f64 x) (log.f64 (log.f64 x)))
Compiler

Compiled 17 to 12 computations (29.4% saved)

soundness12.0ms (0.8%)

Algorithm
egg-herbie
Rules
116×rational.json-simplify-27
112×rational.json-simplify-2
96×rational.json-simplify-9
92×rational.json-simplify-31
88×rational.json-simplify-41
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
037757
160757
287757
3131757
4190757
5255757
6313757
7360757
8386757
9394757
Stop Event
saturated
Compiler

Compiled 30 to 19 computations (36.7% saved)

end17.0ms (1.1%)

Compiler

Compiled 16 to 9 computations (43.8% saved)

Profiling

Loading profile data...