Details

Time bar (total: 5.1s)

analyze6.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%100%0%0%0%0%2
50%50%50%0%0%0%0%3
62.5%62.5%37.5%0%0%0%0%4
81.3%81.2%18.7%0%0%0%0%5
90.6%90.6%9.4%0%0%0%0%6
95.3%95.3%4.7%0%0%0%0%7
97.7%97.6%2.3%0%0%0%0%8
98.8%98.8%1.2%0%0%0%0%9
99.4%99.4%0.6%0%0%0%0%10
99.7%99.7%0.3%0%0%0%0%11
99.9%99.8%0.1%0%0%0%0%12
Compiler

Compiled 11 to 9 computations (18.2% saved)

sample1.7s (33.9%)

Results
800.0ms5724×body256valid
757.0ms2087×body512valid
150.0ms445×body1024valid
0.0msbody256infinite
Bogosity

preprocess42.0ms (0.8%)

Algorithm
egg-herbie
Rules
39×fma-def_binary64
32×fma-neg_binary64
15×cancel-sign-sub-inv_binary64
12×sub-neg_binary64
10×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
11213
21813
32613
43613
55413
69113
712513
817113
920713
1023313
1123513
011
Stop Event
saturated
saturated
Calls
Call 1
Inputs
0
Outputs
0
Call 2
Inputs
(-.f64 (/.f64 1 (+.f64 x 1)) (/.f64 1 x))
Outputs
(-.f64 (/.f64 1 (+.f64 x 1)) (/.f64 1 x))
(-.f64 (/.f64 1 (+.f64 1 x)) (/.f64 1 x))
(+.f64 (/.f64 1 (+.f64 1 x)) (/.f64 -1 x))
(-.f64 (/.f64 -1 x) (/.f64 -1 (+.f64 1 x)))
Compiler

Compiled 11 to 9 computations (18.2% saved)

simplify23.0ms (0.4%)

Algorithm
egg-herbie
Rules
39×fma-def_binary64
32×fma-neg_binary64
15×cancel-sign-sub-inv_binary64
12×sub-neg_binary64
10×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0713
11213
21813
32613
43613
55413
69113
712513
817113
920713
1023313
1123513
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(-.f64 (/.f64 1 (+.f64 x 1)) (/.f64 1 x))
Outputs
(-.f64 (/.f64 1 (+.f64 x 1)) (/.f64 1 x))
(-.f64 (/.f64 1 (+.f64 1 x)) (/.f64 1 x))
(+.f64 (/.f64 1 (+.f64 1 x)) (/.f64 -1 x))
(-.f64 (/.f64 -1 x) (/.f64 -1 (+.f64 1 x)))

eval1.0ms (0%)

Compiler

Compiled 19 to 15 computations (21.1% saved)

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

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

Compiled 10 to 8 computations (20% saved)

localize26.0ms (0.5%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(/.f64 1 (+.f64 x 1))
2.9b
(-.f64 (/.f64 1 (+.f64 x 1)) (/.f64 1 x))
Compiler

Compiled 23 to 17 computations (26.1% saved)

series5.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(-.f64 (/.f64 1 (+.f64 x 1)) (/.f64 1 x))
1.0ms
x
@-inf
(-.f64 (/.f64 1 (+.f64 x 1)) (/.f64 1 x))
1.0ms
x
@0
(-.f64 (/.f64 1 (+.f64 x 1)) (/.f64 1 x))
1.0ms
x
@inf
(/.f64 1 (+.f64 x 1))
1.0ms
x
@0
(/.f64 1 (+.f64 x 1))

rewrite94.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
957×pow1_binary64
896×log1p-expm1-u_binary64
896×expm1-log1p-u_binary64
895×add-log-exp_binary64
89×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify85.0ms (1.7%)

Algorithm
egg-herbie
Rules
609×fma-neg_binary64
520×cancel-sign-sub-inv_binary64
419×associate-/r*_binary64
338×sub-neg_binary64
332×fma-def_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
037380
198372
2241366
3731364
42517363
57643363
Stop Event
node limit
Counts
91 → 96
Calls
Call 1
Inputs
(/.f64 -1 x)
(-.f64 1 (/.f64 1 x))
(-.f64 (+.f64 1 (*.f64 -1 x)) (/.f64 1 x))
(-.f64 (+.f64 1 (+.f64 (*.f64 -1 x) (pow.f64 x 2))) (/.f64 1 x))
(/.f64 -1 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(/.f64 -1 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
1
(+.f64 1 (*.f64 -1 x))
(+.f64 1 (+.f64 (*.f64 -1 x) (pow.f64 x 2)))
(+.f64 (*.f64 -1 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 -1 x) (pow.f64 x 2))))
(/.f64 1 x)
(-.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(/.f64 1 x)
(-.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
Outputs
(/.f64 -1 x)
(-.f64 1 (/.f64 1 x))
(+.f64 1 (/.f64 -1 x))
(-.f64 (+.f64 1 (*.f64 -1 x)) (/.f64 1 x))
(-.f64 (+.f64 1 (neg.f64 x)) (/.f64 1 x))
(+.f64 (-.f64 1 x) (/.f64 -1 x))
(+.f64 1 (-.f64 (/.f64 -1 x) x))
(-.f64 (+.f64 1 (+.f64 (*.f64 -1 x) (pow.f64 x 2))) (/.f64 1 x))
(-.f64 (+.f64 1 (fma.f64 -1 x (*.f64 x x))) (/.f64 1 x))
(+.f64 (-.f64 (*.f64 x x) x) (-.f64 1 (/.f64 1 x)))
(+.f64 1 (fma.f64 x (+.f64 -1 x) (/.f64 -1 x)))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 (/.f64 -1 x) x)
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 -1 x) x))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4))))
(+.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4))) (/.f64 -1 (*.f64 x x)))
(+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 -1 x) x)) (/.f64 -1 (pow.f64 x 4)))
(+.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 4)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 (/.f64 -1 x) x) (/.f64 1 (pow.f64 x 4))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 1 (pow.f64 x 5)) (-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 5))) (-.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 (/.f64 -1 x) x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 -1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 -1 (*.f64 x x)))))
(+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 (/.f64 -1 x) x) (/.f64 1 (pow.f64 x 4)))) (/.f64 1 (pow.f64 x 5)))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 (/.f64 -1 x) x)
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 -1 x) x))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4))))
(+.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4))) (/.f64 -1 (*.f64 x x)))
(+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 -1 x) x)) (/.f64 -1 (pow.f64 x 4)))
(+.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 4)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 (/.f64 -1 x) x) (/.f64 1 (pow.f64 x 4))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 1 (pow.f64 x 5)) (-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 5))) (-.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 (/.f64 -1 x) x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 -1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 -1 (*.f64 x x)))))
(+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 (/.f64 -1 x) x) (/.f64 1 (pow.f64 x 4)))) (/.f64 1 (pow.f64 x 5)))
1
(+.f64 1 (*.f64 -1 x))
(+.f64 1 (neg.f64 x))
(-.f64 1 x)
(+.f64 1 (+.f64 (*.f64 -1 x) (pow.f64 x 2)))
(+.f64 1 (fma.f64 -1 x (*.f64 x x)))
(+.f64 1 (-.f64 (*.f64 x x) x))
(-.f64 (fma.f64 x x 1) x)
(fma.f64 x (+.f64 -1 x) 1)
(+.f64 (*.f64 -1 (pow.f64 x 3)) (+.f64 1 (+.f64 (*.f64 -1 x) (pow.f64 x 2))))
(fma.f64 -1 (pow.f64 x 3) (+.f64 1 (fma.f64 -1 x (*.f64 x x))))
(-.f64 (+.f64 1 (-.f64 (*.f64 x x) x)) (pow.f64 x 3))
(fma.f64 x (+.f64 -1 x) (-.f64 1 (pow.f64 x 3)))
(fma.f64 x (-.f64 x (fma.f64 x x 1)) 1)
(*.f64 (fma.f64 x x 1) (-.f64 1 x))
(/.f64 1 x)
(-.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 x) (/.f64 -1 (*.f64 x x)))
(+.f64 (/.f64 1 x) (/.f64 (/.f64 -1 x) x))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x))))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 -1 x) x)))
(+.f64 (/.f64 1 x) (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x))))
(+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 (/.f64 -1 x) x)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (-.f64 (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))) (/.f64 1 (pow.f64 x 4))) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (+.f64 (/.f64 1 x) (/.f64 -1 (*.f64 x x))) (/.f64 1 (pow.f64 x 4))))
(+.f64 (/.f64 1 x) (+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 -1 x) x)) (/.f64 -1 (pow.f64 x 4))))
(+.f64 (/.f64 1 x) (+.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 4))))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 (/.f64 -1 x) x) (/.f64 1 (pow.f64 x 4)))))
(/.f64 1 x)
(-.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 x) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 x) (/.f64 -1 (*.f64 x x)))
(+.f64 (/.f64 1 x) (/.f64 (/.f64 -1 x) x))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x))))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 -1 x) x)))
(+.f64 (/.f64 1 x) (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x))))
(+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 x) (/.f64 (/.f64 -1 x) x)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (-.f64 (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))) (/.f64 1 (pow.f64 x 4))) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (+.f64 (/.f64 1 x) (/.f64 -1 (*.f64 x x))) (/.f64 1 (pow.f64 x 4))))
(+.f64 (/.f64 1 x) (+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 -1 x) x)) (/.f64 -1 (pow.f64 x 4))))
(+.f64 (/.f64 1 x) (+.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 4))))
(+.f64 (/.f64 1 x) (+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 (/.f64 -1 x) x) (/.f64 1 (pow.f64 x 4)))))

eval61.0ms (1.2%)

Compiler

Compiled 1386 to 1081 computations (22% saved)

prune37.0ms (0.7%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New88896
Fresh000
Picked011
Done000
Total88997
Error
0.0b
Counts
97 → 9
Alt Table
Click to see full alt table
StatusErrorProgram
30.1b
(/.f64 -1 (pow.f64 x 2))
14.5b
(-.f64 (/.f64 1 (+.f64 x 1)) (/.f64 1 x))
33.5b
(-.f64 (-.f64 1 x) (/.f64 1 x))
33.5b
(-.f64 1 (/.f64 1 x))
29.9b
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 -1 x) x))
13.7b
(/.f64 (/.f64 (-.f64 x (+.f64 1 x)) (+.f64 1 x)) x)
32.4b
(/.f64 -1 x)
30.1b
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
29.8b
(/.f64 (/.f64 -1 x) x)
Compiler

Compiled 142 to 108 computations (23.9% saved)

localize26.0ms (0.5%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (-.f64 x (+.f64 1 x)) (+.f64 1 x))
0.0b
(/.f64 (/.f64 (-.f64 x (+.f64 1 x)) (+.f64 1 x)) x)
2.2b
(-.f64 x (+.f64 1 x))
Compiler

Compiled 31 to 20 computations (35.5% saved)

series5.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@inf
(/.f64 (-.f64 x (+.f64 1 x)) (+.f64 1 x))
1.0ms
x
@-inf
(/.f64 (-.f64 x (+.f64 1 x)) (+.f64 1 x))
1.0ms
x
@0
(-.f64 x (+.f64 1 x))
1.0ms
x
@inf
(/.f64 (/.f64 (-.f64 x (+.f64 1 x)) (+.f64 1 x)) x)
1.0ms
x
@0
(/.f64 (/.f64 (-.f64 x (+.f64 1 x)) (+.f64 1 x)) x)

rewrite145.0ms (2.8%)

Algorithm
batch-egg-rewrite
Rules
623×prod-diff_binary64
459×log-prod_binary64
327×fma-def_binary64
304×pow-prod-down_binary64
232×pow2_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify49.0ms (1%)

Algorithm
egg-herbie
Rules
661×fma-neg_binary64
628×associate-*l*_binary64
504×cancel-sign-sub-inv_binary64
458×associate-/r*_binary64
337×sub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
042389
1114384
2265375
3748375
42491375
Stop Event
node limit
Counts
262 → 254
Calls
Call 1
Inputs
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
(/.f64 -1 x)
(-.f64 1 (/.f64 1 x))
(-.f64 (+.f64 1 (*.f64 -1 x)) (/.f64 1 x))
(-.f64 (+.f64 1 (+.f64 (*.f64 -1 x) (pow.f64 x 2))) (/.f64 1 x))
(/.f64 -1 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(/.f64 -1 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
-1
(-.f64 x 1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) x) 1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) (+.f64 (pow.f64 x 3) x)) 1)
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
Outputs
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
(/.f64 -1 x)
(-.f64 1 (/.f64 1 x))
(+.f64 1 (/.f64 -1 x))
(-.f64 (+.f64 1 (*.f64 -1 x)) (/.f64 1 x))
(-.f64 (+.f64 1 (neg.f64 x)) (/.f64 1 x))
(+.f64 (-.f64 1 x) (/.f64 -1 x))
(+.f64 1 (-.f64 (/.f64 -1 x) x))
(-.f64 (+.f64 1 (+.f64 (*.f64 -1 x) (pow.f64 x 2))) (/.f64 1 x))
(-.f64 (+.f64 1 (fma.f64 -1 x (*.f64 x x))) (/.f64 1 x))
(+.f64 (-.f64 (*.f64 x x) x) (-.f64 1 (/.f64 1 x)))
(+.f64 1 (fma.f64 x (+.f64 -1 x) (/.f64 -1 x)))
(+.f64 (-.f64 (fma.f64 x x 1) x) (/.f64 -1 x))
(+.f64 (-.f64 1 x) (fma.f64 x x (/.f64 -1 x)))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 1 x) x))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4))))
(+.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4))) (/.f64 -1 (*.f64 x x)))
(+.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 1 x) x)) (/.f64 -1 (pow.f64 x 4)))
(+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 4)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 1 (pow.f64 x 5)) (-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 -1 (pow.f64 x 4))) (/.f64 -1 (*.f64 x x))))
(+.f64 (+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 4))) (/.f64 1 (pow.f64 x 5)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 -1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 -1 (pow.f64 x 4)))))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 1 x) x))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4))))
(+.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4))) (/.f64 -1 (*.f64 x x)))
(+.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 1 x) x)) (/.f64 -1 (pow.f64 x 4)))
(+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 4)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 1 (pow.f64 x 5)) (-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 -1 (pow.f64 x 4))) (/.f64 -1 (*.f64 x x))))
(+.f64 (+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 4))) (/.f64 1 (pow.f64 x 5)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 -1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 -1 (pow.f64 x 4)))))
-1
(-.f64 x 1)
(+.f64 x -1)
(+.f64 -1 x)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) x) 1)
(+.f64 (fma.f64 -1 (*.f64 x x) x) -1)
(+.f64 -1 (-.f64 x (*.f64 x x)))
(-.f64 x (fma.f64 x x 1))
(fma.f64 x (-.f64 1 x) -1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) (+.f64 (pow.f64 x 3) x)) 1)
(+.f64 (fma.f64 -1 (*.f64 x x) (+.f64 x (pow.f64 x 3))) -1)
(+.f64 -1 (+.f64 x (*.f64 (*.f64 x x) (+.f64 -1 x))))
(*.f64 (fma.f64 x x 1) (+.f64 -1 x))
(*.f64 (+.f64 -1 x) (fma.f64 x x 1))
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(+.f64 (/.f64 (/.f64 1 x) x) (/.f64 -1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(-.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))
(+.f64 (-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 3))) (/.f64 -1 x))
(+.f64 (/.f64 (/.f64 1 x) x) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (-.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(+.f64 (/.f64 1 (*.f64 x x)) (-.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(+.f64 (/.f64 (/.f64 1 x) x) (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3)))))
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(+.f64 (/.f64 (/.f64 1 x) x) (/.f64 -1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(-.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))
(+.f64 (-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 3))) (/.f64 -1 x))
(+.f64 (/.f64 (/.f64 1 x) x) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (-.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(+.f64 (/.f64 1 (*.f64 x x)) (-.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(+.f64 (/.f64 (/.f64 1 x) x) (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3)))))

localize3.0ms (0.1%)

Compiler

Compiled 6 to 4 computations (33.3% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (/.f64 -1 x) x)
Compiler

Compiled 11 to 7 computations (36.4% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite72.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
521×pow1_binary64
500×add-sqr-sqrt_binary64
482×add-log-exp_binary64
482×log1p-expm1-u_binary64
482×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify167.0ms (3.3%)

Algorithm
egg-herbie
Rules
1140×associate-/r*_binary64
1082×sqr-pow_binary64
560×cube-prod_binary64
554×fabs-mul_binary64
523×pow-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0684
11184
22084
33584
47584
522484
683484
7204384
8220984
9239384
10260184
11289884
12329184
13377284
14434084
15502884
16586384
17625584
18654384
19681984
20689184
21692784
Stop Event
node limit
Counts
45 → 35
Calls
Call 1
Inputs
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
Outputs
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(/.f64 -1 (pow.f64 x 2))
Compiler

Compiled 12 to 9 computations (25% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

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

rewrite42.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
497×pow1_binary64
482×add-sqr-sqrt_binary64
459×add-log-exp_binary64
459×log1p-expm1-u_binary64
459×expm1-log1p-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
000
Stop Event
saturated
Counts
21 → 21
Calls
Call 1
Inputs
Outputs

localize15.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(/.f64 1 (pow.f64 x 2))
0.4b
(/.f64 1 (pow.f64 x 3))
7.6b
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
Compiler

Compiled 32 to 25 computations (21.9% saved)

series3.0ms (0.1%)

Counts
3 → 3
Calls

9 calls:

TimeVariablePointExpression
1.0ms
x
@0
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
0.0ms
x
@0
(/.f64 1 (pow.f64 x 3))
0.0ms
x
@-inf
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
0.0ms
x
@0
(/.f64 1 (pow.f64 x 2))
0.0ms
x
@inf
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))

rewrite79.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
764×prod-diff_binary64
404×log-prod_binary64
282×fma-def_binary64
265×pow-prod-down_binary64
242×pow2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01018
123518
2300418
Stop Event
node limit
Counts
3 → 190
Calls
Call 1
Inputs
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(/.f64 1 (pow.f64 x 3))
(/.f64 1 (pow.f64 x 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x -3) (neg.f64 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 x -3) (*.f64 (neg.f64 (pow.f64 x -2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) (fma.f64 (neg.f64 (pow.f64 x -2)) 1 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (cbrt.f64 (pow.f64 x -4)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) (+.f64 (neg.f64 (pow.f64 x -2)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) (fma.f64 -1 (pow.f64 x -2) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) (fma.f64 (neg.f64 (cbrt.f64 (pow.f64 x -4))) (pow.f64 (cbrt.f64 x) -2) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (-.f64 (pow.f64 x -3) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (pow.f64 x -2)) (pow.f64 x -3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (pow.f64 x -3) (neg.f64 (*.f64 (neg.f64 (pow.f64 x -2)) -1))) (fma.f64 (neg.f64 (neg.f64 (pow.f64 x -2))) -1 (*.f64 (neg.f64 (pow.f64 x -2)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 x -3) 1 (neg.f64 (*.f64 (neg.f64 (pow.f64 x -2)) -1))) (fma.f64 (neg.f64 (neg.f64 (pow.f64 x -2))) -1 (*.f64 (neg.f64 (pow.f64 x -2)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 x -2) (/.f64 1 x) (neg.f64 (*.f64 (neg.f64 (pow.f64 x -2)) -1))) (fma.f64 (neg.f64 (neg.f64 (pow.f64 x -2))) -1 (*.f64 (neg.f64 (pow.f64 x -2)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 x) (pow.f64 x -2) (neg.f64 (*.f64 (neg.f64 (pow.f64 x -2)) -1))) (fma.f64 (neg.f64 (neg.f64 (pow.f64 x -2))) -1 (*.f64 (neg.f64 (pow.f64 x -2)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 x -3/2) (pow.f64 x -3/2) (neg.f64 (*.f64 (neg.f64 (pow.f64 x -2)) -1))) (fma.f64 (neg.f64 (neg.f64 (pow.f64 x -2))) -1 (*.f64 (neg.f64 (pow.f64 x -2)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 -1 (/.f64 1 (neg.f64 (pow.f64 x 3))) (neg.f64 (*.f64 (neg.f64 (pow.f64 x -2)) -1))) (fma.f64 (neg.f64 (neg.f64 (pow.f64 x -2))) -1 (*.f64 (neg.f64 (pow.f64 x -2)) -1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 1 (pow.f64 x -3) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 x) -2) (pow.f64 (cbrt.f64 x) -4)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (pow.f64 (cbrt.f64 x) -4) (*.f64 (pow.f64 (cbrt.f64 x) -2) (pow.f64 (cbrt.f64 x) -4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 x -3) 1 (neg.f64 (*.f64 (pow.f64 (cbrt.f64 x) -2) (pow.f64 (cbrt.f64 x) -4)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (pow.f64 (cbrt.f64 x) -4) (*.f64 (pow.f64 (cbrt.f64 x) -2) (pow.f64 (cbrt.f64 x) -4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 x -2) (/.f64 1 x) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 x) -2) (pow.f64 (cbrt.f64 x) -4)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (pow.f64 (cbrt.f64 x) -4) (*.f64 (pow.f64 (cbrt.f64 x) -2) (pow.f64 (cbrt.f64 x) -4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (/.f64 1 x) (pow.f64 x -2) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 x) -2) (pow.f64 (cbrt.f64 x) -4)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (pow.f64 (cbrt.f64 x) -4) (*.f64 (pow.f64 (cbrt.f64 x) -2) (pow.f64 (cbrt.f64 x) -4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (pow.f64 x -3/2) (pow.f64 x -3/2) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 x) -2) (pow.f64 (cbrt.f64 x) -4)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (pow.f64 (cbrt.f64 x) -4) (*.f64 (pow.f64 (cbrt.f64 x) -2) (pow.f64 (cbrt.f64 x) -4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 -1 (/.f64 1 (neg.f64 (pow.f64 x 3))) (neg.f64 (*.f64 (pow.f64 (cbrt.f64 x) -2) (pow.f64 (cbrt.f64 x) -4)))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (pow.f64 (cbrt.f64 x) -4) (*.f64 (pow.f64 (cbrt.f64 x) -2) (pow.f64 (cbrt.f64 x) -4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))))) (log.f64 (sqrt.f64 (exp.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 (pow.f64 x -3) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) (pow.f64 (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) 2) (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) (sqrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 x x) (pow.f64 x 3)) (pow.f64 x -5))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x -9) (pow.f64 x -6)) (/.f64 1 (+.f64 (+.f64 (pow.f64 x -6) (pow.f64 x -4)) (pow.f64 x -5))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 x -6) (pow.f64 x -4)) (/.f64 1 (+.f64 (pow.f64 x -3) (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 x -3/2) (/.f64 1 x)) (-.f64 (pow.f64 x -3/2) (/.f64 1 x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (pow.f64 x 5) (-.f64 (*.f64 x x) (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (+.f64 (pow.f64 x -6) (pow.f64 x -4)) (pow.f64 x -5)) (-.f64 (pow.f64 x -9) (pow.f64 x -6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 x -3) (pow.f64 x -2)) (-.f64 (pow.f64 x -6) (pow.f64 x -4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (pow.f64 x 3)) (pow.f64 x 5))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x -9) (pow.f64 x -6)) (+.f64 (+.f64 (pow.f64 x -6) (pow.f64 x -4)) (pow.f64 x -5)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x -6) (pow.f64 x -4)) (+.f64 (pow.f64 x -3) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 x x) (pow.f64 x 3))) (neg.f64 (pow.f64 x 5)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 x -9) (pow.f64 x -6))) (neg.f64 (+.f64 (+.f64 (pow.f64 x -6) (pow.f64 x -4)) (pow.f64 x -5))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 x -6) (pow.f64 x -4))) (neg.f64 (+.f64 (pow.f64 x -3) (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x (neg.f64 x)) (*.f64 (neg.f64 (pow.f64 x 3)) 1)) (*.f64 (neg.f64 (pow.f64 x 3)) (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x (neg.f64 x)) (*.f64 (pow.f64 x 3) -1)) (*.f64 (pow.f64 x 3) (*.f64 x (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 -1 (*.f64 x (neg.f64 x))) (*.f64 (neg.f64 (pow.f64 x 3)) -1)) (*.f64 (neg.f64 (pow.f64 x 3)) (*.f64 x (neg.f64 x))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 x -9) (pow.f64 (neg.f64 (pow.f64 x -2)) 3)) (+.f64 (pow.f64 x -6) (-.f64 (pow.f64 (neg.f64 (pow.f64 x -2)) 2) (*.f64 (pow.f64 x -3) (neg.f64 (pow.f64 x -2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x -6) (pow.f64 (neg.f64 (pow.f64 x -2)) 2)) (-.f64 (pow.f64 x -3) (neg.f64 (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (-.f64 (*.f64 x x) (pow.f64 x 3)) (pow.f64 x 3)) (*.f64 x x))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 x 5) (-.f64 (*.f64 x x) (pow.f64 x 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (+.f64 (pow.f64 x -6) (pow.f64 x -4)) (pow.f64 x -5)) (-.f64 (pow.f64 x -9) (pow.f64 x -6))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 (pow.f64 x -3) (pow.f64 x -2)) (-.f64 (pow.f64 x -6) (pow.f64 x -4))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (pow.f64 x -3))) (exp.f64 (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (exp.f64 (pow.f64 x -3)) (+.f64 1 (expm1.f64 (pow.f64 x -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (/.f64 (+.f64 1 (expm1.f64 (pow.f64 x -3))) (+.f64 1 (expm1.f64 (pow.f64 x -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (pow.f64 x -3))) (exp.f64 (neg.f64 (pow.f64 x -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (pow.f64 x -3))) (/.f64 1 (exp.f64 (pow.f64 x -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 (pow.f64 x -2))) (exp.f64 (pow.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (neg.f64 (pow.f64 x -2))) (+.f64 1 (expm1.f64 (pow.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (/.f64 1 (exp.f64 (pow.f64 x -2))) (+.f64 1 (expm1.f64 (pow.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 x -3) (neg.f64 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 x -3) (*.f64 (neg.f64 (pow.f64 x -2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) (fma.f64 (neg.f64 (pow.f64 x -2)) 1 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (cbrt.f64 (pow.f64 x -4)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) (+.f64 (neg.f64 (pow.f64 x -2)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 (pow.f64 x -2)) (pow.f64 x -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -3) 1 (neg.f64 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -3) 1 (*.f64 (neg.f64 (pow.f64 x -2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -2) (/.f64 1 x) (neg.f64 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -2) (/.f64 1 x) (*.f64 (neg.f64 (pow.f64 x -2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) 1 (fma.f64 (neg.f64 (pow.f64 x -2)) 1 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) 1 (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (cbrt.f64 (pow.f64 x -4)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2)) 1 (+.f64 (neg.f64 (pow.f64 x -2)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 x -4)) (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (pow.f64 x -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) (pow.f64 (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) 2) (fma.f64 (neg.f64 (pow.f64 x -2)) 1 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) (pow.f64 (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) 2) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (cbrt.f64 (pow.f64 x -4)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) (pow.f64 (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) 2) (+.f64 (neg.f64 (pow.f64 x -2)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) 2) (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) (fma.f64 (neg.f64 (pow.f64 x -2)) 1 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) 2) (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (cbrt.f64 (pow.f64 x -4)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) 2) (cbrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) (+.f64 (neg.f64 (pow.f64 x -2)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) (pow.f64 x -2) (neg.f64 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) (pow.f64 x -2) (*.f64 (neg.f64 (pow.f64 x -2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 1 x) (neg.f64 (/.f64 1 x)) (pow.f64 x -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -3/2) (pow.f64 x -3/2) (neg.f64 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 x -3/2) (pow.f64 x -3/2) (*.f64 (neg.f64 (pow.f64 x -2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) (sqrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) (fma.f64 (neg.f64 (pow.f64 x -2)) 1 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) (sqrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (cbrt.f64 (pow.f64 x -4)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) (sqrt.f64 (-.f64 (pow.f64 x -3) (pow.f64 x -2))) (+.f64 (neg.f64 (pow.f64 x -2)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (pow.f64 x -2) (pow.f64 x -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (/.f64 1 (neg.f64 (pow.f64 x 3))) (neg.f64 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (/.f64 1 (neg.f64 (pow.f64 x 3))) (*.f64 (neg.f64 (pow.f64 x -2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x x) (pow.f64 x 3)) (pow.f64 x -5) (fma.f64 (neg.f64 (pow.f64 x -2)) 1 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x x) (pow.f64 x 3)) (pow.f64 x -5) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (cbrt.f64 (pow.f64 x -4)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 x x) (pow.f64 x 3)) (pow.f64 x -5) (+.f64 (neg.f64 (pow.f64 x -2)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -9) (pow.f64 x -6)) (/.f64 1 (+.f64 (+.f64 (pow.f64 x -6) (pow.f64 x -4)) (pow.f64 x -5))) (fma.f64 (neg.f64 (pow.f64 x -2)) 1 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -9) (pow.f64 x -6)) (/.f64 1 (+.f64 (+.f64 (pow.f64 x -6) (pow.f64 x -4)) (pow.f64 x -5))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (cbrt.f64 (pow.f64 x -4)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -9) (pow.f64 x -6)) (/.f64 1 (+.f64 (+.f64 (pow.f64 x -6) (pow.f64 x -4)) (pow.f64 x -5))) (+.f64 (neg.f64 (pow.f64 x -2)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -6) (pow.f64 x -4)) (/.f64 1 (+.f64 (pow.f64 x -3) (pow.f64 x -2))) (fma.f64 (neg.f64 (pow.f64 x -2)) 1 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -6) (pow.f64 x -4)) (/.f64 1 (+.f64 (pow.f64 x -3) (pow.f64 x -2))) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (cbrt.f64 (pow.f64 x -4)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 x -6) (pow.f64 x -4)) (/.f64 1 (+.f64 (pow.f64 x -3) (pow.f64 x -2))) (+.f64 (neg.f64 (pow.f64 x -2)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (neg.f64 (pow.f64 x -2))) 2) (cbrt.f64 (neg.f64 (pow.f64 x -2))) (pow.f64 x -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (pow.f64 x -2))) (sqrt.f64 (neg.f64 (pow.f64 x -2))) (pow.f64 x -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (/.f64 1 x)) (/.f64 1 x) (pow.f64 x -3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 x -3/2) (/.f64 1 x)) (-.f64 (pow.f64 x -3/2) (/.f64 1 x)) (fma.f64 (neg.f64 (pow.f64 x -2)) 1 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 x -3/2) (/.f64 1 x)) (-.f64 (pow.f64 x -3/2) (/.f64 1 x)) (fma.f64 (neg.f64 (pow.f64 (cbrt.f64 x) -2)) (cbrt.f64 (pow.f64 x -4)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 x -3/2) (/.f64 1 x)) (-.f64 (pow.f64 x -3/2) (/.f64 1 x)) (+.f64 (neg.f64 (pow.f64 x -2)) (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (cbrt.f64 (pow.f64 x -4))) (pow.f64 (cbrt.f64 x) -2) (pow.f64 x -3))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 x -3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 x -3))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 x -3)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 x -3)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 x -3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 x -3))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x -3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x -2) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (pow.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x -3/2) (pow.f64 x -3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (/.f64 1 (neg.f64 (pow.f64 x 3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 x -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x -3) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x x) -3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x -2) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 6) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 9) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 x) -2) 9/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 x) -9)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 x) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x -3/2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 x) -6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x -9) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x -6) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 3) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 3/2) -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 (neg.f64 (pow.f64 x 3))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 x -6))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 x -3))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 x -9))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 x -3)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 -3 (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 x) -3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 -3 (log.f64 x)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 x -2))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 x -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 x -2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 x -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 x -2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 x -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 x -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) -2) (cbrt.f64 (pow.f64 x -4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 x -4)) (pow.f64 (cbrt.f64 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 x) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 -1 (neg.f64 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 x) -4) (pow.f64 (cbrt.f64 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 x -2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x -3) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 x x) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x -2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 4) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 6) -1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x -4) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 x) -2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 x) -6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 x) 2) -3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 x) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 x) -4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x -6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 x 3) -2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (neg.f64 (*.f64 x (neg.f64 x))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 x -4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 x -2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 x -6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 x -2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 -2 (log.f64 x)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 x) -2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 x x)) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 -2 (log.f64 x)) 1))))))

simplify156.0ms (3.1%)

Algorithm
egg-herbie
Rules
1200×sqr-pow_binary64
561×cube-prod_binary64
536×unswap-sqr_binary64
533×fabs-mul_binary64
498×pow-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01021
12321
24221
38421
421221
585721
6252921
7272821
8296221
9324621
10362421
11414721
12473921
13545621
14592421
15624521
16651521
17668721
18677921
19746021
Stop Event
node limit
Counts
193 → 193
Calls
Call 1
Inputs
(/.f64 1 (pow.f64 x 3))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
Outputs
(/.f64 1 (pow.f64 x 3))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))

eval280.0ms (5.5%)

Compiler

Compiled 8260 to 5537 computations (33% saved)

prune86.0ms (1.7%)

Pruning

10 alts after pruning (7 fresh and 3 done)

PrunedKeptTotal
New4976503
Fresh213
Picked101
Done235
Total50210512
Error
0b
Counts
512 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
30.1b
(/.f64 -1 (*.f64 x x))
14.5b
(-.f64 (/.f64 1 (+.f64 x 1)) (/.f64 1 x))
29.8b
(neg.f64 (pow.f64 x -2))
33.5b
(-.f64 1 (/.f64 1 x))
29.9b
(/.f64 (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 -1 x)) x)
32.4b
(/.f64 -1 x)
40.4b
(cbrt.f64 (pow.f64 (/.f64 -1 (*.f64 x x)) 3))
0.1b
(/.f64 (/.f64 -1 (+.f64 1 x)) x)
13.7b
(/.f64 (*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x)) x)
29.8b
(/.f64 (/.f64 -1 x) x)
Compiler

Compiled 148 to 107 computations (27.7% saved)

localize8.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(/.f64 -1 (+.f64 1 x))
0.1b
(/.f64 (/.f64 -1 (+.f64 1 x)) x)
Compiler

Compiled 19 to 14 computations (26.3% saved)

series2.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite65.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
817×pow1_binary64
762×add-log-exp_binary64
761×log1p-expm1-u_binary64
761×expm1-log1p-u_binary64
747×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify44.0ms (0.9%)

Algorithm
egg-herbie
Rules
661×fma-neg_binary64
628×associate-*l*_binary64
504×cancel-sign-sub-inv_binary64
458×associate-/r*_binary64
337×sub-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
042377
1114372
2265363
3748363
42491363
Stop Event
node limit
Counts
83 → 87
Calls
Call 1
Inputs
(/.f64 -1 x)
(-.f64 1 (/.f64 1 x))
(-.f64 (+.f64 1 (*.f64 -1 x)) (/.f64 1 x))
(-.f64 (+.f64 1 (+.f64 (*.f64 -1 x) (pow.f64 x 2))) (/.f64 1 x))
(/.f64 -1 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(/.f64 -1 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
-1
(-.f64 x 1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) x) 1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) (+.f64 (pow.f64 x 3) x)) 1)
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
Outputs
(/.f64 -1 x)
(-.f64 1 (/.f64 1 x))
(+.f64 1 (/.f64 -1 x))
(-.f64 (+.f64 1 (*.f64 -1 x)) (/.f64 1 x))
(-.f64 (+.f64 1 (neg.f64 x)) (/.f64 1 x))
(+.f64 (-.f64 1 x) (/.f64 -1 x))
(+.f64 1 (-.f64 (/.f64 -1 x) x))
(-.f64 (+.f64 1 (+.f64 (*.f64 -1 x) (pow.f64 x 2))) (/.f64 1 x))
(-.f64 (+.f64 1 (fma.f64 -1 x (*.f64 x x))) (/.f64 1 x))
(+.f64 (-.f64 (*.f64 x x) x) (-.f64 1 (/.f64 1 x)))
(+.f64 1 (fma.f64 x (+.f64 -1 x) (/.f64 -1 x)))
(+.f64 (-.f64 (fma.f64 x x 1) x) (/.f64 -1 x))
(+.f64 (-.f64 1 x) (fma.f64 x x (/.f64 -1 x)))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4))))
(+.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4))) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 -1 (*.f64 x x))))
(+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 4)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 1 (pow.f64 x 5)) (-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 5)) (-.f64 (/.f64 -1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 4))) (/.f64 1 (pow.f64 x 5)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 -1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 -1 (pow.f64 x 4)))))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4))))
(+.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4))) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 -1 (*.f64 x x))))
(+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 4)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 1 (pow.f64 x 5)) (-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 5)) (-.f64 (/.f64 -1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))))
(+.f64 (+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x))) (/.f64 -1 (pow.f64 x 4))) (/.f64 1 (pow.f64 x 5)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 -1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 -1 (pow.f64 x 4)))))
-1
(-.f64 x 1)
(+.f64 x -1)
(+.f64 -1 x)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) x) 1)
(+.f64 (fma.f64 -1 (*.f64 x x) x) -1)
(+.f64 -1 (-.f64 x (*.f64 x x)))
(-.f64 x (fma.f64 x x 1))
(fma.f64 x (-.f64 1 x) -1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) (+.f64 (pow.f64 x 3) x)) 1)
(+.f64 (fma.f64 -1 (*.f64 x x) (+.f64 x (pow.f64 x 3))) -1)
(+.f64 -1 (+.f64 x (*.f64 (*.f64 x x) (+.f64 -1 x))))
(*.f64 (fma.f64 x x 1) (+.f64 -1 x))
(*.f64 (+.f64 -1 x) (fma.f64 x x 1))
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(-.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))
(+.f64 (-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 3))) (/.f64 -1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (-.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(+.f64 (/.f64 1 (*.f64 x x)) (-.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3)))))
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(-.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))
(+.f64 (-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 3))) (/.f64 -1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (-.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(+.f64 (/.f64 1 (*.f64 x x)) (-.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3)))))

localize5.0ms (0.1%)

Compiler

Compiled 11 to 8 computations (27.3% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(/.f64 -1 (*.f64 x x))
Compiler

Compiled 11 to 5 computations (54.5% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite42.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
458×pow1_binary64
443×add-sqr-sqrt_binary64
435×*-un-lft-identity_binary64
424×add-log-exp_binary64
424×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify153.0ms (3%)

Algorithm
egg-herbie
Rules
1140×associate-/r*_binary64
1082×sqr-pow_binary64
560×cube-prod_binary64
554×fabs-mul_binary64
523×pow-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0684
11184
22084
33584
47584
522484
683484
7204384
8220984
9239384
10260184
11289884
12329184
13377284
14434084
15502884
16586384
17625584
18654384
19681984
20689184
21692784
Stop Event
node limit
Counts
34 → 24
Calls
Call 1
Inputs
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 2))
Outputs
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))

localize15.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (/.f64 (/.f64 1 x) x) (/.f64 -1 x))
0.1b
(/.f64 (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 -1 x)) x)
0.1b
(/.f64 (/.f64 1 x) x)
Compiler

Compiled 35 to 23 computations (34.3% saved)

series3.0ms (0.1%)

Counts
3 → 36
Calls

9 calls:

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

rewrite63.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
863×pow1_binary64
810×add-log-exp_binary64
808×log1p-expm1-u_binary64
808×expm1-log1p-u_binary64
98×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify57.0ms (1.1%)

Algorithm
egg-herbie
Rules
616×fma-neg_binary64
542×cancel-sign-sub-inv_binary64
536×unswap-sqr_binary64
480×times-frac_binary64
444×distribute-neg-frac_binary64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
015381
132381
256381
3118381
4301381
51203381
64528354
Stop Event
node limit
Counts
168 → 142
Calls
Call 1
Inputs
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (pow.f64 x 3))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(/.f64 -1 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(/.f64 -1 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(/.f64 1 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
Outputs
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 1 (pow.f64 x 3))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(*.f64 (/.f64 1 (*.f64 x x)) (+.f64 -1 (/.f64 1 x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(*.f64 (/.f64 1 (*.f64 x x)) (+.f64 -1 (/.f64 1 x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(*.f64 (/.f64 1 (*.f64 x x)) (+.f64 -1 (/.f64 1 x)))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(*.f64 (/.f64 1 (*.f64 x x)) (+.f64 -1 (/.f64 1 x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(*.f64 (/.f64 1 (*.f64 x x)) (+.f64 -1 (/.f64 1 x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(*.f64 (/.f64 1 (*.f64 x x)) (+.f64 -1 (/.f64 1 x)))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(*.f64 (/.f64 1 (*.f64 x x)) (+.f64 -1 (/.f64 1 x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(*.f64 (/.f64 1 (*.f64 x x)) (+.f64 -1 (/.f64 1 x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(*.f64 (/.f64 1 (*.f64 x x)) (+.f64 -1 (/.f64 1 x)))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (+.f64 -1 (/.f64 1 x)) x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (+.f64 -1 (/.f64 1 x)) x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (+.f64 -1 (/.f64 1 x)) x)
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (+.f64 -1 (/.f64 1 x)) x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (+.f64 -1 (/.f64 1 x)) x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (+.f64 -1 (/.f64 1 x)) x)
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (+.f64 -1 (/.f64 1 x)) x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (+.f64 -1 (/.f64 1 x)) x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (+.f64 -1 (/.f64 1 x)) x)

localize29.0ms (0.6%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x)))
0.0b
(/.f64 (*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x)) x)
0.0b
(*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x))
2.2b
(-.f64 x (+.f64 x 1))
Compiler

Compiled 65 to 37 computations (43.1% saved)

series8.0ms (0.2%)

Counts
4 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
x
@0
(*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x))
1.0ms
x
@inf
(/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x)))
1.0ms
x
@0
(/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x)))
1.0ms
x
@-inf
(/.f64 (*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x)) x)
1.0ms
x
@inf
(*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x))

rewrite341.0ms (6.7%)

Algorithm
egg-rewrite-iter-limit
egg-rewrite
batch-egg-rewrite
Rules
144×add-sqr-sqrt_binary64
144×add-sqr-sqrt_binary64
141×*-un-lft-identity_binary64
141×pow1_binary64
141×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01128
127128
2578328
057
11157
218897
057
01022
124422
2502022
01022
01125
127125
2578325
01125
0816
119616
2397516
0816
Stop Event
iter limit
unsound
iter limit
unsound
iter limit
unsound
iter limit
unsound
unsound
Counts
4 → 40
Calls
Call 1
Inputs
(-.f64 x (+.f64 x 1))
(*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x))
(/.f64 (*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x)) x)
(/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 x (neg.f64 (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (-.f64 x (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (-.f64 x (+.f64 x 1))) (cbrt.f64 (-.f64 x (+.f64 x 1)))) (cbrt.f64 (-.f64 x (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 x (+.f64 x 1))) (sqrt.f64 (-.f64 x (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 x 3) (pow.f64 (+.f64 x 1) 3)) (+.f64 (*.f64 x x) (+.f64 (*.f64 (+.f64 x 1) (+.f64 x 1)) (*.f64 x (+.f64 x 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 x x) (*.f64 (+.f64 x 1) (+.f64 x 1))) (+.f64 x (+.f64 x 1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (-.f64 x (+.f64 x 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (-.f64 x (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (-.f64 x (+.f64 x 1)) (-.f64 x (+.f64 x 1))) (-.f64 x (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (-.f64 x (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (-.f64 x (+.f64 x 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (-.f64 x (+.f64 x 1))))))))
((#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 x)) (-.f64 1 (*.f64 x x)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x)) (*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x))) (*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x))))))))
((#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x)) (/.f64 1 x))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (/.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 x)))) (cbrt.f64 (/.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 x))))) (cbrt.f64 (/.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 x)))) (sqrt.f64 (/.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (/.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 x))) (/.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 x)))) (/.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (/.f64 x (-.f64 1 x)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 x (-.f64 1 (*.f64 x x))) (/.f64 (+.f64 x 1) (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 x (+.f64 x 1)) (/.f64 1 (-.f64 1 (*.f64 x x))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x)))) (cbrt.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))))) (cbrt.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x)))) (sqrt.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x)))) (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x)))))))))

simplify100.0ms (2%)

Algorithm
egg-herbie
Rules
771×unswap-sqr_binary64
658×fma-def_binary64
527×fma-neg_binary64
497×sub-neg_binary64
368×associate-*l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
059601
1163588
2417575
31331575
45842575
Stop Event
node limit
Counts
88 → 82
Calls
Call 1
Inputs
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
(-.f64 x 1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) x) 1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) (+.f64 (pow.f64 x 3) x)) 1)
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(/.f64 -1 x)
(-.f64 1 (/.f64 1 x))
(-.f64 (+.f64 1 (*.f64 -1 x)) (/.f64 1 x))
(-.f64 (+.f64 1 (+.f64 (*.f64 -1 x) (pow.f64 x 2))) (/.f64 1 x))
(/.f64 -1 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(/.f64 -1 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
-1
(-.f64 (*.f64 -1 (pow.f64 x 2)) 1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 -1 (pow.f64 x 4))) 1)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 6)) (+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 -1 (pow.f64 x 4)))) 1)
(/.f64 1 (pow.f64 x 2))
(+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6)))))
(/.f64 1 (pow.f64 x 2))
(+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6)))))
Outputs
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
(-.f64 x 1)
(+.f64 x -1)
(+.f64 -1 x)
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) x) 1)
(+.f64 (fma.f64 -1 (*.f64 x x) x) -1)
(+.f64 -1 (-.f64 x (*.f64 x x)))
(-.f64 x (fma.f64 x x 1))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) (+.f64 (pow.f64 x 3) x)) 1)
(+.f64 (fma.f64 -1 (*.f64 x x) (+.f64 x (pow.f64 x 3))) -1)
(+.f64 -1 (+.f64 x (*.f64 (*.f64 x x) (+.f64 -1 x))))
(*.f64 (fma.f64 x x 1) (+.f64 -1 x))
(*.f64 (+.f64 -1 x) (fma.f64 x x 1))
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 (/.f64 1 x) x) (/.f64 -1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(-.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))
(-.f64 (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 -1 x)) (/.f64 1 (pow.f64 x 3)))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(-.f64 (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4))) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))
(+.f64 (/.f64 (/.f64 1 x) x) (-.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3)))))
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 (/.f64 1 x) x) (/.f64 -1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(-.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))
(-.f64 (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 -1 x)) (/.f64 1 (pow.f64 x 3)))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))) (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 x)))
(-.f64 (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4))) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3))))
(+.f64 (/.f64 (/.f64 1 x) x) (-.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 x) (/.f64 1 (pow.f64 x 3)))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 -1 x) (/.f64 -1 (pow.f64 x 3)))))
(/.f64 -1 x)
(-.f64 1 (/.f64 1 x))
(+.f64 1 (/.f64 -1 x))
(-.f64 (+.f64 1 (*.f64 -1 x)) (/.f64 1 x))
(-.f64 (+.f64 1 (neg.f64 x)) (/.f64 1 x))
(+.f64 (-.f64 1 x) (/.f64 -1 x))
(-.f64 (+.f64 1 (+.f64 (*.f64 -1 x) (pow.f64 x 2))) (/.f64 1 x))
(-.f64 (+.f64 1 (fma.f64 -1 x (*.f64 x x))) (/.f64 1 x))
(+.f64 (-.f64 1 x) (-.f64 (*.f64 x x) (/.f64 1 x)))
(+.f64 (-.f64 1 x) (fma.f64 x x (/.f64 -1 x)))
(+.f64 1 (-.f64 (fma.f64 x x (/.f64 -1 x)) x))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 (/.f64 -1 x) x)
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 -1 x) x))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4))) (/.f64 1 (*.f64 x x)))
(+.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4))) (/.f64 (/.f64 -1 x) x))
(+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 (pow.f64 x 4))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 1 (pow.f64 x 5)) (-.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4))) (/.f64 1 (*.f64 x x))))
(+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 1 (pow.f64 x 4)))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 5))) (-.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 -1 (*.f64 x x))))
(+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x))) (-.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 4))))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(/.f64 (/.f64 -1 x) x)
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 -1 x) x))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(-.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4))) (/.f64 1 (*.f64 x x)))
(+.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4))) (/.f64 (/.f64 -1 x) x))
(+.f64 (/.f64 1 (pow.f64 x 3)) (+.f64 (/.f64 -1 (*.f64 x x)) (/.f64 -1 (pow.f64 x 4))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 3))) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2))))
(+.f64 (/.f64 1 (pow.f64 x 5)) (-.f64 (-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 4))) (/.f64 1 (*.f64 x x))))
(+.f64 (/.f64 1 (pow.f64 x 3)) (-.f64 (/.f64 1 (pow.f64 x 5)) (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 1 (pow.f64 x 4)))))
(-.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 5))) (-.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 -1 (*.f64 x x))))
(+.f64 (+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x))) (-.f64 (/.f64 1 (pow.f64 x 5)) (/.f64 1 (pow.f64 x 4))))
-1
(-.f64 (*.f64 -1 (pow.f64 x 2)) 1)
(fma.f64 -1 (*.f64 x x) -1)
(-.f64 -1 (*.f64 x x))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 -1 (pow.f64 x 4))) 1)
(+.f64 (fma.f64 -1 (*.f64 x x) (neg.f64 (pow.f64 x 4))) -1)
(fma.f64 -1 (fma.f64 x x (pow.f64 x 4)) -1)
(-.f64 -1 (fma.f64 x x (pow.f64 x 4)))
(-.f64 (+.f64 (*.f64 -1 (pow.f64 x 6)) (+.f64 (*.f64 -1 (pow.f64 x 2)) (*.f64 -1 (pow.f64 x 4)))) 1)
(+.f64 (fma.f64 -1 (pow.f64 x 6) (fma.f64 -1 (*.f64 x x) (neg.f64 (pow.f64 x 4)))) -1)
(+.f64 -1 (-.f64 (neg.f64 (fma.f64 x x (pow.f64 x 4))) (pow.f64 x 6)))
(-.f64 (-.f64 -1 (fma.f64 x x (pow.f64 x 4))) (pow.f64 x 6))
(-.f64 (-.f64 -1 (fma.f64 x x (pow.f64 x 6))) (pow.f64 x 4))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 (/.f64 1 x) x)
(+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2)))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))
(+.f64 (/.f64 (/.f64 1 x) x) (/.f64 1 (pow.f64 x 4)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 1 (pow.f64 x 8)) (/.f64 1 (*.f64 x x))) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 1 (pow.f64 x 8)))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 1 (pow.f64 x 8)))))
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(/.f64 (/.f64 1 x) x)
(+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 2)))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 4)))
(+.f64 (/.f64 (/.f64 1 x) x) (/.f64 1 (pow.f64 x 4)))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 8)) (+.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 (pow.f64 x 6)))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (+.f64 (/.f64 1 (pow.f64 x 8)) (/.f64 1 (*.f64 x x))) (/.f64 1 (pow.f64 x 6))))
(+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 1 (pow.f64 x 8)))))
(+.f64 (/.f64 1 (*.f64 x x)) (+.f64 (/.f64 1 (pow.f64 x 4)) (+.f64 (/.f64 1 (pow.f64 x 6)) (/.f64 1 (pow.f64 x 8)))))

eval178.0ms (3.5%)

Compiler

Compiled 4790 to 3220 computations (32.8% saved)

prune87.0ms (1.7%)

Pruning

10 alts after pruning (3 fresh and 7 done)

PrunedKeptTotal
New3341335
Fresh022
Picked101
Done077
Total33510345
Error
0b
Counts
345 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
30.1b
(/.f64 -1 (*.f64 x x))
14.5b
(-.f64 (/.f64 1 (+.f64 x 1)) (/.f64 1 x))
29.8b
(neg.f64 (pow.f64 x -2))
33.5b
(-.f64 1 (/.f64 1 x))
29.8b
(/.f64 (/.f64 -1 x) x)
30.2b
(/.f64 (/.f64 (-.f64 1 x) (*.f64 x x)) x)
29.9b
(/.f64 (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 -1 x)) x)
32.4b
(/.f64 -1 x)
40.4b
(cbrt.f64 (pow.f64 (/.f64 -1 (*.f64 x x)) 3))
0.1b
(/.f64 (/.f64 -1 (+.f64 1 x)) x)
Compiler

Compiled 76 to 55 computations (27.6% saved)

localize26.0ms (0.5%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(pow.f64 (/.f64 -1 (*.f64 x x)) 3)
0.3b
(/.f64 -1 (*.f64 x x))
19.1b
(cbrt.f64 (pow.f64 (/.f64 -1 (*.f64 x x)) 3))
Compiler

Compiled 27 to 15 computations (44.4% saved)

series5.0ms (0.1%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
3.0ms
x
@0
(cbrt.f64 (pow.f64 (/.f64 -1 (*.f64 x x)) 3))
1.0ms
x
@0
(pow.f64 (/.f64 -1 (*.f64 x x)) 3)
0.0ms
x
@inf
(cbrt.f64 (pow.f64 (/.f64 -1 (*.f64 x x)) 3))
0.0ms
x
@inf
(pow.f64 (/.f64 -1 (*.f64 x x)) 3)
0.0ms
x
@-inf
(cbrt.f64 (pow.f64 (/.f64 -1 (*.f64 x x)) 3))

rewrite51.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
640×pow1_binary64
603×add-log-exp_binary64
603×log1p-expm1-u_binary64
603×expm1-log1p-u_binary64
587×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify143.0ms (2.8%)

Algorithm
egg-herbie
Rules
1099×sqr-pow_binary64
730×cube-prod_binary64
625×fabs-mul_binary64
424×pow-sqr_binary64
380×unpow3_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010192
119192
237192
393192
4343192
51625192
61992192
72243192
82515192
92911192
103444192
114308192
125255192
135840192
146228192
156598192
166926192
177232192
Stop Event
node limit
Counts
98 → 76
Calls
Call 1
Inputs
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
Outputs
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (*.f64 x x))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (*.f64 x x))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (*.f64 x x))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (*.f64 x x))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (*.f64 x x))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (*.f64 x x))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (*.f64 x x))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (*.f64 x x))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (*.f64 x x))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (*.f64 x x))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (*.f64 x x))
(/.f64 (cbrt.f64 -1) (pow.f64 x 2))
(/.f64 (cbrt.f64 -1) (*.f64 x x))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))
(/.f64 -1 (pow.f64 x 6))

localize5.0ms (0.1%)

Compiler

Compiled 10 to 7 computations (30% saved)

localize10.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (/.f64 (-.f64 1 x) (*.f64 x x)) x)
17.1b
(/.f64 (-.f64 1 x) (*.f64 x x))
Compiler

Compiled 25 to 12 computations (52% saved)

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite64.0ms (1.3%)

Algorithm
batch-egg-rewrite
Rules
957×pow1_binary64
901×add-log-exp_binary64
900×log1p-expm1-u_binary64
900×expm1-log1p-u_binary64
82×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify51.0ms (1%)

Algorithm
egg-herbie
Rules
616×fma-neg_binary64
542×cancel-sign-sub-inv_binary64
536×unswap-sqr_binary64
480×times-frac_binary64
440×distribute-neg-frac_binary64
Iterations

Useful iterations: 6 (0.0ms)

IterNodesCost
015297
132297
256297
3118297
4302297
51198297
64534270
Stop Event
node limit
Counts
100 → 86
Calls
Call 1
Inputs
(/.f64 1 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(/.f64 1 (pow.f64 x 3))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(/.f64 -1 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(/.f64 -1 (pow.f64 x 2))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
Outputs
(/.f64 1 (pow.f64 x 2))
(/.f64 1 (*.f64 x x))
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (-.f64 -1 (/.f64 -1 x)) x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (-.f64 -1 (/.f64 -1 x)) x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (-.f64 -1 (/.f64 -1 x)) x)
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (-.f64 -1 (/.f64 -1 x)) x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (-.f64 -1 (/.f64 -1 x)) x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (-.f64 -1 (/.f64 -1 x)) x)
(/.f64 -1 x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (-.f64 -1 (/.f64 -1 x)) x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (-.f64 -1 (/.f64 -1 x)) x)
(-.f64 (/.f64 1 (pow.f64 x 2)) (/.f64 1 x))
(-.f64 (/.f64 1 (*.f64 x x)) (/.f64 1 x))
(+.f64 (/.f64 1 (*.f64 x x)) (/.f64 -1 x))
(/.f64 (-.f64 -1 (/.f64 -1 x)) x)
(/.f64 1 (pow.f64 x 3))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 -1 (*.f64 x x)) (pow.f64 (/.f64 -1 x) 3))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 -1 (*.f64 x x)) (pow.f64 (/.f64 -1 x) 3))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 -1 (*.f64 x x)) (pow.f64 (/.f64 -1 x) 3))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 -1 (*.f64 x x)) (pow.f64 (/.f64 -1 x) 3))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 -1 (*.f64 x x)) (pow.f64 (/.f64 -1 x) 3))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 -1 (*.f64 x x)) (pow.f64 (/.f64 -1 x) 3))
(/.f64 -1 (pow.f64 x 2))
(/.f64 -1 (*.f64 x x))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 -1 (*.f64 x x)) (pow.f64 (/.f64 -1 x) 3))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 -1 (*.f64 x x)) (pow.f64 (/.f64 -1 x) 3))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (*.f64 x x)))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 -1 (*.f64 x x)))
(-.f64 (/.f64 -1 (*.f64 x x)) (pow.f64 (/.f64 -1 x) 3))

eval48.0ms (0.9%)

Compiler

Compiled 2033 to 1521 computations (25.2% saved)

prune28.0ms (0.6%)

Pruning

10 alts after pruning (0 fresh and 10 done)

PrunedKeptTotal
New1860186
Fresh000
Picked011
Done099
Total18610196
Error
0b
Counts
196 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
30.1b
(/.f64 -1 (*.f64 x x))
14.5b
(-.f64 (/.f64 1 (+.f64 x 1)) (/.f64 1 x))
29.8b
(neg.f64 (pow.f64 x -2))
33.5b
(-.f64 1 (/.f64 1 x))
29.8b
(/.f64 (/.f64 -1 x) x)
30.2b
(/.f64 (/.f64 (-.f64 1 x) (*.f64 x x)) x)
29.9b
(/.f64 (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 -1 x)) x)
32.4b
(/.f64 -1 x)
40.4b
(cbrt.f64 (pow.f64 (/.f64 -1 (*.f64 x x)) 3))
0.1b
(/.f64 (/.f64 -1 (+.f64 1 x)) x)
Compiler

Compiled 76 to 55 computations (27.6% saved)

regimes22.0ms (0.4%)

Counts
16 → 1
Calls
Call 1
Inputs
(/.f64 -1 x)
(/.f64 -1 (*.f64 x x))
(-.f64 1 (/.f64 1 x))
(/.f64 (/.f64 -1 x) x)
(/.f64 (/.f64 -1 (+.f64 1 x)) x)
(-.f64 (-.f64 1 x) (/.f64 1 x))
(/.f64 (/.f64 (-.f64 1 x) (*.f64 x x)) x)
(-.f64 (/.f64 1 (+.f64 x 1)) (/.f64 1 x))
(/.f64 (+.f64 (/.f64 (/.f64 1 x) x) (/.f64 -1 x)) x)
(/.f64 (/.f64 (-.f64 x (+.f64 1 x)) (+.f64 1 x)) x)
(/.f64 (*.f64 (/.f64 (-.f64 x (+.f64 x 1)) (-.f64 1 (*.f64 x x))) (-.f64 1 x)) x)
(neg.f64 (pow.f64 x -2))
(/.f64 -1 (pow.f64 x 2))
(+.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 (/.f64 -1 x) x))
(cbrt.f64 (pow.f64 (/.f64 -1 (*.f64 x x)) 3))
(-.f64 (/.f64 1 (pow.f64 x 3)) (/.f64 1 (pow.f64 x 2)))
Outputs
(/.f64 (/.f64 -1 (+.f64 1 x)) x)
Calls

2 calls:

9.0ms
(-.f64 (/.f64 1 (+.f64 x 1)) (/.f64 1 x))
9.0ms
x
Results
ErrorSegmentsBranch
0.1b1x
0.1b1(-.f64 (/.f64 1 (+.f64 x 1)) (/.f64 1 x))
Compiler

Compiled 141 to 96 computations (31.9% saved)

regimes13.0ms (0.3%)

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

1 calls:

12.0ms
x
Results
ErrorSegmentsBranch
0.8b3x
Compiler

Compiled 21 to 14 computations (33.3% saved)

bsearch35.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
0.0037585186177603587
17.38997651676975
17.0ms
-16375921.992846377
-1.781722209966639e-12
Compiler

Compiled 14 to 11 computations (21.4% saved)

regimes11.0ms (0.2%)

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

1 calls:

9.0ms
x
Results
ErrorSegmentsBranch
1.0b3x
Compiler

Compiled 16 to 11 computations (31.3% saved)

bsearch35.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
18.0ms
0.0037585186177603587
17.38997651676975
17.0ms
-16375921.992846377
-1.781722209966639e-12
Compiler

Compiled 14 to 11 computations (21.4% saved)

regimes10.0ms (0.2%)

Accuracy

Total -60.2b remaining (-5334.1%)

Threshold costs -60.2b (-5334.1%)

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

1 calls:

9.0ms
x
Results
ErrorSegmentsBranch
1.1b3x
Compiler

Compiled 11 to 7 computations (36.4% saved)

bsearch36.0ms (0.7%)

Algorithm
binary-search
Steps
TimeLeftRight
17.0ms
0.0037585186177603587
17.38997651676975
19.0ms
-16375921.992846377
-1.781722209966639e-12
Compiler

Compiled 14 to 11 computations (21.4% saved)

simplify8.0ms (0.2%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
sub-neg_binary64
*-commutative_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024110
129110
234110
338110
441110
543110
644110
Stop Event
done
saturated
Calls
Call 1
Inputs
(/.f64 (/.f64 -1 (+.f64 1 x)) x)
(if (<=.f64 x -2197939043785073/134217728) (/.f64 -1 (*.f64 x x)) (if (<=.f64 x 8666553879762239/2305843009213693952) (-.f64 1 (/.f64 1 x)) (/.f64 (/.f64 -1 x) x)))
(if (<=.f64 x -2197939043785073/134217728) (/.f64 -1 (*.f64 x x)) (if (<=.f64 x 8666553879762239/2305843009213693952) (-.f64 1 (/.f64 1 x)) (/.f64 -1 (*.f64 x x))))
(if (<=.f64 x -2197939043785073/134217728) (/.f64 -1 (*.f64 x x)) (if (<=.f64 x 8666553879762239/2305843009213693952) (/.f64 -1 x) (/.f64 -1 (*.f64 x x))))
(/.f64 -1 x)
Outputs
(/.f64 (/.f64 -1 (+.f64 1 x)) x)
(if (<=.f64 x -2197939043785073/134217728) (/.f64 -1 (*.f64 x x)) (if (<=.f64 x 8666553879762239/2305843009213693952) (-.f64 1 (/.f64 1 x)) (/.f64 (/.f64 -1 x) x)))
(if (<=.f64 x -2197939043785073/134217728) (/.f64 -1 (*.f64 x x)) (if (<=.f64 x 8666553879762239/2305843009213693952) (+.f64 1 (/.f64 -1 x)) (/.f64 (/.f64 -1 x) x)))
(if (<=.f64 x -2197939043785073/134217728) (/.f64 -1 (*.f64 x x)) (if (<=.f64 x 8666553879762239/2305843009213693952) (-.f64 1 (/.f64 1 x)) (/.f64 -1 (*.f64 x x))))
(if (<=.f64 x -2197939043785073/134217728) (/.f64 -1 (*.f64 x x)) (if (<=.f64 x 8666553879762239/2305843009213693952) (+.f64 1 (/.f64 -1 x)) (/.f64 -1 (*.f64 x x))))
(if (<=.f64 x -2197939043785073/134217728) (/.f64 -1 (*.f64 x x)) (if (<=.f64 x 8666553879762239/2305843009213693952) (/.f64 -1 x) (/.f64 -1 (*.f64 x x))))
(/.f64 -1 x)
Compiler

Compiled 82 to 56 computations (31.7% saved)

soundness0.0ms (0%)

end46.0ms (0.9%)

Compiler

Compiled 78 to 50 computations (35.9% saved)

Profiling

Loading profile data...