Details

Time bar (total: 2.5s)

analyze0.0ms (0%)

Algorithm
search
Search
TrueOtherFalseIter
0%0%100%0
0%0%100%1
Compiler

Compiled 53 to 38 computations (28.3% saved)

sample1.2s (49.4%)

Results
1.2s8256×body128valid

preprocess18.0ms (0.7%)

Algorithm
egg-herbie
Rules
164×associate-+l+_binary64
66×associate-+r+_binary64
47×+-commutative_binary64
swap-a-e
swap-a-d
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
046143
1127143
2304143
3350143
055
155
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
3
4
Outputs
0
1
0
2
0
3
0
4
0
Call 2
Inputs
(+.f64 (+.f64 (+.f64 (+.f64 e d) c) b) a)
(+.f64 (+.f64 (+.f64 (+.f64 e d) c) a) b)
(+.f64 (+.f64 (+.f64 (+.f64 e d) a) b) c)
(+.f64 (+.f64 (+.f64 (+.f64 e a) c) b) d)
(+.f64 (+.f64 (+.f64 (+.f64 a d) c) b) e)
(+.f64 (+.f64 (+.f64 (+.f64 e d) b) c) a)
(+.f64 (+.f64 (+.f64 (+.f64 e b) c) d) a)
(+.f64 (+.f64 (+.f64 (+.f64 b d) c) e) a)
(+.f64 (+.f64 (+.f64 (+.f64 e c) d) b) a)
(+.f64 (+.f64 (+.f64 (+.f64 c d) e) b) a)
(+.f64 (+.f64 (+.f64 (+.f64 d e) c) b) a)
Outputs
(+.f64 (+.f64 (+.f64 (+.f64 e d) c) b) a)
(+.f64 a (+.f64 (+.f64 e d) (+.f64 c b)))
(+.f64 e (+.f64 d (+.f64 a (+.f64 c b))))
(+.f64 e (+.f64 b (+.f64 d (+.f64 c a))))
(+.f64 (+.f64 (+.f64 (+.f64 e d) c) a) b)
(+.f64 a (+.f64 (+.f64 e d) (+.f64 c b)))
(+.f64 e (+.f64 d (+.f64 a (+.f64 c b))))
(+.f64 e (+.f64 b (+.f64 d (+.f64 c a))))
(+.f64 (+.f64 (+.f64 (+.f64 e d) a) b) c)
(+.f64 a (+.f64 (+.f64 e d) (+.f64 c b)))
(+.f64 e (+.f64 d (+.f64 a (+.f64 c b))))
(+.f64 e (+.f64 b (+.f64 d (+.f64 c a))))
(+.f64 (+.f64 (+.f64 (+.f64 e a) c) b) d)
(+.f64 a (+.f64 (+.f64 e d) (+.f64 c b)))
(+.f64 e (+.f64 d (+.f64 a (+.f64 c b))))
(+.f64 e (+.f64 b (+.f64 d (+.f64 c a))))
(+.f64 (+.f64 (+.f64 (+.f64 a d) c) b) e)
(+.f64 a (+.f64 (+.f64 e d) (+.f64 c b)))
(+.f64 e (+.f64 d (+.f64 a (+.f64 c b))))
(+.f64 e (+.f64 b (+.f64 d (+.f64 c a))))
(+.f64 (+.f64 (+.f64 (+.f64 e d) b) c) a)
(+.f64 a (+.f64 (+.f64 e d) (+.f64 c b)))
(+.f64 e (+.f64 d (+.f64 a (+.f64 c b))))
(+.f64 e (+.f64 b (+.f64 d (+.f64 c a))))
(+.f64 (+.f64 (+.f64 (+.f64 e b) c) d) a)
(+.f64 a (+.f64 (+.f64 e d) (+.f64 c b)))
(+.f64 e (+.f64 d (+.f64 a (+.f64 c b))))
(+.f64 e (+.f64 b (+.f64 d (+.f64 c a))))
(+.f64 (+.f64 (+.f64 (+.f64 b d) c) e) a)
(+.f64 a (+.f64 (+.f64 e d) (+.f64 c b)))
(+.f64 e (+.f64 d (+.f64 a (+.f64 c b))))
(+.f64 e (+.f64 b (+.f64 d (+.f64 c a))))
(+.f64 (+.f64 (+.f64 (+.f64 e c) d) b) a)
(+.f64 a (+.f64 (+.f64 e d) (+.f64 c b)))
(+.f64 e (+.f64 d (+.f64 a (+.f64 c b))))
(+.f64 e (+.f64 b (+.f64 d (+.f64 c a))))
(+.f64 (+.f64 (+.f64 (+.f64 c d) e) b) a)
(+.f64 a (+.f64 (+.f64 e d) (+.f64 c b)))
(+.f64 e (+.f64 d (+.f64 a (+.f64 c b))))
(+.f64 e (+.f64 b (+.f64 d (+.f64 c a))))
(+.f64 (+.f64 (+.f64 (+.f64 d e) c) b) a)
(+.f64 a (+.f64 (+.f64 e d) (+.f64 c b)))
(+.f64 e (+.f64 d (+.f64 a (+.f64 c b))))
(+.f64 e (+.f64 b (+.f64 d (+.f64 c a))))
Symmetry

(sort a b c d e)

Compiler

Compiled 14 to 9 computations (35.7% saved)

simplify11.0ms (0.4%)

Algorithm
egg-herbie
Rules
125×associate-+l+_binary64
97×associate-+r+_binary64
51×+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01013
12013
25913
318813
433913
533913
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (+.f64 (+.f64 (+.f64 e d) c) b) a)
Outputs
(+.f64 (+.f64 (+.f64 (+.f64 e d) c) b) a)
(+.f64 (+.f64 e (+.f64 d c)) (+.f64 b a))
(+.f64 e (+.f64 (+.f64 d c) (+.f64 b a)))
(+.f64 (+.f64 e d) (+.f64 b (+.f64 c a)))
(+.f64 e (+.f64 c (+.f64 a (+.f64 d b))))

prune3.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.2b
(+.f64 e (+.f64 c (+.f64 a (+.f64 d b))))
0.4b
(+.f64 (+.f64 (+.f64 (+.f64 e d) c) b) a)
Compiler

Compiled 79 to 49 computations (38% saved)

localize7.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(+.f64 c (+.f64 a (+.f64 d b)))
0.2b
(+.f64 a (+.f64 d b))
0.2b
(+.f64 e (+.f64 c (+.f64 a (+.f64 d b))))

series11.0ms (0.4%)

Counts
3 → 81
Calls

36 calls:

TimeVariablePointExpression
0.0ms
e
@inf
(+.f64 e (+.f64 c (+.f64 a (+.f64 d b))))
0.0ms
e
@0
(+.f64 e (+.f64 c (+.f64 a (+.f64 d b))))
0.0ms
a
@inf
(+.f64 e (+.f64 c (+.f64 a (+.f64 d b))))
0.0ms
b
@inf
(+.f64 e (+.f64 c (+.f64 a (+.f64 d b))))
0.0ms
d
@inf
(+.f64 e (+.f64 c (+.f64 a (+.f64 d b))))

rewrite61.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
426×fma-neg_binary64
236×expm1-udef_binary64
236×log1p-udef_binary64
136×add-sqr-sqrt_binary64
135×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01030
124230
2399930
Stop Event
node limit
Counts
3 → 111
Calls
Call 1
Inputs
(+.f64 e (+.f64 c (+.f64 a (+.f64 d b))))
(+.f64 a (+.f64 d b))
(+.f64 c (+.f64 a (+.f64 d b)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 e e) (-.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))) (/.f64 (pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 2) (-.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))) (pow.f64 (cbrt.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))) 2) (cbrt.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))) (sqrt.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 3)) (/.f64 1 (fma.f64 e e (*.f64 (+.f64 a (+.f64 (+.f64 d b) c)) (-.f64 (+.f64 a (+.f64 (+.f64 d b) c)) e)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 2)) (/.f64 1 (-.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 e e (*.f64 (+.f64 a (+.f64 (+.f64 d b) c)) (-.f64 (+.f64 a (+.f64 (+.f64 d b) c)) e))) (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 e (+.f64 a (+.f64 (+.f64 d b) c))) (-.f64 (*.f64 e e) (pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 3)) (fma.f64 e e (*.f64 (+.f64 a (+.f64 (+.f64 d b) c)) (-.f64 (+.f64 a (+.f64 (+.f64 d b) c)) e))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 3)) (+.f64 (pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 2) (-.f64 (*.f64 e e) (*.f64 e (+.f64 a (+.f64 (+.f64 d b) c))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 2)) (-.f64 e (+.f64 a (+.f64 (+.f64 d b) c))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 3))) (neg.f64 (fma.f64 e e (*.f64 (+.f64 a (+.f64 (+.f64 d b) c)) (-.f64 (+.f64 a (+.f64 (+.f64 d b) c)) e)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 2))) (neg.f64 (-.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 e c) 3) (pow.f64 (+.f64 a (+.f64 d b)) 3)) (+.f64 (*.f64 (+.f64 e c) (+.f64 e c)) (-.f64 (pow.f64 (+.f64 a (+.f64 d b)) 2) (*.f64 (+.f64 e c) (+.f64 a (+.f64 d b))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 2) (*.f64 e e)) (-.f64 (+.f64 a (+.f64 (+.f64 d b) c)) e))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 e c) (+.f64 e c)) (pow.f64 (+.f64 a (+.f64 d b)) 2)) (-.f64 (+.f64 e c) (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 e (+.f64 a (+.f64 (+.f64 d b) c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 a (+.f64 (+.f64 d b) c)) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 e e)) (cbrt.f64 e) (+.f64 a (+.f64 (+.f64 d b) c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 a (+.f64 (+.f64 d b) c))) 2) (cbrt.f64 (+.f64 a (+.f64 (+.f64 d b) c))) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 a (+.f64 (+.f64 d b) c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 a (+.f64 (+.f64 d b) c))) (sqrt.f64 (+.f64 a (+.f64 (+.f64 d b) c))) e)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 e (+.f64 a (+.f64 (+.f64 d b) c)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 a (+.f64 d b)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 a a) (-.f64 a (+.f64 d b))) (/.f64 (pow.f64 (+.f64 d b) 2) (-.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 a (+.f64 d b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 a (+.f64 d b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 a (+.f64 d b))) (cbrt.f64 (pow.f64 (+.f64 a (+.f64 d b)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 a (+.f64 d b)) 2)) (cbrt.f64 (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 a (+.f64 d b))) (sqrt.f64 (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d b) 3)) (/.f64 1 (fma.f64 a a (*.f64 (+.f64 d b) (-.f64 (+.f64 d b) a)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 a a) (pow.f64 (+.f64 d b) 2)) (/.f64 1 (-.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 a a (*.f64 (+.f64 d b) (-.f64 (+.f64 d b) a))) (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d b) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 a (+.f64 d b)) (-.f64 (*.f64 a a) (pow.f64 (+.f64 d b) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d b) 3)) (fma.f64 a a (*.f64 (+.f64 d b) (-.f64 (+.f64 d b) a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d b) 3)) (+.f64 (pow.f64 (+.f64 d b) 2) (-.f64 (*.f64 a a) (*.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 a a) (pow.f64 (+.f64 d b) 2)) (-.f64 a (+.f64 d b)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d b) 3))) (neg.f64 (fma.f64 a a (*.f64 (+.f64 d b) (-.f64 (+.f64 d b) a)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 a a) (pow.f64 (+.f64 d b) 2))) (neg.f64 (-.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 a d) 3) (pow.f64 b 3)) (+.f64 (*.f64 (+.f64 a d) (+.f64 a d)) (-.f64 (*.f64 b b) (*.f64 (+.f64 a d) b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 d b) 2) (*.f64 a a)) (-.f64 (+.f64 d b) a))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 a d) (+.f64 a d)) (*.f64 b b)) (-.f64 (+.f64 a d) b))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 a (+.f64 d b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 a (+.f64 d b))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 a (+.f64 d b))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 a (+.f64 d b)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 a (+.f64 d b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 a (+.f64 d b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 a (+.f64 d b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 d b) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 d b)) 2) (cbrt.f64 (+.f64 d b)) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (cbrt.f64 a) (+.f64 d b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 d b)) (sqrt.f64 (+.f64 d b)) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (sqrt.f64 a) (+.f64 d b))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 a (+.f64 d b))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 a (+.f64 (+.f64 d b) c)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 c c) (-.f64 c (+.f64 a (+.f64 d b)))) (/.f64 (pow.f64 (+.f64 a (+.f64 d b)) 2) (-.f64 c (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 a (+.f64 (+.f64 d b) c)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 a (+.f64 (+.f64 d b) c))) (pow.f64 (cbrt.f64 (+.f64 a (+.f64 (+.f64 d b) c))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 a (+.f64 (+.f64 d b) c))) 2) (cbrt.f64 (+.f64 a (+.f64 (+.f64 d b) c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 a (+.f64 (+.f64 d b) c))) (sqrt.f64 (+.f64 a (+.f64 (+.f64 d b) c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 c 3) (pow.f64 (+.f64 a (+.f64 d b)) 3)) (/.f64 1 (fma.f64 c c (*.f64 (+.f64 a (+.f64 d b)) (-.f64 (+.f64 a (+.f64 d b)) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 c c) (pow.f64 (+.f64 a (+.f64 d b)) 2)) (/.f64 1 (-.f64 c (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 c c (*.f64 (+.f64 a (+.f64 d b)) (-.f64 (+.f64 a (+.f64 d b)) c))) (+.f64 (pow.f64 c 3) (pow.f64 (+.f64 a (+.f64 d b)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 c (+.f64 a (+.f64 d b))) (-.f64 (*.f64 c c) (pow.f64 (+.f64 a (+.f64 d b)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 c 3) (pow.f64 (+.f64 a (+.f64 d b)) 3)) (fma.f64 c c (*.f64 (+.f64 a (+.f64 d b)) (-.f64 (+.f64 a (+.f64 d b)) c))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 c 3) (pow.f64 (+.f64 a (+.f64 d b)) 3)) (+.f64 (pow.f64 (+.f64 a (+.f64 d b)) 2) (-.f64 (*.f64 c c) (*.f64 c (+.f64 a (+.f64 d b))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 c c) (pow.f64 (+.f64 a (+.f64 d b)) 2)) (-.f64 c (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 c 3) (pow.f64 (+.f64 a (+.f64 d b)) 3))) (neg.f64 (fma.f64 c c (*.f64 (+.f64 a (+.f64 d b)) (-.f64 (+.f64 a (+.f64 d b)) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 c c) (pow.f64 (+.f64 a (+.f64 d b)) 2))) (neg.f64 (-.f64 c (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 c a) 3) (pow.f64 (+.f64 d b) 3)) (+.f64 (*.f64 (+.f64 c a) (+.f64 c a)) (-.f64 (pow.f64 (+.f64 d b) 2) (*.f64 (+.f64 c a) (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 a (+.f64 d b)) 2) (*.f64 c c)) (-.f64 (+.f64 a (+.f64 d b)) c))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 c a) (+.f64 c a)) (pow.f64 (+.f64 d b) 2)) (-.f64 (+.f64 c a) (+.f64 d b)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 a (+.f64 (+.f64 d b) c))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 a (+.f64 (+.f64 d b) c))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 a (+.f64 (+.f64 d b) c))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 a (+.f64 (+.f64 d b) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 a (+.f64 (+.f64 d b) c)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 a (+.f64 (+.f64 d b) c))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 c (+.f64 a (+.f64 d b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 a (+.f64 d b)) c)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (+.f64 a (+.f64 d b)) 2)) (cbrt.f64 (+.f64 a (+.f64 d b))) c)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 c) 2) (cbrt.f64 c) (+.f64 a (+.f64 d b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 a (+.f64 d b))) (sqrt.f64 (+.f64 a (+.f64 d b))) c)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 c) (sqrt.f64 c) (+.f64 a (+.f64 d b)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 a (+.f64 (+.f64 d b) c))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 a (+.f64 (+.f64 d b) c))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 a (+.f64 (+.f64 d b) c))) 1))))))

simplify21.0ms (0.9%)

Algorithm
egg-herbie
Rules
125×associate-+l+_binary64
56×associate-+r+_binary64
37×+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024699
157699
2139699
3253699
4262699
Stop Event
saturated
Counts
192 → 136
Calls
Call 1
Inputs
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 d (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 d (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 d b)
a
a
(+.f64 a b)
d
d
(+.f64 a d)
b
b
(+.f64 a (+.f64 d b))
c
c
(+.f64 c (+.f64 d b))
a
a
(+.f64 c (+.f64 a b))
d
d
(+.f64 c (+.f64 a d))
b
b
Outputs
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 a (+.f64 b c)) d)
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 a (+.f64 d (+.f64 b e)))
(+.f64 b (+.f64 a (+.f64 d e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 d (+.f64 b e)))
(+.f64 (+.f64 d b) (+.f64 c e))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 b e)))
(+.f64 (+.f64 c a) (+.f64 b e))
(+.f64 (+.f64 b e) (+.f64 c a))
(+.f64 b (+.f64 a (+.f64 c e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 d b)
a
a
(+.f64 a b)
d
d
(+.f64 a d)
b
b
(+.f64 a (+.f64 d b))
c
c
(+.f64 c (+.f64 d b))
a
a
(+.f64 c (+.f64 a b))
(+.f64 a (+.f64 b c))
(+.f64 a (+.f64 c b))
d
d
(+.f64 c (+.f64 a d))
(+.f64 d (+.f64 c a))
b
b

prune164.0ms (6.6%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New1324136
Fresh011
Picked101
Done000
Total1335138
Error
0b
Counts
138 → 5
Alt Table
StatusErrorProgram
0.3b
(fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 a (+.f64 (+.f64 d b) c)))
0.3b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
0.4b
(+.f64 (+.f64 (+.f64 (+.f64 e d) c) b) a)
0.3b
(+.f64 e (+.f64 c (expm1.f64 (log1p.f64 (+.f64 a (+.f64 d b))))))
0.3b
(+.f64 e (+.f64 c (pow.f64 (sqrt.f64 (+.f64 a (+.f64 d b))) 2)))
Compiler

Compiled 2335 to 722 computations (69.1% saved)

localize8.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(+.f64 (+.f64 d b) c)
0.2b
(+.f64 a (+.f64 (+.f64 d b) c))
0.3b
(fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 a (+.f64 (+.f64 d b) c)))

series12.0ms (0.5%)

Counts
3 → 133
Calls

36 calls:

TimeVariablePointExpression
1.0ms
e
@0
(fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 a (+.f64 (+.f64 d b) c)))
1.0ms
e
@inf
(fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 a (+.f64 (+.f64 d b) c)))
1.0ms
e
@-inf
(fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 a (+.f64 (+.f64 d b) c)))
0.0ms
a
@0
(fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 a (+.f64 (+.f64 d b) c)))
0.0ms
c
@0
(fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 a (+.f64 (+.f64 d b) c)))

rewrite59.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
704×fma-def_binary64
344×fma-neg_binary64
235×expm1-udef_binary64
235×log1p-udef_binary64
136×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01130
125030
2376130
Stop Event
node limit
Counts
3 → 150
Calls
Call 1
Inputs
(fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 a (+.f64 (+.f64 d b) c)))
(+.f64 a (+.f64 (+.f64 d b) c))
(+.f64 (+.f64 d b) c)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 e (+.f64 a (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 a (+.f64 d (+.f64 b c))) e)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 e (+.f64 d (+.f64 b c))) a)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 e (+.f64 a (+.f64 d b))) c)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))) (pow.f64 (cbrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))) 2) (cbrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))) (sqrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 a (+.f64 d (+.f64 b c))) 3)) (fma.f64 e e (-.f64 (pow.f64 (+.f64 a (+.f64 d (+.f64 b c))) 2) (*.f64 e (+.f64 a (+.f64 d (+.f64 b c)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 a (+.f64 d (+.f64 b c))) 2)) (-.f64 e (+.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 a (+.f64 d (+.f64 b c))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 a a) (-.f64 a (+.f64 d (+.f64 b c)))) (/.f64 (pow.f64 (+.f64 d (+.f64 b c)) 2) (-.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 a (+.f64 d (+.f64 b c))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 a (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))) (pow.f64 (cbrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))) 2) (cbrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))) (sqrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d (+.f64 b c)) 3)) (/.f64 1 (fma.f64 (+.f64 d (+.f64 b c)) (-.f64 (+.f64 d (+.f64 b c)) a) (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 a a) (pow.f64 (+.f64 d (+.f64 b c)) 2)) (/.f64 1 (-.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (+.f64 d (+.f64 b c)) (-.f64 (+.f64 d (+.f64 b c)) a) (*.f64 a a)) (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d (+.f64 b c)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 a (+.f64 d (+.f64 b c))) (-.f64 (*.f64 a a) (pow.f64 (+.f64 d (+.f64 b c)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d (+.f64 b c)) 3)) (fma.f64 (+.f64 d (+.f64 b c)) (-.f64 (+.f64 d (+.f64 b c)) a) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d (+.f64 b c)) 3)) (+.f64 (pow.f64 (+.f64 d (+.f64 b c)) 2) (-.f64 (*.f64 a a) (*.f64 a (+.f64 d (+.f64 b c))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 a a) (pow.f64 (+.f64 d (+.f64 b c)) 2)) (-.f64 a (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d (+.f64 b c)) 3))) (neg.f64 (fma.f64 (+.f64 d (+.f64 b c)) (-.f64 (+.f64 d (+.f64 b c)) a) (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 a a) (pow.f64 (+.f64 d (+.f64 b c)) 2))) (neg.f64 (-.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 a (+.f64 d b)) 3) (pow.f64 c 3)) (fma.f64 (+.f64 a (+.f64 d b)) (+.f64 a (+.f64 d b)) (-.f64 (*.f64 c c) (*.f64 (+.f64 a (+.f64 d b)) c))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 d (+.f64 b c)) 2) (*.f64 a a)) (-.f64 (+.f64 d (+.f64 b c)) a))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 a (+.f64 d b)) (+.f64 a (+.f64 d b))) (*.f64 c c)) (-.f64 (+.f64 a (+.f64 d b)) c))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 a (+.f64 d (+.f64 b c))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 a (+.f64 d (+.f64 b c))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 a (+.f64 d (+.f64 b c))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 a (+.f64 d (+.f64 b c))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 a (+.f64 d (+.f64 b c))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a 1 (+.f64 d (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d 1 (+.f64 (+.f64 b c) a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 d b) 1 (+.f64 c a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 c 1 (+.f64 a (+.f64 d b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 d (+.f64 b c)) 1 a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 a (+.f64 d (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 d (+.f64 (+.f64 b c) a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 d b) (+.f64 c a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 c (+.f64 a (+.f64 d b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 d (+.f64 b c)) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 a (+.f64 d b)) c)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 c) (pow.f64 (cbrt.f64 c) 2) (+.f64 a (+.f64 d b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 c) 2) (cbrt.f64 c) (+.f64 a (+.f64 d b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 d) (pow.f64 (cbrt.f64 d) 2) (+.f64 (+.f64 b c) a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d) 2) (cbrt.f64 d) (+.f64 (+.f64 b c) a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 d (+.f64 b c))) (cbrt.f64 (pow.f64 (+.f64 d (+.f64 b c)) 2)) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (+.f64 d (+.f64 b c)) 2)) (cbrt.f64 (+.f64 d (+.f64 b c))) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 d b)) (pow.f64 (cbrt.f64 (+.f64 d b)) 2) (+.f64 c a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 d b)) 2) (cbrt.f64 (+.f64 d b)) (+.f64 c a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 a) 2) (+.f64 d (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (cbrt.f64 a) (+.f64 d (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 c) (sqrt.f64 c) (+.f64 a (+.f64 d b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d) (sqrt.f64 d) (+.f64 (+.f64 b c) a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 d (+.f64 b c))) (sqrt.f64 (+.f64 d (+.f64 b c))) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 d b)) (sqrt.f64 (+.f64 d b)) (+.f64 c a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (sqrt.f64 a) (+.f64 d (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 (+.f64 d b) 3) (pow.f64 c 3)) (/.f64 1 (fma.f64 c (-.f64 c (+.f64 d b)) (pow.f64 (+.f64 d b) 2))) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 d 3) (pow.f64 b 3)) (/.f64 1 (fma.f64 b (-.f64 b d) (*.f64 d d))) (+.f64 c a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (+.f64 d b) 2) (*.f64 c c)) (/.f64 1 (+.f64 d (-.f64 b c))) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 d b) (-.f64 d b)) (/.f64 1 (-.f64 d b)) (+.f64 c a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 a (+.f64 d b)) 1 c)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (+.f64 a (+.f64 d b))) (cbrt.f64 (+.f64 a (+.f64 d b)))) (cbrt.f64 (+.f64 a (+.f64 d b))) c)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 a (+.f64 d b))) (sqrt.f64 (+.f64 a (+.f64 d b))) c)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 a (+.f64 d (+.f64 b c)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 d (+.f64 b c)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (+.f64 d b) 2) (+.f64 d (-.f64 b c))) (/.f64 (*.f64 c c) (+.f64 d (-.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d (+.f64 b c)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 d (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 d (+.f64 b c))) (cbrt.f64 (pow.f64 (+.f64 d (+.f64 b c)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 d (+.f64 b c)) 2)) (cbrt.f64 (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 d (+.f64 b c))) (sqrt.f64 (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (+.f64 d b) 3) (pow.f64 c 3)) (/.f64 1 (fma.f64 c (-.f64 c (+.f64 d b)) (pow.f64 (+.f64 d b) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (+.f64 d b) 2) (*.f64 c c)) (/.f64 1 (+.f64 d (-.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 c (-.f64 c (+.f64 d b)) (pow.f64 (+.f64 d b) 2)) (+.f64 (pow.f64 (+.f64 d b) 3) (pow.f64 c 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 d (-.f64 b c)) (-.f64 (pow.f64 (+.f64 d b) 2) (*.f64 c c))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 d b) 3) (pow.f64 c 3)) (fma.f64 c (-.f64 c (+.f64 d b)) (pow.f64 (+.f64 d b) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 d b) 3) (pow.f64 c 3)) (fma.f64 c c (-.f64 (pow.f64 (+.f64 d b) 2) (*.f64 (+.f64 d b) c))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 d b) 2) (*.f64 c c)) (+.f64 d (-.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (+.f64 d b) 3) (pow.f64 c 3))) (neg.f64 (fma.f64 c (-.f64 c (+.f64 d b)) (pow.f64 (+.f64 d b) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (+.f64 d b) 2) (*.f64 c c))) (neg.f64 (+.f64 d (-.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b c) 3)) (fma.f64 d d (-.f64 (*.f64 (+.f64 b c) (+.f64 b c)) (*.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 d d) (*.f64 (+.f64 b c) (+.f64 b c))) (-.f64 d (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 c c) (pow.f64 (+.f64 d b) 2)) (-.f64 c (+.f64 d b)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 d (+.f64 b c)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 d (+.f64 b c))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 d (+.f64 b c))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 d (+.f64 b c)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 d (+.f64 b c)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 d (+.f64 b c)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d 1 (+.f64 b c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d 1 (*.f64 (+.f64 b c) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b 1 (+.f64 d c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 d b) 1 c)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 c 1 (+.f64 d b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 d (+.f64 b c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 d (*.f64 (+.f64 b c) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 b (+.f64 d c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 d b) c)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 c (+.f64 d b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 b c) d)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 c) (pow.f64 (cbrt.f64 c) 2) (+.f64 d b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 c) 2) (cbrt.f64 c) (+.f64 d b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 d) (pow.f64 (cbrt.f64 d) 2) (+.f64 b c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 d) (pow.f64 (cbrt.f64 d) 2) (*.f64 (+.f64 b c) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d) 2) (cbrt.f64 d) (+.f64 b c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d) 2) (cbrt.f64 d) (*.f64 (+.f64 b c) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b)) (+.f64 d c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 b b)) (cbrt.f64 b) (+.f64 d c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 d b)) (pow.f64 (cbrt.f64 (+.f64 d b)) 2) c)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 d b)) 2) (cbrt.f64 (+.f64 d b)) c)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 c) (sqrt.f64 c) (+.f64 d b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d) (sqrt.f64 d) (+.f64 b c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d) (sqrt.f64 d) (*.f64 (+.f64 b c) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 b) (sqrt.f64 b) (+.f64 d c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 d b)) (sqrt.f64 (+.f64 d b)) c)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 d 3) (pow.f64 b 3)) (/.f64 1 (fma.f64 b (-.f64 b d) (*.f64 d d))) c)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 d b) (-.f64 d b)) (/.f64 1 (-.f64 d b)) c)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (+.f64 b c)) (cbrt.f64 (+.f64 b c))) (cbrt.f64 (+.f64 b c)) d)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 b c)) (sqrt.f64 (+.f64 b c)) d)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 d (+.f64 b c))) 1))))))

simplify34.0ms (1.4%)

Algorithm
egg-herbie
Rules
118×associate-+l+_binary64
54×associate-+r+_binary64
32×+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0261129
1601129
21371129
32391129
42421129
Stop Event
saturated
Counts
283 → 173
Calls
Call 1
Inputs
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 d (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 d (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
a
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
a
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a b))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
d
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
d
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a d))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
b
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
b
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 d b))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
c
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
c
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c b)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
d
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
d
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c d)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
b
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
b
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 d b)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
c
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
c
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
Outputs
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 d (+.f64 b e)))
(+.f64 b (+.f64 c (+.f64 d e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 a (+.f64 d (+.f64 b e)))
(+.f64 b (+.f64 a (+.f64 d e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
a
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
a
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a b))
(+.f64 a (+.f64 c b))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
d
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
d
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a d))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
b
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
b
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 a (+.f64 d b))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
c
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
c
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 c (+.f64 d b)))
(+.f64 c b)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
d
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
d
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c d)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
b
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
b
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 d b)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
c
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
c
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))

prune132.0ms (5.3%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1721173
Fresh134
Picked011
Done000
Total1735178
Error
0b
Counts
178 → 5
Alt Table
StatusErrorProgram
0.3b
(fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 a (+.f64 (+.f64 d b) c)))
0.3b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
0.2b
(+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))
0.4b
(+.f64 (+.f64 (+.f64 (+.f64 e d) c) b) a)
0.3b
(+.f64 e (+.f64 c (expm1.f64 (log1p.f64 (+.f64 a (+.f64 d b))))))
Compiler

Compiled 3036 to 865 computations (71.5% saved)

localize7.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(+.f64 d (+.f64 b c))
0.2b
(+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))

series6.0ms (0.2%)

Counts
2 → 96
Calls

24 calls:

TimeVariablePointExpression
0.0ms
e
@0
(+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))
0.0ms
a
@inf
(+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))
0.0ms
a
@-inf
(+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))
0.0ms
e
@-inf
(+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))
0.0ms
b
@inf
(+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))

rewrite58.0ms (2.4%)

Algorithm
batch-egg-rewrite
Rules
433×fma-neg_binary64
236×expm1-udef_binary64
236×log1p-udef_binary64
136×add-sqr-sqrt_binary64
135×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01020
124220
2404220
Stop Event
node limit
Counts
2 → 87
Calls
Call 1
Inputs
(+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))
(+.f64 d (+.f64 b c))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (+.f64 e a) 2) (+.f64 e (-.f64 a (+.f64 b (+.f64 c d))))) (/.f64 (pow.f64 (+.f64 b (+.f64 c d)) 2) (+.f64 e (-.f64 a (+.f64 b (+.f64 c d))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d))))) (pow.f64 (cbrt.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d))))) 2) (cbrt.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d))))) (sqrt.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (+.f64 e a) 3) (pow.f64 (+.f64 b (+.f64 c d)) 3)) (/.f64 1 (+.f64 (pow.f64 (+.f64 e a) 2) (*.f64 (+.f64 b (+.f64 c d)) (-.f64 (+.f64 b (+.f64 c d)) (+.f64 e a))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (+.f64 e a) 2) (pow.f64 (+.f64 b (+.f64 c d)) 2)) (/.f64 1 (+.f64 e (-.f64 a (+.f64 b (+.f64 c d))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (+.f64 e a) 2) (*.f64 (+.f64 b (+.f64 c d)) (-.f64 (+.f64 b (+.f64 c d)) (+.f64 e a)))) (+.f64 (pow.f64 (+.f64 e a) 3) (pow.f64 (+.f64 b (+.f64 c d)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 e (-.f64 a (+.f64 b (+.f64 c d)))) (-.f64 (pow.f64 (+.f64 e a) 2) (pow.f64 (+.f64 b (+.f64 c d)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 e a) 3) (pow.f64 (+.f64 b (+.f64 c d)) 3)) (+.f64 (pow.f64 (+.f64 e a) 2) (*.f64 (+.f64 b (+.f64 c d)) (-.f64 (+.f64 b (+.f64 c d)) (+.f64 e a)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 e a) 3) (pow.f64 (+.f64 b (+.f64 c d)) 3)) (+.f64 (pow.f64 (+.f64 b (+.f64 c d)) 2) (-.f64 (pow.f64 (+.f64 e a) 2) (*.f64 (+.f64 e a) (+.f64 b (+.f64 c d))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 e a) 2) (pow.f64 (+.f64 b (+.f64 c d)) 2)) (+.f64 e (-.f64 a (+.f64 b (+.f64 c d)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (+.f64 e a) 3) (pow.f64 (+.f64 b (+.f64 c d)) 3))) (neg.f64 (+.f64 (pow.f64 (+.f64 e a) 2) (*.f64 (+.f64 b (+.f64 c d)) (-.f64 (+.f64 b (+.f64 c d)) (+.f64 e a))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (+.f64 e a) 2) (pow.f64 (+.f64 b (+.f64 c d)) 2))) (neg.f64 (+.f64 e (-.f64 a (+.f64 b (+.f64 c d))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (+.f64 (pow.f64 e 3) (pow.f64 a 3)) (fma.f64 d d (*.f64 (+.f64 b c) (-.f64 (+.f64 b c) d)))) (*.f64 (fma.f64 e e (*.f64 a (-.f64 a e))) (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b c) 3)))) (*.f64 (fma.f64 e e (*.f64 a (-.f64 a e))) (fma.f64 d d (*.f64 (+.f64 b c) (-.f64 (+.f64 b c) d)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (-.f64 (*.f64 e e) (*.f64 a a)) (fma.f64 d d (*.f64 (+.f64 b c) (-.f64 (+.f64 b c) d)))) (*.f64 (-.f64 e a) (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b c) 3)))) (*.f64 (-.f64 e a) (fma.f64 d d (*.f64 (+.f64 b c) (-.f64 (+.f64 b c) d)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (+.f64 (pow.f64 e 3) (pow.f64 a 3)) (-.f64 (-.f64 d c) b)) (*.f64 (fma.f64 e e (*.f64 a (-.f64 a e))) (-.f64 (*.f64 d d) (pow.f64 (+.f64 b c) 2)))) (*.f64 (fma.f64 e e (*.f64 a (-.f64 a e))) (-.f64 (-.f64 d c) b)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (-.f64 (*.f64 e e) (*.f64 a a)) (-.f64 (-.f64 d c) b)) (*.f64 (-.f64 e a) (-.f64 (*.f64 d d) (pow.f64 (+.f64 b c) 2)))) (*.f64 (-.f64 e a) (-.f64 (-.f64 d c) b)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b c) 3)) (fma.f64 e e (*.f64 a (-.f64 a e)))) (*.f64 (fma.f64 d d (*.f64 (+.f64 b c) (-.f64 (+.f64 b c) d))) (+.f64 (pow.f64 e 3) (pow.f64 a 3)))) (*.f64 (fma.f64 d d (*.f64 (+.f64 b c) (-.f64 (+.f64 b c) d))) (fma.f64 e e (*.f64 a (-.f64 a e)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (-.f64 (*.f64 d d) (pow.f64 (+.f64 b c) 2)) (fma.f64 e e (*.f64 a (-.f64 a e)))) (*.f64 (-.f64 (-.f64 d c) b) (+.f64 (pow.f64 e 3) (pow.f64 a 3)))) (*.f64 (-.f64 (-.f64 d c) b) (fma.f64 e e (*.f64 a (-.f64 a e)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b c) 3)) (-.f64 e a)) (*.f64 (fma.f64 d d (*.f64 (+.f64 b c) (-.f64 (+.f64 b c) d))) (-.f64 (*.f64 e e) (*.f64 a a)))) (*.f64 (fma.f64 d d (*.f64 (+.f64 b c) (-.f64 (+.f64 b c) d))) (-.f64 e a)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 (-.f64 (*.f64 d d) (pow.f64 (+.f64 b c) 2)) (-.f64 e a)) (*.f64 (-.f64 (-.f64 d c) b) (-.f64 (*.f64 e e) (*.f64 a a)))) (*.f64 (-.f64 (-.f64 d c) b) (-.f64 e a)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 a (+.f64 b (+.f64 c d))) 3)) (+.f64 (*.f64 e e) (-.f64 (*.f64 (+.f64 a (+.f64 b (+.f64 c d))) (+.f64 a (+.f64 b (+.f64 c d)))) (*.f64 e (+.f64 a (+.f64 b (+.f64 c d)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 e (+.f64 a d)) 3) (pow.f64 (+.f64 b c) 3)) (+.f64 (*.f64 (+.f64 e (+.f64 a d)) (+.f64 e (+.f64 a d))) (-.f64 (pow.f64 (+.f64 b c) 2) (*.f64 (+.f64 e (+.f64 a d)) (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 e e) (*.f64 (+.f64 a (+.f64 b (+.f64 c d))) (+.f64 a (+.f64 b (+.f64 c d))))) (-.f64 e (+.f64 a (+.f64 b (+.f64 c d)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 b (+.f64 c d)) 2) (pow.f64 (+.f64 e a) 2)) (-.f64 (+.f64 b (+.f64 c d)) (+.f64 e a)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 e (+.f64 a d)) (+.f64 e (+.f64 a d))) (pow.f64 (+.f64 b c) 2)) (-.f64 (+.f64 e (+.f64 a d)) (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 e (+.f64 a (+.f64 b (+.f64 c d))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 e a) (+.f64 b (+.f64 c d)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 b (+.f64 c d)) (+.f64 e a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 e e)) (cbrt.f64 e) (+.f64 a (+.f64 b (+.f64 c d))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 b (+.f64 c d))) 2) (cbrt.f64 (+.f64 b (+.f64 c d))) (+.f64 e a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 e a)) 2) (cbrt.f64 (+.f64 e a)) (+.f64 b (+.f64 c d)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 a (+.f64 b (+.f64 c d))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 b (+.f64 c d))) (sqrt.f64 (+.f64 b (+.f64 c d))) (+.f64 e a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 e a)) (sqrt.f64 (+.f64 e a)) (+.f64 b (+.f64 c d)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 e (+.f64 a (+.f64 b (+.f64 c d))))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 b (+.f64 c d)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 d d) (-.f64 (-.f64 d c) b)) (/.f64 (pow.f64 (+.f64 b c) 2) (-.f64 (-.f64 d c) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 b (+.f64 c d)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 b (+.f64 c d)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 b (+.f64 c d))) (pow.f64 (cbrt.f64 (+.f64 b (+.f64 c d))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 b (+.f64 c d))) 2) (cbrt.f64 (+.f64 b (+.f64 c d))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 b (+.f64 c d))) (sqrt.f64 (+.f64 b (+.f64 c d))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b c) 3)) (/.f64 1 (fma.f64 d d (*.f64 (+.f64 b c) (-.f64 (+.f64 b c) d)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 d d) (pow.f64 (+.f64 b c) 2)) (/.f64 1 (-.f64 (-.f64 d c) b)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 d d (*.f64 (+.f64 b c) (-.f64 (+.f64 b c) d))) (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b c) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (-.f64 d c) b) (-.f64 (*.f64 d d) (pow.f64 (+.f64 b c) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b c) 3)) (fma.f64 d d (*.f64 (+.f64 b c) (-.f64 (+.f64 b c) d))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b c) 3)) (+.f64 (pow.f64 (+.f64 b c) 2) (-.f64 (*.f64 d d) (*.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 d d) (pow.f64 (+.f64 b c) 2)) (-.f64 (-.f64 d c) b))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b c) 3))) (neg.f64 (fma.f64 d d (*.f64 (+.f64 b c) (-.f64 (+.f64 b c) d)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 d d) (pow.f64 (+.f64 b c) 2))) (neg.f64 (-.f64 (-.f64 d c) b)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 d b) 3) (pow.f64 c 3)) (+.f64 (*.f64 (+.f64 d b) (+.f64 d b)) (-.f64 (*.f64 c c) (*.f64 (+.f64 d b) c))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 b c) 2) (*.f64 d d)) (-.f64 (+.f64 b c) d))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 d b) (+.f64 d b)) (*.f64 c c)) (-.f64 (+.f64 d b) c))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 b (+.f64 c d)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 b (+.f64 c d))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 b (+.f64 c d))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 b (+.f64 c d)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 b (+.f64 c d)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 b (+.f64 c d))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 b (+.f64 c d)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 b (+.f64 c d)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 b (+.f64 c d))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 d (+.f64 b c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 b c) d)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (+.f64 b c) 2)) (cbrt.f64 (+.f64 b c)) d)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 d d)) (cbrt.f64 d) (+.f64 b c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 b c)) (sqrt.f64 (+.f64 b c)) d)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d) (sqrt.f64 d) (+.f64 b c))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 b (+.f64 c d))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 b (+.f64 c d))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 b (+.f64 c d))) 1))))))

simplify29.0ms (1.2%)

Algorithm
egg-herbie
Rules
124×associate-+l+_binary64
58×associate-+r+_binary64
46×+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
022852
152852
2134852
3261852
4272852
Stop Event
saturated
Counts
183 → 108
Calls
Call 1
Inputs
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 d (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 d (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c b)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
d
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
d
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c d)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
b
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
b
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 d b)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
c
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
c
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
Outputs
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 d b))
(+.f64 (+.f64 d b) (+.f64 c a))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 d (+.f64 b e)))
(+.f64 e (+.f64 c (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 b e)))
(+.f64 (+.f64 b e) (+.f64 c a))
(+.f64 b (+.f64 c (+.f64 a e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d e)))
(+.f64 c (+.f64 (+.f64 a d) e))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 a (+.f64 d (+.f64 b e)))
(+.f64 (+.f64 a d) (+.f64 b e))
(+.f64 b (+.f64 a (+.f64 d e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 b (+.f64 a (+.f64 d e))))
(+.f64 c b)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
d
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
d
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c d)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
b
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
b
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 d b)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
c
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
c
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))

prune84.0ms (3.4%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New1071108
Fresh123
Picked011
Done011
Total1085113
Error
0b
Counts
113 → 5
Alt Table
StatusErrorProgram
0.3b
(fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 a (+.f64 (+.f64 d b) c)))
0.3b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
0.2b
(fma.f64 1 e (+.f64 a (+.f64 b (+.f64 c d))))
0.2b
(+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))
0.4b
(+.f64 (+.f64 (+.f64 (+.f64 e d) c) b) a)
Compiler

Compiled 2103 to 606 computations (71.2% saved)

localize23.0ms (0.9%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(+.f64 b (+.f64 c d))
0.2b
(+.f64 a (+.f64 b (+.f64 c d)))
0.2b
(fma.f64 1 e (+.f64 a (+.f64 b (+.f64 c d))))

series11.0ms (0.5%)

Counts
3 → 144
Calls

36 calls:

TimeVariablePointExpression
1.0ms
e
@inf
(fma.f64 1 e (+.f64 a (+.f64 b (+.f64 c d))))
1.0ms
e
@0
(fma.f64 1 e (+.f64 a (+.f64 b (+.f64 c d))))
0.0ms
e
@-inf
(fma.f64 1 e (+.f64 a (+.f64 b (+.f64 c d))))
0.0ms
a
@0
(fma.f64 1 e (+.f64 a (+.f64 b (+.f64 c d))))
0.0ms
b
@0
(fma.f64 1 e (+.f64 a (+.f64 b (+.f64 c d))))

rewrite61.0ms (2.5%)

Algorithm
batch-egg-rewrite
Rules
649×fma-def_binary64
338×fma-neg_binary64
227×expm1-udef_binary64
227×log1p-udef_binary64
131×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01130
124330
2361230
Stop Event
node limit
Counts
3 → 144
Calls
Call 1
Inputs
(fma.f64 1 e (+.f64 a (+.f64 b (+.f64 c d))))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 b (+.f64 c d))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 e (+.f64 a (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 a (+.f64 d (+.f64 b c))) e)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 e (+.f64 d (+.f64 b c))) a)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 e (+.f64 a b)) (+.f64 c d))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))) (pow.f64 (cbrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))) 2) (cbrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))) (sqrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 a (+.f64 d (+.f64 b c))) 3)) (fma.f64 e e (-.f64 (pow.f64 (+.f64 a (+.f64 d (+.f64 b c))) 2) (*.f64 e (+.f64 a (+.f64 d (+.f64 b c)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 a (+.f64 d (+.f64 b c))) 2)) (-.f64 e (+.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 a (+.f64 d (+.f64 b c))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 a a) (-.f64 a (+.f64 d (+.f64 b c)))) (/.f64 (pow.f64 (+.f64 d (+.f64 b c)) 2) (-.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 a (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 a (+.f64 d (+.f64 b c))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))) (pow.f64 (cbrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))) 2) (cbrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))) (sqrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d (+.f64 b c)) 3)) (/.f64 1 (fma.f64 (+.f64 d (+.f64 b c)) (-.f64 (+.f64 d (+.f64 b c)) a) (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 a a) (pow.f64 (+.f64 d (+.f64 b c)) 2)) (/.f64 1 (-.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (+.f64 d (+.f64 b c)) (-.f64 (+.f64 d (+.f64 b c)) a) (*.f64 a a)) (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d (+.f64 b c)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 a (+.f64 d (+.f64 b c))) (-.f64 (*.f64 a a) (pow.f64 (+.f64 d (+.f64 b c)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d (+.f64 b c)) 3)) (fma.f64 (+.f64 d (+.f64 b c)) (-.f64 (+.f64 d (+.f64 b c)) a) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d (+.f64 b c)) 3)) (+.f64 (pow.f64 (+.f64 d (+.f64 b c)) 2) (-.f64 (*.f64 a a) (*.f64 a (+.f64 d (+.f64 b c))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 a a) (pow.f64 (+.f64 d (+.f64 b c)) 2)) (-.f64 a (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d (+.f64 b c)) 3))) (neg.f64 (fma.f64 (+.f64 d (+.f64 b c)) (-.f64 (+.f64 d (+.f64 b c)) a) (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 a a) (pow.f64 (+.f64 d (+.f64 b c)) 2))) (neg.f64 (-.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 a b) 3) (pow.f64 (+.f64 c d) 3)) (fma.f64 (+.f64 a b) (+.f64 a b) (-.f64 (pow.f64 (+.f64 c d) 2) (*.f64 (+.f64 a b) (+.f64 c d)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 d (+.f64 b c)) 2) (*.f64 a a)) (-.f64 (+.f64 d (+.f64 b c)) a))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 a b) (+.f64 a b)) (pow.f64 (+.f64 c d) 2)) (-.f64 (+.f64 a b) (+.f64 c d)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 a (+.f64 d (+.f64 b c))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 a (+.f64 d (+.f64 b c))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 a (+.f64 d (+.f64 b c)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 a (+.f64 d (+.f64 b c))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 a (+.f64 d (+.f64 b c))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 a (+.f64 d (+.f64 b c))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 a (+.f64 d (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 b (+.f64 (+.f64 c d) a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 c d) (+.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 d (+.f64 b c)) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 b c) (+.f64 d a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 a b) (+.f64 c d))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a 1 (+.f64 d (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b 1 (+.f64 (+.f64 c d) a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 c d) 1 (+.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 d (+.f64 b c)) 1 a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 c d)) (pow.f64 (cbrt.f64 (+.f64 c d)) 2) (+.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 c d)) 2) (cbrt.f64 (+.f64 c d)) (+.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 b) (pow.f64 (cbrt.f64 b) 2) (+.f64 (+.f64 c d) a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 b) 2) (cbrt.f64 b) (+.f64 (+.f64 c d) a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 d (+.f64 b c))) (pow.f64 (cbrt.f64 (+.f64 d (+.f64 b c))) 2) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 d (+.f64 b c))) 2) (cbrt.f64 (+.f64 d (+.f64 b c))) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 a) 2) (+.f64 d (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (cbrt.f64 a) (+.f64 d (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 c d)) (sqrt.f64 (+.f64 c d)) (+.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 b) (sqrt.f64 b) (+.f64 (+.f64 c d) a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 d (+.f64 b c))) (sqrt.f64 (+.f64 d (+.f64 b c))) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (sqrt.f64 a) (+.f64 d (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 b 3) (pow.f64 (+.f64 c d) 3)) (/.f64 1 (fma.f64 b b (*.f64 (+.f64 c d) (-.f64 (+.f64 c d) b)))) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 c 3) (pow.f64 d 3)) (/.f64 1 (fma.f64 d (-.f64 d c) (*.f64 c c))) (+.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 b b) (pow.f64 (+.f64 c d) 2)) (/.f64 1 (-.f64 b (+.f64 c d))) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 c c) (*.f64 d d)) (/.f64 1 (-.f64 c d)) (+.f64 a b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 a b) 1 (+.f64 c d))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (+.f64 b c)) (cbrt.f64 (+.f64 b c))) (cbrt.f64 (+.f64 b c)) (+.f64 d a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (+.f64 a b)) (cbrt.f64 (+.f64 a b))) (cbrt.f64 (+.f64 a b)) (+.f64 c d))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 b c)) (sqrt.f64 (+.f64 b c)) (+.f64 d a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 a b)) (sqrt.f64 (+.f64 a b)) (+.f64 c d))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 a (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 a (+.f64 d (+.f64 b c)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 d (+.f64 b c)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 b b) (-.f64 b (+.f64 c d))) (/.f64 (pow.f64 (+.f64 c d) 2) (-.f64 b (+.f64 c d))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 d (+.f64 b c)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d (+.f64 b c)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 d (+.f64 b c))) (pow.f64 (cbrt.f64 (+.f64 d (+.f64 b c))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 d (+.f64 b c))) 2) (cbrt.f64 (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 d (+.f64 b c))) (sqrt.f64 (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 b 3) (pow.f64 (+.f64 c d) 3)) (/.f64 1 (fma.f64 b b (*.f64 (+.f64 c d) (-.f64 (+.f64 c d) b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 b b) (pow.f64 (+.f64 c d) 2)) (/.f64 1 (-.f64 b (+.f64 c d))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 b b (*.f64 (+.f64 c d) (-.f64 (+.f64 c d) b))) (+.f64 (pow.f64 b 3) (pow.f64 (+.f64 c d) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 b (+.f64 c d)) (-.f64 (*.f64 b b) (pow.f64 (+.f64 c d) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 b 3) (pow.f64 (+.f64 c d) 3)) (fma.f64 b b (*.f64 (+.f64 c d) (-.f64 (+.f64 c d) b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 b 3) (pow.f64 (+.f64 c d) 3)) (+.f64 (pow.f64 (+.f64 c d) 2) (-.f64 (*.f64 b b) (*.f64 b (+.f64 c d)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 b b) (pow.f64 (+.f64 c d) 2)) (-.f64 b (+.f64 c d)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 b 3) (pow.f64 (+.f64 c d) 3))) (neg.f64 (fma.f64 b b (*.f64 (+.f64 c d) (-.f64 (+.f64 c d) b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 b b) (pow.f64 (+.f64 c d) 2))) (neg.f64 (-.f64 b (+.f64 c d))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 b c) 3) (pow.f64 d 3)) (fma.f64 (+.f64 b c) (+.f64 b c) (-.f64 (*.f64 d d) (*.f64 (+.f64 b c) d))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 c d) 2) (*.f64 b b)) (-.f64 (+.f64 c d) b))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 b c) (+.f64 b c)) (*.f64 d d)) (-.f64 (+.f64 b c) d))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 d (+.f64 b c)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 d (+.f64 b c))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 d (+.f64 b c))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 d (+.f64 b c)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 d (+.f64 b c)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 d (+.f64 b c)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 d (+.f64 b c)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 b (+.f64 c d))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 c (+.f64 d b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 d (+.f64 b c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 c d) b)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 b c) d)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b 1 (+.f64 c d))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 c 1 (+.f64 d b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d 1 (+.f64 b c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 c d) 1 b)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 c d)) (pow.f64 (cbrt.f64 (+.f64 c d)) 2) b)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 c d)) 2) (cbrt.f64 (+.f64 c d)) b)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 b) (pow.f64 (cbrt.f64 b) 2) (+.f64 c d))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 b) 2) (cbrt.f64 b) (+.f64 c d))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 c) (pow.f64 (cbrt.f64 c) 2) (+.f64 d b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 c) 2) (cbrt.f64 c) (+.f64 d b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 d) (pow.f64 (cbrt.f64 d) 2) (+.f64 b c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d) 2) (cbrt.f64 d) (+.f64 b c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 c d)) (sqrt.f64 (+.f64 c d)) b)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 b) (sqrt.f64 b) (+.f64 c d))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 c) (sqrt.f64 c) (+.f64 d b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d) (sqrt.f64 d) (+.f64 b c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 c 3) (pow.f64 d 3)) (/.f64 1 (fma.f64 d (-.f64 d c) (*.f64 c c))) b)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 c c) (*.f64 d d)) (/.f64 1 (-.f64 c d)) b)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 b c) 1 d)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (+.f64 b c)) (cbrt.f64 (+.f64 b c))) (cbrt.f64 (+.f64 b c)) d)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 b c)) (sqrt.f64 (+.f64 b c)) d)))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 d (+.f64 b c))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 d (+.f64 b c))) 1))))))

simplify37.0ms (1.5%)

Algorithm
egg-herbie
Rules
120×associate-+l+_binary64
54×associate-+r+_binary64
33×+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0261248
1601248
21371248
32401248
42461248
Stop Event
saturated
Counts
288 → 168
Calls
Call 1
Inputs
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 d (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 d (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
a
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
a
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a d))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
b
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
b
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 a (+.f64 d b))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
c
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
c
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a b))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
d
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
d
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c d)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
b
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
b
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 d b)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
c
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
c
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c b)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
d
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
d
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
Outputs
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 d (+.f64 b e)))
(+.f64 b (+.f64 d (+.f64 c e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d e)))
(+.f64 a (+.f64 (+.f64 d e) c))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 a (+.f64 d (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 b e)))
(+.f64 (+.f64 a b) (+.f64 e c))
(+.f64 b (+.f64 c (+.f64 a e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
a
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
a
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a d))
(+.f64 d (+.f64 c a))
(+.f64 a (+.f64 c d))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
b
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
b
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 a (+.f64 d b))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
c
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
c
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a b))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
d
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
d
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c (+.f64 a b)) d)
(+.f64 c d)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
b
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
b
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 d b)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
c
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
c
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c b)
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
d
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
d
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))
(+.f64 c (+.f64 d b))

prune151.0ms (6.1%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New1680168
Fresh022
Picked011
Done022
Total1685173
Error
0b
Counts
173 → 5
Alt Table
StatusErrorProgram
0.3b
(fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 a (+.f64 (+.f64 d b) c)))
0.3b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
0.2b
(fma.f64 1 e (+.f64 a (+.f64 b (+.f64 c d))))
0.2b
(+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))
0.4b
(+.f64 (+.f64 (+.f64 (+.f64 e d) c) b) a)
Compiler

Compiled 2620 to 908 computations (65.3% saved)

regimes186.0ms (7.5%)

Accuracy

Total -0.5b remaining (-218.6%)

Threshold costs -0.5b (-218.6%)

Counts
39 → 1
Compiler

Compiled 666 to 213 computations (68% saved)

simplify2.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01013
11413
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))
Outputs
(+.f64 (+.f64 e a) (+.f64 d (+.f64 b c)))

end54.0ms (2.2%)

Stop Event
fuel
Remove

(sort a b c d e)

Compiler

Compiled 105 to 54 computations (48.6% saved)

Profiling

Loading profile data...