Details

Time bar (total: 6.5s)

analyze133.0ms (2%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%99.9%0.1%0%0%0%0
0%0%99.9%0.1%0%0%0%1
0%0%99.9%0.1%0%0%0%2
0%0%99.9%0.1%0%0%0%3
0%0%99.9%0.1%0%0%0%4
25%25%74.9%0.1%0%0%0%5
31.3%31.2%68.7%0.1%0%0%0%6
45.9%43.7%51.5%0.1%4.7%0%0%7
50.8%48.4%46.8%0.1%4.7%0%0%8
59.7%55.4%37.5%0.1%7%0%0%9
62.6%58.1%34.7%0.1%7%0%0%10
67.4%61.9%29.9%0.1%8.2%0%0%11
69%63.3%28.4%0.1%8.2%0%0%12
Compiler

Compiled 12 to 9 computations (25% saved)

sample5.1s (78.5%)

Results
3.1s2599×body8192exit
1.7s7761×body256valid
145.0ms267×body512valid
141.0ms228×body1024valid
17.0ms116×body256infinite
Bogosity

preprocess6.0ms (0.1%)

Algorithm
egg-herbie
Rules
104×rational.json-simplify-31
84×rational.json-simplify-2
76×rational.json-simplify-27
60×rational.json-simplify-41
52×rational.json-simplify-9
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01654
12654
23854
35654
48654
511754
615654
719754
823754
926054
1026654
022
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(-.f64 (log.f64 (+.f64 1 (exp.f64 y))) (*.f64 y x))
Outputs
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(-.f64 (log.f64 (+.f64 1 (exp.f64 y))) (*.f64 y x))
(-.f64 (log.f64 (+.f64 1 (exp.f64 y))) (*.f64 x y))
Compiler

Compiled 13 to 10 computations (23.1% saved)

simplify8.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
01127
11727
22427
33427
45227
57127
69627
712127
814827
917327
1018127
Stop Event
saturated
Counts
1 → 1
Calls
Call 1
Inputs
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
Outputs
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))

eval0.0ms (0%)

Compiler

Compiled 11 to 8 computations (27.3% saved)

prune1.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 11 to 8 computations (27.3% saved)

localize12.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 1 (exp.f64 x))
0.0b
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
1.0b
(log.f64 (+.f64 1 (exp.f64 x)))
Compiler

Compiled 28 to 14 computations (50% saved)

series43.0ms (0.7%)

Counts
3 → 32
Calls

12 calls:

TimeVariablePointExpression
22.0ms
x
@inf
(log.f64 (+.f64 1 (exp.f64 x)))
17.0ms
x
@-inf
(log.f64 (+.f64 1 (exp.f64 x)))
2.0ms
y
@0
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
0.0ms
x
@0
(log.f64 (+.f64 1 (exp.f64 x)))
0.0ms
x
@-inf
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))

rewrite12.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
60×rational.json-simplify-2
52×bool.json-1
46×rational.json-1
46×rational.json-2
40×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01153
15353
210053
314153
416153
517853
618653
720253
Stop Event
saturated
Counts
3 → 20
Calls
Call 1
Inputs
(log.f64 (+.f64 1 (exp.f64 x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(+.f64 1 (exp.f64 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (+.f64 1 (exp.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (+.f64 1 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (+.f64 1 (exp.f64 x))) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (neg.f64 (log.f64 (+.f64 1 (exp.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (+.f64 1 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (+.f64 1 (exp.f64 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (log.f64 (+.f64 1 (exp.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (log.f64 (+.f64 1 (exp.f64 x)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (neg.f64 (log.f64 (+.f64 1 (exp.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (log.f64 (+.f64 1 (exp.f64 x))) (log.f64 (+.f64 1 (exp.f64 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (+.f64 1 (exp.f64 x))) (neg.f64 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 x y)) (log.f64 (+.f64 1 (exp.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x y) (log.f64 (+.f64 1 (exp.f64 x)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 x y) (log.f64 (+.f64 1 (exp.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 x y) (log.f64 (+.f64 1 (exp.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y)) (-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y)))))))
((#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 1 (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 1 (exp.f64 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 1 (exp.f64 x)) (+.f64 1 (exp.f64 x)))))))

simplify34.0ms (0.5%)

Algorithm
egg-herbie
Rules
178×rational.json-simplify-1
150×rational.json-simplify-31
134×rational.json-simplify-2
114×rational.json-simplify-33
34×rational.json-simplify-27
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711190
11241190
22031190
33081190
43801190
54061190
64421190
75001190
85111190
Stop Event
saturated
Counts
52 → 55
Calls
Call 1
Inputs
(log.f64 2)
(+.f64 (*.f64 1/2 x) (log.f64 2))
(+.f64 (*.f64 1/8 (pow.f64 x 2)) (+.f64 (*.f64 1/2 x) (log.f64 2)))
(+.f64 (*.f64 1/8 (pow.f64 x 2)) (+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1/192 (pow.f64 x 4)) (log.f64 2))))
(log.f64 2)
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))
(+.f64 (*.f64 (-.f64 1/2 y) x) (+.f64 (*.f64 1/8 (pow.f64 x 2)) (log.f64 2)))
(+.f64 (*.f64 (-.f64 1/2 y) x) (+.f64 (*.f64 1/8 (pow.f64 x 2)) (+.f64 (*.f64 -1/192 (pow.f64 x 4)) (log.f64 2))))
(*.f64 -1 (*.f64 y x))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(log.f64 (+.f64 1 (exp.f64 x)))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
2
(+.f64 2 x)
(+.f64 2 (+.f64 (*.f64 1/2 (pow.f64 x 2)) x))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 2 (+.f64 (*.f64 1/2 (pow.f64 x 2)) x)))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) 0)
(+.f64 0 (log.f64 (+.f64 1 (exp.f64 x))))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) 0)
(-.f64 0 (neg.f64 (log.f64 (+.f64 1 (exp.f64 x)))))
(*.f64 1 (log.f64 (+.f64 1 (exp.f64 x))))
(*.f64 (log.f64 (+.f64 1 (exp.f64 x))) 1)
(*.f64 -1 (neg.f64 (log.f64 (+.f64 1 (exp.f64 x)))))
(*.f64 (neg.f64 (log.f64 (+.f64 1 (exp.f64 x)))) -1)
(neg.f64 (neg.f64 (log.f64 (+.f64 1 (exp.f64 x)))))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (neg.f64 (*.f64 x y)))
(+.f64 (-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y)) 0)
(+.f64 0 (-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y)))
(+.f64 (neg.f64 (*.f64 x y)) (log.f64 (+.f64 1 (exp.f64 x))))
(*.f64 1 (-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y)))
(*.f64 (-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y)) 1)
(*.f64 (-.f64 (*.f64 x y) (log.f64 (+.f64 1 (exp.f64 x)))) -1)
(*.f64 -1 (-.f64 (*.f64 x y) (log.f64 (+.f64 1 (exp.f64 x)))))
(neg.f64 (-.f64 (*.f64 x y) (log.f64 (+.f64 1 (exp.f64 x)))))
(*.f64 1 (+.f64 1 (exp.f64 x)))
(*.f64 (+.f64 1 (exp.f64 x)) 1)
Outputs
(log.f64 2)
(+.f64 (*.f64 1/2 x) (log.f64 2))
(+.f64 (log.f64 2) (*.f64 1/2 x))
(+.f64 (*.f64 1/8 (pow.f64 x 2)) (+.f64 (*.f64 1/2 x) (log.f64 2)))
(+.f64 (+.f64 (log.f64 2) (*.f64 1/2 x)) (*.f64 1/8 (pow.f64 x 2)))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 1/8 (pow.f64 x 2))))
(+.f64 (*.f64 1/8 (pow.f64 x 2)) (+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1/192 (pow.f64 x 4)) (log.f64 2))))
(+.f64 (*.f64 1/8 (pow.f64 x 2)) (+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1/192 (pow.f64 x 4)))))
(+.f64 (+.f64 (log.f64 2) (*.f64 1/2 x)) (+.f64 (*.f64 1/8 (pow.f64 x 2)) (*.f64 -1/192 (pow.f64 x 4))))
(log.f64 2)
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))
(+.f64 (log.f64 2) (*.f64 x (-.f64 1/2 y)))
(+.f64 (*.f64 (-.f64 1/2 y) x) (+.f64 (*.f64 1/8 (pow.f64 x 2)) (log.f64 2)))
(+.f64 (*.f64 x (-.f64 1/2 y)) (+.f64 (log.f64 2) (*.f64 1/8 (pow.f64 x 2))))
(+.f64 (*.f64 1/8 (pow.f64 x 2)) (+.f64 (log.f64 2) (*.f64 x (-.f64 1/2 y))))
(+.f64 (*.f64 (-.f64 1/2 y) x) (+.f64 (*.f64 1/8 (pow.f64 x 2)) (+.f64 (*.f64 -1/192 (pow.f64 x 4)) (log.f64 2))))
(+.f64 (*.f64 x (-.f64 1/2 y)) (+.f64 (*.f64 1/8 (pow.f64 x 2)) (+.f64 (log.f64 2) (*.f64 -1/192 (pow.f64 x 4)))))
(+.f64 (+.f64 (log.f64 2) (*.f64 -1/192 (pow.f64 x 4))) (+.f64 (*.f64 1/8 (pow.f64 x 2)) (*.f64 x (-.f64 1/2 y))))
(+.f64 (*.f64 1/8 (pow.f64 x 2)) (+.f64 (+.f64 (log.f64 2) (*.f64 -1/192 (pow.f64 x 4))) (*.f64 x (-.f64 1/2 y))))
(+.f64 (*.f64 1/8 (pow.f64 x 2)) (+.f64 (log.f64 2) (+.f64 (*.f64 -1/192 (pow.f64 x 4)) (*.f64 x (-.f64 1/2 y)))))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 x (neg.f64 y))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 x (neg.f64 y))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(log.f64 (+.f64 1 (exp.f64 x)))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 x (neg.f64 y))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 x y))
(*.f64 x (neg.f64 y))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
2
(+.f64 2 x)
(+.f64 2 (+.f64 (*.f64 1/2 (pow.f64 x 2)) x))
(+.f64 2 (+.f64 x (*.f64 1/2 (pow.f64 x 2))))
(+.f64 (*.f64 1/6 (pow.f64 x 3)) (+.f64 2 (+.f64 (*.f64 1/2 (pow.f64 x 2)) x)))
(+.f64 (+.f64 2 (+.f64 x (*.f64 1/2 (pow.f64 x 2)))) (*.f64 1/6 (pow.f64 x 3)))
(+.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) (+.f64 2 (*.f64 1/6 (pow.f64 x 3))))
(+.f64 2 (+.f64 (+.f64 x (*.f64 1/2 (pow.f64 x 2))) (*.f64 1/6 (pow.f64 x 3))))
(+.f64 (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))) (+.f64 2 x))
(+.f64 (+.f64 2 x) (+.f64 (*.f64 1/2 (pow.f64 x 2)) (*.f64 1/6 (pow.f64 x 3))))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) 0)
(log.f64 (+.f64 1 (exp.f64 x)))
(+.f64 0 (log.f64 (+.f64 1 (exp.f64 x))))
(log.f64 (+.f64 1 (exp.f64 x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) 0)
(log.f64 (+.f64 1 (exp.f64 x)))
(-.f64 0 (neg.f64 (log.f64 (+.f64 1 (exp.f64 x)))))
(log.f64 (+.f64 1 (exp.f64 x)))
(*.f64 1 (log.f64 (+.f64 1 (exp.f64 x))))
(log.f64 (+.f64 1 (exp.f64 x)))
(*.f64 (log.f64 (+.f64 1 (exp.f64 x))) 1)
(log.f64 (+.f64 1 (exp.f64 x)))
(*.f64 -1 (neg.f64 (log.f64 (+.f64 1 (exp.f64 x)))))
(log.f64 (+.f64 1 (exp.f64 x)))
(*.f64 (neg.f64 (log.f64 (+.f64 1 (exp.f64 x)))) -1)
(log.f64 (+.f64 1 (exp.f64 x)))
(neg.f64 (neg.f64 (log.f64 (+.f64 1 (exp.f64 x)))))
(log.f64 (+.f64 1 (exp.f64 x)))
(+.f64 (log.f64 (+.f64 1 (exp.f64 x))) (neg.f64 (*.f64 x y)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(+.f64 (-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y)) 0)
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(+.f64 0 (-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(+.f64 (neg.f64 (*.f64 x y)) (log.f64 (+.f64 1 (exp.f64 x))))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(*.f64 1 (-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(*.f64 (-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y)) 1)
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(*.f64 (-.f64 (*.f64 x y) (log.f64 (+.f64 1 (exp.f64 x)))) -1)
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(*.f64 -1 (-.f64 (*.f64 x y) (log.f64 (+.f64 1 (exp.f64 x)))))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(neg.f64 (-.f64 (*.f64 x y) (log.f64 (+.f64 1 (exp.f64 x)))))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(*.f64 1 (+.f64 1 (exp.f64 x)))
(*.f64 (+.f64 1 (exp.f64 x)) 1)
(*.f64 1 (+.f64 1 (exp.f64 x)))

eval13.0ms (0.2%)

Compiler

Compiled 720 to 471 computations (34.6% saved)

prune8.0ms (0.1%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New51455
Fresh000
Picked101
Done000
Total52456
Error
0.8b
Counts
56 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
6.4b
(-.f64 (log.f64 2) (*.f64 x y))
13.4b
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))
35.4b
(*.f64 x (neg.f64 y))
27.8b
(log.f64 (+.f64 1 (exp.f64 x)))
Compiler

Compiled 31 to 24 computations (22.6% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(+.f64 1 (exp.f64 x))
1.0b
(log.f64 (+.f64 1 (exp.f64 x)))
Compiler

Compiled 15 to 9 computations (40% saved)

localize5.0ms (0.1%)

Compiler

Compiled 10 to 4 computations (60% saved)

localize11.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 1/2 y) x)
0.0b
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))
Compiler

Compiled 24 to 17 computations (29.2% saved)

series6.0ms (0.1%)

Counts
2 → 27
Calls

12 calls:

TimeVariablePointExpression
2.0ms
y
@0
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))
1.0ms
x
@0
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))
1.0ms
x
@inf
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))
0.0ms
x
@-inf
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))
0.0ms
y
@inf
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))

rewrite8.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
68×rational.json-simplify-2
58×bool.json-1
46×rational.json-1
46×rational.json-2
38×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01136
15436
210036
313336
416736
519336
620836
722136
Stop Event
saturated
Counts
2 → 4
Calls
Call 1
Inputs
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))
(*.f64 (-.f64 1/2 y) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2)) (+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (-.f64 1/2 y) x) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (-.f64 1/2 y) x))))) (#(struct:change #<rule egg-rr> (2) ((x or (*.f64 (-.f64 1/2 y) x) (*.f64 (-.f64 1/2 y) x))))))

simplify22.0ms (0.3%)

Algorithm
egg-herbie
Rules
122×rational.json-simplify-31
104×rational.json-simplify-2
22×rational.json-simplify-1
18×rational.json-simplify-27
18×rational.json-simplify-9
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
025743
141743
254699
365699
479699
597699
6125699
7169699
8187699
9200699
10206699
Stop Event
saturated
Counts
31 → 23
Calls
Call 1
Inputs
(+.f64 (*.f64 1/2 x) (log.f64 2))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(log.f64 2)
(*.f64 (-.f64 1/2 y) x)
(*.f64 (-.f64 1/2 y) x)
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(*.f64 (+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2)) 1)
(*.f64 1 (+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2)))
(+.f64 (*.f64 (-.f64 1/2 y) x) 0)
(+.f64 0 (*.f64 (-.f64 1/2 y) x))
Outputs
(+.f64 (*.f64 1/2 x) (log.f64 2))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 x y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (*.f64 -1 y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (neg.f64 y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 x y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (*.f64 -1 y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (neg.f64 y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 x y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (*.f64 -1 y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (neg.f64 y))))
(*.f64 -1 (*.f64 y x))
(*.f64 -1 (*.f64 x y))
(*.f64 x (*.f64 -1 y))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 x y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (*.f64 -1 y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (neg.f64 y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 x y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (*.f64 -1 y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (neg.f64 y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 x y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (*.f64 -1 y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (neg.f64 y))))
(*.f64 -1 (*.f64 y x))
(*.f64 -1 (*.f64 x y))
(*.f64 x (*.f64 -1 y))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 x y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (*.f64 -1 y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (neg.f64 y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 x y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (*.f64 -1 y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (neg.f64 y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 -1 (*.f64 x y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (*.f64 -1 y))))
(+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 x (neg.f64 y))))
(log.f64 2)
(*.f64 (-.f64 1/2 y) x)
(*.f64 x (-.f64 1/2 y))
(*.f64 (-.f64 1/2 y) x)
(*.f64 x (-.f64 1/2 y))
(*.f64 1/2 x)
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (*.f64 -1 y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (*.f64 -1 y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (*.f64 -1 y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (neg.f64 y)))
(*.f64 -1 (*.f64 y x))
(*.f64 -1 (*.f64 x y))
(*.f64 x (*.f64 -1 y))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (*.f64 -1 y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (*.f64 -1 y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (*.f64 -1 y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (neg.f64 y)))
(*.f64 -1 (*.f64 y x))
(*.f64 -1 (*.f64 x y))
(*.f64 x (*.f64 -1 y))
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (*.f64 -1 y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (*.f64 -1 y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (neg.f64 y)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 y x)))
(+.f64 (*.f64 1/2 x) (*.f64 -1 (*.f64 x y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (*.f64 -1 y)))
(+.f64 (*.f64 1/2 x) (*.f64 x (neg.f64 y)))
(*.f64 (+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2)) 1)
(*.f64 (+.f64 (log.f64 2) (*.f64 x (-.f64 1/2 y))) 1)
(*.f64 1 (+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2)))
(*.f64 (+.f64 (log.f64 2) (*.f64 x (-.f64 1/2 y))) 1)
(+.f64 (*.f64 (-.f64 1/2 y) x) 0)
(+.f64 (*.f64 x (-.f64 1/2 y)) 0)
(+.f64 0 (*.f64 (-.f64 1/2 y) x))
(+.f64 (*.f64 x (-.f64 1/2 y)) 0)

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (log.f64 2) (*.f64 x y))
Compiler

Compiled 16 to 9 computations (43.8% saved)

series1.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
x
@0
(-.f64 (log.f64 2) (*.f64 x y))
0.0ms
x
@-inf
(-.f64 (log.f64 2) (*.f64 x y))
0.0ms
x
@inf
(-.f64 (log.f64 2) (*.f64 x y))
0.0ms
y
@-inf
(-.f64 (log.f64 2) (*.f64 x y))
0.0ms
y
@inf
(-.f64 (log.f64 2) (*.f64 x y))

rewrite8.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
56×rational.json-simplify-2
50×bool.json-1
42×rational.json-1
42×rational.json-2
34×rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
14517
29117
313117
415117
516817
617617
719217
Stop Event
saturated
Counts
1 → 9
Calls
Call 1
Inputs
(-.f64 (log.f64 2) (*.f64 x y))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 2) (neg.f64 (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (log.f64 2) (*.f64 x y)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (log.f64 2) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (*.f64 x y)) (log.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (log.f64 2) (*.f64 x y)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (log.f64 2) (*.f64 x y)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x y) (log.f64 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (-.f64 (*.f64 x y) (log.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (-.f64 (*.f64 x y) (log.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (-.f64 (log.f64 2) (*.f64 x y)) (-.f64 (log.f64 2) (*.f64 x y)))))))

simplify17.0ms (0.3%)

Algorithm
egg-herbie
Rules
102×rational.json-simplify-31
68×rational.json-simplify-2
42×rational.json-simplify-1
38×rational.json-simplify-27
30×rational.json-simplify-9
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
026525
134525
253525
375525
489525
5116525
6148525
7179525
8204525
9213525
Stop Event
saturated
Counts
33 → 15
Calls
Call 1
Inputs
(log.f64 2)
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(log.f64 2)
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(*.f64 -1 (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(+.f64 (log.f64 2) (neg.f64 (*.f64 x y)))
(+.f64 (-.f64 (log.f64 2) (*.f64 x y)) 0)
(+.f64 0 (-.f64 (log.f64 2) (*.f64 x y)))
(+.f64 (neg.f64 (*.f64 x y)) (log.f64 2))
(*.f64 (-.f64 (log.f64 2) (*.f64 x y)) 1)
(*.f64 1 (-.f64 (log.f64 2) (*.f64 x y)))
(*.f64 (-.f64 (*.f64 x y) (log.f64 2)) -1)
(*.f64 -1 (-.f64 (*.f64 x y) (log.f64 2)))
(neg.f64 (-.f64 (*.f64 x y) (log.f64 2)))
Outputs
(log.f64 2)
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(log.f64 2)
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(*.f64 -1 (*.f64 y x))
(neg.f64 (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(+.f64 (log.f64 2) (*.f64 -1 (*.f64 y x)))
(-.f64 (log.f64 2) (*.f64 y x))
(+.f64 (log.f64 2) (neg.f64 (*.f64 x y)))
(-.f64 (log.f64 2) (*.f64 y x))
(+.f64 (-.f64 (log.f64 2) (*.f64 x y)) 0)
(+.f64 (-.f64 (log.f64 2) (*.f64 y x)) 0)
(+.f64 0 (-.f64 (log.f64 2) (*.f64 x y)))
(+.f64 (-.f64 (log.f64 2) (*.f64 y x)) 0)
(+.f64 (neg.f64 (*.f64 x y)) (log.f64 2))
(-.f64 (log.f64 2) (*.f64 y x))
(*.f64 (-.f64 (log.f64 2) (*.f64 x y)) 1)
(-.f64 (log.f64 2) (*.f64 y x))
(*.f64 1 (-.f64 (log.f64 2) (*.f64 x y)))
(-.f64 (log.f64 2) (*.f64 y x))
(*.f64 (-.f64 (*.f64 x y) (log.f64 2)) -1)
(-.f64 (log.f64 2) (*.f64 y x))
(*.f64 -1 (-.f64 (*.f64 x y) (log.f64 2)))
(-.f64 (log.f64 2) (*.f64 y x))
(neg.f64 (-.f64 (*.f64 x y) (log.f64 2)))
(-.f64 (log.f64 2) (*.f64 y x))

eval14.0ms (0.2%)

Compiler

Compiled 607 to 445 computations (26.7% saved)

prune14.0ms (0.2%)

Pruning

8 alts after pruning (4 fresh and 4 done)

PrunedKeptTotal
New64468
Fresh000
Picked011
Done033
Total64872
Error
0.8b
Counts
72 → 8
Alt Table
Click to see full alt table
StatusErrorProgram
6.4b
(-.f64 (log.f64 2) (*.f64 x y))
13.4b
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))
27.9b
(+.f64 (*.f64 1/2 x) (log.f64 2))
47.2b
(*.f64 (-.f64 1/2 y) x)
35.4b
(*.f64 x (neg.f64 y))
28.7b
(log.f64 (+.f64 2 x))
27.8b
(log.f64 (+.f64 1 (exp.f64 x)))
28.2b
(log.f64 2)
Compiler

Compiled 56 to 45 computations (19.6% saved)

localize3.0ms (0%)

Compiler

Compiled 5 to 5 computations (0% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(log.f64 (+.f64 2 x))
Compiler

Compiled 11 to 8 computations (27.3% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
x
@inf
(log.f64 (+.f64 2 x))
0.0ms
x
@-inf
(log.f64 (+.f64 2 x))
0.0ms
x
@0
(log.f64 (+.f64 2 x))

rewrite5.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
22×bool.json-1
18×rational.json-simplify-1
16×rational.json-1
16×rational.json-2
16×rational.json-simplify-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0711
13311
25711
36211
Stop Event
saturated
Counts
1 → 4
Calls
Call 1
Inputs
(log.f64 (+.f64 2 x))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (+.f64 2 x)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (+.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (+.f64 2 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (+.f64 2 x)))))) (#(struct:change #<rule egg-rr> (2) ((x or (log.f64 (+.f64 2 x)) (log.f64 (+.f64 2 x)))))))

simplify62.0ms (0.9%)

Algorithm
egg-herbie
Rules
1438×rational.json-simplify-27
1054×rational.json-simplify-41
928×rational.json-simplify-1
892×rational.json-simplify-40
528×rational.json-simplify-9
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
052606
194606
2180606
3449606
41132606
52417606
63408606
73849606
84003606
94125606
104192606
114194606
Stop Event
saturated
Counts
16 → 41
Calls
Call 1
Inputs
(log.f64 2)
(+.f64 (*.f64 1/2 x) (log.f64 2))
(+.f64 (*.f64 -1/8 (pow.f64 x 2)) (+.f64 (*.f64 1/2 x) (log.f64 2)))
(+.f64 (*.f64 -1/8 (pow.f64 x 2)) (+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 1/24 (pow.f64 x 3)))))
(*.f64 -1 (log.f64 (/.f64 1 x)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 2 (/.f64 1 x)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 2 (/.f64 1 x))) (*.f64 2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 8/3 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 2 (/.f64 1 x)))) (*.f64 2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (*.f64 2 (/.f64 1 x))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (*.f64 2 (/.f64 1 x)))) (*.f64 2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 8/3 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (*.f64 2 (/.f64 1 x))))) (*.f64 2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (log.f64 (+.f64 2 x)) 0)
(+.f64 0 (log.f64 (+.f64 2 x)))
(*.f64 (log.f64 (+.f64 2 x)) 1)
(*.f64 1 (log.f64 (+.f64 2 x)))
Outputs
(log.f64 2)
(+.f64 (*.f64 1/2 x) (log.f64 2))
(+.f64 (log.f64 2) (*.f64 1/2 x))
(+.f64 (*.f64 -1/8 (pow.f64 x 2)) (+.f64 (*.f64 1/2 x) (log.f64 2)))
(+.f64 (+.f64 (log.f64 2) (*.f64 1/2 x)) (*.f64 -1/8 (pow.f64 x 2)))
(+.f64 (log.f64 2) (+.f64 (*.f64 1/2 x) (*.f64 -1/8 (pow.f64 x 2))))
(+.f64 (*.f64 -1/8 (pow.f64 x 2)) (+.f64 (*.f64 1/2 x) (+.f64 (log.f64 2) (*.f64 1/24 (pow.f64 x 3)))))
(+.f64 (+.f64 (log.f64 2) (+.f64 (*.f64 1/2 x) (*.f64 -1/8 (pow.f64 x 2)))) (*.f64 1/24 (pow.f64 x 3)))
(+.f64 (log.f64 2) (+.f64 (*.f64 1/24 (pow.f64 x 3)) (+.f64 (*.f64 1/2 x) (*.f64 -1/8 (pow.f64 x 2)))))
(+.f64 (log.f64 2) (+.f64 (*.f64 1/2 x) (+.f64 (*.f64 -1/8 (pow.f64 x 2)) (*.f64 1/24 (pow.f64 x 3)))))
(*.f64 -1 (log.f64 (/.f64 1 x)))
(+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 2 (/.f64 1 x)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 2 (/.f64 1 x))) (*.f64 2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (*.f64 2 (/.f64 1 x)) (-.f64 (*.f64 2 (/.f64 1 (pow.f64 x 2))) (*.f64 -1 (log.f64 (/.f64 1 x)))))
(-.f64 (*.f64 2 (/.f64 1 x)) (+.f64 (*.f64 2 (/.f64 1 (pow.f64 x 2))) (*.f64 (log.f64 (/.f64 1 x)) 1)))
(-.f64 (*.f64 2 (/.f64 1 x)) (+.f64 (*.f64 2 (/.f64 1 (pow.f64 x 2))) (*.f64 1 (log.f64 (/.f64 1 x)))))
(-.f64 (+.f64 (*.f64 8/3 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 2 (/.f64 1 x)))) (*.f64 2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 2 (/.f64 1 x))) (*.f64 8/3 (/.f64 1 (pow.f64 x 3)))) (*.f64 2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 2 (/.f64 1 x))) (*.f64 2 (/.f64 1 (pow.f64 x 2)))) (*.f64 8/3 (/.f64 1 (pow.f64 x 3))))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 x)) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 8/3 (/.f64 1 (pow.f64 x 3))))) (*.f64 2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (*.f64 2 (/.f64 1 x)) (+.f64 (*.f64 8/3 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 (/.f64 1 (pow.f64 x 2)) -2))))
(+.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 1 x))) (*.f64 2 (/.f64 1 x))) (+.f64 (*.f64 8/3 (/.f64 1 (pow.f64 x 3))) (*.f64 (/.f64 1 (pow.f64 x 2)) -2)))
(+.f64 (-.f64 (*.f64 2 (/.f64 1 x)) (+.f64 (*.f64 2 (/.f64 1 (pow.f64 x 2))) (*.f64 1 (log.f64 (/.f64 1 x))))) (*.f64 8/3 (/.f64 1 (pow.f64 x 3))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (*.f64 2 (/.f64 1 x))))
(+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (*.f64 2 (/.f64 1 x)) (log.f64 -1)))
(+.f64 (*.f64 2 (/.f64 1 x)) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (*.f64 2 (/.f64 1 x)))) (*.f64 2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (*.f64 2 (/.f64 1 x)) (log.f64 -1))) (*.f64 2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 2 (/.f64 1 x)) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (*.f64 2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (*.f64 2 (/.f64 1 x)) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (*.f64 (/.f64 1 (pow.f64 x 2)) -2))))
(-.f64 (+.f64 (*.f64 8/3 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (*.f64 2 (/.f64 1 x))))) (*.f64 2 (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (*.f64 8/3 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (*.f64 2 (/.f64 1 x)) (log.f64 -1)))) (*.f64 2 (/.f64 1 (pow.f64 x 2))))
(+.f64 (-.f64 (+.f64 (*.f64 2 (/.f64 1 x)) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (*.f64 2 (/.f64 1 (pow.f64 x 2)))) (*.f64 8/3 (/.f64 1 (pow.f64 x 3))))
(+.f64 (*.f64 8/3 (/.f64 1 (pow.f64 x 3))) (-.f64 (+.f64 (*.f64 2 (/.f64 1 x)) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (*.f64 2 (/.f64 1 (pow.f64 x 2)))))
(+.f64 (*.f64 2 (/.f64 1 x)) (+.f64 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1)) (+.f64 (*.f64 8/3 (/.f64 1 (pow.f64 x 3))) (*.f64 (/.f64 1 (pow.f64 x 2)) -2))))
(+.f64 (*.f64 2 (/.f64 1 x)) (+.f64 (*.f64 8/3 (/.f64 1 (pow.f64 x 3))) (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (+.f64 (log.f64 -1) (*.f64 (/.f64 1 (pow.f64 x 2)) -2)))))
(+.f64 (log.f64 (+.f64 2 x)) 0)
(+.f64 0 (log.f64 (+.f64 2 x)))
(+.f64 (log.f64 (+.f64 2 x)) 0)
(*.f64 (log.f64 (+.f64 2 x)) 1)
(*.f64 1 (log.f64 (+.f64 2 x)))
(*.f64 1 (log.f64 (+.f64 2 x)))

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (-.f64 1/2 y) x)
Compiler

Compiled 13 to 8 computations (38.5% saved)

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 1/2 x) (log.f64 2))
Compiler

Compiled 16 to 13 computations (18.8% saved)

series0.0ms (0%)

Counts
1 → 3
Calls

3 calls:

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

rewrite5.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
26×bool.json-1
20×rational.json-simplify-2
20×rational.json-simplify-1
18×rational.json-1
18×rational.json-2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0917
14217
26817
37317
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 1/2 x) (log.f64 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/2 x) (log.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (*.f64 1/2 x) (log.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x or (+.f64 (*.f64 1/2 x) (log.f64 2)) (+.f64 (*.f64 1/2 x) (log.f64 2)))))))

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Rules
rational.json-simplify-2
rational.json-simplify-1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01265
11465
Stop Event
saturated
Counts
5 → 5
Calls
Call 1
Inputs
(log.f64 2)
(*.f64 1/2 x)
(*.f64 1/2 x)
(*.f64 (+.f64 (*.f64 1/2 x) (log.f64 2)) 1)
(*.f64 1 (+.f64 (*.f64 1/2 x) (log.f64 2)))
Outputs
(log.f64 2)
(*.f64 1/2 x)
(*.f64 1/2 x)
(*.f64 (+.f64 (*.f64 1/2 x) (log.f64 2)) 1)
(*.f64 (+.f64 (log.f64 2) (*.f64 1/2 x)) 1)
(*.f64 1 (+.f64 (*.f64 1/2 x) (log.f64 2)))
(*.f64 (+.f64 (log.f64 2) (*.f64 1/2 x)) 1)

eval17.0ms (0.3%)

Compiler

Compiled 862 to 729 computations (15.4% saved)

prune9.0ms (0.1%)

Pruning

9 alts after pruning (1 fresh and 8 done)

PrunedKeptTotal
New53154
Fresh000
Picked011
Done077
Total53962
Error
0.8b
Counts
62 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
6.4b
(-.f64 (log.f64 2) (*.f64 x y))
13.4b
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))
27.9b
(+.f64 (*.f64 1/2 x) (log.f64 2))
47.2b
(*.f64 (-.f64 1/2 y) x)
35.4b
(*.f64 x (neg.f64 y))
61.6b
(*.f64 1/2 x)
28.7b
(log.f64 (+.f64 2 x))
27.8b
(log.f64 (+.f64 1 (exp.f64 x)))
28.2b
(log.f64 2)
Compiler

Compiled 61 to 49 computations (19.7% saved)

localize3.0ms (0%)

Compiler

Compiled 7 to 5 computations (28.6% saved)

eval0.0ms (0%)

Compiler

Compiled 2 to 2 computations (0% saved)

prune5.0ms (0.1%)

Pruning

9 alts after pruning (0 fresh and 9 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done088
Total099
Error
0.8b
Counts
9 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
6.4b
(-.f64 (log.f64 2) (*.f64 x y))
13.4b
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))
27.9b
(+.f64 (*.f64 1/2 x) (log.f64 2))
47.2b
(*.f64 (-.f64 1/2 y) x)
35.4b
(*.f64 x (neg.f64 y))
61.6b
(*.f64 1/2 x)
28.7b
(log.f64 (+.f64 2 x))
27.8b
(log.f64 (+.f64 1 (exp.f64 x)))
28.2b
(log.f64 2)
Compiler

Compiled 61 to 49 computations (19.7% saved)

regimes20.0ms (0.3%)

Counts
10 → 1
Calls
Call 1
Inputs
(*.f64 1/2 x)
(*.f64 x (neg.f64 y))
(*.f64 (-.f64 1/2 y) x)
(log.f64 2)
(log.f64 (+.f64 2 x))
(+.f64 (*.f64 1/2 x) (log.f64 2))
(-.f64 (log.f64 2) (*.f64 x y))
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))
(log.f64 (+.f64 1 (exp.f64 x)))
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
Outputs
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
Calls

3 calls:

7.0ms
y
6.0ms
x
4.0ms
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
Results
ErrorSegmentsBranch
1.0b1x
1.0b1y
1.0b1(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
Compiler

Compiled 71 to 49 computations (31% saved)

regimes20.0ms (0.3%)

Counts
9 → 2
Calls
Call 1
Inputs
(*.f64 1/2 x)
(*.f64 x (neg.f64 y))
(*.f64 (-.f64 1/2 y) x)
(log.f64 2)
(log.f64 (+.f64 2 x))
(+.f64 (*.f64 1/2 x) (log.f64 2))
(-.f64 (log.f64 2) (*.f64 x y))
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))
(log.f64 (+.f64 1 (exp.f64 x)))
Outputs
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2))
Calls

2 calls:

12.0ms
x
6.0ms
y
Results
ErrorSegmentsBranch
1.3b2x
6.4b1y
Compiler

Compiled 51 to 37 computations (27.5% saved)

bsearch14.0ms (0.2%)

Algorithm
binary-search
Steps
TimeLeftRight
13.0ms
-5.3102600104172195
-1.1988931783503758
Results
12.0ms96×body256valid
Compiler

Compiled 124 to 96 computations (22.6% saved)

regimes17.0ms (0.3%)

Counts
7 → 2
Calls
Call 1
Inputs
(*.f64 1/2 x)
(*.f64 x (neg.f64 y))
(*.f64 (-.f64 1/2 y) x)
(log.f64 2)
(log.f64 (+.f64 2 x))
(+.f64 (*.f64 1/2 x) (log.f64 2))
(-.f64 (log.f64 2) (*.f64 x y))
Outputs
(*.f64 x (neg.f64 y))
(-.f64 (log.f64 2) (*.f64 x y))
Calls

2 calls:

11.0ms
x
5.0ms
y
Results
ErrorSegmentsBranch
1.6b2x
6.4b1y
Compiler

Compiled 38 to 27 computations (28.9% saved)

bsearch405.0ms (6.2%)

Algorithm
binary-search
Steps
TimeLeftRight
405.0ms
-1146021085810820400.0
-1132134745470.5447
Results
385.0ms44×body1024valid
11.0ms81×body256valid
5.0ms19×body512valid
1.0msbody256infinite
Compiler

Compiled 160 to 120 computations (25% saved)

regimes156.0ms (2.4%)

Counts
6 → 2
Calls
Call 1
Inputs
(*.f64 1/2 x)
(*.f64 x (neg.f64 y))
(*.f64 (-.f64 1/2 y) x)
(log.f64 2)
(log.f64 (+.f64 2 x))
(+.f64 (*.f64 1/2 x) (log.f64 2))
Outputs
(*.f64 x (neg.f64 y))
(+.f64 (*.f64 1/2 x) (log.f64 2))
Calls

2 calls:

92.0ms
y
62.0ms
x
Results
ErrorSegmentsBranch
8.9b2x
17.1b9y
Compiler

Compiled 32 to 23 computations (28.1% saved)

bsearch17.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
-1.0485974345280781e-13
-4.9773560264150727e-17
Results
16.0ms128×body256valid
Compiler

Compiled 144 to 116 computations (19.4% saved)

regimes54.0ms (0.8%)

Counts
5 → 2
Calls
Call 1
Inputs
(*.f64 1/2 x)
(*.f64 x (neg.f64 y))
(*.f64 (-.f64 1/2 y) x)
(log.f64 2)
(log.f64 (+.f64 2 x))
Outputs
(*.f64 x (neg.f64 y))
(log.f64 (+.f64 2 x))
Calls

2 calls:

40.0ms
y
12.0ms
x
Results
ErrorSegmentsBranch
9.0b2x
17.5b9y
Compiler

Compiled 26 to 18 computations (30.8% saved)

bsearch18.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
-1.0485974345280781e-13
-4.9773560264150727e-17
Results
16.0ms128×body256valid
Compiler

Compiled 128 to 100 computations (21.9% saved)

regimes46.0ms (0.7%)

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

2 calls:

35.0ms
y
11.0ms
x
Results
ErrorSegmentsBranch
9.2b2x
17.5b9y
Compiler

Compiled 22 to 15 computations (31.8% saved)

bsearch17.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
-1.0485974345280781e-13
-4.9773560264150727e-17
Results
15.0ms128×body256valid
Compiler

Compiled 112 to 92 computations (17.9% saved)

regimes9.0ms (0.1%)

Accuracy

Total -26.7b remaining (-75.3%)

Threshold costs -26.7b (-75.3%)

Counts
3 → 1
Calls
Call 1
Inputs
(*.f64 1/2 x)
(*.f64 x (neg.f64 y))
(*.f64 (-.f64 1/2 y) x)
Outputs
(*.f64 x (neg.f64 y))
Calls

2 calls:

5.0ms
y
3.0ms
x
Results
ErrorSegmentsBranch
35.4b1x
35.4b1y
Compiler

Compiled 20 to 13 computations (35% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
042218
Stop Event
done
saturated
Calls
Call 1
Inputs
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(if (<=.f64 x -1553741871442821/1125899906842624) (*.f64 x (neg.f64 y)) (+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2)))
(if (<=.f64 x -1150000000000) (*.f64 x (neg.f64 y)) (-.f64 (log.f64 2) (*.f64 x y)))
(if (<=.f64 x -3010670175542045/79228162514264337593543950336) (*.f64 x (neg.f64 y)) (+.f64 (*.f64 1/2 x) (log.f64 2)))
(if (<=.f64 x -2636713248474717/20282409603651670423947251286016) (*.f64 x (neg.f64 y)) (log.f64 (+.f64 2 x)))
(if (<=.f64 x -8239728901483491/316912650057057350374175801344) (*.f64 x (neg.f64 y)) (log.f64 2))
(*.f64 x (neg.f64 y))
(*.f64 1/2 x)
Outputs
(-.f64 (log.f64 (+.f64 1 (exp.f64 x))) (*.f64 x y))
(if (<=.f64 x -1553741871442821/1125899906842624) (*.f64 x (neg.f64 y)) (+.f64 (*.f64 (-.f64 1/2 y) x) (log.f64 2)))
(if (<=.f64 x -1150000000000) (*.f64 x (neg.f64 y)) (-.f64 (log.f64 2) (*.f64 x y)))
(if (<=.f64 x -3010670175542045/79228162514264337593543950336) (*.f64 x (neg.f64 y)) (+.f64 (*.f64 1/2 x) (log.f64 2)))
(if (<=.f64 x -2636713248474717/20282409603651670423947251286016) (*.f64 x (neg.f64 y)) (log.f64 (+.f64 2 x)))
(if (<=.f64 x -8239728901483491/316912650057057350374175801344) (*.f64 x (neg.f64 y)) (log.f64 2))
(*.f64 x (neg.f64 y))
(*.f64 1/2 x)
Compiler

Compiled 98 to 71 computations (27.6% saved)

soundness0.0ms (0%)

end81.0ms (1.2%)

Compiler

Compiled 84 to 46 computations (45.2% saved)

Profiling

Loading profile data...