Details

Time bar (total: 1.7s)

analyze4.0ms (0.2%)

Algorithm
search
Search
ProbabilityValidUnknownPreconditionInfiniteDomainCan'tIter
0%0%100%0%0%0%0%0
0%0%100%0%0%0%0%1
0%0%100%0%0%0%0%2
0%0%50%0%0%50%0%3
33.3%12.5%25%0%0%62.5%0%4
60%18.7%12.5%0%0%68.7%0%5
77.8%21.9%6.2%0%0%71.8%0%6
88.2%23.4%3.1%0%0%73.4%0%7
93.9%24.2%1.6%0%0%74.2%0%8
96.9%24.6%0.8%0%0%74.6%0%9
98.4%24.8%0.4%0%0%74.8%0%10
99.2%24.9%0.2%0%0%74.9%0%11
99.6%24.9%0.1%0%0%74.9%0%12
Compiler

Compiled 9 to 8 computations (11.1% saved)

sample989.0ms (58.3%)

Results
977.0ms8256×body256valid
1.0ms19×body256invalid
Bogosity

preprocess134.0ms (7.9%)

Algorithm
egg-herbie
Rules
sub-neg
+-commutative
fma-def
associate-+l-
1-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0921
11621
21921
32121
42621
53021
63521
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1)))
Outputs
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1)))
(neg.f64 (log.f64 (+.f64 (/.f64 1 x) -1)))
Compiler

Compiled 9 to 8 computations (11.1% saved)

simplify40.0ms (2.4%)

Algorithm
egg-herbie
Rules
sub-neg
+-commutative
fma-def
associate-+l-
1-exp
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0921
11621
21921
32121
42621
53021
63521
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1)))
Outputs
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1)))
(neg.f64 (log.f64 (+.f64 (/.f64 1 x) -1)))

eval1.0ms (0%)

Compiler

Compiled 15 to 13 computations (13.3% saved)

prune1.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
0.39%
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.39%
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1)))
Compiler

Compiled 8 to 7 computations (12.5% saved)

localize12.0ms (0.7%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.38%
(log.f64 (-.f64 (/.f64 1 x) 1))
Compiler

Compiled 24 to 19 computations (20.8% saved)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite57.0ms (3.4%)

Algorithm
batch-egg-rewrite
Rules
1540×add-sqr-sqrt
1518×*-un-lft-identity
1418×add-cube-cbrt
1404×add-cbrt-cube
1390×add-exp-log
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0817
116317
2200317
Stop Event
node limit
Counts
1 → 21
Calls
Call 1
Inputs
(log.f64 (-.f64 (/.f64 1 x) 1))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 2)) (log.f64 (cbrt.f64 (expm1.f64 (neg.f64 (log.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (expm1.f64 (neg.f64 (log.f64 x))))) (log.f64 (sqrt.f64 (expm1.f64 (neg.f64 (log.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (+.f64 (pow.f64 x -3) -1)) (log.f64 (+.f64 (pow.f64 x -2) (+.f64 1 (/.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (log.f64 (+.f64 (pow.f64 x -2) -1)) (log1p.f64 (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) (sqrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) (pow.f64 (cbrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 2) (cbrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (-.f64 (expm1.f64 (neg.f64 (log.f64 x))) 1))))))

simplify69.0ms (4.1%)

Algorithm
egg-herbie
Rules
1178×distribute-lft-in
1030×distribute-rgt-in
766×associate-+r-
710×associate-*r*
584×*-commutative
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
089781
1203749
2704743
33008725
47998725
Stop Event
node limit
Counts
33 → 59
Calls
Call 1
Inputs
(*.f64 -1 (log.f64 x))
(+.f64 (*.f64 -1 x) (*.f64 -1 (log.f64 x)))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1 x) (*.f64 -1 (log.f64 x))))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 -1 (log.f64 x)))))
(log.f64 -1)
(-.f64 (log.f64 -1) (/.f64 1 x))
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (/.f64 1 x)))
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x))))
(log.f64 -1)
(-.f64 (log.f64 -1) (/.f64 1 x))
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (/.f64 1 x)))
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x))))
(+.f64 0 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 2)) (log.f64 (cbrt.f64 (expm1.f64 (neg.f64 (log.f64 x))))))
(+.f64 (log.f64 (sqrt.f64 (expm1.f64 (neg.f64 (log.f64 x))))) (log.f64 (sqrt.f64 (expm1.f64 (neg.f64 (log.f64 x))))))
(-.f64 (log.f64 (+.f64 (pow.f64 x -3) -1)) (log.f64 (+.f64 (pow.f64 x -2) (+.f64 1 (/.f64 1 x)))))
(-.f64 (log.f64 (+.f64 (pow.f64 x -2) -1)) (log1p.f64 (/.f64 1 x)))
(-.f64 (+.f64 1 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 1)
(*.f64 1 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))))
(*.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 1)
(*.f64 (sqrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) (sqrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))))
(*.f64 (cbrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) (pow.f64 (cbrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 2))
(*.f64 (pow.f64 (cbrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 2) (cbrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))))
(pow.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 1)
(pow.f64 (sqrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 2)
(pow.f64 (cbrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 3)
(pow.f64 (pow.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 3) 1/3)
(sqrt.f64 (pow.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 2))
(cbrt.f64 (pow.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 3))
(expm1.f64 (log1p.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))))
(exp.f64 (log.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))))
(exp.f64 (*.f64 (log.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 1))
(log1p.f64 (-.f64 (expm1.f64 (neg.f64 (log.f64 x))) 1))
Outputs
(*.f64 -1 (log.f64 x))
(neg.f64 (log.f64 x))
(+.f64 (*.f64 -1 x) (*.f64 -1 (log.f64 x)))
(fma.f64 -1 x (neg.f64 (log.f64 x)))
(-.f64 (neg.f64 (log.f64 x)) x)
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1 x) (*.f64 -1 (log.f64 x))))
(fma.f64 -1/2 (*.f64 x x) (fma.f64 -1 x (neg.f64 (log.f64 x))))
(-.f64 (fma.f64 -1/2 (*.f64 x x) (neg.f64 x)) (log.f64 x))
(-.f64 (*.f64 x (*.f64 x -1/2)) (+.f64 x (log.f64 x)))
(-.f64 (*.f64 x (+.f64 -1 (*.f64 x -1/2))) (log.f64 x))
(+.f64 (*.f64 -1/2 (pow.f64 x 2)) (+.f64 (*.f64 -1 x) (+.f64 (*.f64 -1/3 (pow.f64 x 3)) (*.f64 -1 (log.f64 x)))))
(fma.f64 -1/2 (*.f64 x x) (fma.f64 -1 x (fma.f64 -1/3 (pow.f64 x 3) (neg.f64 (log.f64 x)))))
(fma.f64 -1/2 (*.f64 x x) (-.f64 (-.f64 (*.f64 -1/3 (pow.f64 x 3)) (log.f64 x)) x))
(-.f64 (fma.f64 x (*.f64 x -1/2) (-.f64 (*.f64 -1/3 (pow.f64 x 3)) (log.f64 x))) x)
(-.f64 (-.f64 (*.f64 (*.f64 x x) (+.f64 (*.f64 x -1/3) -1/2)) (log.f64 x)) x)
(log.f64 -1)
(-.f64 (log.f64 -1) (/.f64 1 x))
(+.f64 (log.f64 -1) (/.f64 -1 x))
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (/.f64 1 x)))
(-.f64 (-.f64 (log.f64 -1) (/.f64 1/2 (*.f64 x x))) (/.f64 1 x))
(+.f64 (-.f64 (log.f64 -1) (/.f64 1/2 (*.f64 x x))) (/.f64 -1 x))
(+.f64 (log.f64 -1) (-.f64 (/.f64 -1 x) (/.f64 1/2 (*.f64 x x))))
(+.f64 (log.f64 -1) (fma.f64 -1/2 (pow.f64 x -2) (/.f64 -1 x)))
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x))))
(-.f64 (log.f64 -1) (+.f64 (+.f64 (/.f64 1/2 (*.f64 x x)) (/.f64 1/3 (pow.f64 x 3))) (/.f64 1 x)))
(-.f64 (log.f64 -1) (+.f64 (/.f64 1 x) (+.f64 (/.f64 1/2 (*.f64 x x)) (/.f64 1/3 (pow.f64 x 3)))))
(+.f64 (log.f64 -1) (-.f64 (-.f64 (/.f64 -1 x) (/.f64 1/2 (*.f64 x x))) (/.f64 1/3 (pow.f64 x 3))))
(+.f64 (log.f64 -1) (+.f64 (fma.f64 -1/2 (pow.f64 x -2) (/.f64 -1 x)) (/.f64 -1/3 (pow.f64 x 3))))
(log.f64 -1)
(-.f64 (log.f64 -1) (/.f64 1 x))
(+.f64 (log.f64 -1) (/.f64 -1 x))
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (/.f64 1 x)))
(-.f64 (-.f64 (log.f64 -1) (/.f64 1/2 (*.f64 x x))) (/.f64 1 x))
(+.f64 (-.f64 (log.f64 -1) (/.f64 1/2 (*.f64 x x))) (/.f64 -1 x))
(+.f64 (log.f64 -1) (-.f64 (/.f64 -1 x) (/.f64 1/2 (*.f64 x x))))
(+.f64 (log.f64 -1) (fma.f64 -1/2 (pow.f64 x -2) (/.f64 -1 x)))
(-.f64 (log.f64 -1) (+.f64 (*.f64 1/2 (/.f64 1 (pow.f64 x 2))) (+.f64 (*.f64 1/3 (/.f64 1 (pow.f64 x 3))) (/.f64 1 x))))
(-.f64 (log.f64 -1) (+.f64 (+.f64 (/.f64 1/2 (*.f64 x x)) (/.f64 1/3 (pow.f64 x 3))) (/.f64 1 x)))
(-.f64 (log.f64 -1) (+.f64 (/.f64 1 x) (+.f64 (/.f64 1/2 (*.f64 x x)) (/.f64 1/3 (pow.f64 x 3)))))
(+.f64 (log.f64 -1) (-.f64 (-.f64 (/.f64 -1 x) (/.f64 1/2 (*.f64 x x))) (/.f64 1/3 (pow.f64 x 3))))
(+.f64 (log.f64 -1) (+.f64 (fma.f64 -1/2 (pow.f64 x -2) (/.f64 -1 x)) (/.f64 -1/3 (pow.f64 x 3))))
(+.f64 0 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))))
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(+.f64 (log.f64 (pow.f64 (cbrt.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 2)) (log.f64 (cbrt.f64 (expm1.f64 (neg.f64 (log.f64 x))))))
(+.f64 (*.f64 2 (log.f64 (cbrt.f64 (expm1.f64 (neg.f64 (log.f64 x)))))) (log.f64 (cbrt.f64 (expm1.f64 (neg.f64 (log.f64 x))))))
(*.f64 3 (log.f64 (cbrt.f64 (expm1.f64 (neg.f64 (log.f64 x))))))
(+.f64 (log.f64 (sqrt.f64 (expm1.f64 (neg.f64 (log.f64 x))))) (log.f64 (sqrt.f64 (expm1.f64 (neg.f64 (log.f64 x))))))
(*.f64 2 (log.f64 (sqrt.f64 (expm1.f64 (neg.f64 (log.f64 x))))))
(-.f64 (log.f64 (+.f64 (pow.f64 x -3) -1)) (log.f64 (+.f64 (pow.f64 x -2) (+.f64 1 (/.f64 1 x)))))
(-.f64 (log.f64 (+.f64 -1 (pow.f64 x -3))) (log.f64 (+.f64 (pow.f64 x -2) (+.f64 1 (/.f64 1 x)))))
(-.f64 (log.f64 (+.f64 -1 (pow.f64 x -3))) (log.f64 (+.f64 1 (+.f64 (/.f64 1 x) (pow.f64 x -2)))))
(-.f64 (log.f64 (+.f64 -1 (pow.f64 x -3))) (log1p.f64 (+.f64 (/.f64 1 x) (pow.f64 x -2))))
(-.f64 (log.f64 (+.f64 (pow.f64 x -2) -1)) (log1p.f64 (/.f64 1 x)))
(-.f64 (log.f64 (+.f64 -1 (pow.f64 x -2))) (log1p.f64 (/.f64 1 x)))
(-.f64 (+.f64 1 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 1)
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(*.f64 1 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))))
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(*.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 1)
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(*.f64 (sqrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) (sqrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))))
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(*.f64 (cbrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) (pow.f64 (cbrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 2))
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(*.f64 (pow.f64 (cbrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 2) (cbrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))))
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(pow.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 1)
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(pow.f64 (sqrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 2)
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(pow.f64 (cbrt.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 3)
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(pow.f64 (pow.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 3) 1/3)
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(sqrt.f64 (pow.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 2))
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(cbrt.f64 (pow.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x)))) 3))
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(expm1.f64 (log1p.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))))
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(exp.f64 (log.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))))
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(exp.f64 (*.f64 (log.f64 (log.f64 (expm1.f64 (neg.f64 (log.f64 x))))) 1))
(log.f64 (expm1.f64 (neg.f64 (log.f64 x))))
(log1p.f64 (-.f64 (expm1.f64 (neg.f64 (log.f64 x))) 1))
(log1p.f64 (+.f64 (expm1.f64 (neg.f64 (log.f64 x))) -1))
(log1p.f64 (+.f64 -1 (expm1.f64 (neg.f64 (log.f64 x)))))

eval47.0ms (2.8%)

Compiler

Compiled 706 to 419 computations (40.7% saved)

prune8.0ms (0.5%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New56359
Fresh000
Picked011
Done000
Total56460
Error
0%
Counts
60 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.78%
(neg.f64 (-.f64 (neg.f64 (log.f64 x)) x))
1.69%
(neg.f64 (neg.f64 (log.f64 x)))
0.39%
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1)))
100%
(neg.f64 (log.f64 -1))
Compiler

Compiled 24 to 20 computations (16.7% saved)

localize4.0ms (0.2%)

Compiler

Compiled 7 to 7 computations (0% saved)

localize7.0ms (0.4%)

Compiler

Compiled 11 to 4 computations (63.6% saved)

localize8.0ms (0.5%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.02%
(-.f64 (neg.f64 (log.f64 x)) x)
Compiler

Compiled 18 to 5 computations (72.2% saved)

series8.0ms (0.5%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
4.0ms
x
@0
(-.f64 (neg.f64 (log.f64 x)) x)
3.0ms
x
@-inf
(-.f64 (neg.f64 (log.f64 x)) x)
1.0ms
x
@inf
(-.f64 (neg.f64 (log.f64 x)) x)

rewrite70.0ms (4.1%)

Algorithm
batch-egg-rewrite
Rules
1448×add-sqr-sqrt
1432×*-un-lft-identity
1340×add-cube-cbrt
1326×add-cbrt-cube
1312×add-exp-log
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0715
115011
2206911
Stop Event
node limit
Counts
1 → 38
Calls
Call 1
Inputs
(-.f64 (neg.f64 (log.f64 x)) x)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 x) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 x) (*.f64 (neg.f64 x) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (log.f64 x) x) (fma.f64 (neg.f64 x) 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (log.f64 x) x) (fma.f64 (neg.f64 (sqrt.f64 x)) (sqrt.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (log.f64 x) x) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 x) (log.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (log.f64 x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (log.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (log.f64 x) x)) (sqrt.f64 (-.f64 (log.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (log.f64 x) x)) (pow.f64 (cbrt.f64 (-.f64 (log.f64 x) x)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (log.f64 x) x)) 2) (cbrt.f64 (-.f64 (log.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x)) (/.f64 1 (+.f64 x (log.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 x (log.f64 x)) (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x)))) (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x)) (+.f64 x (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 (neg.f64 x) (neg.f64 x))) (-.f64 (log.f64 x) (neg.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (neg.f64 x) 3)) (+.f64 (pow.f64 (log.f64 x) 2) (-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (log.f64 x) (neg.f64 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x))) (-.f64 (log.f64 x) x))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3))) (neg.f64 (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (log.f64 x) x) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (log.f64 x) x)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (log.f64 x) x)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (log.f64 x) x) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (+.f64 x (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (log.f64 x) x) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 x (exp.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (log.f64 x) x) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (log.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (log.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (log.f64 x) x)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (log.f64 x) x)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (log.f64 x) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (log.f64 x)) 2) (cbrt.f64 (log.f64 x)) (neg.f64 x))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (log.f64 x) (neg.f64 x))))))

simplify60.0ms (3.5%)

Algorithm
egg-herbie
Rules
1404×associate-+r+
1098×associate-*r*
928×associate-+l+
884×associate-*l*
634×fma-def
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01131120
13011034
211391018
354921018
Stop Event
node limit
Counts
50 → 56
Calls
Call 1
Inputs
(*.f64 -1 (log.f64 x))
(+.f64 (*.f64 -1 x) (*.f64 -1 (log.f64 x)))
(+.f64 (*.f64 -1 x) (*.f64 -1 (log.f64 x)))
(+.f64 (*.f64 -1 x) (*.f64 -1 (log.f64 x)))
(*.f64 -1 x)
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 x))
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 x))
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 x))
(*.f64 -1 x)
(+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (*.f64 -1 x))
(+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (*.f64 -1 x))
(+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (*.f64 -1 x))
(+.f64 (log.f64 x) (neg.f64 x))
(+.f64 (log.f64 x) (*.f64 (neg.f64 x) 1))
(+.f64 (-.f64 (log.f64 x) x) (fma.f64 (neg.f64 x) 1 x))
(+.f64 (-.f64 (log.f64 x) x) (fma.f64 (neg.f64 (sqrt.f64 x)) (sqrt.f64 x) x))
(+.f64 (-.f64 (log.f64 x) x) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))
(+.f64 (neg.f64 x) (log.f64 x))
(*.f64 (-.f64 (log.f64 x) x) 1)
(*.f64 1 (-.f64 (log.f64 x) x))
(*.f64 (sqrt.f64 (-.f64 (log.f64 x) x)) (sqrt.f64 (-.f64 (log.f64 x) x)))
(*.f64 (cbrt.f64 (-.f64 (log.f64 x) x)) (pow.f64 (cbrt.f64 (-.f64 (log.f64 x) x)) 2))
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (log.f64 x) x)) 2) (cbrt.f64 (-.f64 (log.f64 x) x)))
(*.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x)) (/.f64 1 (+.f64 x (log.f64 x))))
(*.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x))))))
(*.f64 (+.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 x)))
(/.f64 1 (/.f64 (+.f64 x (log.f64 x)) (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x))))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x)))) (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3))))
(/.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x)) (+.f64 x (log.f64 x)))
(/.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x)))))
(/.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 (neg.f64 x) (neg.f64 x))) (-.f64 (log.f64 x) (neg.f64 x)))
(/.f64 (+.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (neg.f64 x) 3)) (+.f64 (pow.f64 (log.f64 x) 2) (-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (log.f64 x) (neg.f64 x)))))
(/.f64 (neg.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x))) (-.f64 (log.f64 x) x))
(/.f64 (neg.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3))) (neg.f64 (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x))))))
(pow.f64 (-.f64 (log.f64 x) x) 1)
(pow.f64 (sqrt.f64 (-.f64 (log.f64 x) x)) 2)
(pow.f64 (cbrt.f64 (-.f64 (log.f64 x) x)) 3)
(pow.f64 (pow.f64 (-.f64 (log.f64 x) x) 3) 1/3)
(neg.f64 (+.f64 x (log.f64 x)))
(sqrt.f64 (pow.f64 (-.f64 (log.f64 x) x) 2))
(log.f64 (/.f64 x (exp.f64 x)))
(cbrt.f64 (pow.f64 (-.f64 (log.f64 x) x) 3))
(expm1.f64 (log1p.f64 (-.f64 (log.f64 x) x)))
(exp.f64 (log.f64 (-.f64 (log.f64 x) x)))
(exp.f64 (*.f64 (log.f64 (-.f64 (log.f64 x) x)) 1))
(log1p.f64 (expm1.f64 (-.f64 (log.f64 x) x)))
(fma.f64 1 (log.f64 x) (neg.f64 x))
(fma.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 x)) (neg.f64 x))
(fma.f64 (pow.f64 (cbrt.f64 (log.f64 x)) 2) (cbrt.f64 (log.f64 x)) (neg.f64 x))
(fma.f64 -1 (log.f64 x) (neg.f64 x))
Outputs
(*.f64 -1 (log.f64 x))
(neg.f64 (log.f64 x))
(+.f64 (*.f64 -1 x) (*.f64 -1 (log.f64 x)))
(neg.f64 (+.f64 x (log.f64 x)))
(-.f64 (neg.f64 (log.f64 x)) x)
(+.f64 (*.f64 -1 x) (*.f64 -1 (log.f64 x)))
(neg.f64 (+.f64 x (log.f64 x)))
(-.f64 (neg.f64 (log.f64 x)) x)
(+.f64 (*.f64 -1 x) (*.f64 -1 (log.f64 x)))
(neg.f64 (+.f64 x (log.f64 x)))
(-.f64 (neg.f64 (log.f64 x)) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 x))
(neg.f64 (+.f64 x (log.f64 x)))
(-.f64 (neg.f64 (log.f64 x)) x)
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 x))
(neg.f64 (+.f64 x (log.f64 x)))
(-.f64 (neg.f64 (log.f64 x)) x)
(+.f64 (log.f64 (/.f64 1 x)) (*.f64 -1 x))
(neg.f64 (+.f64 x (log.f64 x)))
(-.f64 (neg.f64 (log.f64 x)) x)
(*.f64 -1 x)
(neg.f64 x)
(+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (*.f64 -1 x))
(*.f64 -1 (+.f64 (fma.f64 -1 (log.f64 (/.f64 -1 x)) (log.f64 -1)) x))
(-.f64 (neg.f64 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 x)))) x)
(-.f64 (-.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1)) x)
(-.f64 (log.f64 (/.f64 -1 x)) (+.f64 x (log.f64 -1)))
(+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (*.f64 -1 x))
(*.f64 -1 (+.f64 (fma.f64 -1 (log.f64 (/.f64 -1 x)) (log.f64 -1)) x))
(-.f64 (neg.f64 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 x)))) x)
(-.f64 (-.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1)) x)
(-.f64 (log.f64 (/.f64 -1 x)) (+.f64 x (log.f64 -1)))
(+.f64 (*.f64 -1 (+.f64 (*.f64 -1 (log.f64 (/.f64 -1 x))) (log.f64 -1))) (*.f64 -1 x))
(*.f64 -1 (+.f64 (fma.f64 -1 (log.f64 (/.f64 -1 x)) (log.f64 -1)) x))
(-.f64 (neg.f64 (-.f64 (log.f64 -1) (log.f64 (/.f64 -1 x)))) x)
(-.f64 (-.f64 (log.f64 (/.f64 -1 x)) (log.f64 -1)) x)
(-.f64 (log.f64 (/.f64 -1 x)) (+.f64 x (log.f64 -1)))
(+.f64 (log.f64 x) (neg.f64 x))
(-.f64 (log.f64 x) x)
(+.f64 (log.f64 x) (*.f64 (neg.f64 x) 1))
(-.f64 (log.f64 x) x)
(+.f64 (-.f64 (log.f64 x) x) (fma.f64 (neg.f64 x) 1 x))
(-.f64 (log.f64 x) x)
(+.f64 (-.f64 (log.f64 x) x) (fma.f64 (neg.f64 (sqrt.f64 x)) (sqrt.f64 x) x))
(-.f64 (log.f64 x) x)
(+.f64 (-.f64 (log.f64 x) x) (fma.f64 (neg.f64 (cbrt.f64 x)) (pow.f64 (cbrt.f64 x) 2) x))
(-.f64 (log.f64 x) x)
(+.f64 (neg.f64 x) (log.f64 x))
(-.f64 (log.f64 x) x)
(*.f64 (-.f64 (log.f64 x) x) 1)
(-.f64 (log.f64 x) x)
(*.f64 1 (-.f64 (log.f64 x) x))
(-.f64 (log.f64 x) x)
(*.f64 (sqrt.f64 (-.f64 (log.f64 x) x)) (sqrt.f64 (-.f64 (log.f64 x) x)))
(-.f64 (log.f64 x) x)
(*.f64 (cbrt.f64 (-.f64 (log.f64 x) x)) (pow.f64 (cbrt.f64 (-.f64 (log.f64 x) x)) 2))
(-.f64 (log.f64 x) x)
(*.f64 (pow.f64 (cbrt.f64 (-.f64 (log.f64 x) x)) 2) (cbrt.f64 (-.f64 (log.f64 x) x)))
(-.f64 (log.f64 x) x)
(*.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x)) (/.f64 1 (+.f64 x (log.f64 x))))
(/.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x)) (+.f64 x (log.f64 x)))
(*.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x))))))
(/.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3)) (fma.f64 x (+.f64 x (log.f64 x)) (pow.f64 (log.f64 x) 2)))
(*.f64 (+.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 x)) (-.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 x)))
(*.f64 (+.f64 (sqrt.f64 x) (sqrt.f64 (log.f64 x))) (-.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 x)))
(/.f64 1 (/.f64 (+.f64 x (log.f64 x)) (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x))))
(*.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x)) (/.f64 1 (+.f64 x (log.f64 x))))
(/.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x)) (+.f64 x (log.f64 x)))
(/.f64 1 (/.f64 (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x)))) (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3))))
(*.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x))))))
(/.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3)) (fma.f64 x (+.f64 x (log.f64 x)) (pow.f64 (log.f64 x) 2)))
(/.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x)) (+.f64 x (log.f64 x)))
(*.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x)) (/.f64 1 (+.f64 x (log.f64 x))))
(/.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3)) (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x)))))
(*.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x))))))
(/.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3)) (fma.f64 x (+.f64 x (log.f64 x)) (pow.f64 (log.f64 x) 2)))
(/.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 (neg.f64 x) (neg.f64 x))) (-.f64 (log.f64 x) (neg.f64 x)))
(*.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x)) (/.f64 1 (+.f64 x (log.f64 x))))
(/.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x)) (+.f64 x (log.f64 x)))
(/.f64 (+.f64 (pow.f64 (log.f64 x) 3) (pow.f64 (neg.f64 x) 3)) (+.f64 (pow.f64 (log.f64 x) 2) (-.f64 (*.f64 (neg.f64 x) (neg.f64 x)) (*.f64 (log.f64 x) (neg.f64 x)))))
(*.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x))))))
(/.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3)) (fma.f64 x (+.f64 x (log.f64 x)) (pow.f64 (log.f64 x) 2)))
(/.f64 (neg.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x))) (-.f64 (log.f64 x) x))
(neg.f64 (/.f64 (-.f64 (pow.f64 (log.f64 x) 2) (*.f64 x x)) (-.f64 (log.f64 x) x)))
(/.f64 (+.f64 (neg.f64 (pow.f64 (log.f64 x) 2)) (*.f64 x x)) (-.f64 (log.f64 x) x))
(/.f64 (-.f64 (*.f64 x x) (pow.f64 (log.f64 x) 2)) (-.f64 (log.f64 x) x))
(/.f64 (neg.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3))) (neg.f64 (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x))))))
(*.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3)) (/.f64 1 (+.f64 (pow.f64 (log.f64 x) 2) (*.f64 x (+.f64 x (log.f64 x))))))
(/.f64 (-.f64 (pow.f64 (log.f64 x) 3) (pow.f64 x 3)) (fma.f64 x (+.f64 x (log.f64 x)) (pow.f64 (log.f64 x) 2)))
(pow.f64 (-.f64 (log.f64 x) x) 1)
(-.f64 (log.f64 x) x)
(pow.f64 (sqrt.f64 (-.f64 (log.f64 x) x)) 2)
(-.f64 (log.f64 x) x)
(pow.f64 (cbrt.f64 (-.f64 (log.f64 x) x)) 3)
(-.f64 (log.f64 x) x)
(pow.f64 (pow.f64 (-.f64 (log.f64 x) x) 3) 1/3)
(-.f64 (log.f64 x) x)
(neg.f64 (+.f64 x (log.f64 x)))
(-.f64 (neg.f64 (log.f64 x)) x)
(sqrt.f64 (pow.f64 (-.f64 (log.f64 x) x) 2))
(-.f64 (log.f64 x) x)
(log.f64 (/.f64 x (exp.f64 x)))
(-.f64 (log.f64 x) x)
(cbrt.f64 (pow.f64 (-.f64 (log.f64 x) x) 3))
(-.f64 (log.f64 x) x)
(expm1.f64 (log1p.f64 (-.f64 (log.f64 x) x)))
(-.f64 (log.f64 x) x)
(exp.f64 (log.f64 (-.f64 (log.f64 x) x)))
(-.f64 (log.f64 x) x)
(exp.f64 (*.f64 (log.f64 (-.f64 (log.f64 x) x)) 1))
(-.f64 (log.f64 x) x)
(log1p.f64 (expm1.f64 (-.f64 (log.f64 x) x)))
(-.f64 (log.f64 x) x)
(fma.f64 1 (log.f64 x) (neg.f64 x))
(-.f64 (log.f64 x) x)
(fma.f64 (sqrt.f64 (log.f64 x)) (sqrt.f64 (log.f64 x)) (neg.f64 x))
(-.f64 (log.f64 x) x)
(fma.f64 (pow.f64 (cbrt.f64 (log.f64 x)) 2) (cbrt.f64 (log.f64 x)) (neg.f64 x))
(-.f64 (log.f64 x) x)
(fma.f64 -1 (log.f64 x) (neg.f64 x))
(neg.f64 (+.f64 x (log.f64 x)))
(-.f64 (neg.f64 (log.f64 x)) x)

eval10.0ms (0.6%)

Compiler

Compiled 632 to 303 computations (52.1% saved)

prune8.0ms (0.5%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New55156
Fresh000
Picked011
Done123
Total56460
Error
0%
Counts
60 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.78%
(neg.f64 (-.f64 (neg.f64 (log.f64 x)) x))
1.69%
(neg.f64 (neg.f64 (log.f64 x)))
97.73%
(neg.f64 (neg.f64 x))
0.39%
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1)))
Compiler

Compiled 24 to 19 computations (20.8% saved)

localize3.0ms (0.2%)

Compiler

Compiled 7 to 3 computations (57.1% saved)

eval0.0ms (0%)

Compiler

Compiled 1 to 1 computations (0% saved)

prune2.0ms (0.1%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New000
Fresh000
Picked011
Done033
Total044
Error
0%
Counts
4 → 4
Alt Table
Click to see full alt table
StatusErrorProgram
0.78%
(neg.f64 (-.f64 (neg.f64 (log.f64 x)) x))
1.69%
(neg.f64 (neg.f64 (log.f64 x)))
97.73%
(neg.f64 (neg.f64 x))
0.39%
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1)))
Compiler

Compiled 24 to 19 computations (20.8% saved)

regimes47.0ms (2.8%)

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

5 calls:

30.0ms
(log.f64 (-.f64 (/.f64 1 x) 1))
4.0ms
(-.f64 (/.f64 1 x) 1)
4.0ms
(/.f64 1 x)
4.0ms
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1)))
4.0ms
x
Results
ErrorSegmentsBranch
0.39%1x
0.39%1(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1)))
0.39%1(log.f64 (-.f64 (/.f64 1 x) 1))
0.39%1(-.f64 (/.f64 1 x) 1)
0.39%1(/.f64 1 x)
Compiler

Compiled 51 to 39 computations (23.5% saved)

regimes47.0ms (2.8%)

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

1 calls:

46.0ms
x
Results
ErrorSegmentsBranch
0.78%1x
Compiler

Compiled 19 to 12 computations (36.8% saved)

regimes4.0ms (0.2%)

Counts
3 → 1
Calls
Call 1
Inputs
(neg.f64 (neg.f64 x))
(neg.f64 (log.f64 -1))
(neg.f64 (neg.f64 (log.f64 x)))
Outputs
(neg.f64 (neg.f64 (log.f64 x)))
Calls

1 calls:

3.0ms
x
Results
ErrorSegmentsBranch
1.69%1x
Compiler

Compiled 13 to 10 computations (23.1% saved)

regimes4.0ms (0.2%)

Accuracy

Total -1.5b remaining (-2.3%)

Threshold costs -1.5b (-2.3%)

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

1 calls:

3.0ms
x
Results
ErrorSegmentsBranch
97.73%1x
Compiler

Compiled 9 to 7 computations (22.2% saved)

simplify7.0ms (0.4%)

Algorithm
egg-herbie
Rules
20×+-commutative
20×*-commutative
16×distribute-lft-neg-in
14×neg-sub0
12×neg-mul-1
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01646
13438
25538
37538
47938
Stop Event
done
saturated
Calls
Call 1
Inputs
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1)))
(neg.f64 (-.f64 (neg.f64 (log.f64 x)) x))
(neg.f64 (neg.f64 (log.f64 x)))
(neg.f64 (neg.f64 x))
Outputs
(neg.f64 (log.f64 (-.f64 (/.f64 1 x) 1)))
(neg.f64 (log.f64 (+.f64 (/.f64 1 x) -1)))
(neg.f64 (-.f64 (neg.f64 (log.f64 x)) x))
(+.f64 (log.f64 x) x)
(+.f64 x (log.f64 x))
(neg.f64 (neg.f64 (log.f64 x)))
(log.f64 x)
(neg.f64 (neg.f64 x))
x
Compiler

Compiled 18 to 13 computations (27.8% saved)

soundness0.0ms (0%)

end43.0ms (2.6%)

Compiler

Compiled 15 to 9 computations (40% saved)

Profiling

Loading profile data...