Details

Time bar (total: 3.7s)

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.1s (28.6%)

Results
1.0s8256×body128valid
Compiler

Compiled 106 to 76 computations (28.3% saved)

preprocess19.0ms (0.5%)

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)

simplify7.0ms (0.2%)

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)

localize6.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

series11.0ms (0.3%)

Counts
3 → 81
Calls

36 calls:

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

rewrite58.0ms (1.6%)

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 a (+.f64 d b))
(+.f64 e (+.f64 c (+.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 d (+.f64 b a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 a a) (-.f64 (-.f64 a d) b)) (/.f64 (pow.f64 (+.f64 d b) 2) (-.f64 (-.f64 a d) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d (+.f64 b a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 d (+.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 d (+.f64 b a))) (pow.f64 (cbrt.f64 (+.f64 d (+.f64 b a))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 d (+.f64 b a))) 2) (cbrt.f64 (+.f64 d (+.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 d (+.f64 b a))) (sqrt.f64 (+.f64 d (+.f64 b a))))))) (#(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 (-.f64 a 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 (-.f64 a 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 (-.f64 a 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 (-.f64 a 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 d (+.f64 b a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 d (+.f64 b a))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 d (+.f64 b a))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 d (+.f64 b a)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 d (+.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 d (+.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 d (+.f64 b a)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 d (+.f64 b a)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 d (+.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 d (+.f64 b a))))))) (#(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 (cbrt.f64 (pow.f64 (+.f64 d b) 2)) (cbrt.f64 (+.f64 d b)) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a a)) (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 exp.f64 (log.f64 (+.f64 d (+.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 d (+.f64 b a))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 e e) (-.f64 e (+.f64 (+.f64 c (+.f64 a d)) b))) (/.f64 (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 2) (-.f64 e (+.f64 (+.f64 c (+.f64 a d)) b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c))) (pow.f64 (cbrt.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c))) 2) (cbrt.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c))) (sqrt.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 3)) (/.f64 1 (fma.f64 e e (*.f64 (+.f64 (+.f64 c (+.f64 a d)) b) (-.f64 (+.f64 (+.f64 c (+.f64 a d)) b) e)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 2)) (/.f64 1 (-.f64 e (+.f64 (+.f64 c (+.f64 a d)) b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 e e (*.f64 (+.f64 (+.f64 c (+.f64 a d)) b) (-.f64 (+.f64 (+.f64 c (+.f64 a d)) b) e))) (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 e (+.f64 (+.f64 c (+.f64 a d)) b)) (-.f64 (*.f64 e e) (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 3)) (fma.f64 e e (*.f64 (+.f64 (+.f64 c (+.f64 a d)) b) (-.f64 (+.f64 (+.f64 c (+.f64 a d)) b) e))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 3)) (+.f64 (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 2) (-.f64 (*.f64 e e) (*.f64 e (+.f64 (+.f64 c (+.f64 a d)) b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 2)) (-.f64 e (+.f64 (+.f64 c (+.f64 a d)) b)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 3))) (neg.f64 (fma.f64 e e (*.f64 (+.f64 (+.f64 c (+.f64 a d)) b) (-.f64 (+.f64 (+.f64 c (+.f64 a d)) b) e)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 2))) (neg.f64 (-.f64 e (+.f64 (+.f64 c (+.f64 a d)) b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 e c) 3) (pow.f64 (+.f64 d (+.f64 b a)) 3)) (+.f64 (*.f64 (+.f64 e c) (+.f64 e c)) (-.f64 (pow.f64 (+.f64 d (+.f64 b a)) 2) (*.f64 (+.f64 e c) (+.f64 d (+.f64 b a))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 2) (*.f64 e e)) (-.f64 (+.f64 (+.f64 c (+.f64 a d)) b) e))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 e c) (+.f64 e c)) (pow.f64 (+.f64 d (+.f64 b a)) 2)) (-.f64 (+.f64 e c) (+.f64 d (+.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 e (+.f64 (+.f64 c (+.f64 a d)) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (+.f64 c (+.f64 a d)) b) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) 2) (cbrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 e) 2) (cbrt.f64 e) (+.f64 (+.f64 c (+.f64 a d)) b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) (sqrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 (+.f64 c (+.f64 a d)) b))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (+.f64 d (+.f64 b a)) (+.f64 e c))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 (+.f64 c (+.f64 a d)) b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 c c) (-.f64 (-.f64 c (+.f64 a d)) b)) (/.f64 (pow.f64 (+.f64 d (+.f64 b a)) 2) (-.f64 (-.f64 c (+.f64 a d)) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (+.f64 c (+.f64 a d)) b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) (pow.f64 (cbrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) 2) (cbrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) (sqrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 c 3) (pow.f64 (+.f64 d (+.f64 b a)) 3)) (/.f64 1 (fma.f64 c c (*.f64 (+.f64 d (+.f64 b a)) (-.f64 (+.f64 d (+.f64 b a)) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 c c) (pow.f64 (+.f64 d (+.f64 b a)) 2)) (/.f64 1 (-.f64 (-.f64 c (+.f64 a d)) b)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 c c (*.f64 (+.f64 d (+.f64 b a)) (-.f64 (+.f64 d (+.f64 b a)) c))) (+.f64 (pow.f64 c 3) (pow.f64 (+.f64 d (+.f64 b a)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (-.f64 c (+.f64 a d)) b) (-.f64 (*.f64 c c) (pow.f64 (+.f64 d (+.f64 b a)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 c 3) (pow.f64 (+.f64 d (+.f64 b a)) 3)) (fma.f64 c c (*.f64 (+.f64 d (+.f64 b a)) (-.f64 (+.f64 d (+.f64 b a)) c))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 c 3) (pow.f64 (+.f64 d (+.f64 b a)) 3)) (+.f64 (pow.f64 (+.f64 d (+.f64 b a)) 2) (-.f64 (*.f64 c c) (*.f64 (+.f64 d (+.f64 b a)) c))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 c c) (pow.f64 (+.f64 d (+.f64 b a)) 2)) (-.f64 (-.f64 c (+.f64 a d)) b))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 c 3) (pow.f64 (+.f64 d (+.f64 b a)) 3))) (neg.f64 (fma.f64 c c (*.f64 (+.f64 d (+.f64 b a)) (-.f64 (+.f64 d (+.f64 b a)) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 c c) (pow.f64 (+.f64 d (+.f64 b a)) 2))) (neg.f64 (-.f64 (-.f64 c (+.f64 a d)) b)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 a c) 3) (pow.f64 (+.f64 d b) 3)) (+.f64 (*.f64 (+.f64 a c) (+.f64 a c)) (-.f64 (pow.f64 (+.f64 d b) 2) (*.f64 (+.f64 a c) (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 d (+.f64 b a)) 2) (*.f64 c c)) (-.f64 (+.f64 d (+.f64 b a)) c))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 a c) (+.f64 a c)) (pow.f64 (+.f64 d b) 2)) (-.f64 (+.f64 a c) (+.f64 d b)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (+.f64 c (+.f64 a d)) b)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (+.f64 c (+.f64 a d)) b))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (+.f64 c (+.f64 a d)) b)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (+.f64 c (+.f64 a d)) b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 d (+.f64 b a)) c)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 c (+.f64 d (+.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 c c)) (cbrt.f64 c) (+.f64 d (+.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 d (+.f64 b a))) 2) (cbrt.f64 (+.f64 d (+.f64 b a))) c)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 c) (sqrt.f64 c) (+.f64 d (+.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 d (+.f64 b a))) (sqrt.f64 (+.f64 d (+.f64 b a))) c)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (+.f64 c (+.f64 a d)) b)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) 1))))))

simplify22.0ms (0.6%)

Algorithm
egg-herbie
Rules
130×associate-+l+_binary64
56×associate-+r+_binary64
40×+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
024699
157699
2139699
3259699
4270699
Stop Event
saturated
Counts
192 → 141
Calls
Call 1
Inputs
(+.f64 d b)
a
a
(+.f64 a b)
d
d
(+.f64 a d)
b
b
(+.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 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 d b)
a
a
(+.f64 a b)
(+.f64 b a)
d
d
(+.f64 a d)
(+.f64 d a)
b
b
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 (+.f64 d b) a))
(+.f64 (+.f64 d b) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a c)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 a (+.f64 d (+.f64 b e)))
(+.f64 d (+.f64 b (+.f64 a e)))
(+.f64 b (+.f64 a (+.f64 d e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 d (+.f64 b e)))
(+.f64 (+.f64 d b) (+.f64 e c))
(+.f64 b (+.f64 d (+.f64 c e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
a
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 b e)))
(+.f64 a (+.f64 (+.f64 b e) c))
(+.f64 b (+.f64 a (+.f64 c e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d e)))
(+.f64 (+.f64 c a) (+.f64 d e))
(+.f64 a (+.f64 (+.f64 d e) c))
(+.f64 d (+.f64 a (+.f64 c e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 b (+.f64 d e)) (+.f64 a c))
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 b (+.f64 d a))
(+.f64 d (+.f64 b a))
c
c
(+.f64 c (+.f64 d b))
(+.f64 (+.f64 d b) c)
(+.f64 d (+.f64 b c))
a
a
(+.f64 c (+.f64 a b))
(+.f64 (+.f64 c a) b)
(+.f64 b (+.f64 a c))
d
d
(+.f64 c (+.f64 a d))
(+.f64 (+.f64 d a) c)
(+.f64 d (+.f64 a c))
(+.f64 a (+.f64 d c))
b
b

prune131.0ms (3.5%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New1365141
Fresh101
Picked101
Done000
Total1385143
Error
0b
Counts
143 → 5
Alt Table
StatusErrorProgram
0.2b
(+.f64 e (fma.f64 (sqrt.f64 c) (sqrt.f64 c) (+.f64 d (+.f64 b a))))
0.3b
(fma.f64 (sqrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) (sqrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) e)
0.4b
(/.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 (+.f64 c (+.f64 a d)) b) 3)) (fma.f64 e e (*.f64 (+.f64 (+.f64 c (+.f64 a d)) b) (-.f64 (+.f64 (+.f64 c (+.f64 a d)) b) e))))
0.3b
(+.f64 e (fma.f64 (sqrt.f64 (+.f64 d (+.f64 b a))) (sqrt.f64 (+.f64 d (+.f64 b a))) c))
0.3b
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
Compiler

Compiled 2454 to 747 computations (69.6% saved)

localize7.0ms (0.2%)

Local error

Found 3 expressions with local error:

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

series15.0ms (0.4%)

Counts
3 → 122
Calls

36 calls:

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

rewrite60.0ms (1.6%)

Algorithm
batch-egg-rewrite
Rules
607×fma-def_binary64
304×fma-neg_binary64
233×expm1-udef_binary64
233×log1p-udef_binary64
135×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01130
124830
2367630
Stop Event
node limit
Counts
3 → 130
Calls
Call 1
Inputs
(+.f64 e (fma.f64 (sqrt.f64 c) (sqrt.f64 c) (+.f64 d (+.f64 b a))))
(fma.f64 (sqrt.f64 c) (sqrt.f64 c) (+.f64 d (+.f64 b a)))
(+.f64 d (+.f64 b a))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 e e) (-.f64 (-.f64 e c) (+.f64 a (+.f64 d b)))) (/.f64 (pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 2) (-.f64 (-.f64 e c) (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b)))) (pow.f64 (cbrt.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b)))) 2) (cbrt.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b)))) (sqrt.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 3)) (/.f64 1 (fma.f64 (+.f64 c (+.f64 a (+.f64 d b))) (-.f64 (+.f64 c (+.f64 a (+.f64 d b))) e) (*.f64 e e))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 2)) (/.f64 1 (-.f64 (-.f64 e c) (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (+.f64 c (+.f64 a (+.f64 d b))) (-.f64 (+.f64 c (+.f64 a (+.f64 d b))) e) (*.f64 e e)) (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (-.f64 e c) (+.f64 a (+.f64 d b))) (-.f64 (*.f64 e e) (pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 3)) (fma.f64 (+.f64 c (+.f64 a (+.f64 d b))) (-.f64 (+.f64 c (+.f64 a (+.f64 d b))) e) (*.f64 e e)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 3)) (+.f64 (pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 2) (-.f64 (*.f64 e e) (*.f64 e (+.f64 c (+.f64 a (+.f64 d b)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 2)) (-.f64 (-.f64 e c) (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 3))) (neg.f64 (fma.f64 (+.f64 c (+.f64 a (+.f64 d b))) (-.f64 (+.f64 c (+.f64 a (+.f64 d b))) e) (*.f64 e e))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 2))) (neg.f64 (-.f64 (-.f64 e c) (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 2) (*.f64 e e)) (-.f64 (+.f64 c (+.f64 a (+.f64 d b))) e))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 e 1 (+.f64 c (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 c 1 (+.f64 (+.f64 a (+.f64 d b)) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 c) (sqrt.f64 c) (+.f64 (+.f64 a (+.f64 d b)) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 c (+.f64 a (+.f64 d b))) 1 e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 e (+.f64 c (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 c (+.f64 (+.f64 a (+.f64 d b)) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 c (+.f64 a (+.f64 d b))) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 e) (pow.f64 (cbrt.f64 e) 2) (+.f64 c (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 e) 2) (cbrt.f64 e) (+.f64 c (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 c) (pow.f64 (cbrt.f64 c) 2) (+.f64 (+.f64 a (+.f64 d b)) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 c) (*.f64 (cbrt.f64 (sqrt.f64 c)) (sqrt.f64 c)) (+.f64 (+.f64 a (+.f64 d b)) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 c) 2) (cbrt.f64 c) (+.f64 (+.f64 a (+.f64 d b)) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 c (+.f64 a (+.f64 d b)))) (pow.f64 (cbrt.f64 (+.f64 c (+.f64 a (+.f64 d b)))) 2) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 c (+.f64 a (+.f64 d b)))) 2) (cbrt.f64 (+.f64 c (+.f64 a (+.f64 d b)))) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 c (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 c (+.f64 a (+.f64 d b)))) (sqrt.f64 (+.f64 c (+.f64 a (+.f64 d b)))) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 c 1/4) (*.f64 (pow.f64 c 1/4) (sqrt.f64 c)) (+.f64 (+.f64 a (+.f64 d b)) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 c) (pow.f64 c 1/4)) (pow.f64 c 1/4) (+.f64 (+.f64 a (+.f64 d b)) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 c) (cbrt.f64 c)) (cbrt.f64 (sqrt.f64 c)) (+.f64 (+.f64 a (+.f64 d b)) e))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (+.f64 e c) (+.f64 a (+.f64 d b)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 c (+.f64 a (+.f64 d b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 a (+.f64 d b)) c)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 c d) (+.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 c (+.f64 b a)) d)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 c (+.f64 d b)) a)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 c (+.f64 a (+.f64 d b))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 c (+.f64 a (+.f64 d b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 c (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 c (+.f64 a (+.f64 d b)))) (pow.f64 (cbrt.f64 (+.f64 c (+.f64 a (+.f64 d b)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 c (+.f64 a (+.f64 d b)))) 2) (cbrt.f64 (+.f64 c (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 c (+.f64 a (+.f64 d b)))) (sqrt.f64 (+.f64 c (+.f64 a (+.f64 d b)))))))) (#(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 (pow.f64 (+.f64 a (+.f64 d b)) 2) (*.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 pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 c (+.f64 a (+.f64 d b)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 c (+.f64 a (+.f64 d b)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 c (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 c (+.f64 a (+.f64 d b))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 c (+.f64 a (+.f64 d b))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 c (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 c (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 c (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 c (+.f64 a (+.f64 d b)))) 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 d d) (-.f64 d (+.f64 b a))) (/.f64 (pow.f64 (+.f64 b a) 2) (-.f64 d (+.f64 b a))))))) (#(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 d 3) (pow.f64 (+.f64 b a) 3)) (/.f64 1 (fma.f64 (+.f64 b a) (-.f64 (+.f64 b a) d) (*.f64 d d))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 d d) (pow.f64 (+.f64 b a) 2)) (/.f64 1 (-.f64 d (+.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (+.f64 b a) (-.f64 (+.f64 b a) d) (*.f64 d d)) (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b a) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 d (+.f64 b a)) (-.f64 (*.f64 d d) (pow.f64 (+.f64 b a) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b a) 3)) (fma.f64 (+.f64 b a) (-.f64 (+.f64 b a) d) (*.f64 d d)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b a) 3)) (+.f64 (pow.f64 (+.f64 b a) 2) (-.f64 (*.f64 d d) (*.f64 d (+.f64 b a)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 d d) (pow.f64 (+.f64 b a) 2)) (-.f64 d (+.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b a) 3))) (neg.f64 (fma.f64 (+.f64 b a) (-.f64 (+.f64 b a) d) (*.f64 d d))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 d d) (pow.f64 (+.f64 b a) 2))) (neg.f64 (-.f64 d (+.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 d b) 3) (pow.f64 a 3)) (fma.f64 (+.f64 d b) (+.f64 d b) (-.f64 (*.f64 a a) (*.f64 (+.f64 d b) a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 b a) 2) (*.f64 d d)) (-.f64 (+.f64 b a) d))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (+.f64 d b) (+.f64 d b)) (*.f64 a a)) (-.f64 (+.f64 d b) a))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 a (+.f64 d b)) 1)))) (#(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 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 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 expm1.f64 (log1p.f64 (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 d 1 (+.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b 1 (+.f64 a d))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a 1 (+.f64 d b))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 b a) 1 d)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 d (+.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 b (+.f64 a d))))) (#(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 b a) d)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 d b) a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 b a)) (pow.f64 (cbrt.f64 (+.f64 b a)) 2) d)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 b a)) 2) (cbrt.f64 (+.f64 b a)) d)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 d) (pow.f64 (cbrt.f64 d) 2) (+.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 d) 2) (cbrt.f64 d) (+.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 b) (cbrt.f64 (*.f64 b b)) (+.f64 a d))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 b b)) (cbrt.f64 b) (+.f64 a d))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 a) 2) (+.f64 d b))))) (#(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 b a)) (sqrt.f64 (+.f64 b a)) d)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 d) (sqrt.f64 d) (+.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 b) (sqrt.f64 b) (+.f64 a d))))) (#(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 fma.f64 (+.f64 (pow.f64 b 3) (pow.f64 a 3)) (/.f64 1 (fma.f64 b b (*.f64 a (-.f64 a b)))) d)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (/.f64 1 (-.f64 b a)) d)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 d b) 1 a)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (+.f64 d b)) (cbrt.f64 (+.f64 d b))) (cbrt.f64 (+.f64 d b)) a)))) (#(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 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))))))

simplify29.0ms (0.8%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
0241037
1571037
21391037
32551037
42661037
Stop Event
saturated
Counts
252 → 153
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 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 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 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 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 a b)
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
d
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
d
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a d)
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
b
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
b
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 d b)
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
a
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
a
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
Outputs
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 d (+.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 d (+.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 d (+.f64 a e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 d (+.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 d (+.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 d (+.f64 a e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 d (+.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 d (+.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 d (+.f64 a e))))
(+.f64 a (+.f64 d (+.f64 b e)))
(+.f64 b (+.f64 d (+.f64 a 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 d (+.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 d (+.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 d (+.f64 a 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 d (+.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 d (+.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 d (+.f64 a 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 d (+.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 d (+.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 d (+.f64 a e))))
(+.f64 c (+.f64 a (+.f64 d e)))
(+.f64 c (+.f64 d (+.f64 e a)))
(+.f64 c (+.f64 d (+.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 d (+.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 d (+.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 d (+.f64 a 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 d (+.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 d (+.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 d (+.f64 a 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 d (+.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 d (+.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 d (+.f64 a 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 a (+.f64 c (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 b (+.f64 d (+.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 d (+.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 d (+.f64 a 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 d (+.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 d (+.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 d (+.f64 a 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 d (+.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 d (+.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 d (+.f64 a e))))
(+.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 (+.f64 c a) d)
(+.f64 d (+.f64 c a))
(+.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 c (+.f64 d b))
(+.f64 d (+.f64 b c))
(+.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 a b)
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
d
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
d
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a d)
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
b
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
b
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 d b)
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
a
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
a
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))

prune131.0ms (3.5%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New1521153
Fresh134
Picked101
Done000
Total1544158
Error
0b
Counts
158 → 4
Alt Table
StatusErrorProgram
0.3b
(+.f64 e (fma.f64 (sqrt.f64 (+.f64 d (+.f64 b a))) (sqrt.f64 (+.f64 d (+.f64 b a))) c))
0.3b
(fma.f64 (sqrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) (sqrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) e)
0.2b
(+.f64 e (fma.f64 (sqrt.f64 c) (sqrt.f64 c) (fma.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 a) 2) (+.f64 d b))))
0.3b
(+.f64 d (+.f64 b (+.f64 a (+.f64 c e))))
Compiler

Compiled 2549 to 733 computations (71.2% saved)

localize10.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(+.f64 e (fma.f64 (sqrt.f64 c) (sqrt.f64 c) (fma.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 a) 2) (+.f64 d b))))
0.3b
(fma.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 a) 2) (+.f64 d b))
0.4b
(cbrt.f64 a)
0.5b
(pow.f64 (cbrt.f64 a) 2)

series20.0ms (0.5%)

Counts
4 → 67
Calls

30 calls:

TimeVariablePointExpression
3.0ms
a
@-inf
(pow.f64 (cbrt.f64 a) 2)
2.0ms
a
@-inf
(fma.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 a) 2) (+.f64 d b))
1.0ms
d
@0
(fma.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 a) 2) (+.f64 d b))
1.0ms
a
@0
(pow.f64 (cbrt.f64 a) 2)
1.0ms
a
@-inf
(cbrt.f64 a)

rewrite55.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
463×fma-def_binary64
257×expm1-udef_binary64
257×log1p-udef_binary64
237×fma-neg_binary64
153×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01445
129929
2384929
Stop Event
node limit
Counts
4 → 113
Calls
Call 1
Inputs
(pow.f64 (cbrt.f64 a) 2)
(cbrt.f64 a)
(fma.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 a) 2) (+.f64 d b))
(+.f64 e (fma.f64 (sqrt.f64 c) (sqrt.f64 c) (fma.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 a) 2) (+.f64 d b))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (cbrt.f64 a) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 a) (cbrt.f64 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 a) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cbrt.f64 a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2) (cbrt.f64 (*.f64 a (cbrt.f64 a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2) (*.f64 (cbrt.f64 (cbrt.f64 a)) (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a))) (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 a) (pow.f64 a 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 a 1/6) (*.f64 (pow.f64 a 1/6) (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2)) (cbrt.f64 (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 a (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cbrt.f64 a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cbrt.f64 a) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cbrt.f64 a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cbrt.f64 a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (cbrt.f64 a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (cbrt.f64 a))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (cbrt.f64 a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 a) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (cbrt.f64 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2) (cbrt.f64 (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (cbrt.f64 a)) (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 a 1/6) (pow.f64 a 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (*.f64 a (cbrt.f64 a)))) (sqrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 a)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/3) (cbrt.f64 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 a) 1/3) (pow.f64 (sqrt.f64 a) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 a 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 a) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 a) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (cbrt.f64 a)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 a 1/6) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cbrt.f64 a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (cbrt.f64 a))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (cbrt.f64 a))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 a) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 a)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 a (+.f64 d b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 d b) a)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 a d) b)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 a b) d)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 (+.f64 a d) b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 a d) b) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (+.f64 a d) b))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (+.f64 a d) b)) (pow.f64 (cbrt.f64 (+.f64 (+.f64 a d) b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (+.f64 a d) b)) 2) (cbrt.f64 (+.f64 (+.f64 a d) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (+.f64 a d) b)) (sqrt.f64 (+.f64 (+.f64 a d) b)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 a 3) (pow.f64 (+.f64 d b) 3)) (fma.f64 a a (-.f64 (pow.f64 (+.f64 d b) 2) (*.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 pow.f64 (+.f64 (+.f64 a d) b) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (+.f64 a d) b) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (+.f64 a d) b)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (+.f64 a d) b)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (+.f64 a d) b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (+.f64 a d) b)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (+.f64 a d) b))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (+.f64 a d) b) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (+.f64 a d) b)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (+.f64 a d) b)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (+.f64 a d) b)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (+.f64 a d) b)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 e e) (-.f64 e (+.f64 (+.f64 (+.f64 a d) b) c))) (/.f64 (pow.f64 (+.f64 (+.f64 (+.f64 a d) b) c) 2) (-.f64 e (+.f64 (+.f64 (+.f64 a d) b) c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b))) (pow.f64 (cbrt.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b))) 2) (cbrt.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b))) (sqrt.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 (+.f64 (+.f64 a d) b) c) 3)) (/.f64 1 (fma.f64 (+.f64 (+.f64 (+.f64 a d) b) c) (-.f64 (+.f64 (+.f64 (+.f64 a d) b) c) e) (*.f64 e e))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 (+.f64 (+.f64 a d) b) c) 2)) (/.f64 1 (-.f64 e (+.f64 (+.f64 (+.f64 a d) b) c))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (+.f64 (+.f64 (+.f64 a d) b) c) (-.f64 (+.f64 (+.f64 (+.f64 a d) b) c) e) (*.f64 e e)) (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 (+.f64 (+.f64 a d) b) c) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 e (+.f64 (+.f64 (+.f64 a d) b) c)) (-.f64 (*.f64 e e) (pow.f64 (+.f64 (+.f64 (+.f64 a d) b) c) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 (+.f64 (+.f64 a d) b) c) 3)) (fma.f64 (+.f64 (+.f64 (+.f64 a d) b) c) (-.f64 (+.f64 (+.f64 (+.f64 a d) b) c) e) (*.f64 e e)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 (+.f64 (+.f64 a d) b) c) 3)) (+.f64 (pow.f64 (+.f64 (+.f64 (+.f64 a d) b) c) 2) (-.f64 (*.f64 e e) (*.f64 e (+.f64 (+.f64 (+.f64 a d) b) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 (+.f64 (+.f64 a d) b) c) 2)) (-.f64 e (+.f64 (+.f64 (+.f64 a d) b) c)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 (+.f64 (+.f64 a d) b) c) 3))) (neg.f64 (fma.f64 (+.f64 (+.f64 (+.f64 a d) b) c) (-.f64 (+.f64 (+.f64 (+.f64 a d) b) c) e) (*.f64 e e))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 (+.f64 (+.f64 a d) b) c) 2))) (neg.f64 (-.f64 e (+.f64 (+.f64 (+.f64 a d) b) c))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 (+.f64 (+.f64 a d) b) c) 2) (*.f64 e e)) (-.f64 (+.f64 (+.f64 (+.f64 a d) b) c) e))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 e 1 (+.f64 (+.f64 (+.f64 a d) b) c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 c 1 (+.f64 (+.f64 (+.f64 a d) b) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 c) (sqrt.f64 c) (+.f64 (+.f64 (+.f64 a d) b) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (+.f64 (+.f64 a d) b) c) 1 e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 e (+.f64 (+.f64 (+.f64 a d) b) c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 c (+.f64 (+.f64 (+.f64 a d) b) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 (+.f64 (+.f64 a d) b) c) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 c) (pow.f64 (cbrt.f64 c) 2) (+.f64 (+.f64 (+.f64 a d) b) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 c) (*.f64 (cbrt.f64 (sqrt.f64 c)) (sqrt.f64 c)) (+.f64 (+.f64 (+.f64 a d) b) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 c) 2) (cbrt.f64 c) (+.f64 (+.f64 (+.f64 a d) b) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 (+.f64 (+.f64 a d) b) c)) (pow.f64 (cbrt.f64 (+.f64 (+.f64 (+.f64 a d) b) c)) 2) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 (+.f64 (+.f64 a d) b) c)) 2) (cbrt.f64 (+.f64 (+.f64 (+.f64 a d) b) c)) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 e) (pow.f64 (cbrt.f64 e) 2) (+.f64 (+.f64 (+.f64 a d) b) c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 e) 2) (cbrt.f64 e) (+.f64 (+.f64 (+.f64 a d) b) c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 c 1/4) (*.f64 (pow.f64 c 1/4) (sqrt.f64 c)) (+.f64 (+.f64 (+.f64 a d) b) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 (+.f64 (+.f64 a d) b) c)) (sqrt.f64 (+.f64 (+.f64 (+.f64 a d) b) c)) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 (+.f64 (+.f64 a d) b) c))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 c) (pow.f64 c 1/4)) (pow.f64 c 1/4) (+.f64 (+.f64 (+.f64 a d) b) e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 c) (cbrt.f64 c)) (cbrt.f64 (sqrt.f64 c)) (+.f64 (+.f64 (+.f64 a d) b) e))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (+.f64 e c) (+.f64 (+.f64 a d) b))) 1))))))

simplify18.0ms (0.5%)

Algorithm
egg-herbie
Rules
121×associate-+l+_binary64
62×associate-+r+_binary64
45×+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
021577
148577
2128577
3268577
4279577
Stop Event
saturated
Counts
180 → 134
Calls
Call 1
Inputs
(+.f64 d b)
(+.f64 d b)
(+.f64 d b)
(+.f64 a b)
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
d
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
d
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a d)
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
b
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
b
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 d b))
(+.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 d (+.f64 b e)))
(+.f64 c (+.f64 d (+.f64 b e)))
(+.f64 c (+.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))))
Outputs
(+.f64 d b)
(+.f64 d b)
(+.f64 d b)
(+.f64 a b)
(+.f64 b a)
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
d
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
d
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
(+.f64 a d)
(+.f64 d a)
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
b
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
b
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
(+.f64 a (+.f64 d b))
(+.f64 (+.f64 d b) a)
(+.f64 d (+.f64 b a))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 d b))
(+.f64 (+.f64 d b) (+.f64 a c))
(+.f64 (+.f64 b a) (+.f64 d c))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 a (+.f64 d (+.f64 b e)))
(+.f64 d (+.f64 b (+.f64 a e)))
(+.f64 b (+.f64 a (+.f64 d e)))
(+.f64 c (+.f64 d (+.f64 b e)))
(+.f64 (+.f64 c d) (+.f64 b e))
(+.f64 c (+.f64 b (+.f64 d e)))
(+.f64 d (+.f64 c (+.f64 b e)))
(+.f64 c (+.f64 d (+.f64 b e)))
(+.f64 (+.f64 c d) (+.f64 b e))
(+.f64 c (+.f64 b (+.f64 d e)))
(+.f64 d (+.f64 c (+.f64 b e)))
(+.f64 c (+.f64 d (+.f64 b e)))
(+.f64 (+.f64 c d) (+.f64 b e))
(+.f64 c (+.f64 b (+.f64 d e)))
(+.f64 d (+.f64 c (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b e)))
(+.f64 (+.f64 c a) (+.f64 b e))
(+.f64 c (+.f64 b (+.f64 a e)))
(+.f64 a (+.f64 c (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
d
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d e)))
(+.f64 a (+.f64 (+.f64 d e) c))
(+.f64 a (+.f64 d (+.f64 c e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
b
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 (+.f64 c a) (+.f64 d (+.f64 b e)))
(+.f64 a (+.f64 c (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 d a) (+.f64 c (+.f64 b e)))
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))

prune126.0ms (3.4%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1561157
Fresh123
Picked011
Done000
Total1574161
Error
0b
Counts
161 → 4
Alt Table
StatusErrorProgram
0.3b
(+.f64 e (fma.f64 (sqrt.f64 (+.f64 d (+.f64 b a))) (sqrt.f64 (+.f64 d (+.f64 b a))) c))
0.3b
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
0.3b
(fma.f64 (sqrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) (sqrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) e)
0.2b
(+.f64 e (fma.f64 (sqrt.f64 c) (sqrt.f64 c) (fma.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 a) 2) (+.f64 d b))))
Compiler

Compiled 2860 to 895 computations (68.7% saved)

localize7.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series50.0ms (1.3%)

Counts
3 → 72
Calls

36 calls:

TimeVariablePointExpression
9.0ms
a
@0
(fma.f64 (sqrt.f64 (+.f64 d (+.f64 b a))) (sqrt.f64 (+.f64 d (+.f64 b a))) c)
5.0ms
d
@0
(fma.f64 (sqrt.f64 (+.f64 d (+.f64 b a))) (sqrt.f64 (+.f64 d (+.f64 b a))) c)
4.0ms
d
@inf
(fma.f64 (sqrt.f64 (+.f64 d (+.f64 b a))) (sqrt.f64 (+.f64 d (+.f64 b a))) c)
4.0ms
b
@0
(fma.f64 (sqrt.f64 (+.f64 d (+.f64 b a))) (sqrt.f64 (+.f64 d (+.f64 b a))) c)
4.0ms
b
@inf
(fma.f64 (sqrt.f64 (+.f64 d (+.f64 b a))) (sqrt.f64 (+.f64 d (+.f64 b a))) c)

rewrite55.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
612×fma-def_binary64
306×fma-neg_binary64
233×expm1-udef_binary64
233×log1p-udef_binary64
135×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01132
124832
2368132
Stop Event
node limit
Counts
3 → 102
Calls
Call 1
Inputs
(fma.f64 (sqrt.f64 (+.f64 d (+.f64 b a))) (sqrt.f64 (+.f64 d (+.f64 b a))) c)
(+.f64 e (fma.f64 (sqrt.f64 (+.f64 d (+.f64 b a))) (sqrt.f64 (+.f64 d (+.f64 b a))) c))
(sqrt.f64 (+.f64 d (+.f64 b a)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 d (+.f64 (+.f64 b a) c))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 b a) (+.f64 d c))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 a (+.f64 d b)) c)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 c (+.f64 a (+.f64 d b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (+.f64 d b) (+.f64 a c))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 d (+.f64 (+.f64 b a) c)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 d (+.f64 (+.f64 b a) c)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 d (+.f64 (+.f64 b a) c))) (cbrt.f64 (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 2)) (cbrt.f64 (+.f64 d (+.f64 (+.f64 b a) c))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 d (+.f64 (+.f64 b a) c))) (sqrt.f64 (+.f64 d (+.f64 (+.f64 b a) c))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (+.f64 a (+.f64 d b)) 3) (pow.f64 c 3)) (+.f64 (pow.f64 (+.f64 a (+.f64 d b)) 2) (-.f64 (*.f64 c c) (*.f64 (+.f64 a (+.f64 d b)) c))))))) (#(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 pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 d (+.f64 (+.f64 b a) c))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 d (+.f64 (+.f64 b a) c))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 d (+.f64 (+.f64 b a) c))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 d (+.f64 (+.f64 b a) c)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 d (+.f64 (+.f64 b a) c))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 d (+.f64 (+.f64 b a) c))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 d (+.f64 (+.f64 b a) c))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 d (+.f64 (+.f64 b a) c))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 e e) (-.f64 (-.f64 e (+.f64 a (+.f64 d b))) c)) (/.f64 (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 2) (-.f64 (-.f64 e (+.f64 a (+.f64 d b))) c)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c)) (pow.f64 (cbrt.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c)) 2) (cbrt.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c)) (sqrt.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 3)) (/.f64 1 (fma.f64 (+.f64 d (+.f64 (+.f64 b a) c)) (-.f64 (+.f64 d (+.f64 (+.f64 b a) c)) e) (*.f64 e e))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 2)) (/.f64 1 (-.f64 (-.f64 e (+.f64 a (+.f64 d b))) c)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (+.f64 d (+.f64 (+.f64 b a) c)) (-.f64 (+.f64 d (+.f64 (+.f64 b a) c)) e) (*.f64 e e)) (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (-.f64 e (+.f64 a (+.f64 d b))) c) (-.f64 (*.f64 e e) (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 3)) (fma.f64 (+.f64 d (+.f64 (+.f64 b a) c)) (-.f64 (+.f64 d (+.f64 (+.f64 b a) c)) e) (*.f64 e e)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 3)) (+.f64 (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 2) (-.f64 (*.f64 e e) (*.f64 (+.f64 d (+.f64 (+.f64 b a) c)) e))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 2)) (-.f64 (-.f64 e (+.f64 a (+.f64 d b))) c))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 e 3) (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 3))) (neg.f64 (fma.f64 (+.f64 d (+.f64 (+.f64 b a) c)) (-.f64 (+.f64 d (+.f64 (+.f64 b a) c)) e) (*.f64 e e))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 e e) (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 2))) (neg.f64 (-.f64 (-.f64 e (+.f64 a (+.f64 d b))) c)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 2) (*.f64 e e)) (-.f64 (+.f64 d (+.f64 (+.f64 b a) c)) e))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 a (+.f64 d b)) 1 (+.f64 c e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 a (+.f64 d b))) (sqrt.f64 (+.f64 a (+.f64 d b))) (+.f64 c e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 1 e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 e 1 (+.f64 d (+.f64 (+.f64 b a) c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 a (+.f64 d b)) (+.f64 c e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (+.f64 d (+.f64 (+.f64 b a) c)) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 e (+.f64 d (+.f64 (+.f64 b a) c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 d (+.f64 (+.f64 b a) c))) (cbrt.f64 (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 2)) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (+.f64 d (+.f64 (+.f64 b a) c)) 2)) (cbrt.f64 (+.f64 d (+.f64 (+.f64 b a) c))) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 a (+.f64 d b))) (cbrt.f64 (pow.f64 (+.f64 a (+.f64 d b)) 2)) (+.f64 c e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (+.f64 a (+.f64 d b))) (*.f64 (cbrt.f64 (sqrt.f64 (+.f64 a (+.f64 d b)))) (sqrt.f64 (+.f64 a (+.f64 d b)))) (+.f64 c e))))) (#(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))) (+.f64 c e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 e) (pow.f64 (cbrt.f64 e) 2) (+.f64 d (+.f64 (+.f64 b a) c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 e) 2) (cbrt.f64 e) (+.f64 d (+.f64 (+.f64 b a) c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 d (+.f64 (+.f64 b a) c))) (sqrt.f64 (+.f64 d (+.f64 (+.f64 b a) c))) e)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 e) (sqrt.f64 e) (+.f64 d (+.f64 (+.f64 b a) c)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (+.f64 a (+.f64 d b)) 1/4) (*.f64 (pow.f64 (+.f64 a (+.f64 d b)) 1/4) (sqrt.f64 (+.f64 a (+.f64 d b)))) (+.f64 c e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b a) 3)) (/.f64 1 (fma.f64 d d (*.f64 (+.f64 b a) (-.f64 (+.f64 b a) d)))) (+.f64 c e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (*.f64 d d) (pow.f64 (+.f64 b a) 2)) (/.f64 1 (-.f64 d (+.f64 b a))) (+.f64 c e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (+.f64 a (+.f64 d b))) (pow.f64 (+.f64 a (+.f64 d b)) 1/4)) (pow.f64 (+.f64 a (+.f64 d b)) 1/4) (+.f64 c e))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 (+.f64 a (+.f64 d b))) (cbrt.f64 (+.f64 a (+.f64 d b)))) (cbrt.f64 (sqrt.f64 (+.f64 a (+.f64 d b)))) (+.f64 c e))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 (+.f64 e (+.f64 a (+.f64 d b))) c)) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (+.f64 a (+.f64 d b))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (+.f64 a (+.f64 d b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (sqrt.f64 (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (+.f64 a (+.f64 d b))) (cbrt.f64 (sqrt.f64 (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (sqrt.f64 (+.f64 a (+.f64 d b)))) (cbrt.f64 (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 a (+.f64 d b)) 1/4) (pow.f64 (+.f64 a (+.f64 d b)) 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (+.f64 a (+.f64 d b)) 2))) (sqrt.f64 (cbrt.f64 (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 1 1/2) (sqrt.f64 (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 a (+.f64 d b)) 2)) 1/2) (pow.f64 (cbrt.f64 (+.f64 a (+.f64 d b))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (-.f64 (*.f64 d d) (pow.f64 (+.f64 b a) 2))) (sqrt.f64 (-.f64 d (+.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (+.f64 (pow.f64 d 3) (pow.f64 (+.f64 b a) 3))) (sqrt.f64 (fma.f64 d d (*.f64 (+.f64 b a) (-.f64 (+.f64 b a) d)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (+.f64 a (+.f64 d b)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (+.f64 a (+.f64 d b))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 a (+.f64 d b)) 3/2) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (+.f64 a (+.f64 d b)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (+.f64 a (+.f64 d b)) 1/4) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (sqrt.f64 (+.f64 a (+.f64 d b))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (sqrt.f64 (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (+.f64 a (+.f64 d b))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (+.f64 a (+.f64 d b)) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 (+.f64 b a)) (sqrt.f64 d))))) (#(struct:change #<rule egg-rr> (2) ((x hypot.f64 (sqrt.f64 d) (sqrt.f64 (+.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (+.f64 a (+.f64 d b)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (+.f64 a (+.f64 d b))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (+.f64 a (+.f64 d b)))) 1))))))

simplify52.0ms (1.4%)

Algorithm
egg-herbie
Rules
743×fma-neg_binary64
405×*-commutative_binary64
315×fma-def_binary64
310×cancel-sign-sub-inv_binary64
248×associate-+l+_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0961035
12661025
27611011
324921005
447531004
Stop Event
node limit
Counts
174 → 144
Calls
Call 1
Inputs
(+.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)))
(+.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)))
(+.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)))
(+.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 (+.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 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))))
(+.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))))
(+.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))))
(+.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))))
(sqrt.f64 (+.f64 a b))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 a b))) d)) (sqrt.f64 (+.f64 a b)))
(-.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 a b))) d)) (sqrt.f64 (+.f64 a b))) (*.f64 1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 3))) (pow.f64 d 2))))
(-.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 a b))) d)) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 5))) (pow.f64 d 3))) (sqrt.f64 (+.f64 a b)))) (*.f64 1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 3))) (pow.f64 d 2))))
(sqrt.f64 (+.f64 a d))
(+.f64 (sqrt.f64 (+.f64 a d)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 a d))) b)))
(-.f64 (+.f64 (sqrt.f64 (+.f64 a d)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 a d))) b))) (*.f64 1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 3))) (pow.f64 b 2))))
(-.f64 (+.f64 (sqrt.f64 (+.f64 a d)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 a d))) b)) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 5))) (pow.f64 b 3))))) (*.f64 1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 3))) (pow.f64 b 2))))
(sqrt.f64 (+.f64 d b))
(+.f64 (sqrt.f64 (+.f64 d b)) (*.f64 1/2 (*.f64 a (sqrt.f64 (/.f64 1 (+.f64 d b))))))
(-.f64 (+.f64 (sqrt.f64 (+.f64 d b)) (*.f64 1/2 (*.f64 a (sqrt.f64 (/.f64 1 (+.f64 d b)))))) (*.f64 1/8 (*.f64 (pow.f64 a 2) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 d b) 3))))))
(-.f64 (+.f64 (*.f64 1/16 (*.f64 (pow.f64 a 3) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 d b) 5))))) (+.f64 (sqrt.f64 (+.f64 d b)) (*.f64 1/2 (*.f64 a (sqrt.f64 (/.f64 1 (+.f64 d b))))))) (*.f64 1/8 (*.f64 (pow.f64 a 2) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 d b) 3))))))
Outputs
(+.f64 c (+.f64 a b))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 a d))
(+.f64 d (+.f64 c a))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 d b))
(+.f64 (+.f64 c d) b)
(+.f64 b (+.f64 c d))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 a (+.f64 d b))
(+.f64 a (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
c
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
c
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 a (+.f64 d b)))
(+.f64 (+.f64 c a) (+.f64 b d))
(+.f64 c (+.f64 a (+.f64 b d)))
(+.f64 a (+.f64 b (+.f64 c d)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
e
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 b e)))
(+.f64 a (+.f64 b (+.f64 c e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d e)))
(+.f64 a (+.f64 c (+.f64 d e)))
(+.f64 a (+.f64 d (+.f64 c e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 d (+.f64 b e)))
(+.f64 (+.f64 c d) (+.f64 b e))
(+.f64 c (+.f64 b (+.f64 d e)))
(+.f64 b (+.f64 c (+.f64 d e)))
(+.f64 b (+.f64 d (+.f64 c e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 a (+.f64 d (+.f64 b e)))
(+.f64 (+.f64 a d) (+.f64 b e))
(+.f64 a (+.f64 b (+.f64 d e)))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
c
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(+.f64 c (+.f64 a (+.f64 d (+.f64 b e))))
(+.f64 c (+.f64 (+.f64 a d) (+.f64 b e)))
(+.f64 c (+.f64 a (+.f64 b (+.f64 d e))))
(+.f64 (+.f64 b e) (+.f64 d (+.f64 c a)))
(+.f64 a (+.f64 b (+.f64 d (+.f64 c e))))
(sqrt.f64 (+.f64 a b))
(+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 a b))) d)) (sqrt.f64 (+.f64 a b)))
(fma.f64 1/2 (*.f64 d (sqrt.f64 (/.f64 1 (+.f64 a b)))) (sqrt.f64 (+.f64 a b)))
(fma.f64 d (*.f64 1/2 (sqrt.f64 (/.f64 1 (+.f64 a b)))) (sqrt.f64 (+.f64 a b)))
(-.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 a b))) d)) (sqrt.f64 (+.f64 a b))) (*.f64 1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 3))) (pow.f64 d 2))))
(+.f64 (fma.f64 1/2 (*.f64 d (sqrt.f64 (/.f64 1 (+.f64 a b)))) (sqrt.f64 (+.f64 a b))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 3))) (*.f64 d d))))
(+.f64 (fma.f64 1/2 (*.f64 d (sqrt.f64 (/.f64 1 (+.f64 a b)))) (sqrt.f64 (+.f64 a b))) (*.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 3)))) (*.f64 d d)))
(fma.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 3))) (*.f64 d d)) -1/8 (fma.f64 d (*.f64 1/2 (sqrt.f64 (/.f64 1 (+.f64 a b)))) (sqrt.f64 (+.f64 a b))))
(+.f64 (sqrt.f64 (+.f64 a b)) (*.f64 d (fma.f64 1/2 (sqrt.f64 (/.f64 1 (+.f64 a b))) (*.f64 d (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 3))) -1/8)))))
(-.f64 (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 a b))) d)) (+.f64 (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 5))) (pow.f64 d 3))) (sqrt.f64 (+.f64 a b)))) (*.f64 1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 3))) (pow.f64 d 2))))
(+.f64 (fma.f64 1/2 (*.f64 d (sqrt.f64 (/.f64 1 (+.f64 a b)))) (fma.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 5))) (pow.f64 d 3)) (sqrt.f64 (+.f64 a b)))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 3))) (*.f64 d d))))
(+.f64 (fma.f64 1/2 (*.f64 d (sqrt.f64 (/.f64 1 (+.f64 a b)))) (fma.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 5))) (pow.f64 d 3)) (sqrt.f64 (+.f64 a b)))) (*.f64 (*.f64 -1/8 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 3)))) (*.f64 d d)))
(fma.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 3))) (*.f64 d d)) -1/8 (fma.f64 d (*.f64 1/2 (sqrt.f64 (/.f64 1 (+.f64 a b)))) (fma.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 5))) (pow.f64 d 3)) (sqrt.f64 (+.f64 a b)))))
(+.f64 (sqrt.f64 (+.f64 a b)) (*.f64 d (+.f64 (*.f64 d (fma.f64 d (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 5)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a b) 3))) -1/8))) (*.f64 1/2 (sqrt.f64 (/.f64 1 (+.f64 a b)))))))
(sqrt.f64 (+.f64 a d))
(+.f64 (sqrt.f64 (+.f64 a d)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 a d))) b)))
(+.f64 (sqrt.f64 (+.f64 a d)) (*.f64 1/2 (*.f64 b (sqrt.f64 (/.f64 1 (+.f64 a d))))))
(fma.f64 1/2 (*.f64 b (sqrt.f64 (/.f64 1 (+.f64 a d)))) (sqrt.f64 (+.f64 a d)))
(fma.f64 b (*.f64 1/2 (sqrt.f64 (/.f64 1 (+.f64 a d)))) (sqrt.f64 (+.f64 a d)))
(-.f64 (+.f64 (sqrt.f64 (+.f64 a d)) (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 a d))) b))) (*.f64 1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 3))) (pow.f64 b 2))))
(+.f64 (sqrt.f64 (+.f64 a d)) (-.f64 (*.f64 1/2 (*.f64 b (sqrt.f64 (/.f64 1 (+.f64 a d))))) (*.f64 1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 3))) (*.f64 b b)))))
(+.f64 (fma.f64 1/2 (*.f64 b (sqrt.f64 (/.f64 1 (+.f64 a d)))) (sqrt.f64 (+.f64 a d))) (*.f64 (*.f64 b (*.f64 b (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 3))))) -1/8))
(fma.f64 (*.f64 (*.f64 b b) -1/8) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 3))) (fma.f64 b (*.f64 1/2 (sqrt.f64 (/.f64 1 (+.f64 a d)))) (sqrt.f64 (+.f64 a d))))
(+.f64 (sqrt.f64 (+.f64 a d)) (*.f64 b (fma.f64 1/2 (sqrt.f64 (/.f64 1 (+.f64 a d))) (*.f64 -1/8 (*.f64 b (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 3))))))))
(-.f64 (+.f64 (sqrt.f64 (+.f64 a d)) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 (/.f64 1 (+.f64 a d))) b)) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 5))) (pow.f64 b 3))))) (*.f64 1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 3))) (pow.f64 b 2))))
(+.f64 (sqrt.f64 (+.f64 a d)) (-.f64 (fma.f64 1/2 (*.f64 b (sqrt.f64 (/.f64 1 (+.f64 a d)))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 5))) (pow.f64 b 3)))) (*.f64 1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 3))) (*.f64 b b)))))
(+.f64 (fma.f64 1/2 (*.f64 b (sqrt.f64 (/.f64 1 (+.f64 a d)))) (*.f64 1/16 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 5))) (pow.f64 b 3)))) (-.f64 (sqrt.f64 (+.f64 a d)) (*.f64 1/8 (*.f64 b (*.f64 b (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 3))))))))
(fma.f64 (*.f64 b (*.f64 b (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 3))))) -1/8 (fma.f64 b (*.f64 1/2 (sqrt.f64 (/.f64 1 (+.f64 a d)))) (fma.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 5))) (*.f64 1/16 (pow.f64 b 3)) (sqrt.f64 (+.f64 a d)))))
(+.f64 (sqrt.f64 (+.f64 a d)) (*.f64 b (+.f64 (*.f64 1/2 (sqrt.f64 (/.f64 1 (+.f64 a d)))) (*.f64 b (fma.f64 b (*.f64 1/16 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 5)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 a d) 3))) -1/8))))))
(sqrt.f64 (+.f64 d b))
(sqrt.f64 (+.f64 b d))
(+.f64 (sqrt.f64 (+.f64 d b)) (*.f64 1/2 (*.f64 a (sqrt.f64 (/.f64 1 (+.f64 d b))))))
(+.f64 (sqrt.f64 (+.f64 b d)) (*.f64 (*.f64 1/2 a) (sqrt.f64 (/.f64 1 (+.f64 b d)))))
(fma.f64 1/2 (*.f64 a (sqrt.f64 (/.f64 1 (+.f64 b d)))) (sqrt.f64 (+.f64 b d)))
(fma.f64 a (*.f64 1/2 (sqrt.f64 (/.f64 1 (+.f64 b d)))) (sqrt.f64 (+.f64 b d)))
(-.f64 (+.f64 (sqrt.f64 (+.f64 d b)) (*.f64 1/2 (*.f64 a (sqrt.f64 (/.f64 1 (+.f64 d b)))))) (*.f64 1/8 (*.f64 (pow.f64 a 2) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 d b) 3))))))
(-.f64 (+.f64 (sqrt.f64 (+.f64 b d)) (*.f64 (*.f64 1/2 a) (sqrt.f64 (/.f64 1 (+.f64 b d))))) (*.f64 (*.f64 1/8 (*.f64 a a)) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 b d) 3)))))
(+.f64 (sqrt.f64 (+.f64 b d)) (fma.f64 1/2 (*.f64 a (sqrt.f64 (/.f64 1 (+.f64 b d)))) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 b d) 3))) (*.f64 a a)) -1/8)))
(fma.f64 (*.f64 a (*.f64 a (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 b d) 3))))) -1/8 (fma.f64 a (*.f64 1/2 (sqrt.f64 (/.f64 1 (+.f64 b d)))) (sqrt.f64 (+.f64 b d))))
(-.f64 (+.f64 (*.f64 1/16 (*.f64 (pow.f64 a 3) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 d b) 5))))) (+.f64 (sqrt.f64 (+.f64 d b)) (*.f64 1/2 (*.f64 a (sqrt.f64 (/.f64 1 (+.f64 d b))))))) (*.f64 1/8 (*.f64 (pow.f64 a 2) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 d b) 3))))))
(+.f64 (fma.f64 1/16 (*.f64 (pow.f64 a 3) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 b d) 5)))) (+.f64 (sqrt.f64 (+.f64 b d)) (*.f64 (*.f64 1/2 a) (sqrt.f64 (/.f64 1 (+.f64 b d)))))) (*.f64 -1/8 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 b d) 3))) (*.f64 a a))))
(+.f64 (fma.f64 1/16 (*.f64 (pow.f64 a 3) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 b d) 5)))) (fma.f64 1/2 (*.f64 a (sqrt.f64 (/.f64 1 (+.f64 b d)))) (sqrt.f64 (+.f64 b d)))) (*.f64 (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 b d) 3))) (*.f64 a a)) -1/8))
(fma.f64 1/16 (*.f64 (pow.f64 a 3) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 b d) 5)))) (fma.f64 (*.f64 a (*.f64 a (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 b d) 3))))) -1/8 (fma.f64 a (*.f64 1/2 (sqrt.f64 (/.f64 1 (+.f64 b d)))) (sqrt.f64 (+.f64 b d)))))
(fma.f64 (*.f64 a (*.f64 a (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 b d) 3))))) -1/8 (fma.f64 a (*.f64 1/2 (sqrt.f64 (/.f64 1 (+.f64 b d)))) (fma.f64 1/16 (*.f64 (pow.f64 a 3) (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 b d) 5)))) (sqrt.f64 (+.f64 b d)))))
(+.f64 (fma.f64 a (*.f64 1/2 (sqrt.f64 (/.f64 1 (+.f64 b d)))) (sqrt.f64 (+.f64 b d))) (*.f64 (*.f64 a a) (fma.f64 1/16 (*.f64 a (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 b d) 5)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (+.f64 b d) 3))) -1/8))))

prune211.0ms (5.7%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New3130313
Fresh022
Picked011
Done011
Total3134317
Error
0b
Counts
317 → 4
Alt Table
StatusErrorProgram
0.3b
(+.f64 e (fma.f64 (sqrt.f64 (+.f64 d (+.f64 b a))) (sqrt.f64 (+.f64 d (+.f64 b a))) c))
0.3b
(+.f64 d (+.f64 a (+.f64 c (+.f64 b e))))
0.3b
(fma.f64 (sqrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) (sqrt.f64 (+.f64 (+.f64 c (+.f64 a d)) b)) e)
0.2b
(+.f64 e (fma.f64 (sqrt.f64 c) (sqrt.f64 c) (fma.f64 (cbrt.f64 a) (pow.f64 (cbrt.f64 a) 2) (+.f64 d b))))
Compiler

Compiled 6766 to 2025 computations (70.1% saved)

regimes1.5s (39.9%)

Accuracy

Total 0.2b remaining (86.4%)

Threshold costs 0.2b (86.4%)

Counts
263 → 1
Compiler

Compiled 3709 to 1024 computations (72.4% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01426
11626
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 e (fma.f64 (sqrt.f64 c) (sqrt.f64 c) (fma.f64 (cbrt.f64 a) (cbrt.f64 (*.f64 a a)) (+.f64 d b))))
Outputs
(+.f64 e (fma.f64 (sqrt.f64 c) (sqrt.f64 c) (fma.f64 (cbrt.f64 a) (cbrt.f64 (*.f64 a a)) (+.f64 d b))))

end66.0ms (1.8%)

Stop Event
fuel
Remove

(sort a b c d e)

Compiler

Compiled 168 to 94 computations (44% saved)

Profiling

Loading profile data...