Details

Time bar (total: 6.8s)

analyze303.0ms (4.5%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
25%74.9%0.1%5
25%74.9%0.1%6
25%59.3%15.7%7
25%51.5%23.5%8
25%42.9%32.1%9
28.1%26.9%45%10
31.6%19.7%48.7%11
33.4%10.4%56.2%12
35.2%7.7%57.1%13
36.1%5.2%58.7%14
Compiler

Compiled 32 to 20 computations (37.5% saved)

sample1.5s (22.5%)

Results
1.4s8256×body128valid
71.0ms505×body128invalid

preprocess39.0ms (0.6%)

Algorithm
egg-herbie
Rules
421×fma-neg_binary64
351×associate--l+_binary64
326×associate-+l+_binary64
312×unsub-neg_binary64
293×associate-+r+_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02978
110174
235074
3123774
4310766
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 b b) (*.f64 a a)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 b b) (-.f64 1 b)) (*.f64 (*.f64 a a) (+.f64 3 b))))) 1)
Outputs
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(+.f64 (+.f64 (*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 a 3))))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1)
(+.f64 (fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (*.f64 a (-.f64 1 a)))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1)
(+.f64 (fma.f64 4 (fma.f64 a (-.f64 a (*.f64 a a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1)
(+.f64 (fma.f64 4 (fma.f64 a (-.f64 a (*.f64 a a)) (*.f64 (*.f64 b b) (+.f64 a 3))) (pow.f64 (hypot.f64 a b) 4)) -1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 b b) (*.f64 a a)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 b b) (-.f64 1 b)) (*.f64 (*.f64 a a) (+.f64 3 b))))) 1)
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (-.f64 (*.f64 4 (fma.f64 (*.f64 b b) (-.f64 1 b) (*.f64 a (*.f64 a (+.f64 b 3))))) 1))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (fma.f64 4 (fma.f64 a (*.f64 a (+.f64 b 3)) (*.f64 b (*.f64 b (-.f64 1 b)))) -1))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (fma.f64 4 (fma.f64 a (*.f64 a (+.f64 b 3)) (-.f64 (*.f64 b b) (pow.f64 b 3))) -1))
(+.f64 (pow.f64 (hypot.f64 a b) 4) (fma.f64 4 (fma.f64 b (-.f64 b (*.f64 b b)) (*.f64 (*.f64 a a) (+.f64 b 3))) -1))
Compiler

Compiled 33 to 21 computations (36.4% saved)

simplify29.0ms (0.4%)

Algorithm
egg-herbie
Rules
602×fma-def_binary64
320×+-commutative_binary64
277×sub-neg_binary64
265×associate-*l*_binary64
250×unsub-neg_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01939
15737
219837
369637
4229233
5425133
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
Outputs
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (-.f64 (*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 a 3))))) 1))
(+.f64 (fma.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1)
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a))) -1))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 (*.f64 a a) (-.f64 1 a))) -1))
(fma.f64 4 (-.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) (pow.f64 a 3)) (+.f64 (pow.f64 (hypot.f64 a b) 4) -1))

eval1.0ms (0%)

Compiler

Compiled 54 to 33 computations (38.9% saved)

prune2.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 2
Alt Table
Click to see full alt table
StatusErrorProgram
0.1b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
0.0b
(fma.f64 4 (-.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) (pow.f64 a 3)) (+.f64 (pow.f64 (hypot.f64 a b) 4) -1))
Compiler

Compiled 56 to 36 computations (35.7% saved)

localize19.0ms (0.3%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.0b
(*.f64 b (+.f64 a 3))
0.0b
(pow.f64 (hypot.f64 a b) 4)
0.0b
(hypot.f64 a b)
0.0b
(fma.f64 4 (-.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) (pow.f64 a 3)) (+.f64 (pow.f64 (hypot.f64 a b) 4) -1))
0.0b
(pow.f64 (hypot.f64 a b) 4)
0.0b
(*.f64 b (+.f64 a 3))
0.0b
(-.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) (pow.f64 a 3))
0.1b
(fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))

series18.0ms (0.3%)

Counts
4 → 96
Calls

24 calls:

TimeVariablePointExpression
3.0ms
b
@0
(pow.f64 (hypot.f64 a b) 4)
2.0ms
a
@0
(pow.f64 (hypot.f64 a b) 4)
2.0ms
b
@inf
(pow.f64 (hypot.f64 a b) 4)
1.0ms
a
@inf
(pow.f64 (hypot.f64 a b) 4)
1.0ms
b
@0
(fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))

rewrite101.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
442×fma-def_binary64
243×expm1-udef_binary64
243×log1p-udef_binary64
242×fma-neg_binary64
146×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01348
129948
2384448
Stop Event
node limit
Counts
4 → 169
Calls
Call 1
Inputs
(fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))
(-.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) (pow.f64 a 3))
(*.f64 b (+.f64 a 3))
(pow.f64 (hypot.f64 a b) 4)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) 1) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (pow.f64 (cbrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) 2) (cbrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (sqrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) 3) (pow.f64 a 6)) (fma.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 b b) (+.f64 a 3)) (-.f64 (pow.f64 a 4) (*.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 b b) (+.f64 a 3))) (pow.f64 a 4)) (-.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) (neg.f64 (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) (*.f64 (neg.f64 (pow.f64 a 3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3))) (+.f64 (neg.f64 (pow.f64 a 3)) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3))) (fma.f64 (neg.f64 (pow.f64 a 3)) 1 (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (-.f64 (*.f64 a a) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (neg.f64 (pow.f64 a 3)) (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) 2) (cbrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) (sqrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 3) (pow.f64 a 9)) (/.f64 1 (fma.f64 (pow.f64 a 3) (fma.f64 b (*.f64 b (+.f64 a 3)) (fma.f64 a a (pow.f64 a 3))) (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 2) (pow.f64 a 6)) (/.f64 1 (fma.f64 b (*.f64 b (+.f64 a 3)) (fma.f64 a a (pow.f64 a 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (pow.f64 a 3/2)) (-.f64 (sqrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (pow.f64 a 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (pow.f64 a 3) (fma.f64 b (*.f64 b (+.f64 a 3)) (fma.f64 a a (pow.f64 a 3))) (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 2)) (-.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 3) (pow.f64 a 9))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (fma.f64 a a (pow.f64 a 3))) (-.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 2) (pow.f64 a 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 3) (pow.f64 a 9)) (fma.f64 (pow.f64 a 3) (fma.f64 b (*.f64 b (+.f64 a 3)) (fma.f64 a a (pow.f64 a 3))) (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 2) (pow.f64 a 6)) (fma.f64 b (*.f64 b (+.f64 a 3)) (fma.f64 a a (pow.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 3) (pow.f64 a 9))) (neg.f64 (fma.f64 (pow.f64 a 3) (fma.f64 b (*.f64 b (+.f64 a 3)) (fma.f64 a a (pow.f64 a 3))) (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 2) (pow.f64 a 6))) (neg.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (fma.f64 a a (pow.f64 a 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 3) (pow.f64 (neg.f64 (pow.f64 a 3)) 3)) (+.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 2) (-.f64 (*.f64 (neg.f64 (pow.f64 a 3)) (neg.f64 (pow.f64 a 3))) (*.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) (neg.f64 (pow.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 2) (*.f64 (neg.f64 (pow.f64 a 3)) (neg.f64 (pow.f64 a 3)))) (-.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) (neg.f64 (pow.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 a a) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (neg.f64 (*.f64 a a)) (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (+.f64 a 3)) b (-.f64 (*.f64 a a) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a a) (neg.f64 a) (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 1 (neg.f64 (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 1 (*.f64 (neg.f64 (pow.f64 a 3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3))) 1 (+.f64 (neg.f64 (pow.f64 a 3)) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3))) 1 (fma.f64 (neg.f64 (pow.f64 a 3)) 1 (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) (neg.f64 (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) (*.f64 (neg.f64 (pow.f64 a 3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3))) (+.f64 (neg.f64 (pow.f64 a 3)) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3))) (fma.f64 (neg.f64 (pow.f64 a 3)) 1 (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (*.f64 b b) (+.f64 a 3)) (-.f64 (*.f64 a a) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (neg.f64 (pow.f64 a 3)) (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (pow.f64 (cbrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) 2) (neg.f64 (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (pow.f64 (cbrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) 2) (*.f64 (neg.f64 (pow.f64 a 3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) 2) (cbrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (neg.f64 (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) 2) (cbrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (*.f64 (neg.f64 (pow.f64 a 3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 b) 2) (*.f64 (cbrt.f64 b) (*.f64 b (+.f64 a 3))) (-.f64 (*.f64 a a) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) 2) (+.f64 (neg.f64 (pow.f64 a 3)) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) 2) (fma.f64 (neg.f64 (pow.f64 a 3)) 1 (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) 2) (cbrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) (+.f64 (neg.f64 (pow.f64 a 3)) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) 2) (cbrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) (fma.f64 (neg.f64 (pow.f64 a 3)) 1 (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (sqrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (neg.f64 (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (sqrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (*.f64 (neg.f64 (pow.f64 a 3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) (*.f64 b (+.f64 a 3))) (-.f64 (*.f64 a a) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) (sqrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) (+.f64 (neg.f64 (pow.f64 a 3)) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) (sqrt.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))) (fma.f64 (neg.f64 (pow.f64 a 3)) 1 (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 3) (pow.f64 a 9)) (/.f64 1 (fma.f64 (pow.f64 a 3) (fma.f64 b (*.f64 b (+.f64 a 3)) (fma.f64 a a (pow.f64 a 3))) (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 2))) (+.f64 (neg.f64 (pow.f64 a 3)) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 3) (pow.f64 a 9)) (/.f64 1 (fma.f64 (pow.f64 a 3) (fma.f64 b (*.f64 b (+.f64 a 3)) (fma.f64 a a (pow.f64 a 3))) (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 2))) (fma.f64 (neg.f64 (pow.f64 a 3)) 1 (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 2) (pow.f64 a 6)) (/.f64 1 (fma.f64 b (*.f64 b (+.f64 a 3)) (fma.f64 a a (pow.f64 a 3)))) (+.f64 (neg.f64 (pow.f64 a 3)) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 (pow.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) 2) (pow.f64 a 6)) (/.f64 1 (fma.f64 b (*.f64 b (+.f64 a 3)) (fma.f64 a a (pow.f64 a 3)))) (fma.f64 (neg.f64 (pow.f64 a 3)) 1 (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 a 3/2) (neg.f64 (pow.f64 a 3/2)) (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (neg.f64 (pow.f64 a 3))) (cbrt.f64 (neg.f64 (pow.f64 a 3)))) (cbrt.f64 (neg.f64 (pow.f64 a 3))) (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 b b) (+.f64 a 3))) (cbrt.f64 (*.f64 (*.f64 b b) (+.f64 a 3)))) (cbrt.f64 (*.f64 (*.f64 b b) (+.f64 a 3))) (-.f64 (*.f64 a a) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (neg.f64 (pow.f64 a 3))) (sqrt.f64 (neg.f64 (pow.f64 a 3))) (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (*.f64 b b) (+.f64 a 3))) (sqrt.f64 (*.f64 (*.f64 b b) (+.f64 a 3))) (-.f64 (*.f64 a a) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (*.f64 a a)) a (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 a) (*.f64 a a) (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (neg.f64 (pow.f64 a 3/2)) (pow.f64 a 3/2) (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -1 (pow.f64 a 3) (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (pow.f64 a 3/2)) (-.f64 (sqrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (pow.f64 a 3/2)) (+.f64 (neg.f64 (pow.f64 a 3)) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 (sqrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (pow.f64 a 3/2)) (-.f64 (sqrt.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a))) (pow.f64 a 3/2)) (fma.f64 (neg.f64 (pow.f64 a 3)) 1 (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 b) (sqrt.f64 (*.f64 b (+.f64 a 3)))) (*.f64 (sqrt.f64 b) (sqrt.f64 (*.f64 b (+.f64 a 3)))) (-.f64 (*.f64 a a) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (pow.f64 (cbrt.f64 (*.f64 b (+.f64 a 3))) 2)) (cbrt.f64 (*.f64 b (+.f64 a 3))) (-.f64 (*.f64 a a) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (sqrt.f64 (*.f64 b (+.f64 a 3)))) (sqrt.f64 (*.f64 b (+.f64 a 3))) (-.f64 (*.f64 a a) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (-.f64 (*.f64 a a) (pow.f64 a 3)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b a) (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b 3) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 b a) 1) (*.f64 (*.f64 b 3) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 b (+.f64 a 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 b a) 3) (pow.f64 (*.f64 b 3) 3)) (fma.f64 (*.f64 b a) (*.f64 b a) (-.f64 (*.f64 (*.f64 b 3) (*.f64 b 3)) (*.f64 (*.f64 b a) (*.f64 b 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 b a) (*.f64 b a)) (*.f64 (*.f64 b 3) (*.f64 b 3))) (-.f64 (*.f64 b a) (*.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 a 3) 27) b) (-.f64 (fma.f64 a a 9) (*.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 a a -9) b) (+.f64 a -3))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (+.f64 (pow.f64 a 3) 27)) (-.f64 (fma.f64 a a 9) (*.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 b (fma.f64 a a -9)) (+.f64 a -3))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (+.f64 a 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (+.f64 a 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b (+.f64 a 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 b (+.f64 a 3))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b (+.f64 a 3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 a 3)) b))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 b (+.f64 a 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b (+.f64 a 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (+.f64 a 3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 a 3) 3) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 b (+.f64 a 3))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b a (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b 3 (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a b (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 b (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 b a) (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 b 3) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 b) 2) (*.f64 (cbrt.f64 b) a) (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 b) 2) (*.f64 (cbrt.f64 b) 3) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) b) (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) a) (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) 3) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) b) (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b a) 1 (*.f64 (*.f64 b 3) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 b 3)) (cbrt.f64 (*.f64 b 3))) (cbrt.f64 (*.f64 b 3)) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 b a)) (cbrt.f64 (*.f64 b a))) (cbrt.f64 (*.f64 b a)) (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 b 3)) (sqrt.f64 (*.f64 b 3)) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 b a)) (sqrt.f64 (*.f64 b a)) (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 b) (sqrt.f64 a)) (*.f64 (sqrt.f64 b) (sqrt.f64 a)) (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 a) (sqrt.f64 b)) (*.f64 (sqrt.f64 a) (sqrt.f64 b)) (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (sqrt.f64 a)) (sqrt.f64 a) (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 b)) (sqrt.f64 b) (*.f64 b 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (pow.f64 (cbrt.f64 b) 2)) (cbrt.f64 b) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (sqrt.f64 b)) (sqrt.f64 b) (*.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 b (+.f64 a 3))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (hypot.f64 a b) 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 a b) 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (hypot.f64 a b) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 a b) 2) (pow.f64 (hypot.f64 a b) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 a b) 4)) (cbrt.f64 (pow.f64 (hypot.f64 a b) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 a b) 8)) (cbrt.f64 (pow.f64 (hypot.f64 a b) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a b) 2)) 4) (pow.f64 (cbrt.f64 (hypot.f64 a b)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (hypot.f64 a b)) 4) (pow.f64 (sqrt.f64 (hypot.f64 a b)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (hypot.f64 a b) 8))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (hypot.f64 a b) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 a b) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 4) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 a b) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 4 (log.f64 (hypot.f64 a b))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 4 (log.f64 (hypot.f64 a b))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 a b) 4)))))))

simplify47.0ms (0.7%)

Algorithm
egg-herbie
Rules
918×fma-def_binary64
518×associate-*l*_binary64
507×associate-*r*_binary64
214×associate-/r*_binary64
164×times-frac_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01221553
13851462
213991346
Stop Event
node limit
Counts
265 → 217
Calls
Call 1
Inputs
(pow.f64 a 2)
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(*.f64 3 (pow.f64 b 2))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(pow.f64 a 2)
(+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(pow.f64 a 2)
(+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(-.f64 (pow.f64 a 2) (pow.f64 a 3))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(*.f64 3 (pow.f64 b 2))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))))
(*.f64 -1 (pow.f64 a 3))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3))))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3)))))
(*.f64 -1 (pow.f64 a 3))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3))))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3)))))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 3 a))
(*.f64 3 b)
(+.f64 (*.f64 a b) (*.f64 3 b))
(+.f64 (*.f64 a b) (*.f64 3 b))
(+.f64 (*.f64 a b) (*.f64 3 b))
(*.f64 a b)
(+.f64 (*.f64 a b) (*.f64 3 b))
(+.f64 (*.f64 a b) (*.f64 3 b))
(+.f64 (*.f64 a b) (*.f64 3 b))
(*.f64 a b)
(+.f64 (*.f64 a b) (*.f64 3 b))
(+.f64 (*.f64 a b) (*.f64 3 b))
(+.f64 (*.f64 a b) (*.f64 3 b))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 b 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 b 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 b 6)))) (*.f64 (pow.f64 a 8) (pow.f64 b 2)))) (+.f64 (pow.f64 a 4) (pow.f64 b 4))))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 -1/2 (pow.f64 b 4)) (+.f64 (*.f64 1/2 (pow.f64 b 4)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))))
(+.f64 (*.f64 -1/2 (pow.f64 b 4)) (+.f64 (*.f64 1/2 (pow.f64 b 4)) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 b 6) (pow.f64 a 2))) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (+.f64 (pow.f64 a 4) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 b 6) (pow.f64 a 2))) (*.f64 2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 b 4)) (*.f64 1/4 (pow.f64 b 4))) (pow.f64 b 2)) (pow.f64 a 2))))))))))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 -1/2 (pow.f64 b 4)) (+.f64 (*.f64 1/2 (pow.f64 b 4)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))))
(+.f64 (*.f64 -1/2 (pow.f64 b 4)) (+.f64 (*.f64 1/2 (pow.f64 b 4)) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 b 6) (pow.f64 a 2))) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (+.f64 (pow.f64 a 4) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 b 6) (pow.f64 a 2))) (*.f64 2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 b 4)) (*.f64 1/4 (pow.f64 b 4))) (pow.f64 b 2)) (pow.f64 a 2))))))))))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 8) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a 6))))))) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(+.f64 (*.f64 1/2 (pow.f64 a 4)) (+.f64 (*.f64 -1/2 (pow.f64 a 4)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 a 6) (pow.f64 b 2))) (+.f64 (*.f64 1/2 (pow.f64 a 4)) (+.f64 (*.f64 -1/2 (pow.f64 a 4)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a 6) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (+.f64 (pow.f64 b 4) (*.f64 2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a 4)) (*.f64 1/4 (pow.f64 a 4))) (pow.f64 a 2)) (pow.f64 b 2))))))))))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(+.f64 (*.f64 1/2 (pow.f64 a 4)) (+.f64 (*.f64 -1/2 (pow.f64 a 4)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 a 6) (pow.f64 b 2))) (+.f64 (*.f64 1/2 (pow.f64 a 4)) (+.f64 (*.f64 -1/2 (pow.f64 a 4)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a 6) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (+.f64 (pow.f64 b 4) (*.f64 2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a 4)) (*.f64 1/4 (pow.f64 a 4))) (pow.f64 a 2)) (pow.f64 b 2))))))))))
Outputs
(pow.f64 a 2)
(*.f64 a a)
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 a 3))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 a 3))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 a 3))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(pow.f64 a 2)
(*.f64 a a)
(+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2))
(fma.f64 a (*.f64 b b) (*.f64 a a))
(*.f64 a (+.f64 a (*.f64 b b)))
(*.f64 a (fma.f64 b b a))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(pow.f64 a 2)
(*.f64 a a)
(+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2))
(fma.f64 a (*.f64 b b) (*.f64 a a))
(*.f64 a (+.f64 a (*.f64 b b)))
(*.f64 a (fma.f64 b b a))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(-.f64 (pow.f64 a 2) (pow.f64 a 3))
(-.f64 (*.f64 a a) (pow.f64 a 3))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 a (-.f64 a (*.f64 a a)) (*.f64 (*.f64 b b) (+.f64 a 3)))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 a (-.f64 a (*.f64 a a)) (*.f64 (*.f64 b b) (+.f64 a 3)))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 a (-.f64 a (*.f64 a a)) (*.f64 (*.f64 b b) (+.f64 a 3)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 a 3))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 a (-.f64 a (*.f64 a a)) (*.f64 (*.f64 b b) (+.f64 a 3)))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 a (-.f64 a (*.f64 a a)) (*.f64 (*.f64 b b) (+.f64 a 3)))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 a (-.f64 a (*.f64 a a)) (*.f64 (*.f64 b b) (+.f64 a 3)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 a 3))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 a (-.f64 a (*.f64 a a)) (*.f64 (*.f64 b b) (+.f64 a 3)))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 a (-.f64 a (*.f64 a a)) (*.f64 (*.f64 b b) (+.f64 a 3)))
(-.f64 (+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (pow.f64 a 2)) (pow.f64 a 3))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 a (-.f64 a (*.f64 a a)) (*.f64 (*.f64 b b) (+.f64 a 3)))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 a 3))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))
(fma.f64 a a (*.f64 (*.f64 b b) (+.f64 a 3)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 a (-.f64 a (*.f64 a a)) (*.f64 (*.f64 b b) (+.f64 a 3)))
(*.f64 -1 (pow.f64 a 3))
(neg.f64 (pow.f64 a 3))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(-.f64 (*.f64 a a) (pow.f64 a 3))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3))))
(fma.f64 a (*.f64 b b) (-.f64 (*.f64 a a) (pow.f64 a 3)))
(-.f64 (*.f64 a (+.f64 a (*.f64 b b))) (pow.f64 a 3))
(*.f64 a (-.f64 (fma.f64 b b a) (*.f64 a a)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3)))))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 a (-.f64 a (*.f64 a a)) (*.f64 (*.f64 b b) (+.f64 a 3)))
(*.f64 -1 (pow.f64 a 3))
(neg.f64 (pow.f64 a 3))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(-.f64 (*.f64 a a) (pow.f64 a 3))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3))))
(fma.f64 a (*.f64 b b) (-.f64 (*.f64 a a) (pow.f64 a 3)))
(-.f64 (*.f64 a (+.f64 a (*.f64 b b))) (pow.f64 a 3))
(*.f64 a (-.f64 (fma.f64 b b a) (*.f64 a a)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3)))))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 a (-.f64 a (*.f64 a a)) (*.f64 (*.f64 b b) (+.f64 a 3)))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 a 3))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 a 3))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 a 3))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 a 3))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 a 3))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 a 3))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 a 3))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 a 3))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 a 3))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 a 3))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 a 3))
(*.f64 b (+.f64 3 a))
(*.f64 b (+.f64 a 3))
(*.f64 3 b)
(*.f64 b 3)
(+.f64 (*.f64 a b) (*.f64 3 b))
(*.f64 b (+.f64 a 3))
(+.f64 (*.f64 a b) (*.f64 3 b))
(*.f64 b (+.f64 a 3))
(+.f64 (*.f64 a b) (*.f64 3 b))
(*.f64 b (+.f64 a 3))
(*.f64 a b)
(+.f64 (*.f64 a b) (*.f64 3 b))
(*.f64 b (+.f64 a 3))
(+.f64 (*.f64 a b) (*.f64 3 b))
(*.f64 b (+.f64 a 3))
(+.f64 (*.f64 a b) (*.f64 3 b))
(*.f64 b (+.f64 a 3))
(*.f64 a b)
(+.f64 (*.f64 a b) (*.f64 3 b))
(*.f64 b (+.f64 a 3))
(+.f64 (*.f64 a b) (*.f64 3 b))
(*.f64 b (+.f64 a 3))
(+.f64 (*.f64 a b) (*.f64 3 b))
(*.f64 b (+.f64 a 3))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 (*.f64 2 a) a (*.f64 b b))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 a 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 (*.f64 2 a) a (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 b 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 b 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 b 6)))) (*.f64 (pow.f64 a 8) (pow.f64 b 2)))) (+.f64 (pow.f64 a 4) (pow.f64 b 4))))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (fma.f64 2 (*.f64 (fma.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 b 3)) 2) (/.f64 1/16 (pow.f64 b 6))) (/.f64 5/64 (pow.f64 b 6))) (*.f64 (*.f64 b b) (pow.f64 a 8))) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 (-.f64 (/.f64 5/64 (pow.f64 b 6)) (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 b 3)) 2) (/.f64 1/16 (pow.f64 b 6)))) (pow.f64 a 8))) (pow.f64 a 4)) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 b 4)))
(fma.f64 2 (*.f64 (*.f64 b b) (+.f64 (*.f64 a a) (*.f64 (fma.f64 -1 (pow.f64 (/.f64 -1/8 (pow.f64 b 3)) 2) (*.f64 (/.f64 1 (pow.f64 b 6)) 1/64)) (pow.f64 a 8)))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 b (*.f64 a b))) (pow.f64 a 4))
(+.f64 (*.f64 -1/2 (pow.f64 b 4)) (+.f64 (*.f64 1/2 (pow.f64 b 4)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 a 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 (*.f64 2 a) a (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 -1/2 (pow.f64 b 4)) (+.f64 (*.f64 1/2 (pow.f64 b 4)) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 b 6) (pow.f64 a 2))) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (+.f64 (pow.f64 a 4) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 b 6) (pow.f64 a 2))) (*.f64 2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 b 4)) (*.f64 1/4 (pow.f64 b 4))) (pow.f64 b 2)) (pow.f64 a 2))))))))))
(fma.f64 -1/2 (pow.f64 b 4) (fma.f64 1/2 (pow.f64 b 4) (fma.f64 -1/4 (/.f64 (pow.f64 b 6) (*.f64 a a)) (+.f64 (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)) (+.f64 (pow.f64 a 4) (fma.f64 1/4 (/.f64 (pow.f64 b 6) (*.f64 a a)) (*.f64 2 (/.f64 (*.f64 (pow.f64 b 4) 0) (/.f64 (*.f64 a a) (*.f64 b b))))))))))
(+.f64 (fma.f64 -1/4 (/.f64 (pow.f64 b 6) (*.f64 a a)) (+.f64 (+.f64 (pow.f64 a 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 b 4))) (fma.f64 (/.f64 (pow.f64 b 6) (*.f64 a a)) 1/4 (*.f64 (/.f64 (*.f64 b b) a) (/.f64 0 a))))) 0)
(fma.f64 -1/4 (/.f64 (pow.f64 b 6) (*.f64 a a)) (+.f64 (fma.f64 (*.f64 b b) (fma.f64 (*.f64 2 a) a (*.f64 b b)) (pow.f64 a 4)) (fma.f64 (/.f64 (pow.f64 b 6) (*.f64 a a)) 1/4 0)))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 b (*.f64 a b))) (pow.f64 a 4))
(+.f64 (*.f64 -1/2 (pow.f64 b 4)) (+.f64 (*.f64 1/2 (pow.f64 b 4)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 a 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 (*.f64 2 a) a (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 -1/2 (pow.f64 b 4)) (+.f64 (*.f64 1/2 (pow.f64 b 4)) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 b 6) (pow.f64 a 2))) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (+.f64 (pow.f64 a 4) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 b 6) (pow.f64 a 2))) (*.f64 2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 b 4)) (*.f64 1/4 (pow.f64 b 4))) (pow.f64 b 2)) (pow.f64 a 2))))))))))
(fma.f64 -1/2 (pow.f64 b 4) (fma.f64 1/2 (pow.f64 b 4) (fma.f64 -1/4 (/.f64 (pow.f64 b 6) (*.f64 a a)) (+.f64 (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)) (+.f64 (pow.f64 a 4) (fma.f64 1/4 (/.f64 (pow.f64 b 6) (*.f64 a a)) (*.f64 2 (/.f64 (*.f64 (pow.f64 b 4) 0) (/.f64 (*.f64 a a) (*.f64 b b))))))))))
(+.f64 (fma.f64 -1/4 (/.f64 (pow.f64 b 6) (*.f64 a a)) (+.f64 (+.f64 (pow.f64 a 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 b 4))) (fma.f64 (/.f64 (pow.f64 b 6) (*.f64 a a)) 1/4 (*.f64 (/.f64 (*.f64 b b) a) (/.f64 0 a))))) 0)
(fma.f64 -1/4 (/.f64 (pow.f64 b 6) (*.f64 a a)) (+.f64 (fma.f64 (*.f64 b b) (fma.f64 (*.f64 2 a) a (*.f64 b b)) (pow.f64 a 4)) (fma.f64 (/.f64 (pow.f64 b 6) (*.f64 a a)) 1/4 0)))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 b (*.f64 a b))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 a 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 (*.f64 2 a) a (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (*.f64 (pow.f64 b 8) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a 6))))))) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (fma.f64 2 (*.f64 (*.f64 (*.f64 a a) (pow.f64 b 8)) (fma.f64 -1 (+.f64 (/.f64 1/16 (pow.f64 a 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a 3)) 2)) (/.f64 5/64 (pow.f64 a 6)))) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))
(+.f64 (+.f64 (pow.f64 b 4) (pow.f64 a 4)) (*.f64 (*.f64 2 (*.f64 a a)) (+.f64 (*.f64 b b) (*.f64 (pow.f64 b 8) (-.f64 (/.f64 5/64 (pow.f64 a 6)) (+.f64 (/.f64 1/16 (pow.f64 a 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a 3)) 2)))))))
(+.f64 (fma.f64 (*.f64 a (*.f64 a 2)) (fma.f64 b b (*.f64 (pow.f64 b 8) (-.f64 (*.f64 (/.f64 1 (pow.f64 a 6)) 1/64) (pow.f64 (/.f64 -1/8 (pow.f64 a 3)) 2)))) (pow.f64 a 4)) (pow.f64 b 4))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 (*.f64 2 a) a (*.f64 b b))))
(+.f64 (*.f64 1/2 (pow.f64 a 4)) (+.f64 (*.f64 -1/2 (pow.f64 a 4)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 a 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 (*.f64 2 a) a (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 a 6) (pow.f64 b 2))) (+.f64 (*.f64 1/2 (pow.f64 a 4)) (+.f64 (*.f64 -1/2 (pow.f64 a 4)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a 6) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (+.f64 (pow.f64 b 4) (*.f64 2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a 4)) (*.f64 1/4 (pow.f64 a 4))) (pow.f64 a 2)) (pow.f64 b 2))))))))))
(fma.f64 1/4 (/.f64 (pow.f64 a 6) (*.f64 b b)) (fma.f64 1/2 (pow.f64 a 4) (fma.f64 -1/2 (pow.f64 a 4) (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (fma.f64 -1/4 (/.f64 (pow.f64 a 6) (*.f64 b b)) (+.f64 (+.f64 (pow.f64 b 4) (pow.f64 a 4)) (*.f64 2 (/.f64 (*.f64 (pow.f64 a 4) 0) (/.f64 (*.f64 b b) (*.f64 a a))))))))))
(fma.f64 1/4 (/.f64 (pow.f64 a 6) (*.f64 b b)) (+.f64 (fma.f64 2 (*.f64 a (*.f64 b (*.f64 a b))) (+.f64 (+.f64 (pow.f64 b 4) (*.f64 (/.f64 (*.f64 a a) b) (/.f64 0 b))) (fma.f64 -1/4 (/.f64 (pow.f64 a 6) (*.f64 b b)) (pow.f64 a 4)))) 0))
(fma.f64 1/4 (/.f64 (pow.f64 a 6) (*.f64 b b)) (fma.f64 -1/4 (/.f64 (pow.f64 a 6) (*.f64 b b)) (fma.f64 (*.f64 b b) (fma.f64 (*.f64 2 a) a (*.f64 b b)) (pow.f64 a 4))))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 (*.f64 2 a) a (*.f64 b b))))
(+.f64 (*.f64 1/2 (pow.f64 a 4)) (+.f64 (*.f64 -1/2 (pow.f64 a 4)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 a 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 (*.f64 2 a) a (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 a 6) (pow.f64 b 2))) (+.f64 (*.f64 1/2 (pow.f64 a 4)) (+.f64 (*.f64 -1/2 (pow.f64 a 4)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a 6) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (+.f64 (pow.f64 b 4) (*.f64 2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a 4)) (*.f64 1/4 (pow.f64 a 4))) (pow.f64 a 2)) (pow.f64 b 2))))))))))
(fma.f64 1/4 (/.f64 (pow.f64 a 6) (*.f64 b b)) (fma.f64 1/2 (pow.f64 a 4) (fma.f64 -1/2 (pow.f64 a 4) (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (fma.f64 -1/4 (/.f64 (pow.f64 a 6) (*.f64 b b)) (+.f64 (+.f64 (pow.f64 b 4) (pow.f64 a 4)) (*.f64 2 (/.f64 (*.f64 (pow.f64 a 4) 0) (/.f64 (*.f64 b b) (*.f64 a a))))))))))
(fma.f64 1/4 (/.f64 (pow.f64 a 6) (*.f64 b b)) (+.f64 (fma.f64 2 (*.f64 a (*.f64 b (*.f64 a b))) (+.f64 (+.f64 (pow.f64 b 4) (*.f64 (/.f64 (*.f64 a a) b) (/.f64 0 b))) (fma.f64 -1/4 (/.f64 (pow.f64 a 6) (*.f64 b b)) (pow.f64 a 4)))) 0))
(fma.f64 1/4 (/.f64 (pow.f64 a 6) (*.f64 b b)) (fma.f64 -1/4 (/.f64 (pow.f64 a 6) (*.f64 b b)) (fma.f64 (*.f64 b b) (fma.f64 (*.f64 2 a) a (*.f64 b b)) (pow.f64 a 4))))

localize19.0ms (0.3%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 a a) (-.f64 1 a))
0.0b
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.0b
(+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
0.0b
(+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))
0.0b
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.1b
(*.f64 (*.f64 a a) (-.f64 1 a))
0.3b
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
1.2b
(*.f64 (*.f64 b b) (+.f64 3 a))

series10.0ms (0.1%)

Counts
4 → 84
Calls

21 calls:

TimeVariablePointExpression
1.0ms
b
@inf
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
1.0ms
b
@0
(*.f64 (*.f64 b b) (+.f64 3 a))
1.0ms
b
@0
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
1.0ms
a
@inf
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
0.0ms
b
@inf
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)

rewrite49.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
194×add-sqr-sqrt_binary64
190×pow1_binary64
189×*-un-lft-identity_binary64
183×add-log-exp_binary64
183×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01754
139053
Stop Event
node limit
Counts
4 → 104
Calls
Call 1
Inputs
(*.f64 (*.f64 b b) (+.f64 3 a))
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
(*.f64 (*.f64 a a) (-.f64 1 a))
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 3 (*.f64 b b)) (*.f64 a (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 b b)) (*.f64 3 (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 3 (*.f64 b b)) 1) (*.f64 (*.f64 a (*.f64 b b)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 b (*.f64 b 3)) 1) (*.f64 (*.f64 b (*.f64 b a)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 b b) (+.f64 3 a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 3 (*.f64 b b)) 3) (pow.f64 (*.f64 a (*.f64 b b)) 3)) (+.f64 (*.f64 (*.f64 3 (*.f64 b b)) (*.f64 3 (*.f64 b b))) (-.f64 (*.f64 (*.f64 a (*.f64 b b)) (*.f64 a (*.f64 b b))) (*.f64 (*.f64 3 (*.f64 b b)) (*.f64 a (*.f64 b b))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 b (*.f64 b 3)) 3) (pow.f64 (*.f64 b (*.f64 b a)) 3)) (+.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (-.f64 (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a))) (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 3 (*.f64 b b)) (*.f64 3 (*.f64 b b))) (*.f64 (*.f64 a (*.f64 b b)) (*.f64 a (*.f64 b b)))) (-.f64 (*.f64 3 (*.f64 b b)) (*.f64 a (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 27 (pow.f64 a 3)) (*.f64 b b)) (+.f64 9 (*.f64 a (-.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 9 (*.f64 a a)) (*.f64 b b)) (-.f64 3 a))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 b b) (+.f64 27 (pow.f64 a 3))) (+.f64 9 (*.f64 a (-.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 b b) (-.f64 9 (*.f64 a a))) (-.f64 3 a))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 b b) (+.f64 3 a))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (sqrt.f64 (+.f64 3 a))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (+.f64 3 a) 3) (pow.f64 b 6)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (+.f64 3 a) 2) (pow.f64 b 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (+.f64 3 a)) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 b b) (+.f64 3 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (+.f64 3 a) 3) (pow.f64 b 6)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 b b) (+.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 b b) (+.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 b b) (+.f64 3 a))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b b) 3 (*.f64 b (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 b b) (*.f64 a (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 b b) (+.f64 3 a))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 b b) (pow.f64 (hypot.f64 b a) 2)) (*.f64 (*.f64 a a) (pow.f64 (hypot.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a a) (pow.f64 (hypot.f64 b a) 2)) (*.f64 (*.f64 b b) (pow.f64 (hypot.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 (hypot.f64 b a) 2) (*.f64 b b)) (*.f64 (pow.f64 (hypot.f64 b a) 2) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 (hypot.f64 b a) 2) (*.f64 a a)) (*.f64 (pow.f64 (hypot.f64 b a) 2) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 b a) 2) (pow.f64 (hypot.f64 b a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 2)) (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 2)) (*.f64 (cbrt.f64 (pow.f64 (hypot.f64 b a) 2)) (pow.f64 (hypot.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 4)) (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 b a) (*.f64 (hypot.f64 b a) (pow.f64 (hypot.f64 b a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 a 6) (pow.f64 b 6)) (+.f64 (pow.f64 a 6) (pow.f64 b 6))) (*.f64 (+.f64 (pow.f64 a 4) (-.f64 (pow.f64 b 4) (pow.f64 (*.f64 a b) 2))) (+.f64 (pow.f64 a 4) (-.f64 (pow.f64 b 4) (pow.f64 (*.f64 a b) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 a 4) (pow.f64 b 4)) (-.f64 (pow.f64 a 4) (pow.f64 b 4))) (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (-.f64 (*.f64 a a) (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 a 4) (pow.f64 b 4)) (+.f64 (pow.f64 a 6) (pow.f64 b 6))) (*.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (+.f64 (pow.f64 a 4) (-.f64 (pow.f64 b 4) (pow.f64 (*.f64 a b) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 a 6) (pow.f64 b 6)) (-.f64 (pow.f64 a 4) (pow.f64 b 4))) (*.f64 (+.f64 (pow.f64 a 4) (-.f64 (pow.f64 b 4) (pow.f64 (*.f64 a b) 2))) (-.f64 (*.f64 a a) (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 a 6) (pow.f64 b 6)) (pow.f64 (hypot.f64 b a) 2)) (+.f64 (pow.f64 a 4) (-.f64 (pow.f64 b 4) (pow.f64 (*.f64 a b) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 a 4) (pow.f64 b 4)) (pow.f64 (hypot.f64 b a) 2)) (-.f64 (*.f64 a a) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (hypot.f64 b a) 2) (+.f64 (pow.f64 a 6) (pow.f64 b 6))) (+.f64 (pow.f64 a 4) (-.f64 (pow.f64 b 4) (pow.f64 (*.f64 a b) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (hypot.f64 b a) 2) (-.f64 (pow.f64 a 4) (pow.f64 b 4))) (-.f64 (*.f64 a a) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (pow.f64 (hypot.f64 b a) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (pow.f64 (hypot.f64 b a) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a a) (*.f64 (neg.f64 a) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a a) 1) (*.f64 (*.f64 a a) (neg.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 a (*.f64 a (-.f64 1 a))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (pow.f64 a 3)) (*.f64 a a)) (+.f64 1 (fma.f64 a a a)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 a a)) (*.f64 a a)) (+.f64 1 a))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 a a) (-.f64 1 (pow.f64 a 3))) (+.f64 1 (fma.f64 a a a)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 a a) (-.f64 1 (*.f64 a a))) (+.f64 1 a))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 a (-.f64 1 a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (*.f64 a (-.f64 1 a)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (sqrt.f64 (-.f64 1 a))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (-.f64 1 a) 3) (pow.f64 a 6)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 (-.f64 1 a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 a) a) (-.f64 1 a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 a (*.f64 a (-.f64 1 a))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (-.f64 1 a) 3) (pow.f64 a 6)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (*.f64 a (-.f64 1 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (*.f64 a (-.f64 1 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 a (*.f64 a (-.f64 1 a)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (*.f64 a (-.f64 1 a)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 (*.f64 a (-.f64 1 a)) 4)) (*.f64 b (*.f64 (*.f64 b (+.f64 3 a)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 (*.f64 b (+.f64 3 a)) 4)) (*.f64 a (*.f64 (*.f64 a (-.f64 1 a)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 4 (*.f64 a (*.f64 a (-.f64 1 a)))) (*.f64 4 (*.f64 (*.f64 b b) (+.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 4 (*.f64 (*.f64 b b) (+.f64 3 a))) (*.f64 4 (*.f64 a (*.f64 a (-.f64 1 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a (*.f64 (*.f64 a (-.f64 1 a)) 4)) 1) (*.f64 (*.f64 b (*.f64 (*.f64 b (+.f64 3 a)) 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 4 (*.f64 a (*.f64 a (-.f64 1 a)))) 1) (*.f64 (*.f64 4 (*.f64 (*.f64 b b) (+.f64 3 a))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (*.f64 a (-.f64 1 a))))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 (*.f64 a (-.f64 1 a)) 4)) 3) (pow.f64 (*.f64 b (*.f64 (*.f64 b (+.f64 3 a)) 4)) 3)) (+.f64 (*.f64 (*.f64 a (*.f64 (*.f64 a (-.f64 1 a)) 4)) (*.f64 a (*.f64 (*.f64 a (-.f64 1 a)) 4))) (-.f64 (*.f64 (*.f64 b (*.f64 (*.f64 b (+.f64 3 a)) 4)) (*.f64 b (*.f64 (*.f64 b (+.f64 3 a)) 4))) (*.f64 (*.f64 a (*.f64 (*.f64 a (-.f64 1 a)) 4)) (*.f64 b (*.f64 (*.f64 b (+.f64 3 a)) 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 4 (*.f64 a (*.f64 a (-.f64 1 a)))) 3) (pow.f64 (*.f64 4 (*.f64 (*.f64 b b) (+.f64 3 a))) 3)) (+.f64 (*.f64 (*.f64 4 (*.f64 a (*.f64 a (-.f64 1 a)))) (*.f64 4 (*.f64 a (*.f64 a (-.f64 1 a))))) (-.f64 (*.f64 (*.f64 4 (*.f64 (*.f64 b b) (+.f64 3 a))) (*.f64 4 (*.f64 (*.f64 b b) (+.f64 3 a)))) (*.f64 (*.f64 4 (*.f64 a (*.f64 a (-.f64 1 a)))) (*.f64 4 (*.f64 (*.f64 b b) (+.f64 3 a)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 a (*.f64 (*.f64 a (-.f64 1 a)) 4)) (*.f64 a (*.f64 (*.f64 a (-.f64 1 a)) 4))) (*.f64 (*.f64 b (*.f64 (*.f64 b (+.f64 3 a)) 4)) (*.f64 b (*.f64 (*.f64 b (+.f64 3 a)) 4)))) (-.f64 (*.f64 a (*.f64 (*.f64 a (-.f64 1 a)) 4)) (*.f64 b (*.f64 (*.f64 b (+.f64 3 a)) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 4 (*.f64 a (*.f64 a (-.f64 1 a)))) (*.f64 4 (*.f64 a (*.f64 a (-.f64 1 a))))) (*.f64 (*.f64 4 (*.f64 (*.f64 b b) (+.f64 3 a))) (*.f64 4 (*.f64 (*.f64 b b) (+.f64 3 a))))) (-.f64 (*.f64 4 (*.f64 a (*.f64 a (-.f64 1 a)))) (*.f64 4 (*.f64 (*.f64 b b) (+.f64 3 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (*.f64 (pow.f64 (-.f64 1 a) 3) (pow.f64 a 6)) (*.f64 (pow.f64 (+.f64 3 a) 3) (pow.f64 b 6))) 4) (+.f64 (*.f64 (pow.f64 a 4) (pow.f64 (-.f64 1 a) 2)) (*.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (-.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (*.f64 a (*.f64 a (-.f64 1 a)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (*.f64 (pow.f64 a 4) (pow.f64 (-.f64 1 a) 2)) (*.f64 (pow.f64 (+.f64 3 a) 2) (pow.f64 b 4))) 4) (-.f64 (*.f64 a (*.f64 a (-.f64 1 a))) (*.f64 (*.f64 b b) (+.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 (*.f64 (pow.f64 (-.f64 1 a) 3) (pow.f64 a 6)) (*.f64 (pow.f64 (+.f64 3 a) 3) (pow.f64 b 6)))) (+.f64 (*.f64 (pow.f64 a 4) (pow.f64 (-.f64 1 a) 2)) (*.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (-.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (*.f64 a (*.f64 a (-.f64 1 a)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (-.f64 (*.f64 (pow.f64 a 4) (pow.f64 (-.f64 1 a) 2)) (*.f64 (pow.f64 (+.f64 3 a) 2) (pow.f64 b 4)))) (-.f64 (*.f64 a (*.f64 a (-.f64 1 a))) (*.f64 (*.f64 b b) (+.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (*.f64 a (-.f64 1 a))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (*.f64 a (-.f64 1 a))))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (*.f64 a (-.f64 1 a)))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (hypot.f64 (*.f64 a (sqrt.f64 (-.f64 1 a))) (*.f64 b (sqrt.f64 (+.f64 3 a))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 16 (pow.f64 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (*.f64 a (-.f64 1 a)))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 4) (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (*.f64 a (-.f64 1 a))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (*.f64 a (-.f64 1 a))))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (*.f64 a (-.f64 1 a))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (*.f64 a (-.f64 1 a)))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (*.f64 a (-.f64 1 a)))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (*.f64 a (-.f64 1 a)))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (*.f64 a (-.f64 1 a))) 4 (*.f64 b (*.f64 (*.f64 b (+.f64 3 a)) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 4 (*.f64 a (*.f64 a (-.f64 1 a))) (*.f64 4 (*.f64 (*.f64 b b) (+.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (*.f64 a (-.f64 1 a)))))))))))

simplify86.0ms (1.3%)

Algorithm
egg-herbie
Rules
651×associate-*r*_binary64
514×distribute-rgt-out_binary64
489×unswap-sqr_binary64
306×fma-def_binary64
183×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0471315
11311233
23661154
312291140
428141140
Stop Event
node limit
Counts
188 → 144
Calls
Call 1
Inputs
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 3 (pow.f64 b 2))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 a (pow.f64 b 2))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 a (pow.f64 b 2))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))
(pow.f64 a 2)
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(*.f64 -1 (pow.f64 a 3))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(*.f64 -1 (pow.f64 a 3))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(*.f64 12 (pow.f64 b 2))
(+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))))
(*.f64 -4 (pow.f64 a 3))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))))
(*.f64 -4 (pow.f64 a 3))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))))
(*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))) (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))))
(+.f64 (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))) (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))))
(+.f64 (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))) (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))))
(*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))
(+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))
(+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
Outputs
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(*.f64 a (pow.f64 b 2))
(*.f64 (*.f64 b b) a)
(*.f64 b (*.f64 b a))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(*.f64 a (pow.f64 b 2))
(*.f64 (*.f64 b b) a)
(*.f64 b (*.f64 b a))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 b 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(fma.f64 2 (*.f64 b (*.f64 b (*.f64 a a))) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))) (pow.f64 a 4))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (*.f64 b (*.f64 b 2)) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))) (pow.f64 a 4))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (*.f64 b (*.f64 b 2)) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))) (pow.f64 a 4))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (*.f64 b (*.f64 b 2)) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))) (pow.f64 a 4))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 b 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(fma.f64 2 (*.f64 b (*.f64 b (*.f64 a a))) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))) (pow.f64 a 4))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 b 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(fma.f64 2 (*.f64 b (*.f64 b (*.f64 a a))) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 2 (*.f64 a a))) (pow.f64 a 4))
(pow.f64 a 2)
(*.f64 a a)
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3)))
(-.f64 (*.f64 a a) (pow.f64 a 3))
(*.f64 a (-.f64 a (*.f64 a a)))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3)))
(-.f64 (*.f64 a a) (pow.f64 a 3))
(*.f64 a (-.f64 a (*.f64 a a)))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3)))
(-.f64 (*.f64 a a) (pow.f64 a 3))
(*.f64 a (-.f64 a (*.f64 a a)))
(*.f64 -1 (pow.f64 a 3))
(neg.f64 (pow.f64 a 3))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3)))
(-.f64 (*.f64 a a) (pow.f64 a 3))
(*.f64 a (-.f64 a (*.f64 a a)))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3)))
(-.f64 (*.f64 a a) (pow.f64 a 3))
(*.f64 a (-.f64 a (*.f64 a a)))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3)))
(-.f64 (*.f64 a a) (pow.f64 a 3))
(*.f64 a (-.f64 a (*.f64 a a)))
(*.f64 -1 (pow.f64 a 3))
(neg.f64 (pow.f64 a 3))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3)))
(-.f64 (*.f64 a a) (pow.f64 a 3))
(*.f64 a (-.f64 a (*.f64 a a)))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3)))
(-.f64 (*.f64 a a) (pow.f64 a 3))
(*.f64 a (-.f64 a (*.f64 a a)))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3)))
(-.f64 (*.f64 a a) (pow.f64 a 3))
(*.f64 a (-.f64 a (*.f64 a a)))
(*.f64 12 (pow.f64 b 2))
(*.f64 (*.f64 b b) 12)
(*.f64 b (*.f64 b 12))
(+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))
(fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4))
(*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4)))
(*.f64 b (*.f64 b (fma.f64 a 4 12)))
(*.f64 (*.f64 b b) (fma.f64 a 4 12))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4)))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4))))
(fma.f64 (*.f64 b b) (fma.f64 a 4 12) (*.f64 a (*.f64 a 4)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 (pow.f64 a 3) -4 (*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4)))))
(fma.f64 (*.f64 b b) (fma.f64 a 4 12) (*.f64 (*.f64 a a) (+.f64 (*.f64 a -4) 4)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a)))))
(*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 3 a)))))
(*.f64 -4 (pow.f64 a 3))
(*.f64 (pow.f64 a 3) -4)
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(fma.f64 4 (*.f64 a a) (*.f64 (pow.f64 a 3) -4))
(*.f64 (*.f64 a a) (+.f64 (*.f64 a -4) 4))
(*.f64 a (*.f64 4 (-.f64 a (*.f64 a a))))
(*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (*.f64 (*.f64 (*.f64 b b) a) 4)))
(fma.f64 4 (*.f64 a a) (fma.f64 (*.f64 b (*.f64 b a)) 4 (*.f64 (pow.f64 a 3) -4)))
(fma.f64 (pow.f64 a 3) -4 (*.f64 (*.f64 a 4) (+.f64 a (*.f64 b b))))
(*.f64 (*.f64 a 4) (+.f64 (*.f64 b b) (-.f64 a (*.f64 a a))))
(*.f64 4 (*.f64 a (+.f64 (*.f64 b b) (-.f64 a (*.f64 a a)))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 (pow.f64 a 3) -4 (*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4)))))
(fma.f64 (*.f64 b b) (fma.f64 a 4 12) (*.f64 (*.f64 a a) (+.f64 (*.f64 a -4) 4)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a)))))
(*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 3 a)))))
(*.f64 -4 (pow.f64 a 3))
(*.f64 (pow.f64 a 3) -4)
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(fma.f64 4 (*.f64 a a) (*.f64 (pow.f64 a 3) -4))
(*.f64 (*.f64 a a) (+.f64 (*.f64 a -4) 4))
(*.f64 a (*.f64 4 (-.f64 a (*.f64 a a))))
(*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (*.f64 (*.f64 (*.f64 b b) a) 4)))
(fma.f64 4 (*.f64 a a) (fma.f64 (*.f64 b (*.f64 b a)) 4 (*.f64 (pow.f64 a 3) -4)))
(fma.f64 (pow.f64 a 3) -4 (*.f64 (*.f64 a 4) (+.f64 a (*.f64 b b))))
(*.f64 (*.f64 a 4) (+.f64 (*.f64 b b) (-.f64 a (*.f64 a a))))
(*.f64 4 (*.f64 a (+.f64 (*.f64 b b) (-.f64 a (*.f64 a a)))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 (pow.f64 a 3) -4 (*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4)))))
(fma.f64 (*.f64 b b) (fma.f64 a 4 12) (*.f64 (*.f64 a a) (+.f64 (*.f64 a -4) 4)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a)))))
(*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 3 a)))))
(*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(fma.f64 4 (*.f64 a a) (*.f64 (pow.f64 a 3) -4))
(*.f64 (*.f64 a a) (+.f64 (*.f64 a -4) 4))
(*.f64 a (*.f64 4 (-.f64 a (*.f64 a a))))
(*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))
(+.f64 (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))) (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 (pow.f64 a 3) -4 (*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4)))))
(fma.f64 (*.f64 b b) (fma.f64 a 4 12) (*.f64 (*.f64 a a) (+.f64 (*.f64 a -4) 4)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a)))))
(*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 3 a)))))
(+.f64 (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))) (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 (pow.f64 a 3) -4 (*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4)))))
(fma.f64 (*.f64 b b) (fma.f64 a 4 12) (*.f64 (*.f64 a a) (+.f64 (*.f64 a -4) 4)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a)))))
(*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 3 a)))))
(+.f64 (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))) (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 (pow.f64 a 3) -4 (*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4)))))
(fma.f64 (*.f64 b b) (fma.f64 a 4 12) (*.f64 (*.f64 a a) (+.f64 (*.f64 a -4) 4)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a)))))
(*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 3 a)))))
(*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))
(fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4))
(*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4)))
(*.f64 b (*.f64 b (fma.f64 a 4 12)))
(*.f64 (*.f64 b b) (fma.f64 a 4 12))
(+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 (pow.f64 a 3) -4 (*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4)))))
(fma.f64 (*.f64 b b) (fma.f64 a 4 12) (*.f64 (*.f64 a a) (+.f64 (*.f64 a -4) 4)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a)))))
(*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 3 a)))))
(+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 (pow.f64 a 3) -4 (*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4)))))
(fma.f64 (*.f64 b b) (fma.f64 a 4 12) (*.f64 (*.f64 a a) (+.f64 (*.f64 a -4) 4)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a)))))
(*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 3 a)))))
(+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 (pow.f64 a 3) -4 (*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4)))))
(fma.f64 (*.f64 b b) (fma.f64 a 4 12) (*.f64 (*.f64 a a) (+.f64 (*.f64 a -4) 4)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a)))))
(*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 3 a)))))
(*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))
(fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4))
(*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4)))
(*.f64 b (*.f64 b (fma.f64 a 4 12)))
(*.f64 (*.f64 b b) (fma.f64 a 4 12))
(+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 (pow.f64 a 3) -4 (*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4)))))
(fma.f64 (*.f64 b b) (fma.f64 a 4 12) (*.f64 (*.f64 a a) (+.f64 (*.f64 a -4) 4)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a)))))
(*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 3 a)))))
(+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 (pow.f64 a 3) -4 (*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4)))))
(fma.f64 (*.f64 b b) (fma.f64 a 4 12) (*.f64 (*.f64 a a) (+.f64 (*.f64 a -4) 4)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a)))))
(*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 3 a)))))
(+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 12 (*.f64 b b) (*.f64 (*.f64 (*.f64 b b) a) 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 (pow.f64 a 3) -4 (*.f64 (*.f64 b b) (+.f64 12 (*.f64 a 4)))))
(fma.f64 (*.f64 b b) (fma.f64 a 4 12) (*.f64 (*.f64 a a) (+.f64 (*.f64 a -4) 4)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a)))))
(*.f64 4 (fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 3 a)))))

eval215.0ms (3.2%)

Compiler

Compiled 11951 to 6942 computations (41.9% saved)

prune87.0ms (1.3%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New3556361
Fresh000
Picked101
Done101
Total3576363
Error
0b
Counts
363 → 6
Alt Table
Click to see full alt table
StatusErrorProgram
1.1b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 12))) 1)
10.4b
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
1.0b
(fma.f64 4 (neg.f64 (pow.f64 a 3)) (+.f64 (pow.f64 (hypot.f64 a b) 4) -1))
0.4b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))) 1)
8.8b
(-.f64 (+.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
9.1b
(-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
Compiler

Compiled 282 to 196 computations (30.5% saved)

localize13.0ms (0.2%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
0.1b
(*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))
0.0b
(+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4)))))
0.0b
(*.f64 a (+.f64 4 (*.f64 a -4)))
0.0b
(*.f64 a (+.f64 4 (*.f64 a -4)))
0.0b
(+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4)))))
0.1b
(*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))
0.3b
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)

series8.0ms (0.1%)

Counts
3 → 48
Calls

12 calls:

TimeVariablePointExpression
2.0ms
a
@0
(*.f64 a (+.f64 4 (*.f64 a -4)))
1.0ms
a
@0
(*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))
1.0ms
a
@inf
(*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))
1.0ms
b
@0
(+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4)))))
0.0ms
a
@-inf
(*.f64 a (+.f64 4 (*.f64 a -4)))

rewrite79.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
277×log1p-udef_binary64
169×add-sqr-sqrt_binary64
165×pow1_binary64
164×*-un-lft-identity_binary64
159×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01549
133840
2459140
Stop Event
node limit
Counts
3 → 85
Calls
Call 1
Inputs
(*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))
(+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4)))))
(*.f64 a (+.f64 4 (*.f64 a -4)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a 4) a) (*.f64 (*.f64 a (*.f64 a -4)) a))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 4 (*.f64 a a)) (*.f64 (*.f64 a -4) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a -4) (*.f64 a a)) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 a 4)) (*.f64 a (*.f64 a (*.f64 a -4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a a) 4) (*.f64 (*.f64 a a) (*.f64 a -4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a a) (*.f64 a -4)) (*.f64 (*.f64 a a) 4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 a a) (+.f64 64 (*.f64 (pow.f64 a 3) -64))) (+.f64 16 (-.f64 (*.f64 (*.f64 a a) 16) (*.f64 -16 a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 a a) (-.f64 16 (*.f64 (*.f64 a a) 16))) (+.f64 4 (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (sqrt.f64 (fma.f64 a -4 4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 a 6) (pow.f64 (fma.f64 a -4 4) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 a 4) (pow.f64 (fma.f64 a -4 4) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a 6) (pow.f64 (fma.f64 a -4 4) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 4) (-.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2) (*.f64 (fma.f64 a -4 4) (*.f64 a a)))) (/.f64 (*.f64 (pow.f64 a 4) (pow.f64 (fma.f64 a -4 4) 2)) (-.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2) (*.f64 (fma.f64 a -4 4) (*.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))) (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))) 2) (cbrt.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 (pow.f64 (hypot.f64 a b) 2) (*.f64 a (sqrt.f64 (fma.f64 a -4 4)))) (hypot.f64 (pow.f64 (hypot.f64 a b) 2) (*.f64 a (sqrt.f64 (fma.f64 a -4 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 6) (*.f64 (pow.f64 a 6) (pow.f64 (fma.f64 a -4 4) 3))) (/.f64 1 (+.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 4) (*.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a)) (-.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 4) (*.f64 (pow.f64 a 4) (pow.f64 (fma.f64 a -4 4) 2))) (/.f64 1 (-.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2) (*.f64 (fma.f64 a -4 4) (*.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 4) (*.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a)) (-.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2)))) (+.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 6) (*.f64 (pow.f64 a 6) (pow.f64 (fma.f64 a -4 4) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2) (*.f64 (fma.f64 a -4 4) (*.f64 a a))) (-.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 4) (*.f64 (pow.f64 a 4) (pow.f64 (fma.f64 a -4 4) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 6) (*.f64 (pow.f64 a 6) (pow.f64 (fma.f64 a -4 4) 3))) (+.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 4) (*.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a)) (-.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 6) (*.f64 (pow.f64 a 6) (pow.f64 (fma.f64 a -4 4) 3))) (+.f64 (*.f64 (pow.f64 a 4) (pow.f64 (fma.f64 a -4 4) 2)) (-.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 4) (*.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 4) (*.f64 (pow.f64 a 4) (pow.f64 (fma.f64 a -4 4) 2))) (-.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2) (*.f64 (fma.f64 a -4 4) (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 6) (*.f64 (pow.f64 a 6) (pow.f64 (fma.f64 a -4 4) 3)))) (neg.f64 (+.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 4) (*.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a)) (-.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 4) (*.f64 (pow.f64 a 4) (pow.f64 (fma.f64 a -4 4) 2)))) (neg.f64 (-.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2) (*.f64 (fma.f64 a -4 4) (*.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 a 4) (pow.f64 (fma.f64 a -4 4) 2)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 4)) (-.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 (pow.f64 (hypot.f64 a b) 2) (*.f64 a (sqrt.f64 (fma.f64 a -4 4)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (fma.f64 a -4 4)) a (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a a) (fma.f64 a -4 4) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (hypot.f64 a b) 2) (pow.f64 (hypot.f64 a b) 2) (*.f64 (fma.f64 a -4 4) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (fma.f64 a -4 4) (*.f64 a a)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2) (*.f64 (fma.f64 a -4 4) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 4)) (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2)) (*.f64 (fma.f64 a -4 4) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a))) 2) (cbrt.f64 (*.f64 (fma.f64 a -4 4) (*.f64 a a))) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 (fma.f64 a -4 4))) (*.f64 a (sqrt.f64 (fma.f64 a -4 4))) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 (pow.f64 (hypot.f64 a b) 2) 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a 4) (*.f64 a (*.f64 a -4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 a -4)) (*.f64 a 4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a 4) 1) (*.f64 (*.f64 a (*.f64 a -4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 a (fma.f64 a -4 4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a 4) 3) (pow.f64 (*.f64 a (*.f64 a -4)) 3)) (+.f64 (*.f64 (*.f64 a 4) (*.f64 a 4)) (-.f64 (*.f64 (*.f64 a (*.f64 a -4)) (*.f64 a (*.f64 a -4))) (*.f64 (*.f64 a 4) (*.f64 a (*.f64 a -4))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 a 4) (*.f64 a 4)) (*.f64 (*.f64 a (*.f64 a -4)) (*.f64 a (*.f64 a -4)))) (-.f64 (*.f64 a 4) (*.f64 a (*.f64 a -4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 64 (*.f64 (pow.f64 a 3) -64)) a) (+.f64 16 (-.f64 (*.f64 (*.f64 a a) 16) (*.f64 -16 a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 16 (*.f64 (*.f64 a a) 16)) a) (+.f64 4 (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (+.f64 64 (*.f64 (pow.f64 a 3) -64))) (+.f64 16 (-.f64 (*.f64 (*.f64 a a) 16) (*.f64 -16 a))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (-.f64 16 (*.f64 (*.f64 a a) 16))) (+.f64 4 (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (fma.f64 a -4 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (fma.f64 a -4 4)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (fma.f64 a -4 4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a (fma.f64 a -4 4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (fma.f64 a -4 4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 a -4 4)) a))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 a (fma.f64 a -4 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (fma.f64 a -4 4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (fma.f64 a -4 4) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 a -4 4) 3) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (fma.f64 a -4 4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (fma.f64 a -4 4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 a (fma.f64 a -4 4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a 4 (*.f64 a (*.f64 a -4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 4 a (*.f64 a (*.f64 a -4)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (fma.f64 a -4 4))))))))

simplify75.0ms (1.1%)

Algorithm
egg-herbie
Rules
499×unswap-sqr_binary64
448×associate-*l*_binary64
414×distribute-rgt-out_binary64
357×distribute-lft-out_binary64
286×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
045754
1126725
2296675
3962672
42664672
54786672
64962672
Stop Event
node limit
Counts
133 → 115
Calls
Call 1
Inputs
(*.f64 4 (pow.f64 a 2))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(*.f64 -4 (pow.f64 a 3))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(*.f64 -4 (pow.f64 a 3))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(pow.f64 b 4)
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 b 2)) 4) (pow.f64 a 2)) (pow.f64 b 4))
(+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 b 2)) 4) (pow.f64 a 2)) (pow.f64 b 4)))
(+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 b 2)) 4) (pow.f64 a 2)) (+.f64 (pow.f64 a 4) (pow.f64 b 4))))
(pow.f64 a 4)
(+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4))
(+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 b 2)) 4) (pow.f64 a 2)) (pow.f64 a 4)))
(+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 b 2)) 4) (pow.f64 a 2)) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))
(pow.f64 a 4)
(+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4))
(+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 b 2)) 4) (pow.f64 a 2)) (pow.f64 a 4)))
(+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 b 2)) 4) (pow.f64 a 2)) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (pow.f64 a 4))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4)))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4))))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4))))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4))))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4))))
(*.f64 4 a)
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(*.f64 -4 (pow.f64 a 2))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(*.f64 -4 (pow.f64 a 2))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
Outputs
(*.f64 4 (pow.f64 a 2))
(*.f64 4 (*.f64 a a))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(fma.f64 4 (*.f64 a a) (*.f64 -4 (pow.f64 a 3)))
(*.f64 (*.f64 a a) (fma.f64 a -4 4))
(*.f64 a (*.f64 a (fma.f64 a -4 4)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(fma.f64 4 (*.f64 a a) (*.f64 -4 (pow.f64 a 3)))
(*.f64 (*.f64 a a) (fma.f64 a -4 4))
(*.f64 a (*.f64 a (fma.f64 a -4 4)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(fma.f64 4 (*.f64 a a) (*.f64 -4 (pow.f64 a 3)))
(*.f64 (*.f64 a a) (fma.f64 a -4 4))
(*.f64 a (*.f64 a (fma.f64 a -4 4)))
(*.f64 -4 (pow.f64 a 3))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(fma.f64 4 (*.f64 a a) (*.f64 -4 (pow.f64 a 3)))
(*.f64 (*.f64 a a) (fma.f64 a -4 4))
(*.f64 a (*.f64 a (fma.f64 a -4 4)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(fma.f64 4 (*.f64 a a) (*.f64 -4 (pow.f64 a 3)))
(*.f64 (*.f64 a a) (fma.f64 a -4 4))
(*.f64 a (*.f64 a (fma.f64 a -4 4)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(fma.f64 4 (*.f64 a a) (*.f64 -4 (pow.f64 a 3)))
(*.f64 (*.f64 a a) (fma.f64 a -4 4))
(*.f64 a (*.f64 a (fma.f64 a -4 4)))
(*.f64 -4 (pow.f64 a 3))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(fma.f64 4 (*.f64 a a) (*.f64 -4 (pow.f64 a 3)))
(*.f64 (*.f64 a a) (fma.f64 a -4 4))
(*.f64 a (*.f64 a (fma.f64 a -4 4)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(fma.f64 4 (*.f64 a a) (*.f64 -4 (pow.f64 a 3)))
(*.f64 (*.f64 a a) (fma.f64 a -4 4))
(*.f64 a (*.f64 a (fma.f64 a -4 4)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(fma.f64 4 (*.f64 a a) (*.f64 -4 (pow.f64 a 3)))
(*.f64 (*.f64 a a) (fma.f64 a -4 4))
(*.f64 a (*.f64 a (fma.f64 a -4 4)))
(pow.f64 b 4)
(+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 b 2)) 4) (pow.f64 a 2)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a a) (pow.f64 b 4))
(fma.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) 4) (pow.f64 b 4))
(fma.f64 a (*.f64 a (fma.f64 2 (*.f64 b b) 4)) (pow.f64 b 4))
(+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 b 2)) 4) (pow.f64 a 2)) (pow.f64 b 4)))
(fma.f64 -4 (pow.f64 a 3) (fma.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a a) (pow.f64 b 4)))
(fma.f64 -4 (pow.f64 a 3) (fma.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) 4) (pow.f64 b 4)))
(fma.f64 a (*.f64 a (fma.f64 2 (*.f64 b b) 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 b 4)))
(+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 b 2)) 4) (pow.f64 a 2)) (+.f64 (pow.f64 a 4) (pow.f64 b 4))))
(fma.f64 -4 (pow.f64 a 3) (+.f64 (fma.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a a) (pow.f64 b 4)) (pow.f64 a 4)))
(+.f64 (fma.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) 4) (pow.f64 b 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 (*.f64 a a) (fma.f64 a a (fma.f64 2 (*.f64 b b) 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (*.f64 a (*.f64 a (+.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a (+.f64 a -4))))))
(pow.f64 a 4)
(+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4))
(fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4))
(*.f64 (pow.f64 a 3) (+.f64 a -4))
(+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 b 2)) 4) (pow.f64 a 2)) (pow.f64 a 4)))
(fma.f64 -4 (pow.f64 a 3) (fma.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a a) (pow.f64 a 4)))
(fma.f64 -4 (pow.f64 a 3) (fma.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) 4) (pow.f64 a 4)))
(fma.f64 a (*.f64 a (fma.f64 2 (*.f64 b b) 4)) (*.f64 (pow.f64 a 3) (+.f64 a -4)))
(*.f64 a (*.f64 a (+.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a (+.f64 a -4)))))
(+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 b 2)) 4) (pow.f64 a 2)) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))
(fma.f64 -4 (pow.f64 a 3) (+.f64 (fma.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a a) (pow.f64 b 4)) (pow.f64 a 4)))
(+.f64 (fma.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) 4) (pow.f64 b 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 (*.f64 a a) (fma.f64 a a (fma.f64 2 (*.f64 b b) 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (*.f64 a (*.f64 a (+.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a (+.f64 a -4))))))
(pow.f64 a 4)
(+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4))
(fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4))
(*.f64 (pow.f64 a 3) (+.f64 a -4))
(+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 b 2)) 4) (pow.f64 a 2)) (pow.f64 a 4)))
(fma.f64 -4 (pow.f64 a 3) (fma.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a a) (pow.f64 a 4)))
(fma.f64 -4 (pow.f64 a 3) (fma.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) 4) (pow.f64 a 4)))
(fma.f64 a (*.f64 a (fma.f64 2 (*.f64 b b) 4)) (*.f64 (pow.f64 a 3) (+.f64 a -4)))
(*.f64 a (*.f64 a (+.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a (+.f64 a -4)))))
(+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 (+.f64 (*.f64 2 (pow.f64 b 2)) 4) (pow.f64 a 2)) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))
(fma.f64 -4 (pow.f64 a 3) (+.f64 (fma.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a a) (pow.f64 b 4)) (pow.f64 a 4)))
(+.f64 (fma.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) 4) (pow.f64 b 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 (*.f64 a a) (fma.f64 a a (fma.f64 2 (*.f64 b b) 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (*.f64 a (*.f64 a (+.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a (+.f64 a -4))))))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (pow.f64 a 4))
(fma.f64 (+.f64 4 (*.f64 a -4)) (*.f64 a a) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (fma.f64 a -4 4) (pow.f64 a 4))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4)))
(fma.f64 -4 (pow.f64 a 3) (fma.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a a) (pow.f64 a 4)))
(fma.f64 -4 (pow.f64 a 3) (fma.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) 4) (pow.f64 a 4)))
(fma.f64 a (*.f64 a (fma.f64 2 (*.f64 b b) 4)) (*.f64 (pow.f64 a 3) (+.f64 a -4)))
(*.f64 a (*.f64 a (+.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a (+.f64 a -4)))))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))
(fma.f64 -4 (pow.f64 a 3) (+.f64 (fma.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a a) (pow.f64 b 4)) (pow.f64 a 4)))
(+.f64 (fma.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) 4) (pow.f64 b 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 (*.f64 a a) (fma.f64 a a (fma.f64 2 (*.f64 b b) 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (*.f64 a (*.f64 a (+.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a (+.f64 a -4))))))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (pow.f64 a 4))))
(fma.f64 -4 (pow.f64 a 3) (+.f64 (fma.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a a) (pow.f64 b 4)) (pow.f64 a 4)))
(+.f64 (fma.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) 4) (pow.f64 b 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 (*.f64 a a) (fma.f64 a a (fma.f64 2 (*.f64 b b) 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (*.f64 a (*.f64 a (+.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a (+.f64 a -4))))))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b))))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4))))
(fma.f64 -4 (pow.f64 a 3) (+.f64 (fma.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a a) (pow.f64 b 4)) (pow.f64 a 4)))
(+.f64 (fma.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) 4) (pow.f64 b 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 (*.f64 a a) (fma.f64 a a (fma.f64 2 (*.f64 b b) 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (*.f64 a (*.f64 a (+.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a (+.f64 a -4))))))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4))))
(fma.f64 -4 (pow.f64 a 3) (+.f64 (fma.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a a) (pow.f64 b 4)) (pow.f64 a 4)))
(+.f64 (fma.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) 4) (pow.f64 b 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 (*.f64 a a) (fma.f64 a a (fma.f64 2 (*.f64 b b) 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (*.f64 a (*.f64 a (+.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a (+.f64 a -4))))))
(pow.f64 b 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b))))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4))))
(fma.f64 -4 (pow.f64 a 3) (+.f64 (fma.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a a) (pow.f64 b 4)) (pow.f64 a 4)))
(+.f64 (fma.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) 4) (pow.f64 b 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 (*.f64 a a) (fma.f64 a a (fma.f64 2 (*.f64 b b) 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (*.f64 a (*.f64 a (+.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a (+.f64 a -4))))))
(+.f64 (*.f64 (+.f64 4 (*.f64 -4 a)) (pow.f64 a 2)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (pow.f64 b 4))))
(fma.f64 -4 (pow.f64 a 3) (+.f64 (fma.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a a) (pow.f64 b 4)) (pow.f64 a 4)))
(+.f64 (fma.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) 4) (pow.f64 b 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 (*.f64 a a) (fma.f64 a a (fma.f64 2 (*.f64 b b) 4)) (fma.f64 -4 (pow.f64 a 3) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (*.f64 a (*.f64 a (+.f64 (fma.f64 2 (*.f64 b b) 4) (*.f64 a (+.f64 a -4))))))
(*.f64 4 a)
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(fma.f64 4 a (*.f64 (*.f64 a a) -4))
(*.f64 a (fma.f64 a -4 4))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(fma.f64 4 a (*.f64 (*.f64 a a) -4))
(*.f64 a (fma.f64 a -4 4))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(fma.f64 4 a (*.f64 (*.f64 a a) -4))
(*.f64 a (fma.f64 a -4 4))
(*.f64 -4 (pow.f64 a 2))
(*.f64 (*.f64 a a) -4)
(*.f64 a (*.f64 a -4))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(fma.f64 4 a (*.f64 (*.f64 a a) -4))
(*.f64 a (fma.f64 a -4 4))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(fma.f64 4 a (*.f64 (*.f64 a a) -4))
(*.f64 a (fma.f64 a -4 4))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(fma.f64 4 a (*.f64 (*.f64 a a) -4))
(*.f64 a (fma.f64 a -4 4))
(*.f64 -4 (pow.f64 a 2))
(*.f64 (*.f64 a a) -4)
(*.f64 a (*.f64 a -4))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(fma.f64 4 a (*.f64 (*.f64 a a) -4))
(*.f64 a (fma.f64 a -4 4))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(fma.f64 4 a (*.f64 (*.f64 a a) -4))
(*.f64 a (fma.f64 a -4 4))
(+.f64 (*.f64 4 a) (*.f64 -4 (pow.f64 a 2)))
(fma.f64 4 a (*.f64 (*.f64 a a) -4))
(*.f64 a (fma.f64 a -4 4))

localize9.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
0.1b
(*.f64 b (*.f64 b 12))
0.1b
(*.f64 b (*.f64 b 12))
0.3b
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
b
@0
(*.f64 b (*.f64 b 12))
0.0ms
b
@inf
(*.f64 b (*.f64 b 12))
0.0ms
b
@-inf
(*.f64 b (*.f64 b 12))

rewrite31.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
448×pow1_binary64
415×add-log-exp_binary64
415×log1p-expm1-u_binary64
415×expm1-log1p-u_binary64
407×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify57.0ms (0.8%)

Algorithm
egg-herbie
Rules
605×sqr-pow_binary64
445×associate-*l*_binary64
434×unswap-sqr_binary64
281×cube-prod_binary64
271×fabs-mul_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0684
11284
22384
34484
410784
533684
6123784
7211384
8227684
9246084
10266884
11295984
12335084
13383084
14439184
Stop Event
node limit
Counts
25 → 15
Calls
Call 1
Inputs
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
Outputs
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))

localize13.0ms (0.2%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 a a) (-.f64 1 a))
0.0b
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
0.0b
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.0b
(+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))
0.0b
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.0b
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
0.1b
(*.f64 (*.f64 a a) (-.f64 1 a))
1.2b
(*.f64 (*.f64 b b) (+.f64 3 a))

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
b
@0
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
0.0ms
a
@0
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
0.0ms
a
@inf
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
0.0ms
a
@-inf
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
0.0ms
b
@inf
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))

rewrite39.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
186×add-sqr-sqrt_binary64
183×pow1_binary64
182×*-un-lft-identity_binary64
176×add-log-exp_binary64
176×log1p-expm1-u_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01629
137127
Stop Event
node limit
Counts
1 → 36
Calls
Call 1
Inputs
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 a 8) (+.f64 (pow.f64 a 4) (*.f64 -4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))) (/.f64 (*.f64 16 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 2)) (+.f64 (pow.f64 a 4) (*.f64 -4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4))) (cbrt.f64 (pow.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4)) 2)) (cbrt.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 (*.f64 a a) (*.f64 2 (hypot.f64 (*.f64 a (sqrt.f64 (-.f64 1 a))) (*.f64 b (sqrt.f64 (+.f64 a 3)))))) (hypot.f64 (*.f64 a a) (*.f64 2 (hypot.f64 (*.f64 a (sqrt.f64 (-.f64 1 a))) (*.f64 b (sqrt.f64 (+.f64 a 3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 a 12) (*.f64 64 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 3))) (/.f64 1 (+.f64 (pow.f64 a 8) (*.f64 (*.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))) (-.f64 (*.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))) (pow.f64 a 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 a 8) (*.f64 16 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 2))) (/.f64 1 (+.f64 (pow.f64 a 4) (*.f64 -4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 a 8) (*.f64 (*.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))) (-.f64 (*.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))) (pow.f64 a 4)))) (+.f64 (pow.f64 a 12) (*.f64 64 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (+.f64 (pow.f64 a 4) (*.f64 -4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))))) (-.f64 (pow.f64 a 8) (*.f64 16 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 a 12) (*.f64 64 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 3))) (+.f64 (pow.f64 a 8) (*.f64 (*.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))) (-.f64 (*.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))) (pow.f64 a 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 a 8) (*.f64 16 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 2))) (+.f64 (pow.f64 a 4) (*.f64 -4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 a 12) (*.f64 64 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 3)))) (neg.f64 (+.f64 (pow.f64 a 8) (*.f64 (*.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))) (-.f64 (*.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))) (pow.f64 a 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 a 8) (*.f64 16 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 2)))) (neg.f64 (+.f64 (pow.f64 a 4) (*.f64 -4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (*.f64 64 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 3)) (pow.f64 a 12)) (+.f64 (*.f64 16 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 2)) (-.f64 (pow.f64 a 8) (*.f64 (*.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))) (pow.f64 a 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 16 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 2)) (pow.f64 a 8)) (-.f64 (*.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))) (pow.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 (*.f64 a a) (*.f64 2 (hypot.f64 (*.f64 a (sqrt.f64 (-.f64 1 a))) (*.f64 b (sqrt.f64 (+.f64 a 3)))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a a) (*.f64 a a) (*.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 a 4) (*.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))) (pow.f64 a 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 4 (pow.f64 a 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 16 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 2))) (cbrt.f64 (*.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))))) (pow.f64 a 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 a 8)) (cbrt.f64 (pow.f64 a 4)) (*.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 2 (hypot.f64 (*.f64 a (sqrt.f64 (-.f64 1 a))) (*.f64 b (sqrt.f64 (+.f64 a 3))))) (*.f64 2 (hypot.f64 (*.f64 a (sqrt.f64 (-.f64 1 a))) (*.f64 b (sqrt.f64 (+.f64 a 3))))) (pow.f64 a 4))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 4 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 a 4))))))))

simplify38.0ms (0.6%)

Algorithm
egg-herbie
Rules
485×associate-*l*_binary64
416×distribute-lft-out_binary64
365×distribute-rgt-out_binary64
311×fma-def_binary64
309×associate-*r*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
038532
1117476
2332454
31159450
42974450
Stop Event
node limit
Counts
60 → 56
Calls
Call 1
Inputs
(*.f64 12 (pow.f64 b 2))
(+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))))
(pow.f64 a 4)
(+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 4 (*.f64 a (pow.f64 b 2))) (pow.f64 a 4))))
(pow.f64 a 4)
(+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 4 (*.f64 a (pow.f64 b 2))) (pow.f64 a 4))))
(+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))) (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a)))))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))) (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a)))))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))) (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a)))))
(*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))))
(*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))))
Outputs
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))
(fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a)))
(*.f64 b (*.f64 b (fma.f64 4 a 12)))
(*.f64 (*.f64 b b) (fma.f64 4 a 12))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(fma.f64 (*.f64 b b) (fma.f64 4 a 12) (*.f64 4 (*.f64 a a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a)))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a)))))
(fma.f64 (*.f64 b b) (fma.f64 4 a 12) (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a -4))))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 a a) (pow.f64 a 3))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (-.f64 a (*.f64 a a)))))
(pow.f64 a 4)
(+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4))
(fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4))
(*.f64 (pow.f64 a 3) (+.f64 -4 a))
(*.f64 (pow.f64 a 3) (+.f64 a -4))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (*.f64 (pow.f64 a 3) (+.f64 -4 a)))
(*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 4 (*.f64 a (pow.f64 b 2))) (pow.f64 a 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 4 (*.f64 (*.f64 b b) a) (pow.f64 a 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 4 (*.f64 b (*.f64 b a)) (pow.f64 a 4))))
(+.f64 (*.f64 (pow.f64 a 3) (+.f64 -4 a)) (*.f64 (*.f64 4 a) (+.f64 (*.f64 b b) a)))
(+.f64 (pow.f64 a 4) (*.f64 4 (-.f64 (*.f64 a (+.f64 (*.f64 b b) a)) (pow.f64 a 3))))
(+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 a (+.f64 (*.f64 b b) (-.f64 a (*.f64 a a))))))
(pow.f64 a 4)
(+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4))
(fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4))
(*.f64 (pow.f64 a 3) (+.f64 -4 a))
(*.f64 (pow.f64 a 3) (+.f64 a -4))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (*.f64 (pow.f64 a 3) (+.f64 -4 a)))
(*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (+.f64 (*.f64 4 (*.f64 a (pow.f64 b 2))) (pow.f64 a 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 4 (*.f64 (*.f64 b b) a) (pow.f64 a 4))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (fma.f64 4 (*.f64 b (*.f64 b a)) (pow.f64 a 4))))
(+.f64 (*.f64 (pow.f64 a 3) (+.f64 -4 a)) (*.f64 (*.f64 4 a) (+.f64 (*.f64 b b) a)))
(+.f64 (pow.f64 a 4) (*.f64 4 (-.f64 (*.f64 a (+.f64 (*.f64 b b) a)) (pow.f64 a 3))))
(+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 a (+.f64 (*.f64 b b) (-.f64 a (*.f64 a a))))))
(+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (*.f64 (pow.f64 a 3) (+.f64 -4 a)))
(*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4))))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))) (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a)))))
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (*.f64 a (-.f64 1 a)))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 a a) (pow.f64 a 3))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (-.f64 a (*.f64 a a)))) (pow.f64 a 4))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))) (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a)))))
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (*.f64 a (-.f64 1 a)))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 a a) (pow.f64 a 3))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (-.f64 a (*.f64 a a)))) (pow.f64 a 4))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))) (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a)))))
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (*.f64 a (-.f64 1 a)))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 a a) (pow.f64 a 3))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (-.f64 a (*.f64 a a)))) (pow.f64 a 4))
(*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))
(fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a)))
(*.f64 b (*.f64 b (fma.f64 4 a 12)))
(*.f64 (*.f64 b b) (fma.f64 4 a 12))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))))
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (*.f64 a (-.f64 1 a)))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 a a) (pow.f64 a 3))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (-.f64 a (*.f64 a a)))) (pow.f64 a 4))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))))
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (*.f64 a (-.f64 1 a)))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 a a) (pow.f64 a 3))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (-.f64 a (*.f64 a a)))) (pow.f64 a 4))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))))
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (*.f64 a (-.f64 1 a)))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 a a) (pow.f64 a 3))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (-.f64 a (*.f64 a a)))) (pow.f64 a 4))
(*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))
(fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a)))
(*.f64 b (*.f64 b (fma.f64 4 a 12)))
(*.f64 (*.f64 b b) (fma.f64 4 a 12))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))))
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (*.f64 a (-.f64 1 a)))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 a a) (pow.f64 a 3))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (-.f64 a (*.f64 a a)))) (pow.f64 a 4))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))))
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (*.f64 a (-.f64 1 a)))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 a a) (pow.f64 a 3))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (-.f64 a (*.f64 a a)))) (pow.f64 a 4))
(+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (*.f64 (pow.f64 a 2) (-.f64 1 a))) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))))
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 b b) (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a)))))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (*.f64 a (-.f64 1 a)))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 (*.f64 a a) (-.f64 1 a))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (-.f64 (*.f64 a a) (pow.f64 a 3))) (pow.f64 a 4))
(fma.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (-.f64 a (*.f64 a a)))) (pow.f64 a 4))

localize14.0ms (0.2%)

Local error

Found 8 expressions with local error:

NewErrorProgram
1.2b
(*.f64 (*.f64 b b) (+.f64 3 a))
0.1b
(*.f64 (*.f64 a a) (-.f64 1 a))
0.0b
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.0b
(+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))
0.0b
(+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))
0.0b
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.1b
(*.f64 (*.f64 a a) (-.f64 1 a))
1.2b
(*.f64 (*.f64 b b) (+.f64 3 a))

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
a
@0
(+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))
0.0ms
b
@0
(+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))
0.0ms
b
@inf
(+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))
0.0ms
a
@-inf
(+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))
0.0ms
a
@inf
(+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))

rewrite60.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
675×fma-def_binary64
293×fma-neg_binary64
233×expm1-udef_binary64
232×log1p-udef_binary64
139×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01220
127120
2387620
Stop Event
node limit
Counts
1 → 72
Calls
Call 1
Inputs
(+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 (pow.f64 (-.f64 1 a) 2) (pow.f64 a 4)) (-.f64 (*.f64 a (*.f64 a (-.f64 1 a))) (*.f64 b (*.f64 b (+.f64 a 3))))) (/.f64 (*.f64 (pow.f64 b 4) (pow.f64 (+.f64 a 3) 2)) (-.f64 (*.f64 a (*.f64 a (-.f64 1 a))) (*.f64 b (*.f64 b (+.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))) (cbrt.f64 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 2)) (cbrt.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 (*.f64 b (sqrt.f64 (+.f64 a 3))) (*.f64 a (sqrt.f64 (-.f64 1 a)))) (hypot.f64 (*.f64 b (sqrt.f64 (+.f64 a 3))) (*.f64 a (sqrt.f64 (-.f64 1 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 a (-.f64 1 a))) 3) (pow.f64 (*.f64 b (*.f64 b (+.f64 a 3))) 3)) (/.f64 1 (fma.f64 (*.f64 b (*.f64 b (+.f64 a 3))) (-.f64 (*.f64 b (*.f64 b (+.f64 a 3))) (*.f64 a (*.f64 a (-.f64 1 a)))) (*.f64 (pow.f64 (-.f64 1 a) 2) (pow.f64 a 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (pow.f64 (-.f64 1 a) 2) (pow.f64 a 4)) (*.f64 (pow.f64 b 4) (pow.f64 (+.f64 a 3) 2))) (/.f64 1 (-.f64 (*.f64 a (*.f64 a (-.f64 1 a))) (*.f64 b (*.f64 b (+.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (fma.f64 (*.f64 b (*.f64 b (+.f64 a 3))) (-.f64 (*.f64 b (*.f64 b (+.f64 a 3))) (*.f64 a (*.f64 a (-.f64 1 a)))) (*.f64 (pow.f64 (-.f64 1 a) 2) (pow.f64 a 4))) (+.f64 (pow.f64 (*.f64 a (*.f64 a (-.f64 1 a))) 3) (pow.f64 (*.f64 b (*.f64 b (+.f64 a 3))) 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 a (*.f64 a (-.f64 1 a))) (*.f64 b (*.f64 b (+.f64 a 3)))) (-.f64 (*.f64 (pow.f64 (-.f64 1 a) 2) (pow.f64 a 4)) (*.f64 (pow.f64 b 4) (pow.f64 (+.f64 a 3) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 a (-.f64 1 a))) 3) (pow.f64 (*.f64 b (*.f64 b (+.f64 a 3))) 3)) (fma.f64 (*.f64 b (*.f64 b (+.f64 a 3))) (-.f64 (*.f64 b (*.f64 b (+.f64 a 3))) (*.f64 a (*.f64 a (-.f64 1 a)))) (*.f64 (pow.f64 (-.f64 1 a) 2) (pow.f64 a 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 a (-.f64 1 a))) 3) (pow.f64 (*.f64 b (*.f64 b (+.f64 a 3))) 3)) (fma.f64 (pow.f64 b 4) (pow.f64 (+.f64 a 3) 2) (-.f64 (*.f64 (pow.f64 (-.f64 1 a) 2) (pow.f64 a 4)) (*.f64 (*.f64 a a) (*.f64 (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 a 3))))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 (-.f64 1 a) 2) (pow.f64 a 4)) (*.f64 (pow.f64 b 4) (pow.f64 (+.f64 a 3) 2))) (-.f64 (*.f64 a (*.f64 a (-.f64 1 a))) (*.f64 b (*.f64 b (+.f64 a 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 a (-.f64 1 a))) 3) (pow.f64 (*.f64 b (*.f64 b (+.f64 a 3))) 3))) (neg.f64 (fma.f64 (*.f64 b (*.f64 b (+.f64 a 3))) (-.f64 (*.f64 b (*.f64 b (+.f64 a 3))) (*.f64 a (*.f64 a (-.f64 1 a)))) (*.f64 (pow.f64 (-.f64 1 a) 2) (pow.f64 a 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (*.f64 (pow.f64 (-.f64 1 a) 2) (pow.f64 a 4)) (*.f64 (pow.f64 b 4) (pow.f64 (+.f64 a 3) 2)))) (neg.f64 (-.f64 (*.f64 a (*.f64 a (-.f64 1 a))) (*.f64 b (*.f64 b (+.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 b 4) (pow.f64 (+.f64 a 3) 2)) (*.f64 (pow.f64 (-.f64 1 a) 2) (pow.f64 a 4))) (-.f64 (*.f64 b (*.f64 b (+.f64 a 3))) (*.f64 a (*.f64 a (-.f64 1 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 (*.f64 b (sqrt.f64 (+.f64 a 3))) (*.f64 a (sqrt.f64 (-.f64 1 a)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a a) (-.f64 1 a) (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a (*.f64 a (-.f64 1 a))) (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 b (*.f64 b (+.f64 a 3))) (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 b (*.f64 b 3)) (fma.f64 a (*.f64 b b) (*.f64 a (*.f64 a (-.f64 1 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (-.f64 1 a) (*.f64 a a) (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (*.f64 a (-.f64 1 a))) 1 (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 b 3) (fma.f64 a (*.f64 b b) (*.f64 a (*.f64 a (-.f64 1 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b b) 3 (fma.f64 a (*.f64 b b) (*.f64 a (*.f64 a (-.f64 1 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 3 (*.f64 b b) (fma.f64 a (*.f64 b b) (*.f64 a (*.f64 a (-.f64 1 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 a 3) (*.f64 b b) (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (*.f64 b (+.f64 a 3))) 1 (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 b (*.f64 b (+.f64 a 3)))) (pow.f64 (cbrt.f64 (*.f64 b (*.f64 b (+.f64 a 3)))) 2) (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 b (*.f64 b (+.f64 a 3)))) 2) (cbrt.f64 (*.f64 b (*.f64 b (+.f64 a 3)))) (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 b) 2) (*.f64 (cbrt.f64 b) (*.f64 b (+.f64 a 3))) (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 b 4)) (*.f64 (pow.f64 (cbrt.f64 b) 2) (+.f64 a 3)) (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 b 4)) (*.f64 (pow.f64 (cbrt.f64 b) 2) 3) (fma.f64 a (*.f64 b b) (*.f64 a (*.f64 a (-.f64 1 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (-.f64 1 a)) 2) (*.f64 (cbrt.f64 (-.f64 1 a)) (*.f64 a a)) (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 a (*.f64 a (-.f64 1 a)))) (cbrt.f64 (*.f64 (pow.f64 (-.f64 1 a) 2) (pow.f64 a 4))) (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 (-.f64 1 a) 2) (pow.f64 a 4))) (cbrt.f64 (*.f64 a (*.f64 a (-.f64 1 a)))) (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) (*.f64 a (-.f64 1 a))) (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 a 4)) (*.f64 (pow.f64 (cbrt.f64 a) 2) (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (+.f64 a 3)) 2) (*.f64 (cbrt.f64 (+.f64 a 3)) (*.f64 b b)) (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (sqrt.f64 (+.f64 a 3))) (*.f64 b (sqrt.f64 (+.f64 a 3))) (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (-.f64 1 a)) (*.f64 (sqrt.f64 (-.f64 1 a)) (*.f64 a a)) (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) (*.f64 a (-.f64 1 a))) (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 (-.f64 1 a))) (*.f64 a (sqrt.f64 (-.f64 1 a))) (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (+.f64 a 3)) (*.f64 (sqrt.f64 (+.f64 a 3)) (*.f64 b b)) (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 b) (*.f64 (sqrt.f64 b) (*.f64 b (+.f64 a 3))) (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (-.f64 1 a)) a (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (+.f64 a 3)) b (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 b (*.f64 b 3))) (cbrt.f64 (*.f64 b (*.f64 b 3)))) (cbrt.f64 (*.f64 b (*.f64 b 3))) (fma.f64 a (*.f64 b b) (*.f64 a (*.f64 a (-.f64 1 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 b (*.f64 b 3))) (sqrt.f64 (*.f64 b (*.f64 b 3))) (fma.f64 a (*.f64 b b) (*.f64 a (*.f64 a (-.f64 1 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 b) b (fma.f64 a (*.f64 b b) (*.f64 a (*.f64 a (-.f64 1 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 b b) (pow.f64 (cbrt.f64 (+.f64 a 3)) 2)) (cbrt.f64 (+.f64 a 3)) (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 b b) (sqrt.f64 (+.f64 a 3))) (sqrt.f64 (+.f64 a 3)) (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (+.f64 a 3) (cbrt.f64 (pow.f64 b 4))) (pow.f64 (cbrt.f64 b) 2) (*.f64 a (*.f64 a (-.f64 1 a))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 3 (cbrt.f64 (pow.f64 b 4))) (pow.f64 (cbrt.f64 b) 2) (fma.f64 a (*.f64 b b) (*.f64 a (*.f64 a (-.f64 1 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a a) (pow.f64 (cbrt.f64 (-.f64 1 a)) 2)) (cbrt.f64 (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a a) (sqrt.f64 (-.f64 1 a))) (sqrt.f64 (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (-.f64 1 a) (cbrt.f64 (pow.f64 a 4))) (pow.f64 (cbrt.f64 a) 2) (*.f64 b (*.f64 b (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a (*.f64 a (-.f64 1 a)) (*.f64 b (*.f64 b (+.f64 a 3))))))))))

simplify65.0ms (1%)

Algorithm
egg-herbie
Rules
461×difference-of-squares_binary64
446×fma-neg_binary64
430×fma-def_binary64
348×cancel-sign-sub-inv_binary64
197×unswap-sqr_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
027427
177365
2200361
3613361
41936361
54322361
Stop Event
node limit
Counts
96 → 90
Calls
Call 1
Inputs
(*.f64 3 (pow.f64 b 2))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))))
(*.f64 -1 (pow.f64 a 3))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3))))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3)))))
(*.f64 -1 (pow.f64 a 3))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3))))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3)))))
(*.f64 (pow.f64 a 2) (-.f64 1 a))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
Outputs
(*.f64 3 (pow.f64 b 2))
(*.f64 3 (*.f64 b b))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (pow.f64 a 2)))
(+.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (*.f64 a a))
(fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 a a))
(fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a a))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (*.f64 a (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))))
(+.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3))))
(fma.f64 (*.f64 b b) (+.f64 3 a) (fma.f64 a a (neg.f64 (pow.f64 a 3))))
(fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a))))
(-.f64 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 b (*.f64 b (+.f64 3 a)) (-.f64 (*.f64 a a) (pow.f64 a 3)))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 a a)) (pow.f64 a 3))
(*.f64 -1 (pow.f64 a 3))
(neg.f64 (pow.f64 a 3))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3)))
(fma.f64 a a (neg.f64 (pow.f64 a 3)))
(*.f64 a (-.f64 a (*.f64 a a)))
(-.f64 (*.f64 a a) (pow.f64 a 3))
(*.f64 a (*.f64 a (-.f64 1 a)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3))))
(+.f64 (*.f64 a a) (fma.f64 a (*.f64 b b) (neg.f64 (pow.f64 a 3))))
(-.f64 (*.f64 a (+.f64 (*.f64 b b) a)) (pow.f64 a 3))
(-.f64 (*.f64 a (fma.f64 b b a)) (pow.f64 a 3))
(fma.f64 a (fma.f64 b b a) (neg.f64 (pow.f64 a 3)))
(*.f64 a (fma.f64 b b (*.f64 a (-.f64 1 a))))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3)))))
(+.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3))))
(fma.f64 (*.f64 b b) (+.f64 3 a) (fma.f64 a a (neg.f64 (pow.f64 a 3))))
(fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a))))
(-.f64 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 b (*.f64 b (+.f64 3 a)) (-.f64 (*.f64 a a) (pow.f64 a 3)))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 a a)) (pow.f64 a 3))
(*.f64 -1 (pow.f64 a 3))
(neg.f64 (pow.f64 a 3))
(+.f64 (pow.f64 a 2) (*.f64 -1 (pow.f64 a 3)))
(+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3)))
(fma.f64 a a (neg.f64 (pow.f64 a 3)))
(*.f64 a (-.f64 a (*.f64 a a)))
(-.f64 (*.f64 a a) (pow.f64 a 3))
(*.f64 a (*.f64 a (-.f64 1 a)))
(+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3))))
(+.f64 (*.f64 a a) (fma.f64 a (*.f64 b b) (neg.f64 (pow.f64 a 3))))
(-.f64 (*.f64 a (+.f64 (*.f64 b b) a)) (pow.f64 a 3))
(-.f64 (*.f64 a (fma.f64 b b a)) (pow.f64 a 3))
(fma.f64 a (fma.f64 b b a) (neg.f64 (pow.f64 a 3)))
(*.f64 a (fma.f64 b b (*.f64 a (-.f64 1 a))))
(+.f64 (*.f64 3 (pow.f64 b 2)) (+.f64 (pow.f64 a 2) (+.f64 (*.f64 a (pow.f64 b 2)) (*.f64 -1 (pow.f64 a 3)))))
(+.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3))))
(fma.f64 (*.f64 b b) (+.f64 3 a) (fma.f64 a a (neg.f64 (pow.f64 a 3))))
(fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a))))
(-.f64 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 b (*.f64 b (+.f64 3 a)) (-.f64 (*.f64 a a) (pow.f64 a 3)))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 a a)) (pow.f64 a 3))
(*.f64 (pow.f64 a 2) (-.f64 1 a))
(+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3)))
(fma.f64 a a (neg.f64 (pow.f64 a 3)))
(*.f64 a (-.f64 a (*.f64 a a)))
(-.f64 (*.f64 a a) (pow.f64 a 3))
(*.f64 a (*.f64 a (-.f64 1 a)))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3))))
(fma.f64 (*.f64 b b) (+.f64 3 a) (fma.f64 a a (neg.f64 (pow.f64 a 3))))
(fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a))))
(-.f64 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 b (*.f64 b (+.f64 3 a)) (-.f64 (*.f64 a a) (pow.f64 a 3)))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 a a)) (pow.f64 a 3))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3))))
(fma.f64 (*.f64 b b) (+.f64 3 a) (fma.f64 a a (neg.f64 (pow.f64 a 3))))
(fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a))))
(-.f64 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 b (*.f64 b (+.f64 3 a)) (-.f64 (*.f64 a a) (pow.f64 a 3)))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 a a)) (pow.f64 a 3))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3))))
(fma.f64 (*.f64 b b) (+.f64 3 a) (fma.f64 a a (neg.f64 (pow.f64 a 3))))
(fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a))))
(-.f64 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 b (*.f64 b (+.f64 3 a)) (-.f64 (*.f64 a a) (pow.f64 a 3)))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 a a)) (pow.f64 a 3))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3))))
(fma.f64 (*.f64 b b) (+.f64 3 a) (fma.f64 a a (neg.f64 (pow.f64 a 3))))
(fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a))))
(-.f64 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 b (*.f64 b (+.f64 3 a)) (-.f64 (*.f64 a a) (pow.f64 a 3)))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 a a)) (pow.f64 a 3))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3))))
(fma.f64 (*.f64 b b) (+.f64 3 a) (fma.f64 a a (neg.f64 (pow.f64 a 3))))
(fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a))))
(-.f64 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 b (*.f64 b (+.f64 3 a)) (-.f64 (*.f64 a a) (pow.f64 a 3)))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 a a)) (pow.f64 a 3))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3))))
(fma.f64 (*.f64 b b) (+.f64 3 a) (fma.f64 a a (neg.f64 (pow.f64 a 3))))
(fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a))))
(-.f64 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 b (*.f64 b (+.f64 3 a)) (-.f64 (*.f64 a a) (pow.f64 a 3)))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 a a)) (pow.f64 a 3))
(*.f64 (pow.f64 b 2) (+.f64 3 a))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 3 a)))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3))))
(fma.f64 (*.f64 b b) (+.f64 3 a) (fma.f64 a a (neg.f64 (pow.f64 a 3))))
(fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a))))
(-.f64 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 b (*.f64 b (+.f64 3 a)) (-.f64 (*.f64 a a) (pow.f64 a 3)))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 a a)) (pow.f64 a 3))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3))))
(fma.f64 (*.f64 b b) (+.f64 3 a) (fma.f64 a a (neg.f64 (pow.f64 a 3))))
(fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a))))
(-.f64 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 b (*.f64 b (+.f64 3 a)) (-.f64 (*.f64 a a) (pow.f64 a 3)))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 a a)) (pow.f64 a 3))
(+.f64 (*.f64 (pow.f64 b 2) (+.f64 3 a)) (*.f64 (pow.f64 a 2) (-.f64 1 a)))
(+.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (+.f64 (*.f64 a a) (neg.f64 (pow.f64 a 3))))
(fma.f64 (*.f64 b b) (+.f64 3 a) (fma.f64 a a (neg.f64 (pow.f64 a 3))))
(fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a (-.f64 a (*.f64 a a))))
(-.f64 (fma.f64 b (*.f64 b (+.f64 3 a)) (*.f64 a a)) (pow.f64 a 3))
(fma.f64 b (*.f64 b (+.f64 3 a)) (-.f64 (*.f64 a a) (pow.f64 a 3)))
(-.f64 (fma.f64 (*.f64 b b) (+.f64 3 a) (*.f64 a a)) (pow.f64 a 3))

localize17.0ms (0.3%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.0b
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.0b
(+.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
0.0b
(*.f64 2 (*.f64 a a))
0.0b
(+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))
0.0b
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.1b
(*.f64 (*.f64 a a) (-.f64 1 a))
0.5b
(fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))
1.2b
(*.f64 (*.f64 b b) (+.f64 3 a))

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
a
@0
(fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))
1.0ms
b
@0
(fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))
1.0ms
a
@inf
(fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))
1.0ms
a
@-inf
(fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))
0.0ms
b
@inf
(fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))

rewrite40.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
814×pow1_binary64
749×log1p-expm1-u_binary64
749×expm1-log1p-u_binary64
94×add-sqr-sqrt_binary64
92×*-un-lft-identity_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01017
120217
2219417
Stop Event
node limit
Counts
1 → 23
Calls
Call 1
Inputs
(fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 a 4) (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (pow.f64 a 4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) 1) (pow.f64 a 4))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))) 2) (cbrt.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))) (sqrt.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) 3) (pow.f64 (pow.f64 a 4) 3)) (+.f64 (*.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))) (-.f64 (pow.f64 a 8) (*.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (pow.f64 a 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))) (pow.f64 a 8)) (-.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (pow.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4))))))))

simplify99.0ms (1.5%)

Algorithm
egg-herbie
Rules
703×sqr-pow_binary64
318×*-commutative_binary64
300×unswap-sqr_binary64
288×cube-prod_binary64
282×fma-def_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
011357
127357
267357
3218357
4957357
51795357
62049357
72177357
82355357
92537357
102770357
113053357
123386357
133808357
144320357
154925357
Stop Event
node limit
Counts
47 → 28
Calls
Call 1
Inputs
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
Outputs
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 a (*.f64 (*.f64 a (*.f64 b b)) 2))
(*.f64 a (*.f64 b (*.f64 a (*.f64 2 b))))
(*.f64 b (*.f64 a (*.f64 a (*.f64 2 b))))
(*.f64 a (*.f64 a (*.f64 2 (*.f64 b b))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 a (*.f64 (*.f64 a (*.f64 b b)) 2))
(*.f64 a (*.f64 b (*.f64 a (*.f64 2 b))))
(*.f64 b (*.f64 a (*.f64 a (*.f64 2 b))))
(*.f64 a (*.f64 a (*.f64 2 (*.f64 b b))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 a (*.f64 (*.f64 a (*.f64 b b)) 2))
(*.f64 a (*.f64 b (*.f64 a (*.f64 2 b))))
(*.f64 b (*.f64 a (*.f64 a (*.f64 2 b))))
(*.f64 a (*.f64 a (*.f64 2 (*.f64 b b))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(pow.f64 a 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 a 4))
(fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 2 (*.f64 b b) (*.f64 a a)))
(*.f64 a (fma.f64 a (*.f64 2 (*.f64 b b)) (pow.f64 a 3)))
(fma.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)) (pow.f64 a 4))

eval558.0ms (8.2%)

Compiler

Compiled 20577 to 13147 computations (36.1% saved)

prune184.0ms (2.7%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New6919700
Fresh101
Picked101
Done314
Total69610706
Error
0b
Counts
706 → 10
Alt Table
Click to see full alt table
StatusErrorProgram
10.8b
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12))) 1)
10.2b
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 a -4)) 1)
9.5b
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
19.0b
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
11.0b
(-.f64 (*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))) 1)
19.5b
(-.f64 (*.f64 12 (*.f64 b b)) 1)
8.8b
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
10.4b
(-.f64 (pow.f64 a 4) 1)
11.1b
(-.f64 (pow.f64 b 4) 1)
1.1b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 12))) 1)
Compiler

Compiled 307 to 215 computations (30% saved)

localize31.0ms (0.5%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
0.0b
(*.f64 2 (*.f64 a a))
0.0b
(+.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (pow.f64 a 4))
0.0b
(+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))
0.0b
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.1b
(*.f64 (*.f64 a a) (-.f64 1 a))
1.2b
(*.f64 (*.f64 b b) (+.f64 3 a))
2.4b
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
b
@0
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
1.0ms
a
@0
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
1.0ms
a
@inf
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
1.0ms
b
@inf
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
0.0ms
a
@-inf
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))

rewrite50.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
721×pow1_binary64
662×add-log-exp_binary64
662×log1p-expm1-u_binary64
662×expm1-log1p-u_binary64
81×associate-*r*_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0813
116312
2190912
Stop Event
node limit
Counts
1 → 14
Calls
Call 1
Inputs
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 b (*.f64 a (sqrt.f64 2))) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (*.f64 a (sqrt.f64 2))) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 b (*.f64 a (sqrt.f64 2))) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (*.f64 b (*.f64 a (sqrt.f64 2))) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 a (sqrt.f64 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 b 4) (*.f64 (pow.f64 a 4) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b (*.f64 a (sqrt.f64 2))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 b (*.f64 a (sqrt.f64 2))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b (*.f64 a (sqrt.f64 2))) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 b b) 3) (pow.f64 (*.f64 2 (*.f64 a a)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 2 (*.f64 a a)) 3) (pow.f64 (*.f64 b b) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b (*.f64 a (sqrt.f64 2))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 b (*.f64 a (sqrt.f64 2))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b (*.f64 a (sqrt.f64 2))) 2)))))))

simplify90.0ms (1.3%)

Algorithm
egg-herbie
Rules
744×unswap-sqr_binary64
577×sqr-pow_binary64
283×*-commutative_binary64
274×fabs-mul_binary64
248×cube-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08312
120312
252312
3172312
4813312
51388312
61454312
71554312
81674312
91796312
101943312
113091312
123320312
133618312
143949312
154364312
164980312
Stop Event
node limit
Counts
38 → 16
Calls
Call 1
Inputs
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
Outputs
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 (*.f64 a a) (*.f64 (*.f64 b b) 2))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 12 (*.f64 b b))
0.2b
(*.f64 12 (*.f64 b b))

series1.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
0.0ms
b
@0
(*.f64 12 (*.f64 b b))
0.0ms
b
@inf
(*.f64 12 (*.f64 b b))
0.0ms
b
@-inf
(*.f64 12 (*.f64 b b))

rewrite29.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
432×pow1_binary64
402×add-log-exp_binary64
402×log1p-expm1-u_binary64
402×expm1-log1p-u_binary64
393×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify68.0ms (1%)

Algorithm
egg-herbie
Rules
605×sqr-pow_binary64
445×associate-*l*_binary64
434×unswap-sqr_binary64
281×cube-prod_binary64
271×fabs-mul_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0684
11284
22384
34484
410784
533684
6123784
7211384
8227684
9246084
10266884
11295984
12335084
13383084
14439184
Stop Event
node limit
Counts
23 → 13
Calls
Call 1
Inputs
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (pow.f64 b 2))
Outputs
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))

localize15.0ms (0.2%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.0b
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.0b
(*.f64 2 (*.f64 b b))
0.0b
(+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
0.0b
(+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))
0.1b
(*.f64 (*.f64 a a) (-.f64 1 a))
0.7b
(*.f64 a (*.f64 a (*.f64 2 (*.f64 b b))))
1.2b
(*.f64 a (*.f64 2 (*.f64 b b)))
1.2b
(*.f64 (*.f64 b b) (+.f64 3 a))

series5.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
a
@0
(*.f64 a (*.f64 2 (*.f64 b b)))
1.0ms
b
@0
(*.f64 a (*.f64 2 (*.f64 b b)))
1.0ms
a
@inf
(*.f64 a (*.f64 2 (*.f64 b b)))
0.0ms
b
@inf
(*.f64 a (*.f64 2 (*.f64 b b)))
0.0ms
a
@-inf
(*.f64 a (*.f64 2 (*.f64 b b)))

rewrite54.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
744×pow1_binary64
683×log1p-expm1-u_binary64
683×expm1-log1p-u_binary64
93×associate-*r*_binary64
80×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0823
116322
2192922
Stop Event
node limit
Counts
2 → 30
Calls
Call 1
Inputs
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 a (*.f64 2 (*.f64 b b))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 2 (*.f64 (*.f64 b b) a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (*.f64 (*.f64 b b) a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 2 (*.f64 (*.f64 b b) a)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 2 (*.f64 (*.f64 b b) a))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (*.f64 a 2)) b) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 a a) (*.f64 (pow.f64 b 4) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a) (*.f64 2 (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 2 (*.f64 (*.f64 b b) a)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 2 (*.f64 (*.f64 b b) a)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (*.f64 2 (*.f64 b b)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 2 (*.f64 b b)) 3) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 2 (*.f64 (*.f64 b b) a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 2 (*.f64 (*.f64 b b) a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 2 (*.f64 (*.f64 b b) a))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 2 (*.f64 (*.f64 b b) a))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (*.f64 a (*.f64 b (sqrt.f64 2))) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (*.f64 b (sqrt.f64 2))) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 a (*.f64 b (sqrt.f64 2))) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (*.f64 a (*.f64 b (sqrt.f64 2))) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 b (sqrt.f64 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (*.f64 a (*.f64 b (sqrt.f64 2))) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 a (*.f64 b (sqrt.f64 2))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (*.f64 a (*.f64 b (sqrt.f64 2))) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 a (*.f64 b (sqrt.f64 2))) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a 3) (pow.f64 (*.f64 2 (*.f64 (*.f64 b b) a)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 2 (*.f64 (*.f64 b b) a)) 3) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 a (*.f64 b (sqrt.f64 2))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 a (*.f64 b (sqrt.f64 2))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 a (*.f64 b (sqrt.f64 2))) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 a (*.f64 b (sqrt.f64 2))) 2)))))))

simplify186.0ms (2.7%)

Algorithm
egg-herbie
Rules
1252×unswap-sqr_binary64
764×sqr-pow_binary64
313×*-commutative_binary64
276×associate-*l*_binary64
257×pow-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010552
126552
264552
3196552
4947552
51617552
61683552
71783552
81903552
92025552
102172552
112336552
122525552
132738552
142968552
153212552
163477552
173756552
184056552
194370552
204440552
Stop Event
node limit
Counts
78 → 34
Calls
Call 1
Inputs
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
Outputs
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 a (pow.f64 b 2)))
(*.f64 2 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 2 (*.f64 b b)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(*.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 b (*.f64 b (*.f64 2 (*.f64 a a))))

localize3.0ms (0%)

localize6.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 b (*.f64 b 12))
0.0b
(+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12)))
0.0b
(+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12)))
0.1b
(*.f64 b (*.f64 b 12))

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
b
@inf
(+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12)))
0.0ms
b
@0
(+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12)))
0.0ms
b
@-inf
(+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12)))

rewrite82.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
810×log1p-expm1-u_binary64
810×expm1-log1p-u_binary64
86×add-sqr-sqrt_binary64
84×add-log-exp_binary64
83×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0813
117811
2226611
Stop Event
node limit
Counts
1 → 38
Calls
Call 1
Inputs
(+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 b 8) (-.f64 (pow.f64 b 4) (*.f64 12 (*.f64 b b)))) (/.f64 (*.f64 (pow.f64 b 4) 144) (-.f64 (pow.f64 b 4) (*.f64 12 (*.f64 b b)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (fma.f64 b (*.f64 b 12) (pow.f64 b 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4))) (pow.f64 (cbrt.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4))) 2) (cbrt.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 (*.f64 b (sqrt.f64 12)) (*.f64 b b)) (hypot.f64 (*.f64 b (sqrt.f64 12)) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 b 12) (*.f64 (pow.f64 (*.f64 b b) 3) 1728)) (/.f64 1 (-.f64 (+.f64 (pow.f64 b 8) (*.f64 (pow.f64 b 4) 144)) (*.f64 (pow.f64 b 4) (*.f64 12 (*.f64 b b))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 b 8) (*.f64 (pow.f64 b 4) 144)) (/.f64 1 (-.f64 (pow.f64 b 4) (*.f64 12 (*.f64 b b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (+.f64 (pow.f64 b 8) (*.f64 (pow.f64 b 4) 144)) (*.f64 (pow.f64 b 4) (*.f64 12 (*.f64 b b)))) (+.f64 (pow.f64 b 12) (*.f64 (pow.f64 (*.f64 b b) 3) 1728))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (pow.f64 b 4) (*.f64 12 (*.f64 b b))) (-.f64 (pow.f64 b 8) (*.f64 (pow.f64 b 4) 144))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 b 12) (*.f64 (pow.f64 (*.f64 b b) 3) 1728)) (-.f64 (+.f64 (pow.f64 b 8) (*.f64 (pow.f64 b 4) 144)) (*.f64 (pow.f64 b 4) (*.f64 12 (*.f64 b b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 b 12) (*.f64 (pow.f64 (*.f64 b b) 3) 1728)) (+.f64 (*.f64 (pow.f64 b 4) 144) (-.f64 (pow.f64 b 8) (*.f64 (pow.f64 b 4) (*.f64 12 (*.f64 b b))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 b 8) (*.f64 (pow.f64 b 4) 144)) (-.f64 (pow.f64 b 4) (*.f64 12 (*.f64 b b))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 b 12) (*.f64 (pow.f64 (*.f64 b b) 3) 1728))) (neg.f64 (-.f64 (+.f64 (pow.f64 b 8) (*.f64 (pow.f64 b 4) 144)) (*.f64 (pow.f64 b 4) (*.f64 12 (*.f64 b b))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 b 8) (*.f64 (pow.f64 b 4) 144))) (neg.f64 (-.f64 (pow.f64 b 4) (*.f64 12 (*.f64 b b)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (pow.f64 b 4) 144) (pow.f64 b 8)) (-.f64 (*.f64 12 (*.f64 b b)) (pow.f64 b 4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 (*.f64 b (sqrt.f64 12)) (*.f64 b b)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 b 12) (pow.f64 b 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b 12) b (pow.f64 b 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (pow.f64 b 4) (*.f64 12 (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 12 (*.f64 b b)) (pow.f64 b 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 b 4) 144)) (cbrt.f64 (*.f64 12 (*.f64 b b))) (pow.f64 b 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 b 8)) (cbrt.f64 (pow.f64 b 4)) (*.f64 12 (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (sqrt.f64 12)) (*.f64 b (sqrt.f64 12)) (pow.f64 b 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b b) 12 (pow.f64 b 4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b b) (*.f64 b b) (*.f64 12 (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 b (*.f64 b 12) (pow.f64 b 4))))))))

simplify65.0ms (1%)

Algorithm
egg-herbie
Rules
615×sqr-pow_binary64
390×fma-def_binary64
342×unswap-sqr_binary64
288×cube-prod_binary64
246×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09114
119114
241114
397114
4271114
5922114
61856114
72150114
82335114
92536114
102810114
113170114
123623114
134152114
144784114
Stop Event
node limit
Counts
50 → 43
Calls
Call 1
Inputs
(*.f64 12 (pow.f64 b 2))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(pow.f64 b 4)
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(pow.f64 b 4)
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
Outputs
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(pow.f64 b 4)
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(pow.f64 b 4)
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))

eval191.0ms (2.8%)

Compiler

Compiled 8911 to 5441 computations (38.9% saved)

prune84.0ms (1.2%)

Pruning

17 alts after pruning (13 fresh and 4 done)

PrunedKeptTotal
New2819290
Fresh044
Picked011
Done235
Total28317300
Error
0b
Counts
300 → 17
Alt Table
Click to see full alt table
StatusErrorProgram
19.0b
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (+.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a)))))) 1)
19.5b
(-.f64 (*.f64 12 (*.f64 b b)) 1)
10.8b
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12))) 1)
10.2b
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 a -4)) 1)
42.9b
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))))) 1)
10.4b
(-.f64 (pow.f64 a 4) 1)
11.1b
(-.f64 (pow.f64 b 4) 1)
19.0b
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 2 (*.f64 a a)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
19.0b
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 b (*.f64 b 3))))) 1)
1.1b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 12))) 1)
10.8b
(-.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 1)
11.0b
(-.f64 (*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))) 1)
18.8b
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
9.5b
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
42.9b
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 3 (*.f64 b b)) (*.f64 3 (*.f64 b b))) (*.f64 (*.f64 a (*.f64 b b)) (*.f64 a (*.f64 b b)))) (-.f64 (*.f64 3 (*.f64 b b)) (*.f64 a (*.f64 b b))))))) 1)
9.8b
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (pow.f64 a 4)) (*.f64 b (*.f64 b 12))) 1)
19.0b
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (*.f64 (*.f64 b b) (-.f64 9 (*.f64 a a))) (-.f64 3 a))))) 1)
Compiler

Compiled 770 to 486 computations (36.9% saved)

localize7.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4))))
0.0b
(*.f64 a (+.f64 a -4))
0.0b
(*.f64 a (+.f64 a -4))
0.1b
(*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4))))

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
a
@0
(*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4))))
0.0ms
a
@inf
(*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4))))
0.0ms
a
@-inf
(*.f64 a (+.f64 a -4))
0.0ms
a
@inf
(*.f64 a (+.f64 a -4))
0.0ms
a
@-inf
(*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4))))

rewrite81.0ms (1.2%)

Algorithm
batch-egg-rewrite
Rules
429×fma-def_binary64
417×prod-diff_binary64
178×expm1-udef_binary64
178×log1p-udef_binary64
163×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0923
121221
2293921
Stop Event
node limit
Counts
2 → 106
Calls
Call 1
Inputs
(*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4))))
(*.f64 a (+.f64 a -4))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a (*.f64 a 4)) (*.f64 (+.f64 a -4) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (+.f64 a -4) (pow.f64 a 3)) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a (*.f64 a 4)) 1) (*.f64 (*.f64 (+.f64 a -4) (pow.f64 a 3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 a (*.f64 a (fma.f64 a (+.f64 a -4) 4))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a (*.f64 a 4)) 3) (pow.f64 (*.f64 (+.f64 a -4) (pow.f64 a 3)) 3)) (fma.f64 (*.f64 a (*.f64 a 4)) (*.f64 a (*.f64 a 4)) (-.f64 (*.f64 (*.f64 (+.f64 a -4) (pow.f64 a 3)) (*.f64 (+.f64 a -4) (pow.f64 a 3))) (*.f64 (*.f64 a (*.f64 a 4)) (*.f64 (+.f64 a -4) (pow.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 a (*.f64 a 4)) (*.f64 a (*.f64 a 4))) (*.f64 (*.f64 (+.f64 a -4) (pow.f64 a 3)) (*.f64 (+.f64 a -4) (pow.f64 a 3)))) (-.f64 (*.f64 a (*.f64 a 4)) (*.f64 (+.f64 a -4) (pow.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 64 (pow.f64 (*.f64 a (+.f64 a -4)) 3)) (*.f64 a a)) (fma.f64 (*.f64 a (+.f64 a -4)) (fma.f64 a (+.f64 a -4) -4) 16))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 16 (pow.f64 (*.f64 a (+.f64 a -4)) 2)) (*.f64 a a)) (-.f64 4 (*.f64 a (+.f64 a -4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 a a) (+.f64 64 (pow.f64 (*.f64 a (+.f64 a -4)) 3))) (fma.f64 (*.f64 a (+.f64 a -4)) (fma.f64 a (+.f64 a -4) -4) 16))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 a a) (-.f64 16 (pow.f64 (*.f64 a (+.f64 a -4)) 2))) (-.f64 4 (*.f64 a (+.f64 a -4))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (*.f64 a (fma.f64 a (+.f64 a -4) 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (*.f64 a (fma.f64 a (+.f64 a -4) 4))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (*.f64 a (fma.f64 a (+.f64 a -4) 4)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (sqrt.f64 (fma.f64 a (+.f64 a -4) 4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (fma.f64 a (+.f64 a -4) 4) 2) (pow.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 a (+.f64 a -4) 4)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 a (*.f64 a (fma.f64 a (+.f64 a -4) 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (+.f64 a -4) (pow.f64 a 3))) (exp.f64 (*.f64 a (*.f64 a 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (*.f64 a (fma.f64 a (+.f64 a -4) 4))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 a a) 3) (pow.f64 (fma.f64 a (+.f64 a -4) 4) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 a (+.f64 a -4) 4) 3) (pow.f64 (*.f64 a a) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (*.f64 a (fma.f64 a (+.f64 a -4) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (*.f64 a (fma.f64 a (+.f64 a -4) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 a (*.f64 a (fma.f64 a (+.f64 a -4) 4)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 a 4) (*.f64 (+.f64 a -4) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 a (*.f64 a (+.f64 a -4))) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 (+.f64 a -4) (*.f64 a a)) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a a) 4 (*.f64 (+.f64 a -4) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a a) (*.f64 a (+.f64 a -4)) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 4 (*.f64 a a) (*.f64 (+.f64 a -4) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 a -4) (pow.f64 a 3) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (+.f64 a -4)) (*.f64 a a) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a (*.f64 a 4)) (*.f64 (+.f64 a -4) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (+.f64 a -4) (pow.f64 a 3)) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 a 4)) (*.f64 (pow.f64 (cbrt.f64 a) 2) 4) (*.f64 (+.f64 a -4) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 a 4)) (*.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 a (+.f64 a -4))) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a (+.f64 a -4))) 2) (*.f64 (cbrt.f64 (*.f64 a (+.f64 a -4))) (*.f64 a a)) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (hypot.f64 a (sqrt.f64 (*.f64 a -4))) (*.f64 (hypot.f64 a (sqrt.f64 (*.f64 a -4))) (*.f64 a a)) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 a 3) (+.f64 a -4) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (*.f64 a 4)) 1 (*.f64 (*.f64 (+.f64 a -4) (pow.f64 a 3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 (+.f64 a -4) (pow.f64 a 3))) (cbrt.f64 (*.f64 (+.f64 a -4) (pow.f64 a 3)))) (cbrt.f64 (*.f64 (+.f64 a -4) (pow.f64 a 3))) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 a (*.f64 a 4))) (cbrt.f64 (*.f64 a (*.f64 a 4)))) (cbrt.f64 (*.f64 a (*.f64 a 4))) (*.f64 (+.f64 a -4) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (+.f64 a -4) (pow.f64 a 3))) (sqrt.f64 (*.f64 (+.f64 a -4) (pow.f64 a 3))) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a (*.f64 a 4))) (sqrt.f64 (*.f64 a (*.f64 a 4))) (*.f64 (+.f64 a -4) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (hypot.f64 a (sqrt.f64 (*.f64 a -4)))) (*.f64 a (hypot.f64 a (sqrt.f64 (*.f64 a -4)))) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (hypot.f64 a (sqrt.f64 (*.f64 a -4))) a) (*.f64 (hypot.f64 a (sqrt.f64 (*.f64 a -4))) a) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 4 a) a (*.f64 (+.f64 a -4) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a (+.f64 a -4)) a) a (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a a) (+.f64 a -4)) a (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a a) (pow.f64 (cbrt.f64 (*.f64 a (+.f64 a -4))) 2)) (cbrt.f64 (*.f64 a (+.f64 a -4))) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a a) (hypot.f64 a (sqrt.f64 (*.f64 a -4)))) (hypot.f64 a (sqrt.f64 (*.f64 a -4))) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 4 (cbrt.f64 (pow.f64 a 4))) (pow.f64 (cbrt.f64 a) 2) (*.f64 (+.f64 a -4) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a (+.f64 a -4)) (cbrt.f64 (pow.f64 a 4))) (pow.f64 (cbrt.f64 a) 2) (*.f64 a (*.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (*.f64 a (fma.f64 a (+.f64 a -4) 4)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a a) (*.f64 a -4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a a) (*.f64 (*.f64 a -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a -4) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 a (+.f64 a -4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a a) 3) (pow.f64 (*.f64 a -4) 3)) (+.f64 (pow.f64 a 4) (-.f64 (*.f64 (*.f64 a -4) (*.f64 a -4)) (*.f64 (*.f64 a a) (*.f64 a -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 a 4) (*.f64 (*.f64 a -4) (*.f64 a -4))) (-.f64 (*.f64 a a) (*.f64 a -4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 -64 (pow.f64 a 3)) a) (-.f64 (fma.f64 a a 16) (*.f64 a -4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 a a -16) a) (+.f64 a 4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (+.f64 -64 (pow.f64 a 3))) (-.f64 (fma.f64 a a 16) (*.f64 a -4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a (fma.f64 a a -16)) (+.f64 a 4))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (+.f64 a -4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a (+.f64 a -4))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 a (sqrt.f64 (*.f64 a -4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a (+.f64 a -4)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a (+.f64 a -4)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a) (+.f64 a -4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 a (+.f64 a -4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a a))) (exp.f64 (*.f64 a -4))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 a -4)) (pow.f64 (exp.f64 a) a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 a -4)) (+.f64 1 (expm1.f64 (*.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a (+.f64 a -4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a (+.f64 a -4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a (+.f64 a -4))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 a (+.f64 a -4))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a a (*.f64 a -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a a (*.f64 (*.f64 a -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a -4 (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a a) 1 (*.f64 a -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a a) 1 (*.f64 (*.f64 a -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 -4 a (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a a) (*.f64 a -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a a) (*.f64 (*.f64 a -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a -4) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (cbrt.f64 (pow.f64 a 4)) (*.f64 a -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (cbrt.f64 (pow.f64 a 4)) (*.f64 (*.f64 a -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) -4) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) a) (*.f64 a -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a) 2) (*.f64 (cbrt.f64 a) a) (*.f64 (*.f64 a -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 a 4)) (pow.f64 (cbrt.f64 a) 2) (*.f64 a -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 a 4)) (pow.f64 (cbrt.f64 a) 2) (*.f64 (*.f64 a -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) -4) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) a) (*.f64 a -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a) (*.f64 (sqrt.f64 a) a) (*.f64 (*.f64 a -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (sqrt.f64 a)) (sqrt.f64 a) (*.f64 (*.f64 a -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 a -4)) (cbrt.f64 (*.f64 a -4))) (cbrt.f64 (*.f64 a -4)) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a -4)) (sqrt.f64 (*.f64 a -4)) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -4 (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 -4 (sqrt.f64 a)) (sqrt.f64 a) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 a -4))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a) (*.f64 (*.f64 a -4) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a (+.f64 a -4))))))))

simplify52.0ms (0.8%)

Algorithm
egg-herbie
Rules
664×associate-*r*_binary64
466×fma-def_binary64
452×associate-+l+_binary64
240×distribute-rgt-in_binary64
235×distribute-lft-out_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
016243
142234
291225
3267211
4790205
52724205
62922205
73179205
84024205
Stop Event
node limit
Counts
130 → 121
Calls
Call 1
Inputs
(*.f64 4 (pow.f64 a 2))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(pow.f64 a 4)
(+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(pow.f64 a 4)
(+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(*.f64 -4 a)
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(pow.f64 a 2)
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(pow.f64 a 2)
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
Outputs
(*.f64 4 (pow.f64 a 2))
(*.f64 4 (*.f64 a a))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 -4 (pow.f64 a 3)))
(fma.f64 4 (*.f64 a a) (*.f64 -4 (pow.f64 a 3)))
(*.f64 (*.f64 a a) (+.f64 4 (*.f64 a -4)))
(*.f64 (*.f64 a a) (fma.f64 a -4 4))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (*.f64 (pow.f64 a 3) (+.f64 a -4)))
(fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 a (+.f64 a -4) 4))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (*.f64 (pow.f64 a 3) (+.f64 a -4)))
(fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 a (+.f64 a -4) 4))
(pow.f64 a 4)
(+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4))
(fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4))
(*.f64 (pow.f64 a 3) (+.f64 a -4))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (*.f64 (pow.f64 a 3) (+.f64 a -4)))
(fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 a (+.f64 a -4) 4))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (*.f64 (pow.f64 a 3) (+.f64 a -4)))
(fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 a (+.f64 a -4) 4))
(pow.f64 a 4)
(+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4))
(fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4))
(*.f64 (pow.f64 a 3) (+.f64 a -4))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (*.f64 (pow.f64 a 3) (+.f64 a -4)))
(fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 a (+.f64 a -4) 4))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -4 (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (fma.f64 -4 (pow.f64 a 3) (pow.f64 a 4)))
(fma.f64 4 (*.f64 a a) (*.f64 (pow.f64 a 3) (+.f64 a -4)))
(fma.f64 a (*.f64 a (fma.f64 a -4 4)) (pow.f64 a 4))
(*.f64 (*.f64 a a) (fma.f64 a (+.f64 a -4) 4))
(*.f64 -4 a)
(*.f64 a -4)
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(fma.f64 -4 a (*.f64 a a))
(*.f64 a (+.f64 a -4))
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(fma.f64 -4 a (*.f64 a a))
(*.f64 a (+.f64 a -4))
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(fma.f64 -4 a (*.f64 a a))
(*.f64 a (+.f64 a -4))
(pow.f64 a 2)
(*.f64 a a)
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(fma.f64 -4 a (*.f64 a a))
(*.f64 a (+.f64 a -4))
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(fma.f64 -4 a (*.f64 a a))
(*.f64 a (+.f64 a -4))
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(fma.f64 -4 a (*.f64 a a))
(*.f64 a (+.f64 a -4))
(pow.f64 a 2)
(*.f64 a a)
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(fma.f64 -4 a (*.f64 a a))
(*.f64 a (+.f64 a -4))
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(fma.f64 -4 a (*.f64 a a))
(*.f64 a (+.f64 a -4))
(+.f64 (*.f64 -4 a) (pow.f64 a 2))
(fma.f64 -4 a (*.f64 a a))
(*.f64 a (+.f64 a -4))

localize14.0ms (0.2%)

Local error

Found 8 expressions with local error:

NewErrorProgram
1.2b
(*.f64 a (*.f64 2 (*.f64 b b)))
0.7b
(*.f64 a (*.f64 a (*.f64 2 (*.f64 b b))))
0.0b
(*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.0b
(*.f64 2 (*.f64 b b))
0.0b
(*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.7b
(*.f64 a (*.f64 a (*.f64 2 (*.f64 b b))))
1.2b
(*.f64 a (*.f64 2 (*.f64 b b)))
1.2b
(*.f64 (*.f64 b b) (+.f64 3 a))

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
a
@0
(*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.0ms
b
@inf
(*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.0ms
b
@0
(*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.0ms
a
@inf
(*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))
0.0ms
a
@-inf
(*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))

rewrite48.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
482×fma-def_binary64
225×fma-neg_binary64
212×expm1-udef_binary64
212×log1p-udef_binary64
128×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01117
125417
2361217
Stop Event
node limit
Counts
1 → 47
Calls
Call 1
Inputs
(*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 4 (*.f64 a a)) (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 4 (*.f64 a a)) 1) (*.f64 (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 4 (*.f64 a a)) 3) (pow.f64 (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)) 3)) (fma.f64 (*.f64 4 (*.f64 a a)) (*.f64 4 (*.f64 a a)) (-.f64 (*.f64 (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)) (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3))) (*.f64 (*.f64 4 (*.f64 a a)) (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 4 (*.f64 a a)) (*.f64 4 (*.f64 a a))) (*.f64 (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)) (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)))) (-.f64 (*.f64 4 (*.f64 a a)) (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 a 6) (pow.f64 (*.f64 b (*.f64 b (+.f64 a 3))) 3)) 4) (fma.f64 (*.f64 b (*.f64 b (+.f64 a 3))) (-.f64 (*.f64 b (*.f64 b (+.f64 a 3))) (*.f64 a a)) (pow.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 a 4) (*.f64 (pow.f64 (+.f64 a 3) 2) (pow.f64 b 4))) 4) (-.f64 (*.f64 a a) (*.f64 b (*.f64 b (+.f64 a 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 (pow.f64 a 6) (pow.f64 (*.f64 b (*.f64 b (+.f64 a 3))) 3))) (fma.f64 (*.f64 b (*.f64 b (+.f64 a 3))) (-.f64 (*.f64 b (*.f64 b (+.f64 a 3))) (*.f64 a a)) (pow.f64 a 4)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (-.f64 (pow.f64 a 4) (*.f64 (pow.f64 (+.f64 a 3) 2) (pow.f64 b 4)))) (-.f64 (*.f64 a a) (*.f64 b (*.f64 b (+.f64 a 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (hypot.f64 a (*.f64 b (sqrt.f64 (+.f64 a 3))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 16 (pow.f64 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 4) (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 4 (*.f64 a a) (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 4 (*.f64 b (*.f64 b (+.f64 a 3))) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a (*.f64 a 4) (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a a) 4 (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 (*.f64 b (+.f64 a 3)) 4) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b b) (*.f64 (+.f64 a 3) 4) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (+.f64 a 3) (*.f64 (*.f64 b b) 4) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (*.f64 b (+.f64 a 3))) 4 (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 4 (*.f64 a a)) (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 b (*.f64 b (+.f64 a 3)))) 2) (*.f64 (cbrt.f64 (*.f64 b (*.f64 b (+.f64 a 3)))) 4) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 a 4)) (*.f64 (pow.f64 (cbrt.f64 a) 2) 4) (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (sqrt.f64 (+.f64 a 3))) (*.f64 (*.f64 b (sqrt.f64 (+.f64 a 3))) 4) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 4 (*.f64 a a)) 1 (*.f64 (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 4 (*.f64 a a))) (cbrt.f64 (*.f64 4 (*.f64 a a)))) (cbrt.f64 (*.f64 4 (*.f64 a a))) (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3))) (cbrt.f64 (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)))) (cbrt.f64 (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3))) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 4 (*.f64 a a))) (sqrt.f64 (*.f64 4 (*.f64 a a))) (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3))) (sqrt.f64 (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3))) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 4 a) a (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 4 (cbrt.f64 (pow.f64 a 4))) (pow.f64 (cbrt.f64 a) 2) (*.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 4 b) (*.f64 b (+.f64 a 3)) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 4 (*.f64 b b)) (+.f64 a 3) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 4 (+.f64 a 3)) (*.f64 b b) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 4 (pow.f64 (cbrt.f64 (*.f64 b (*.f64 b (+.f64 a 3)))) 2)) (cbrt.f64 (*.f64 b (*.f64 b (+.f64 a 3)))) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 4 (*.f64 b (sqrt.f64 (+.f64 a 3)))) (*.f64 b (sqrt.f64 (+.f64 a 3))) (*.f64 4 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))))))))

simplify85.0ms (1.3%)

Algorithm
egg-herbie
Rules
1080×fma-def_binary64
470×unswap-sqr_binary64
395×*-commutative_binary64
308×sqr-pow_binary64
232×associate-*l*_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
020471
158393
2165342
3425338
41264338
52298338
63315338
73571338
83671338
93804338
103994338
114241338
124568338
134961338
Stop Event
node limit
Counts
71 → 59
Calls
Call 1
Inputs
(*.f64 12 (pow.f64 b 2))
(+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(*.f64 4 (pow.f64 a 2))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(*.f64 4 (pow.f64 a 2))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(*.f64 4 (pow.f64 a 2))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
Outputs
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))
(fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a)))
(*.f64 b (*.f64 b (fma.f64 4 a 12)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))
(*.f64 4 (pow.f64 a 2))
(*.f64 4 (*.f64 a a))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))
(*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) a)))
(*.f64 4 (*.f64 a (+.f64 a (*.f64 b b))))
(*.f64 4 (*.f64 a (+.f64 (*.f64 b b) a)))
(*.f64 4 (*.f64 a (fma.f64 b b a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))
(*.f64 4 (pow.f64 a 2))
(*.f64 4 (*.f64 a a))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 a (pow.f64 b 2))))
(*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) a)))
(*.f64 4 (*.f64 a (+.f64 a (*.f64 b b))))
(*.f64 4 (*.f64 a (+.f64 (*.f64 b b) a)))
(*.f64 4 (*.f64 a (fma.f64 b b a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 12 (pow.f64 b 2)) (*.f64 4 (*.f64 a (pow.f64 b 2)))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))
(*.f64 4 (pow.f64 a 2))
(*.f64 4 (*.f64 a a))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))
(*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))
(fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a)))
(*.f64 b (*.f64 b (fma.f64 4 a 12)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))
(*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a)))
(fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a)))
(*.f64 b (*.f64 b (fma.f64 4 a 12)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (*.f64 (pow.f64 b 2) (+.f64 3 a))))
(fma.f64 4 (*.f64 a a) (fma.f64 12 (*.f64 b b) (*.f64 4 (*.f64 (*.f64 b b) a))))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 12 (*.f64 4 a))))
(*.f64 4 (fma.f64 (*.f64 b b) (+.f64 a 3) (*.f64 a a)))
(*.f64 4 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)))

localize23.0ms (0.3%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.0b
(*.f64 2 (*.f64 b b))
0.0b
(+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (+.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))
0.0b
(+.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a)))
0.0b
(+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (+.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))))
0.1b
(*.f64 b (*.f64 b 3))
0.1b
(*.f64 b (*.f64 b a))
0.7b
(*.f64 a (*.f64 a (*.f64 2 (*.f64 b b))))
1.2b
(*.f64 a (*.f64 2 (*.f64 b b)))

series3.0ms (0%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
0.0ms
b
@inf
(*.f64 b (*.f64 b 3))
0.0ms
a
@-inf
(*.f64 b (*.f64 b a))
0.0ms
b
@0
(*.f64 b (*.f64 b 3))
0.0ms
b
@0
(*.f64 b (*.f64 b a))
0.0ms
b
@inf
(*.f64 b (*.f64 b a))

rewrite40.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
742×pow1_binary64
681×add-log-exp_binary64
681×log1p-expm1-u_binary64
681×expm1-log1p-u_binary64
87×associate-*r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0814
116114
2188514
Stop Event
node limit
Counts
2 → 28
Calls
Call 1
Inputs
(*.f64 b (*.f64 b a))
(*.f64 b (*.f64 b 3))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 b (*.f64 b a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 b a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (*.f64 b a)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b (*.f64 b a))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (sqrt.f64 a)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b (*.f64 b a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 b) (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 b (*.f64 b a)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b (*.f64 b a)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 b a) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 b a) 3) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 b (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 b (*.f64 b a))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 b (*.f64 b a))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 b (*.f64 b 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 b 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (*.f64 b 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b (*.f64 b 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (sqrt.f64 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b (*.f64 b 3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 b) (*.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 b (*.f64 b 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b (*.f64 b 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 b 3) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 b 3) 3) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 b (*.f64 b 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 b (*.f64 b 3))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 b (*.f64 b 3))))))))

simplify68.0ms (1%)

Algorithm
egg-herbie
Rules
775×sqr-pow_binary64
400×fabs-mul_binary64
386×cube-prod_binary64
381×pow-sqr_binary64
242×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
08252
115252
230252
362252
4158252
5516252
6706252
71120252
81220252
91353252
101525252
111768252
122081252
132451252
142905252
153484252
164192252
Stop Event
node limit
Counts
64 → 32
Calls
Call 1
Inputs
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 a (pow.f64 b 2))
(*.f64 3 (pow.f64 b 2))
(*.f64 3 (pow.f64 b 2))
(*.f64 3 (pow.f64 b 2))
(*.f64 3 (pow.f64 b 2))
(*.f64 3 (pow.f64 b 2))
(*.f64 3 (pow.f64 b 2))
(*.f64 3 (pow.f64 b 2))
(*.f64 3 (pow.f64 b 2))
(*.f64 3 (pow.f64 b 2))
(*.f64 3 (pow.f64 b 2))
(*.f64 3 (pow.f64 b 2))
(*.f64 3 (pow.f64 b 2))
Outputs
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))

localize24.0ms (0.4%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a)))
0.0b
(*.f64 2 (*.f64 b b))
0.0b
(+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a)))))
0.0b
(+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a)))))))
0.2b
(*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3)))
0.7b
(*.f64 a (*.f64 a (*.f64 2 (*.f64 b b))))
1.2b
(*.f64 a (*.f64 2 (*.f64 b b)))
40.1b
(/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))

series8.0ms (0.1%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
2.0ms
b
@0
(/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))
1.0ms
b
@inf
(/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))
1.0ms
a
@0
(/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))
1.0ms
a
@inf
(/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))
1.0ms
a
@-inf
(/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))

rewrite35.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
189×associate-*r*_binary64
162×add-sqr-sqrt_binary64
159×*-un-lft-identity_binary64
159×pow1_binary64
151×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01347
132020
Stop Event
node limit
Counts
2 → 68
Calls
Call 1
Inputs
(/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))
(*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 b 3)) (*.f64 a (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (*.f64 (*.f64 b b) (-.f64 3 a))) (neg.f64 (/.f64 (pow.f64 (*.f64 a (*.f64 b b)) 2) (*.f64 (*.f64 b b) (-.f64 3 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (*.f64 (*.f64 b b) (-.f64 3 a))) (/.f64 (pow.f64 (*.f64 a (*.f64 b b)) 2) (*.f64 (*.f64 b b) (-.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (*.f64 b b) (+.f64 3 a)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 b (+.f64 (*.f64 b 3) (*.f64 b a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2)) (/.f64 1 (*.f64 (*.f64 b b) (-.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (*.f64 b b) (+.f64 3 a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 b b) (+.f64 3 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2)) 2)) (*.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2))) (/.f64 1 (*.f64 (*.f64 b b) (-.f64 3 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (*.f64 b b) (+.f64 3 a))) (pow.f64 (cbrt.f64 (*.f64 (*.f64 b b) (+.f64 3 a))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 b b) (+.f64 3 a))) 2) (cbrt.f64 (*.f64 (*.f64 b b) (+.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2))) (*.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2))) (/.f64 1 (*.f64 (*.f64 b b) (-.f64 3 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (*.f64 b b) (+.f64 3 a))) (sqrt.f64 (*.f64 (*.f64 b b) (+.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (neg.f64 (*.f64 (*.f64 b b) (-.f64 3 a)))) (/.f64 1 (neg.f64 (*.f64 (*.f64 b b) (-.f64 3 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (*.f64 (*.f64 b b) (-.f64 3 a))) (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (*.f64 (*.f64 (*.f64 b b) (-.f64 3 a)) (/.f64 1 (*.f64 (*.f64 b b) (-.f64 3 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 b) (/.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2)) (*.f64 b (-.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 (cbrt.f64 (*.f64 (*.f64 b b) (-.f64 3 a))) 2)) (/.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2)) (cbrt.f64 (*.f64 (*.f64 b b) (-.f64 3 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (sqrt.f64 (*.f64 (*.f64 b b) (-.f64 3 a)))) (/.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2)) (sqrt.f64 (*.f64 (*.f64 b b) (-.f64 3 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2)) 2)) b) (/.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2))) (*.f64 b (-.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2))) b) (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2))) (*.f64 b (-.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) b) (/.f64 (*.f64 (*.f64 b b) (-.f64 3 a)) (*.f64 b (-.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2)) 2)) 1) (/.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2))) (*.f64 (*.f64 b b) (-.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2))) 1) (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2))) (*.f64 (*.f64 b b) (-.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) 1) (/.f64 (*.f64 (*.f64 b b) (-.f64 3 a)) (*.f64 (*.f64 b b) (-.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2)) 2)) (pow.f64 (cbrt.f64 (*.f64 (*.f64 b b) (-.f64 3 a))) 2)) (cbrt.f64 (*.f64 (*.f64 b b) (+.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2))) (pow.f64 (cbrt.f64 (*.f64 (*.f64 b b) (-.f64 3 a))) 2)) (/.f64 (sqrt.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2))) (cbrt.f64 (*.f64 (*.f64 b b) (-.f64 3 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (pow.f64 (cbrt.f64 (*.f64 (*.f64 b b) (-.f64 3 a))) 2)) (/.f64 (*.f64 (*.f64 b b) (-.f64 3 a)) (cbrt.f64 (*.f64 (*.f64 b b) (-.f64 3 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2)) 2)) (sqrt.f64 (*.f64 (*.f64 b b) (-.f64 3 a)))) (/.f64 (cbrt.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2))) (sqrt.f64 (*.f64 (*.f64 b b) (-.f64 3 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) (sqrt.f64 (*.f64 (*.f64 b b) (-.f64 3 a)))) (/.f64 (*.f64 (*.f64 b b) (-.f64 3 a)) (sqrt.f64 (*.f64 (*.f64 b b) (-.f64 3 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2)) (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2))) (*.f64 (*.f64 b b) (+.f64 3 a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2)) (-.f64 (*.f64 (pow.f64 (*.f64 b b) 3) 27) (pow.f64 (*.f64 a (*.f64 b b)) 3))) (+.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (*.f64 (*.f64 a (*.f64 b b)) (+.f64 (*.f64 a (*.f64 b b)) (*.f64 b (*.f64 b 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 b b) (+.f64 3 a))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (*.f64 b b) (+.f64 3 a))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 1 (*.f64 (*.f64 b b) (+.f64 3 a))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2)) (neg.f64 (*.f64 (*.f64 b b) (-.f64 3 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (*.f64 b b) (+.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (*.f64 b b) (+.f64 3 a)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (pow.f64 (exp.f64 3) b) b) (pow.f64 (exp.f64 (*.f64 b b)) a)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 b b) (+.f64 3 a)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (-.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) (pow.f64 (*.f64 a (*.f64 b b)) 2)) 3) (pow.f64 (*.f64 (*.f64 b b) (-.f64 3 a)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 b b) (+.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 b b) (+.f64 3 a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (*.f64 b b) (+.f64 3 a))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 b (*.f64 b 3) (*.f64 a (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b 3) b (*.f64 a (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 b (*.f64 b 3)) (*.f64 a (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b b) 3 (*.f64 a (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9)) (cbrt.f64 (*.f64 b (*.f64 b 3))) (*.f64 a (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 b (sqrt.f64 3)) (*.f64 b (sqrt.f64 3)) (*.f64 a (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 b b) (+.f64 3 a))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 b 3)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (*.f64 b 3)) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b (*.f64 b 3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b (*.f64 b 3)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (*.f64 b (*.f64 b 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 b (*.f64 b 3))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (*.f64 b (*.f64 b 3)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (*.f64 b b) 2) 9)))))))

simplify41.0ms (0.6%)

Algorithm
egg-herbie
Rules
704×fma-def_binary64
252×*-commutative_binary64
246×associate-/r*_binary64
222×associate-/l*_binary64
222×unswap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
018423
142423
2106423
3317423
41303423
54420423
Stop Event
node limit
Counts
104 → 77
Calls
Call 1
Inputs
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(*.f64 3 (pow.f64 b 2))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 a (pow.f64 b 2))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 a (pow.f64 b 2))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
Outputs
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (-.f64 9 (*.f64 a a)) (/.f64 (-.f64 3 a) (*.f64 b b)))
(*.f64 (/.f64 (-.f64 9 (*.f64 a a)) (-.f64 3 a)) (*.f64 b b))
(/.f64 (*.f64 b b) (/.f64 (-.f64 3 a) (-.f64 9 (*.f64 a a))))
(*.f64 (-.f64 9 (*.f64 a a)) (/.f64 (*.f64 b b) (-.f64 3 a)))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (-.f64 9 (*.f64 a a)) (/.f64 (-.f64 3 a) (*.f64 b b)))
(*.f64 (/.f64 (-.f64 9 (*.f64 a a)) (-.f64 3 a)) (*.f64 b b))
(/.f64 (*.f64 b b) (/.f64 (-.f64 3 a) (-.f64 9 (*.f64 a a))))
(*.f64 (-.f64 9 (*.f64 a a)) (/.f64 (*.f64 b b) (-.f64 3 a)))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (-.f64 9 (*.f64 a a)) (/.f64 (-.f64 3 a) (*.f64 b b)))
(*.f64 (/.f64 (-.f64 9 (*.f64 a a)) (-.f64 3 a)) (*.f64 b b))
(/.f64 (*.f64 b b) (/.f64 (-.f64 3 a) (-.f64 9 (*.f64 a a))))
(*.f64 (-.f64 9 (*.f64 a a)) (/.f64 (*.f64 b b) (-.f64 3 a)))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (-.f64 9 (*.f64 a a)) (/.f64 (-.f64 3 a) (*.f64 b b)))
(*.f64 (/.f64 (-.f64 9 (*.f64 a a)) (-.f64 3 a)) (*.f64 b b))
(/.f64 (*.f64 b b) (/.f64 (-.f64 3 a) (-.f64 9 (*.f64 a a))))
(*.f64 (-.f64 9 (*.f64 a a)) (/.f64 (*.f64 b b) (-.f64 3 a)))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (-.f64 9 (*.f64 a a)) (/.f64 (-.f64 3 a) (*.f64 b b)))
(*.f64 (/.f64 (-.f64 9 (*.f64 a a)) (-.f64 3 a)) (*.f64 b b))
(/.f64 (*.f64 b b) (/.f64 (-.f64 3 a) (-.f64 9 (*.f64 a a))))
(*.f64 (-.f64 9 (*.f64 a a)) (/.f64 (*.f64 b b) (-.f64 3 a)))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (-.f64 9 (*.f64 a a)) (/.f64 (-.f64 3 a) (*.f64 b b)))
(*.f64 (/.f64 (-.f64 9 (*.f64 a a)) (-.f64 3 a)) (*.f64 b b))
(/.f64 (*.f64 b b) (/.f64 (-.f64 3 a) (-.f64 9 (*.f64 a a))))
(*.f64 (-.f64 9 (*.f64 a a)) (/.f64 (*.f64 b b) (-.f64 3 a)))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (-.f64 9 (*.f64 a a)) (/.f64 (-.f64 3 a) (*.f64 b b)))
(*.f64 (/.f64 (-.f64 9 (*.f64 a a)) (-.f64 3 a)) (*.f64 b b))
(/.f64 (*.f64 b b) (/.f64 (-.f64 3 a) (-.f64 9 (*.f64 a a))))
(*.f64 (-.f64 9 (*.f64 a a)) (/.f64 (*.f64 b b) (-.f64 3 a)))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (-.f64 9 (*.f64 a a)) (/.f64 (-.f64 3 a) (*.f64 b b)))
(*.f64 (/.f64 (-.f64 9 (*.f64 a a)) (-.f64 3 a)) (*.f64 b b))
(/.f64 (*.f64 b b) (/.f64 (-.f64 3 a) (-.f64 9 (*.f64 a a))))
(*.f64 (-.f64 9 (*.f64 a a)) (/.f64 (*.f64 b b) (-.f64 3 a)))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (-.f64 9 (*.f64 a a)) (/.f64 (-.f64 3 a) (*.f64 b b)))
(*.f64 (/.f64 (-.f64 9 (*.f64 a a)) (-.f64 3 a)) (*.f64 b b))
(/.f64 (*.f64 b b) (/.f64 (-.f64 3 a) (-.f64 9 (*.f64 a a))))
(*.f64 (-.f64 9 (*.f64 a a)) (/.f64 (*.f64 b b) (-.f64 3 a)))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (-.f64 9 (*.f64 a a)) (/.f64 (-.f64 3 a) (*.f64 b b)))
(*.f64 (/.f64 (-.f64 9 (*.f64 a a)) (-.f64 3 a)) (*.f64 b b))
(/.f64 (*.f64 b b) (/.f64 (-.f64 3 a) (-.f64 9 (*.f64 a a))))
(*.f64 (-.f64 9 (*.f64 a a)) (/.f64 (*.f64 b b) (-.f64 3 a)))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (-.f64 9 (*.f64 a a)) (/.f64 (-.f64 3 a) (*.f64 b b)))
(*.f64 (/.f64 (-.f64 9 (*.f64 a a)) (-.f64 3 a)) (*.f64 b b))
(/.f64 (*.f64 b b) (/.f64 (-.f64 3 a) (-.f64 9 (*.f64 a a))))
(*.f64 (-.f64 9 (*.f64 a a)) (/.f64 (*.f64 b b) (-.f64 3 a)))
(/.f64 (*.f64 (-.f64 9 (pow.f64 a 2)) (pow.f64 b 2)) (-.f64 3 a))
(/.f64 (-.f64 9 (*.f64 a a)) (/.f64 (-.f64 3 a) (*.f64 b b)))
(*.f64 (/.f64 (-.f64 9 (*.f64 a a)) (-.f64 3 a)) (*.f64 b b))
(/.f64 (*.f64 b b) (/.f64 (-.f64 3 a) (-.f64 9 (*.f64 a a))))
(*.f64 (-.f64 9 (*.f64 a a)) (/.f64 (*.f64 b b) (-.f64 3 a)))
(*.f64 3 (pow.f64 b 2))
(*.f64 (*.f64 b b) 3)
(*.f64 b (*.f64 b 3))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 a 3)))
(*.f64 (*.f64 b b) (+.f64 a 3))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 a 3)))
(*.f64 (*.f64 b b) (+.f64 a 3))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 a 3)))
(*.f64 (*.f64 b b) (+.f64 a 3))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 a 3)))
(*.f64 (*.f64 b b) (+.f64 a 3))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 a 3)))
(*.f64 (*.f64 b b) (+.f64 a 3))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 a 3)))
(*.f64 (*.f64 b b) (+.f64 a 3))
(*.f64 a (pow.f64 b 2))
(*.f64 a (*.f64 b b))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 a 3)))
(*.f64 (*.f64 b b) (+.f64 a 3))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 a 3)))
(*.f64 (*.f64 b b) (+.f64 a 3))
(+.f64 (*.f64 3 (pow.f64 b 2)) (*.f64 a (pow.f64 b 2)))
(*.f64 (*.f64 b b) (+.f64 3 a))
(*.f64 b (*.f64 b (+.f64 a 3)))
(*.f64 (*.f64 b b) (+.f64 a 3))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))
(*.f64 9 (pow.f64 b 4))

localize7.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 b (*.f64 b (fma.f64 b b 12)))
0.0b
(*.f64 b (fma.f64 b b 12))
0.0b
(*.f64 b (fma.f64 b b 12))
0.1b
(*.f64 b (*.f64 b (fma.f64 b b 12)))

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

TimeVariablePointExpression
1.0ms
b
@0
(*.f64 b (*.f64 b (fma.f64 b b 12)))
1.0ms
b
@inf
(*.f64 b (*.f64 b (fma.f64 b b 12)))
1.0ms
b
@-inf
(*.f64 b (*.f64 b (fma.f64 b b 12)))
0.0ms
b
@-inf
(*.f64 b (fma.f64 b b 12))
0.0ms
b
@0
(*.f64 b (fma.f64 b b 12))

rewrite46.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
556×pow1_binary64
514×add-log-exp_binary64
514×log1p-expm1-u_binary64
514×expm1-log1p-u_binary64
504×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0619
112119
2140519
Stop Event
node limit
Counts
2 → 30
Calls
Call 1
Inputs
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(*.f64 b (fma.f64 b b 12))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 b b) 12))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 12 (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 b (*.f64 b (fma.f64 b b 12)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b (*.f64 b (fma.f64 b b 12)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (sqrt.f64 (fma.f64 b b 12))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 b) (fma.f64 b b 12)) b))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 b (fma.f64 b b 12)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 b (fma.f64 b b 12)) 3) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 b (*.f64 b (fma.f64 b b 12)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 b (*.f64 b (fma.f64 b b 12)))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 b (*.f64 b (fma.f64 b b 12)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 b 3) (*.f64 12 b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 b 3) (*.f64 b 12))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 b (fma.f64 b b 12))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (fma.f64 b b 12)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (fma.f64 b b 12)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b (fma.f64 b b 12))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 b (fma.f64 b b 12))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b (fma.f64 b b 12)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 b) (fma.f64 b b 12)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b (fma.f64 b b 12)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (fma.f64 b b 12) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 b b 12) 3) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 b (fma.f64 b b 12))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 b (fma.f64 b b 12))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 b (fma.f64 b b 12))))))))

simplify61.0ms (0.9%)

Algorithm
egg-herbie
Rules
620×fma-def_binary64
560×sqr-pow_binary64
425×associate-*l*_binary64
382×*-commutative_binary64
289×associate-*r*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
014198
133198
263198
3126198
4349198
51682198
62611198
73014198
83275198
93586198
103997198
114583198
Stop Event
node limit
Counts
54 → 39
Calls
Call 1
Inputs
(*.f64 12 (pow.f64 b 2))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(pow.f64 b 4)
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(pow.f64 b 4)
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(*.f64 12 b)
(+.f64 (pow.f64 b 3) (*.f64 12 b))
(+.f64 (pow.f64 b 3) (*.f64 12 b))
(+.f64 (pow.f64 b 3) (*.f64 12 b))
(pow.f64 b 3)
(+.f64 (*.f64 12 b) (pow.f64 b 3))
(+.f64 (*.f64 12 b) (pow.f64 b 3))
(+.f64 (*.f64 12 b) (pow.f64 b 3))
(pow.f64 b 3)
(+.f64 (*.f64 12 b) (pow.f64 b 3))
(+.f64 (*.f64 12 b) (pow.f64 b 3))
(+.f64 (*.f64 12 b) (pow.f64 b 3))
Outputs
(*.f64 12 (pow.f64 b 2))
(*.f64 12 (*.f64 b b))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(*.f64 (*.f64 b b) (fma.f64 b b 12))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(*.f64 (*.f64 b b) (fma.f64 b b 12))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(*.f64 (*.f64 b b) (fma.f64 b b 12))
(pow.f64 b 4)
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(*.f64 (*.f64 b b) (fma.f64 b b 12))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(*.f64 (*.f64 b b) (fma.f64 b b 12))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(*.f64 (*.f64 b b) (fma.f64 b b 12))
(pow.f64 b 4)
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(*.f64 (*.f64 b b) (fma.f64 b b 12))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(*.f64 (*.f64 b b) (fma.f64 b b 12))
(+.f64 (*.f64 12 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 12 (*.f64 b b) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b 12)))
(*.f64 (*.f64 b b) (fma.f64 b b 12))
(*.f64 12 b)
(+.f64 (pow.f64 b 3) (*.f64 12 b))
(fma.f64 12 b (pow.f64 b 3))
(*.f64 b (fma.f64 b b 12))
(+.f64 (pow.f64 b 3) (*.f64 12 b))
(fma.f64 12 b (pow.f64 b 3))
(*.f64 b (fma.f64 b b 12))
(+.f64 (pow.f64 b 3) (*.f64 12 b))
(fma.f64 12 b (pow.f64 b 3))
(*.f64 b (fma.f64 b b 12))
(pow.f64 b 3)
(+.f64 (*.f64 12 b) (pow.f64 b 3))
(fma.f64 12 b (pow.f64 b 3))
(*.f64 b (fma.f64 b b 12))
(+.f64 (*.f64 12 b) (pow.f64 b 3))
(fma.f64 12 b (pow.f64 b 3))
(*.f64 b (fma.f64 b b 12))
(+.f64 (*.f64 12 b) (pow.f64 b 3))
(fma.f64 12 b (pow.f64 b 3))
(*.f64 b (fma.f64 b b 12))
(pow.f64 b 3)
(+.f64 (*.f64 12 b) (pow.f64 b 3))
(fma.f64 12 b (pow.f64 b 3))
(*.f64 b (fma.f64 b b 12))
(+.f64 (*.f64 12 b) (pow.f64 b 3))
(fma.f64 12 b (pow.f64 b 3))
(*.f64 b (fma.f64 b b 12))
(+.f64 (*.f64 12 b) (pow.f64 b 3))
(fma.f64 12 b (pow.f64 b 3))
(*.f64 b (fma.f64 b b 12))

eval241.0ms (3.6%)

Compiler

Compiled 14375 to 8180 computations (43.1% saved)

prune118.0ms (1.7%)

Pruning

14 alts after pruning (9 fresh and 5 done)

PrunedKeptTotal
New4615466
Fresh448
Picked011
Done448
Total46914483
Error
0b
Counts
483 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
10.4b
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a a))) 1)
10.2b
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 a -4)) 1)
19.3b
(-.f64 (*.f64 4 (*.f64 a a)) 1)
10.4b
(-.f64 (pow.f64 a 4) 1)
19.6b
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a -4))) 1)
1.1b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 12))) 1)
10.8b
(-.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 1)
11.0b
(-.f64 (*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))) 1)
19.5b
(-.f64 (*.f64 12 (*.f64 b b)) 1)
9.5b
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
19.5b
(-.f64 (*.f64 b (*.f64 12 b)) 1)
11.1b
(-.f64 (pow.f64 b 4) 1)
9.8b
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (pow.f64 a 4)) (*.f64 b (*.f64 b 12))) 1)
10.9b
(-.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 12 (*.f64 b b))) 1)
Compiler

Compiled 180 to 127 computations (29.4% saved)

regimes73.0ms (1.1%)

Counts
31 → 1
Calls
Call 1
Inputs
(-.f64 (*.f64 4 (*.f64 a a)) 1)
(-.f64 (*.f64 b (*.f64 12 b)) 1)
(-.f64 (*.f64 12 (*.f64 b b)) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a a))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a -4))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
(-.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 12 (*.f64 b b))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 b (*.f64 b 3))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 2 (*.f64 a a)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (+.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a)))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (*.f64 (*.f64 b b) (-.f64 9 (*.f64 a a))) (-.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 3 (*.f64 b b)) (*.f64 3 (*.f64 b b))) (*.f64 (*.f64 a (*.f64 b b)) (*.f64 a (*.f64 b b)))) (-.f64 (*.f64 3 (*.f64 b b)) (*.f64 a (*.f64 b b))))))) 1)
(-.f64 (pow.f64 a 4) 1)
(-.f64 (pow.f64 b 4) 1)
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 a -4)) 1)
(-.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 1)
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12))) 1)
(-.f64 (*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 12))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (pow.f64 a 4)) (*.f64 b (*.f64 b 12))) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))) 1)
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(fma.f64 4 (neg.f64 (pow.f64 a 3)) (+.f64 (pow.f64 (hypot.f64 a b) 4) -1))
(fma.f64 4 (-.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) (pow.f64 a 3)) (+.f64 (pow.f64 (hypot.f64 a b) 4) -1))
Outputs
(fma.f64 4 (-.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) (pow.f64 a 3)) (+.f64 (pow.f64 (hypot.f64 a b) 4) -1))
Results
TimeErrorSegmentsBranch
15.0ms0.0b1a
14.0ms0.0b1b
5.0ms0.0b1(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
11.0ms0.0b1(+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
7.0ms0.0b1(*.f64 b b)
7.0ms0.0b1(*.f64 b b)
Compiler

Compiled 730 to 407 computations (44.2% saved)

regimes67.0ms (1%)

Counts
30 → 1
Calls
Call 1
Inputs
(-.f64 (*.f64 4 (*.f64 a a)) 1)
(-.f64 (*.f64 b (*.f64 12 b)) 1)
(-.f64 (*.f64 12 (*.f64 b b)) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a a))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a -4))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
(-.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 12 (*.f64 b b))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 b (*.f64 b 3))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 2 (*.f64 a a)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (+.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a)))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (*.f64 (*.f64 b b) (-.f64 9 (*.f64 a a))) (-.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 3 (*.f64 b b)) (*.f64 3 (*.f64 b b))) (*.f64 (*.f64 a (*.f64 b b)) (*.f64 a (*.f64 b b)))) (-.f64 (*.f64 3 (*.f64 b b)) (*.f64 a (*.f64 b b))))))) 1)
(-.f64 (pow.f64 a 4) 1)
(-.f64 (pow.f64 b 4) 1)
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 a -4)) 1)
(-.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 1)
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12))) 1)
(-.f64 (*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 12))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (pow.f64 a 4)) (*.f64 b (*.f64 b 12))) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))) 1)
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (fma.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(fma.f64 4 (neg.f64 (pow.f64 a 3)) (+.f64 (pow.f64 (hypot.f64 a b) 4) -1))
Outputs
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
Results
TimeErrorSegmentsBranch
14.0ms0.1b1a
14.0ms0.1b1b
5.0ms0.1b1(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
10.0ms0.1b1(+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a)))))
6.0ms0.1b1(*.f64 b b)
Compiler

Compiled 702 to 391 computations (44.3% saved)

regimes45.0ms (0.7%)

Counts
26 → 1
Calls
Call 1
Inputs
(-.f64 (*.f64 4 (*.f64 a a)) 1)
(-.f64 (*.f64 b (*.f64 12 b)) 1)
(-.f64 (*.f64 12 (*.f64 b b)) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a a))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a -4))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
(-.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 12 (*.f64 b b))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 b (*.f64 b 3))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 2 (*.f64 a a)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (+.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a)))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (*.f64 (*.f64 b b) (-.f64 9 (*.f64 a a))) (-.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 3 (*.f64 b b)) (*.f64 3 (*.f64 b b))) (*.f64 (*.f64 a (*.f64 b b)) (*.f64 a (*.f64 b b)))) (-.f64 (*.f64 3 (*.f64 b b)) (*.f64 a (*.f64 b b))))))) 1)
(-.f64 (pow.f64 a 4) 1)
(-.f64 (pow.f64 b 4) 1)
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 a -4)) 1)
(-.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 1)
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12))) 1)
(-.f64 (*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 12))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (pow.f64 a 4)) (*.f64 b (*.f64 b 12))) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))) 1)
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
Outputs
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))) 1)
Results
TimeErrorSegmentsBranch
13.0ms0.4b1a
12.0ms0.4b1b
7.0ms0.4b1(*.f64 b b)
Compiler

Compiled 535 to 296 computations (44.7% saved)

regimes47.0ms (0.7%)

Counts
23 → 1
Calls
Call 1
Inputs
(-.f64 (*.f64 4 (*.f64 a a)) 1)
(-.f64 (*.f64 b (*.f64 12 b)) 1)
(-.f64 (*.f64 12 (*.f64 b b)) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a a))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a -4))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
(-.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 12 (*.f64 b b))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 b (*.f64 b 3))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 2 (*.f64 a a)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (+.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a)))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (*.f64 (*.f64 b b) (-.f64 9 (*.f64 a a))) (-.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 3 (*.f64 b b)) (*.f64 3 (*.f64 b b))) (*.f64 (*.f64 a (*.f64 b b)) (*.f64 a (*.f64 b b)))) (-.f64 (*.f64 3 (*.f64 b b)) (*.f64 a (*.f64 b b))))))) 1)
(-.f64 (pow.f64 a 4) 1)
(-.f64 (pow.f64 b 4) 1)
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 a -4)) 1)
(-.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 1)
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12))) 1)
(-.f64 (*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 12))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a))) (pow.f64 a 4)) (*.f64 b (*.f64 b 12))) 1)
Outputs
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 12))) 1)
Results
TimeErrorSegmentsBranch
12.0ms1.1b1a
13.0ms1.1b1b
5.0ms1.1b1(*.f64 b b)
6.0ms1.1b1(*.f64 b b)
Compiler

Compiled 473 to 260 computations (45% saved)

regimes88.0ms (1.3%)

Counts
21 → 3
Calls
Call 1
Inputs
(-.f64 (*.f64 4 (*.f64 a a)) 1)
(-.f64 (*.f64 b (*.f64 12 b)) 1)
(-.f64 (*.f64 12 (*.f64 b b)) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a a))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a -4))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
(-.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 12 (*.f64 b b))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 b (*.f64 b 3))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 2 (*.f64 a a)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (+.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a)))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (*.f64 (*.f64 b b) (-.f64 9 (*.f64 a a))) (-.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 3 (*.f64 b b)) (*.f64 3 (*.f64 b b))) (*.f64 (*.f64 a (*.f64 b b)) (*.f64 a (*.f64 b b)))) (-.f64 (*.f64 3 (*.f64 b b)) (*.f64 a (*.f64 b b))))))) 1)
(-.f64 (pow.f64 a 4) 1)
(-.f64 (pow.f64 b 4) 1)
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 a -4)) 1)
(-.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 1)
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12))) 1)
(-.f64 (*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))) 1)
Outputs
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12))) 1)
Results
TimeErrorSegmentsBranch
29.0ms2.6b3a
29.0ms1.4b3b
10.0ms1.4b2(*.f64 b b)
9.0ms1.4b2(*.f64 b b)
Compiler

Compiled 435 to 239 computations (45.1% saved)

bsearch61.0ms (0.9%)

Algorithm
binary-search
Steps
TimePointRange
31.0ms
8.21218619349424e-36
∈ [
8.21218619349424e-36
,
3.698394897778637e-33
]
30.0ms
-5.66961418752657
∈ [
-5.66961418752657
,
-0.04456019128559022
]
Compiler

Compiled 36 to 23 computations (36.1% saved)

regimes86.0ms (1.3%)

Counts
19 → 3
Calls
Call 1
Inputs
(-.f64 (*.f64 4 (*.f64 a a)) 1)
(-.f64 (*.f64 b (*.f64 12 b)) 1)
(-.f64 (*.f64 12 (*.f64 b b)) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a a))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a -4))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
(-.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 12 (*.f64 b b))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 b (*.f64 b 3))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 2 (*.f64 a a)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (+.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a)))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (*.f64 (*.f64 b b) (-.f64 9 (*.f64 a a))) (-.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 3 (*.f64 b b)) (*.f64 3 (*.f64 b b))) (*.f64 (*.f64 a (*.f64 b b)) (*.f64 a (*.f64 b b)))) (-.f64 (*.f64 3 (*.f64 b b)) (*.f64 a (*.f64 b b))))))) 1)
(-.f64 (pow.f64 a 4) 1)
(-.f64 (pow.f64 b 4) 1)
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 a -4)) 1)
(-.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 1)
Outputs
(-.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
(-.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 1)
Results
TimeErrorSegmentsBranch
28.0ms2.7b3a
29.0ms1.4b3b
8.0ms1.4b2(*.f64 b b)
10.0ms1.4b2(*.f64 b b)
Compiler

Compiled 410 to 225 computations (45.1% saved)

bsearch64.0ms (0.9%)

Algorithm
binary-search
Steps
TimePointRange
32.0ms
8.21218619349424e-36
∈ [
8.21218619349424e-36
,
3.698394897778637e-33
]
32.0ms
-5.66961418752657
∈ [
-5.66961418752657
,
-0.04456019128559022
]
Compiler

Compiled 36 to 23 computations (36.1% saved)

regimes71.0ms (1%)

Counts
18 → 3
Calls
Call 1
Inputs
(-.f64 (*.f64 4 (*.f64 a a)) 1)
(-.f64 (*.f64 b (*.f64 12 b)) 1)
(-.f64 (*.f64 12 (*.f64 b b)) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a a))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a -4))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
(-.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 12 (*.f64 b b))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 b (*.f64 b 3))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 2 (*.f64 a a)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (+.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a)))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (*.f64 (*.f64 b b) (-.f64 9 (*.f64 a a))) (-.f64 3 a))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b 3))) (*.f64 (*.f64 b (*.f64 b a)) (*.f64 b (*.f64 b a)))) (-.f64 (*.f64 b (*.f64 b 3)) (*.f64 b (*.f64 b a))))))) 1)
(-.f64 (+.f64 (*.f64 a (*.f64 a (*.f64 2 (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (/.f64 (-.f64 (*.f64 (*.f64 3 (*.f64 b b)) (*.f64 3 (*.f64 b b))) (*.f64 (*.f64 a (*.f64 b b)) (*.f64 a (*.f64 b b)))) (-.f64 (*.f64 3 (*.f64 b b)) (*.f64 a (*.f64 b b))))))) 1)
(-.f64 (pow.f64 a 4) 1)
(-.f64 (pow.f64 b 4) 1)
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 a -4)) 1)
Outputs
(-.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 12 (*.f64 b b))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
(-.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 12 (*.f64 b b))) 1)
Results
TimeErrorSegmentsBranch
25.0ms2.7b3a
28.0ms1.4b3b
9.0ms1.5b2(*.f64 b b)
Compiler

Compiled 395 to 216 computations (45.3% saved)

bsearch62.0ms (0.9%)

Algorithm
binary-search
Steps
TimePointRange
31.0ms
8.21218619349424e-36
∈ [
8.21218619349424e-36
,
3.698394897778637e-33
]
31.0ms
-5.66961418752657
∈ [
-5.66961418752657
,
-0.04456019128559022
]
Compiler

Compiled 36 to 23 computations (36.1% saved)

regimes18.0ms (0.3%)

Counts
6 → 1
Calls
Call 1
Inputs
(-.f64 (*.f64 4 (*.f64 a a)) 1)
(-.f64 (*.f64 b (*.f64 12 b)) 1)
(-.f64 (*.f64 12 (*.f64 b b)) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a a))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a -4))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
Outputs
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
Results
TimeErrorSegmentsBranch
9.0ms9.5b1a
5.0ms9.5b1b
3.0ms9.5b1(*.f64 b b)
Compiler

Compiled 69 to 44 computations (36.2% saved)

regimes14.0ms (0.2%)

Counts
5 → 1
Calls
Call 1
Inputs
(-.f64 (*.f64 4 (*.f64 a a)) 1)
(-.f64 (*.f64 b (*.f64 12 b)) 1)
(-.f64 (*.f64 12 (*.f64 b b)) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a a))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a -4))) 1)
Outputs
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a a))) 1)
Results
TimeErrorSegmentsBranch
6.0ms10.4b1a
4.0ms10.4b1b
3.0ms10.4b1(*.f64 b b)
Compiler

Compiled 56 to 36 computations (35.7% saved)

regimes11.0ms (0.2%)

Accuracy

Total -0.7b remaining (-3.4%)

Threshold costs -0.7b (-3.4%)

Counts
3 → 1
Calls
Call 1
Inputs
(-.f64 (*.f64 4 (*.f64 a a)) 1)
(-.f64 (*.f64 b (*.f64 12 b)) 1)
(-.f64 (*.f64 12 (*.f64 b b)) 1)
Outputs
(-.f64 (*.f64 4 (*.f64 a a)) 1)
Results
TimeErrorSegmentsBranch
4.0ms19.3b1a
3.0ms19.3b1b
2.0ms19.3b1(*.f64 b b)
Compiler

Compiled 34 to 24 computations (29.4% saved)

simplify11.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
073374
1119374
2134374
3138374
4140374
Stop Event
saturated
Calls
Call 1
Inputs
(fma.f64 4 (-.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) (pow.f64 a 3)) (+.f64 (pow.f64 (hypot.f64 a b) 4) -1))
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 12))) 1)
(if (<=.f64 b -6383418085569785/1125899906842624) (-.f64 (+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12))) 1) (if (<=.f64 b 3072543633371665/374144419156711147060143317175368453031918731001856) (-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1) (-.f64 (+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12))) 1)))
(if (<=.f64 b -6383418085569785/1125899906842624) (-.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 1) (if (<=.f64 b 3072543633371665/374144419156711147060143317175368453031918731001856) (-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1) (-.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 1)))
(if (<=.f64 b -6383418085569785/1125899906842624) (-.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 12 (*.f64 b b))) 1) (if (<=.f64 b 3072543633371665/374144419156711147060143317175368453031918731001856) (-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1) (-.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 12 (*.f64 b b))) 1)))
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a a))) 1)
(-.f64 (*.f64 4 (*.f64 a a)) 1)
Outputs
(fma.f64 4 (-.f64 (fma.f64 b (*.f64 b (+.f64 a 3)) (*.f64 a a)) (pow.f64 a 3)) (+.f64 (pow.f64 (hypot.f64 a b) 4) -1))
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (*.f64 b b) (+.f64 3 a))))) 1)
(+.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (+.f64 a 3) (*.f64 b b))))) -1)
(+.f64 -1 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (-.f64 1 a)) (*.f64 (+.f64 a 3) (*.f64 b b))))))
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))) 1)
(+.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))) -1)
(+.f64 -1 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 a (*.f64 a (+.f64 4 (*.f64 a -4))))))
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 12))) 1)
(+.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 12))) -1)
(+.f64 -1 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 12))))
(if (<=.f64 b -6383418085569785/1125899906842624) (-.f64 (+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12))) 1) (if (<=.f64 b 3072543633371665/374144419156711147060143317175368453031918731001856) (-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1) (-.f64 (+.f64 (pow.f64 b 4) (*.f64 b (*.f64 b 12))) 1)))
(if (<=.f64 b -6383418085569785/1125899906842624) (+.f64 (+.f64 (*.f64 b (*.f64 b 12)) (pow.f64 b 4)) -1) (if (<=.f64 b 3072543633371665/374144419156711147060143317175368453031918731001856) (+.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) -1) (+.f64 (+.f64 (*.f64 b (*.f64 b 12)) (pow.f64 b 4)) -1)))
(if (<=.f64 b -6383418085569785/1125899906842624) (+.f64 -1 (+.f64 (*.f64 b (*.f64 b 12)) (pow.f64 b 4))) (if (<=.f64 b 3072543633371665/374144419156711147060143317175368453031918731001856) (+.f64 -1 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4))))) (+.f64 -1 (+.f64 (*.f64 b (*.f64 b 12)) (pow.f64 b 4)))))
(if (<=.f64 b -6383418085569785/1125899906842624) (-.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 1) (if (<=.f64 b 3072543633371665/374144419156711147060143317175368453031918731001856) (-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1) (-.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) 1)))
(if (<=.f64 b -6383418085569785/1125899906842624) (+.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) -1) (if (<=.f64 b 3072543633371665/374144419156711147060143317175368453031918731001856) (+.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) -1) (+.f64 (*.f64 b (*.f64 b (fma.f64 b b 12))) -1)))
(if (<=.f64 b -6383418085569785/1125899906842624) (+.f64 -1 (*.f64 b (*.f64 b (fma.f64 b b 12)))) (if (<=.f64 b 3072543633371665/374144419156711147060143317175368453031918731001856) (+.f64 -1 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4))))) (+.f64 -1 (*.f64 b (*.f64 b (fma.f64 b b 12))))))
(if (<=.f64 b -6383418085569785/1125899906842624) (-.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 12 (*.f64 b b))) 1) (if (<=.f64 b 3072543633371665/374144419156711147060143317175368453031918731001856) (-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1) (-.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 12 (*.f64 b b))) 1)))
(if (<=.f64 b -6383418085569785/1125899906842624) (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 b b) 12)) -1) (if (<=.f64 b 3072543633371665/374144419156711147060143317175368453031918731001856) (+.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) -1) (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 b b) 12)) -1)))
(if (<=.f64 b -6383418085569785/1125899906842624) (+.f64 -1 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 b b) 12))) (if (<=.f64 b 3072543633371665/374144419156711147060143317175368453031918731001856) (+.f64 -1 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4))))) (+.f64 -1 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 b b) 12)))))
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) 1)
(+.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))) -1)
(+.f64 -1 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a (+.f64 a -4)))))
(-.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a a))) 1)
(+.f64 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a a))) -1)
(+.f64 -1 (*.f64 (*.f64 a a) (+.f64 4 (*.f64 a a))))
(-.f64 (*.f64 4 (*.f64 a a)) 1)
(+.f64 (*.f64 4 (*.f64 a a)) -1)
(+.f64 -1 (*.f64 4 (*.f64 a a)))

end136.0ms (2%)

Stop Event
fuel
Compiler

Compiled 534 to 332 computations (37.8% saved)

Profiling

Loading profile data...