Details

Time bar (total: 8.4s)

analyze167.0ms (2%)

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%62.4%12.6%7
25%53.1%22%8
25%44.5%30.5%9
28.1%27.7%44.2%10
31.6%20.1%48.3%11
33.4%10.5%56.1%12
Compiler

Compiled 34 to 22 computations (35.3% saved)

sample1.6s (19.7%)

Results
1.4s8256×body256valid
221.0ms1121×body256invalid

preprocess61.0ms (0.7%)

Algorithm
egg-herbie
Rules
477×sub-neg_binary64
473×fma-neg_binary64
434×associate-+l+_binary64
434×distribute-rgt-in_binary64
393×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03184
111180
234872
3137472
4408264
5732564
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 1 (*.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 1 (*.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 1 (*.f64 3 a)))))) 1)
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (-.f64 (*.f64 4 (fma.f64 (*.f64 a a) (+.f64 a 1) (*.f64 b (*.f64 b (+.f64 1 (*.f64 -3 a)))))) 1))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (fma.f64 4 (fma.f64 b (*.f64 b (+.f64 1 (*.f64 a -3))) (*.f64 a (*.f64 a (+.f64 a 1)))) -1))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 a -3 1))) -1))
(+.f64 (pow.f64 (hypot.f64 a b) 4) (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 a -3 1))) -1))
(fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 a -3 1))) (+.f64 (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 1 (*.f64 3 b)))))) 1)
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (-.f64 (*.f64 4 (fma.f64 (*.f64 b b) (+.f64 b 1) (*.f64 (*.f64 a a) (+.f64 1 (*.f64 -3 b))))) 1))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (fma.f64 4 (fma.f64 (*.f64 a a) (+.f64 1 (*.f64 b -3)) (+.f64 (*.f64 b b) (pow.f64 b 3))) -1))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (fma.f64 4 (fma.f64 (*.f64 a a) (fma.f64 b -3 1) (*.f64 b (fma.f64 b b b))) -1))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (fma.f64 4 (fma.f64 a (*.f64 a (fma.f64 b -3 1)) (*.f64 b (fma.f64 b b b))) -1))
(+.f64 (pow.f64 (hypot.f64 a b) 4) (fma.f64 4 (fma.f64 a (*.f64 a (fma.f64 b -3 1)) (*.f64 b (fma.f64 b b b))) -1))
Compiler

Compiled 35 to 23 computations (34.3% saved)

simplify34.0ms (0.4%)

Algorithm
egg-herbie
Rules
693×fma-def_binary64
669×unsub-neg_binary64
596×cancel-sign-sub-inv_binary64
445×distribute-rgt-in_binary64
312×+-commutative_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
02042
16340
219336
374236
4286732
5488232
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 1 (*.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 1 (*.f64 3 a)))))) 1)
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (-.f64 (*.f64 4 (fma.f64 (*.f64 a a) (+.f64 a 1) (*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a))))) 1))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (fma.f64 4 (fma.f64 a (*.f64 a (+.f64 a 1)) (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3)))) -1))
(+.f64 (pow.f64 (fma.f64 a a (*.f64 b b)) 2) (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 a -3 1)))) -1))
(+.f64 (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 a -3 1)))) (pow.f64 (fma.f64 a a (*.f64 b b)) 2)) -1)
(+.f64 (pow.f64 (hypot.f64 a b) 4) (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 a -3 1)))) -1))
(+.f64 (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 a -3 1)))) (pow.f64 (hypot.f64 a b) 4)) -1)

eval1.0ms (0%)

Compiler

Compiled 56 to 35 computations (37.5% 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.0b
(+.f64 (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 a -3 1)))) (pow.f64 (hypot.f64 a b) 4)) -1)
0.2b
(-.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 1 (*.f64 3 a)))))) 1)
Compiler

Compiled 58 to 37 computations (36.2% saved)

localize16.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 1 (*.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 1 (*.f64 3 a))))))
0.0b
(+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a))))
0.0b
(-.f64 1 (*.f64 3 a))
0.0b
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))
0.1b
(*.f64 (*.f64 a a) (+.f64 1 a))
0.3b
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
0.8b
(*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))

series13.0ms (0.2%)

Counts
4 → 84
Calls

21 calls:

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

rewrite83.0ms (1%)

Algorithm
batch-egg-rewrite
Rules
432×fma-neg_binary64
326×expm1-udef_binary64
325×log1p-udef_binary64
266×log-pow_binary64
204×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01860
141155
2566555
Stop Event
node limit
Counts
4 → 103
Calls
Call 1
Inputs
(*.f64 (*.f64 b b) (-.f64 1 (*.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 1 (*.f64 3 a)))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b b) (*.f64 (*.f64 a -3) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b b) (*.f64 (*.f64 b b) (*.f64 a -3)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 (pow.f64 a 3) 27)) (*.f64 b b)) (+.f64 1 (+.f64 (*.f64 3 a) (*.f64 (*.f64 a a) 9))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 (*.f64 a a) 9)) (*.f64 b b)) (+.f64 1 (*.f64 3 a)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 b b) (-.f64 1 (*.f64 (pow.f64 a 3) 27))) (+.f64 1 (+.f64 (*.f64 3 a) (*.f64 (*.f64 a a) 9))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 b b) (-.f64 1 (*.f64 (*.f64 a a) 9))) (+.f64 1 (*.f64 3 a)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (sqrt.f64 (+.f64 1 (*.f64 a -3)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 b) b) (+.f64 1 (*.f64 a -3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (+.f64 (*.f64 2 (log.f64 b)) (log1p.f64 (*.f64 a -3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (+.f64 (*.f64 2 (log.f64 b)) (log1p.f64 (*.f64 a -3))) 1))))))
((#(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 1 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 2))))) (#(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 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 2) 1)))) (#(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 (pow.f64 (hypot.f64 b a) 2) (hypot.f64 b a)) (hypot.f64 b a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (hypot.f64 b a) 2) (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 2))) (cbrt.f64 (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 expm1.f64 (log1p.f64 (pow.f64 (pow.f64 (hypot.f64 b a) 2) 2)))))) (#(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 (*.f64 2 (log.f64 (hypot.f64 b a)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (*.f64 2 (log.f64 (hypot.f64 b a)))) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a a) (pow.f64 a 3))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a a) (*.f64 (pow.f64 a 3) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 a 3) (*.f64 a a))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (fma.f64 a a (pow.f64 a 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 a 6) (pow.f64 (pow.f64 a 3) 3)) (+.f64 (pow.f64 a 4) (-.f64 (pow.f64 a 6) (*.f64 (*.f64 a a) (pow.f64 a 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 a 4) (pow.f64 a 6)) (-.f64 (*.f64 a a) (pow.f64 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 1 (pow.f64 a 3)) (*.f64 a a)) (+.f64 1 (-.f64 (*.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 (-.f64 (*.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 (fma.f64 a a (pow.f64 a 3)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (fma.f64 a a (pow.f64 a 3))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 a (pow.f64 a 3/2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (fma.f64 a a (pow.f64 a 3)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (fma.f64 a a (pow.f64 a 3)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (fma.f64 a a (pow.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (fma.f64 a a (pow.f64 a 3)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a a))) (exp.f64 (pow.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (pow.f64 a 3)) (pow.f64 (exp.f64 a) a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (pow.f64 a 3)) (+.f64 1 (expm1.f64 (*.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (fma.f64 a a (pow.f64 a 3)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (fma.f64 a a (pow.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (fma.f64 a a (pow.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (fma.f64 a a (pow.f64 a 3))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (fma.f64 a a (pow.f64 a 3))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a a) (pow.f64 a 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a a (pow.f64 a 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a a) 1 (pow.f64 a 3))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 a 4)) (pow.f64 (cbrt.f64 a) 2) (pow.f64 a 3))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (fma.f64 a a (pow.f64 a 3)) 4) (*.f64 b (*.f64 (+.f64 b (*.f64 b (*.f64 a -3))) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 b (*.f64 (+.f64 b (*.f64 b (*.f64 a -3))) 4)) (*.f64 (fma.f64 a a (pow.f64 a 3)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (fma.f64 a a (pow.f64 a 3)) 4) 1) (*.f64 (*.f64 b (*.f64 (+.f64 b (*.f64 b (*.f64 a -3))) 4)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 4 (fma.f64 b (+.f64 b (*.f64 b (*.f64 a -3))) (fma.f64 a a (pow.f64 a 3)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 (fma.f64 a a (pow.f64 a 3)) 4) 3) (pow.f64 (*.f64 b (*.f64 (+.f64 b (*.f64 b (*.f64 a -3))) 4)) 3)) (+.f64 (*.f64 (*.f64 (fma.f64 a a (pow.f64 a 3)) 4) (*.f64 (fma.f64 a a (pow.f64 a 3)) 4)) (-.f64 (*.f64 (*.f64 b (*.f64 (+.f64 b (*.f64 b (*.f64 a -3))) 4)) (*.f64 b (*.f64 (+.f64 b (*.f64 b (*.f64 a -3))) 4))) (*.f64 (*.f64 (fma.f64 a a (pow.f64 a 3)) 4) (*.f64 b (*.f64 (+.f64 b (*.f64 b (*.f64 a -3))) 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 (fma.f64 a a (pow.f64 a 3)) 4) (*.f64 (fma.f64 a a (pow.f64 a 3)) 4)) (*.f64 (*.f64 b (*.f64 (+.f64 b (*.f64 b (*.f64 a -3))) 4)) (*.f64 b (*.f64 (+.f64 b (*.f64 b (*.f64 a -3))) 4)))) (-.f64 (*.f64 (fma.f64 a a (pow.f64 a 3)) 4) (*.f64 b (*.f64 (+.f64 b (*.f64 b (*.f64 a -3))) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 (fma.f64 a a (pow.f64 a 3)) 3) (pow.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3)))) 3)) 4) (+.f64 (pow.f64 (fma.f64 a a (pow.f64 a 3)) 2) (*.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3)))) (-.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3)))) (fma.f64 a a (pow.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 (fma.f64 a a (pow.f64 a 3)) 2) (pow.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3)))) 2)) 4) (-.f64 (fma.f64 a a (pow.f64 a 3)) (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (+.f64 (pow.f64 (fma.f64 a a (pow.f64 a 3)) 3) (pow.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3)))) 3))) (+.f64 (pow.f64 (fma.f64 a a (pow.f64 a 3)) 2) (*.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3)))) (-.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3)))) (fma.f64 a a (pow.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 4 (-.f64 (pow.f64 (fma.f64 a a (pow.f64 a 3)) 2) (pow.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3)))) 2))) (-.f64 (fma.f64 a a (pow.f64 a 3)) (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 4 (fma.f64 b (+.f64 b (*.f64 b (*.f64 a -3))) (fma.f64 a a (pow.f64 a 3)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 4 (fma.f64 b (+.f64 b (*.f64 b (*.f64 a -3))) (fma.f64 a a (pow.f64 a 3)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 4 (fma.f64 b (+.f64 b (*.f64 b (*.f64 a -3))) (fma.f64 a a (pow.f64 a 3))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (hypot.f64 (hypot.f64 a (pow.f64 a 3/2)) (*.f64 b (sqrt.f64 (+.f64 1 (*.f64 a -3)))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (fma.f64 b (+.f64 b (*.f64 b (*.f64 a -3))) (fma.f64 a a (pow.f64 a 3))) 2) 16))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 b (+.f64 b (*.f64 b (*.f64 a -3))) (fma.f64 a a (pow.f64 a 3)))) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 4 (fma.f64 b (+.f64 b (*.f64 b (*.f64 a -3))) (fma.f64 a a (pow.f64 a 3)))))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 b (*.f64 (+.f64 b (*.f64 b (*.f64 a -3))) 4))) (exp.f64 (*.f64 (fma.f64 a a (pow.f64 a 3)) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 4 (fma.f64 b (+.f64 b (*.f64 b (*.f64 a -3))) (fma.f64 a a (pow.f64 a 3)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 4 (fma.f64 b (+.f64 b (*.f64 b (*.f64 a -3))) (fma.f64 a a (pow.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 4 (fma.f64 b (+.f64 b (*.f64 b (*.f64 a -3))) (fma.f64 a a (pow.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 4 (fma.f64 b (+.f64 b (*.f64 b (*.f64 a -3))) (fma.f64 a a (pow.f64 a 3))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 4 (fma.f64 b (+.f64 b (*.f64 b (*.f64 a -3))) (fma.f64 a a (pow.f64 a 3))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (fma.f64 a a (pow.f64 a 3)) 4 (*.f64 b (*.f64 (+.f64 b (*.f64 b (*.f64 a -3))) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (*.f64 b (*.f64 (+.f64 b (*.f64 b (*.f64 a -3))) 4)))))))

simplify83.0ms (1%)

Algorithm
egg-herbie
Rules
514×distribute-rgt-in_binary64
405×unsub-neg_binary64
380×cancel-sign-sub-inv_binary64
366×distribute-rgt-neg-in_binary64
350×distribute-lft-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0491343
11511255
24081128
312721126
419731126
531751126
652391126
Stop Event
node limit
Counts
187 → 141
Calls
Call 1
Inputs
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(pow.f64 b 2)
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(*.f64 -3 (*.f64 a (pow.f64 b 2)))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(*.f64 -3 (*.f64 a (pow.f64 b 2)))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.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 3) (pow.f64 a 2))
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(pow.f64 a 3)
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(pow.f64 a 3)
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(*.f64 4 (pow.f64 b 2))
(+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (*.f64 4 (pow.f64 b 2)))
(+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (pow.f64 b 2))))
(+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (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 -12 (*.f64 a (pow.f64 b 2))) (*.f64 4 (pow.f64 a 3))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (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 -12 (*.f64 a (pow.f64 b 2))) (*.f64 4 (pow.f64 a 3))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (pow.f64 b 2)))))
(*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
Outputs
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(pow.f64 b 2)
(*.f64 b b)
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(*.f64 -3 (*.f64 a (pow.f64 b 2)))
(*.f64 -3 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) -3))
(*.f64 a (*.f64 (*.f64 -3 b) b))
(*.f64 a (*.f64 b (*.f64 b -3)))
(*.f64 b (*.f64 a (*.f64 b -3)))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(*.f64 -3 (*.f64 a (pow.f64 b 2)))
(*.f64 -3 (*.f64 a (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) -3))
(*.f64 a (*.f64 (*.f64 -3 b) b))
(*.f64 a (*.f64 b (*.f64 b -3)))
(*.f64 b (*.f64 a (*.f64 b -3)))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(*.f64 (-.f64 1 (*.f64 3 a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 a -3)) (*.f64 b b))
(*.f64 (fma.f64 a -3 1) (*.f64 b b))
(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 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 2 (*.f64 b (*.f64 a a))) b (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.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 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 b 4) (fma.f64 2 (*.f64 a (*.f64 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 a (*.f64 a 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 b b) (*.f64 a a)) (pow.f64 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 b 4) (fma.f64 2 (*.f64 a (*.f64 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 a (*.f64 a 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))
(fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(fma.f64 2 (*.f64 b (*.f64 a (*.f64 a b))) (pow.f64 a 4))
(fma.f64 2 (*.f64 b (*.f64 b (*.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 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 b 4) (fma.f64 2 (*.f64 a (*.f64 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 a (*.f64 a 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 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 b 4) (fma.f64 2 (*.f64 a (*.f64 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 a (*.f64 a 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))
(fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(fma.f64 2 (*.f64 b (*.f64 a (*.f64 a b))) (pow.f64 a 4))
(fma.f64 2 (*.f64 b (*.f64 b (*.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 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 b 4) (fma.f64 2 (*.f64 a (*.f64 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 a (*.f64 a 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 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 b 4) (fma.f64 2 (*.f64 a (*.f64 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 a (*.f64 a 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))
(fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4))
(fma.f64 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 a 4))
(fma.f64 2 (*.f64 b (*.f64 a (*.f64 a b))) (pow.f64 a 4))
(fma.f64 2 (*.f64 b (*.f64 b (*.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 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 b 4) (fma.f64 2 (*.f64 a (*.f64 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 a (*.f64 a 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 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 b 4) (fma.f64 2 (*.f64 a (*.f64 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 a (*.f64 a 2))) (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 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 2 (*.f64 b (*.f64 a a))) b (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.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 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 b 4) (fma.f64 2 (*.f64 a (*.f64 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 a (*.f64 a 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 b b) (*.f64 a a)) (pow.f64 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 b 4) (fma.f64 2 (*.f64 a (*.f64 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 a (*.f64 a 2))) (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 2 (*.f64 a (*.f64 a (*.f64 b b))) (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 2 (*.f64 b (*.f64 a a))) b (pow.f64 b 4))
(*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.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 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 b 4) (fma.f64 2 (*.f64 a (*.f64 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 a (*.f64 a 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 b b) (*.f64 a a)) (pow.f64 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 b 4) (fma.f64 2 (*.f64 a (*.f64 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 a (*.f64 a 2))) (pow.f64 a 4))
(pow.f64 a 2)
(*.f64 a a)
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (*.f64 a a) (pow.f64 a 3))
(fma.f64 a a (pow.f64 a 3))
(*.f64 a (fma.f64 a a a))
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (*.f64 a a) (pow.f64 a 3))
(fma.f64 a a (pow.f64 a 3))
(*.f64 a (fma.f64 a a a))
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (*.f64 a a) (pow.f64 a 3))
(fma.f64 a a (pow.f64 a 3))
(*.f64 a (fma.f64 a a a))
(pow.f64 a 3)
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (*.f64 a a) (pow.f64 a 3))
(fma.f64 a a (pow.f64 a 3))
(*.f64 a (fma.f64 a a a))
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (*.f64 a a) (pow.f64 a 3))
(fma.f64 a a (pow.f64 a 3))
(*.f64 a (fma.f64 a a a))
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (*.f64 a a) (pow.f64 a 3))
(fma.f64 a a (pow.f64 a 3))
(*.f64 a (fma.f64 a a a))
(pow.f64 a 3)
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (*.f64 a a) (pow.f64 a 3))
(fma.f64 a a (pow.f64 a 3))
(*.f64 a (fma.f64 a a a))
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (*.f64 a a) (pow.f64 a 3))
(fma.f64 a a (pow.f64 a 3))
(*.f64 a (fma.f64 a a a))
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (*.f64 a a) (pow.f64 a 3))
(fma.f64 a a (pow.f64 a 3))
(*.f64 a (fma.f64 a a a))
(*.f64 4 (pow.f64 b 2))
(*.f64 (*.f64 b b) 4)
(*.f64 b (*.f64 b 4))
(+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (*.f64 4 (pow.f64 b 2)))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (*.f64 (*.f64 b b) 4))
(*.f64 (*.f64 b b) (+.f64 4 (*.f64 a -12)))
(*.f64 b (*.f64 b (fma.f64 a -12 4)))
(+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (pow.f64 b 2))))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (*.f64 4 (+.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 4 (fma.f64 a a (*.f64 b b)) (*.f64 a (*.f64 (*.f64 b b) -12)))
(fma.f64 a (*.f64 a 4) (*.f64 b (*.f64 b (fma.f64 a -12 4))))
(*.f64 4 (fma.f64 (fma.f64 a -3 1) (*.f64 b b) (*.f64 a a)))
(+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (pow.f64 b 2)))))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b)))))
(+.f64 (*.f64 4 (fma.f64 a a (pow.f64 a 3))) (*.f64 (*.f64 b b) (+.f64 4 (*.f64 a -12))))
(fma.f64 4 (*.f64 a (fma.f64 a a a)) (*.f64 b (*.f64 b (fma.f64 a -12 4))))
(fma.f64 (*.f64 b b) (fma.f64 a -12 4) (*.f64 a (*.f64 4 (fma.f64 a a a))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (fma.f64 a -3 1) (*.f64 b b))))
(*.f64 4 (pow.f64 a 3))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (pow.f64 a 3)))
(*.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)))
(*.f64 4 (fma.f64 a a (pow.f64 a 3)))
(*.f64 a (*.f64 (fma.f64 a a a) 4))
(*.f64 a (*.f64 4 (fma.f64 a a a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (*.f64 4 (pow.f64 a 3))))
(fma.f64 4 (*.f64 a a) (fma.f64 -12 (*.f64 a (*.f64 b b)) (*.f64 4 (pow.f64 a 3))))
(+.f64 (*.f64 a (*.f64 (*.f64 b b) -12)) (*.f64 4 (fma.f64 a a (pow.f64 a 3))))
(fma.f64 a (*.f64 b (*.f64 b -12)) (*.f64 a (*.f64 (fma.f64 a a a) 4)))
(*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 4 (fma.f64 a a a))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (pow.f64 b 2)))))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b)))))
(+.f64 (*.f64 4 (fma.f64 a a (pow.f64 a 3))) (*.f64 (*.f64 b b) (+.f64 4 (*.f64 a -12))))
(fma.f64 4 (*.f64 a (fma.f64 a a a)) (*.f64 b (*.f64 b (fma.f64 a -12 4))))
(fma.f64 (*.f64 b b) (fma.f64 a -12 4) (*.f64 a (*.f64 4 (fma.f64 a a a))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (fma.f64 a -3 1) (*.f64 b b))))
(*.f64 4 (pow.f64 a 3))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (pow.f64 a 3)))
(*.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)))
(*.f64 4 (fma.f64 a a (pow.f64 a 3)))
(*.f64 a (*.f64 (fma.f64 a a a) 4))
(*.f64 a (*.f64 4 (fma.f64 a a a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (*.f64 4 (pow.f64 a 3))))
(fma.f64 4 (*.f64 a a) (fma.f64 -12 (*.f64 a (*.f64 b b)) (*.f64 4 (pow.f64 a 3))))
(+.f64 (*.f64 a (*.f64 (*.f64 b b) -12)) (*.f64 4 (fma.f64 a a (pow.f64 a 3))))
(fma.f64 a (*.f64 b (*.f64 b -12)) (*.f64 a (*.f64 (fma.f64 a a a) 4)))
(*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 4 (fma.f64 a a a))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (pow.f64 b 2)))))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b)))))
(+.f64 (*.f64 4 (fma.f64 a a (pow.f64 a 3))) (*.f64 (*.f64 b b) (+.f64 4 (*.f64 a -12))))
(fma.f64 4 (*.f64 a (fma.f64 a a a)) (*.f64 b (*.f64 b (fma.f64 a -12 4))))
(fma.f64 (*.f64 b b) (fma.f64 a -12 4) (*.f64 a (*.f64 4 (fma.f64 a a a))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (fma.f64 a -3 1) (*.f64 b b))))
(*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))
(*.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)))
(*.f64 4 (fma.f64 a a (pow.f64 a 3)))
(*.f64 a (*.f64 (fma.f64 a a a) 4))
(*.f64 a (*.f64 4 (fma.f64 a a a)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b)))))
(+.f64 (*.f64 4 (fma.f64 a a (pow.f64 a 3))) (*.f64 (*.f64 b b) (+.f64 4 (*.f64 a -12))))
(fma.f64 4 (*.f64 a (fma.f64 a a a)) (*.f64 b (*.f64 b (fma.f64 a -12 4))))
(fma.f64 (*.f64 b b) (fma.f64 a -12 4) (*.f64 a (*.f64 4 (fma.f64 a a a))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (fma.f64 a -3 1) (*.f64 b b))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b)))))
(+.f64 (*.f64 4 (fma.f64 a a (pow.f64 a 3))) (*.f64 (*.f64 b b) (+.f64 4 (*.f64 a -12))))
(fma.f64 4 (*.f64 a (fma.f64 a a a)) (*.f64 b (*.f64 b (fma.f64 a -12 4))))
(fma.f64 (*.f64 b b) (fma.f64 a -12 4) (*.f64 a (*.f64 4 (fma.f64 a a a))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (fma.f64 a -3 1) (*.f64 b b))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b)))))
(+.f64 (*.f64 4 (fma.f64 a a (pow.f64 a 3))) (*.f64 (*.f64 b b) (+.f64 4 (*.f64 a -12))))
(fma.f64 4 (*.f64 a (fma.f64 a a a)) (*.f64 b (*.f64 b (fma.f64 a -12 4))))
(fma.f64 (*.f64 b b) (fma.f64 a -12 4) (*.f64 a (*.f64 4 (fma.f64 a a a))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (fma.f64 a -3 1) (*.f64 b b))))
(*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (*.f64 (*.f64 b b) 4))
(*.f64 (*.f64 b b) (+.f64 4 (*.f64 a -12)))
(*.f64 b (*.f64 b (fma.f64 a -12 4)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b)))))
(+.f64 (*.f64 4 (fma.f64 a a (pow.f64 a 3))) (*.f64 (*.f64 b b) (+.f64 4 (*.f64 a -12))))
(fma.f64 4 (*.f64 a (fma.f64 a a a)) (*.f64 b (*.f64 b (fma.f64 a -12 4))))
(fma.f64 (*.f64 b b) (fma.f64 a -12 4) (*.f64 a (*.f64 4 (fma.f64 a a a))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (fma.f64 a -3 1) (*.f64 b b))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b)))))
(+.f64 (*.f64 4 (fma.f64 a a (pow.f64 a 3))) (*.f64 (*.f64 b b) (+.f64 4 (*.f64 a -12))))
(fma.f64 4 (*.f64 a (fma.f64 a a a)) (*.f64 b (*.f64 b (fma.f64 a -12 4))))
(fma.f64 (*.f64 b b) (fma.f64 a -12 4) (*.f64 a (*.f64 4 (fma.f64 a a a))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (fma.f64 a -3 1) (*.f64 b b))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b)))))
(+.f64 (*.f64 4 (fma.f64 a a (pow.f64 a 3))) (*.f64 (*.f64 b b) (+.f64 4 (*.f64 a -12))))
(fma.f64 4 (*.f64 a (fma.f64 a a a)) (*.f64 b (*.f64 b (fma.f64 a -12 4))))
(fma.f64 (*.f64 b b) (fma.f64 a -12 4) (*.f64 a (*.f64 4 (fma.f64 a a a))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (fma.f64 a -3 1) (*.f64 b b))))
(*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (*.f64 (*.f64 b b) 4))
(*.f64 (*.f64 b b) (+.f64 4 (*.f64 a -12)))
(*.f64 b (*.f64 b (fma.f64 a -12 4)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b)))))
(+.f64 (*.f64 4 (fma.f64 a a (pow.f64 a 3))) (*.f64 (*.f64 b b) (+.f64 4 (*.f64 a -12))))
(fma.f64 4 (*.f64 a (fma.f64 a a a)) (*.f64 b (*.f64 b (fma.f64 a -12 4))))
(fma.f64 (*.f64 b b) (fma.f64 a -12 4) (*.f64 a (*.f64 4 (fma.f64 a a a))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (fma.f64 a -3 1) (*.f64 b b))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b)))))
(+.f64 (*.f64 4 (fma.f64 a a (pow.f64 a 3))) (*.f64 (*.f64 b b) (+.f64 4 (*.f64 a -12))))
(fma.f64 4 (*.f64 a (fma.f64 a a a)) (*.f64 b (*.f64 b (fma.f64 a -12 4))))
(fma.f64 (*.f64 b b) (fma.f64 a -12 4) (*.f64 a (*.f64 4 (fma.f64 a a a))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (fma.f64 a -3 1) (*.f64 b b))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 -12 (*.f64 a (*.f64 b b)) (fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b)))))
(+.f64 (*.f64 4 (fma.f64 a a (pow.f64 a 3))) (*.f64 (*.f64 b b) (+.f64 4 (*.f64 a -12))))
(fma.f64 4 (*.f64 a (fma.f64 a a a)) (*.f64 b (*.f64 b (fma.f64 a -12 4))))
(fma.f64 (*.f64 b b) (fma.f64 a -12 4) (*.f64 a (*.f64 4 (fma.f64 a a a))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 (fma.f64 a -3 1) (*.f64 b b))))

localize15.0ms (0.2%)

Local error

Found 8 expressions with local error:

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

series11.0ms (0.1%)

Counts
4 → 84
Calls

21 calls:

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

rewrite75.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
904×pow1_binary64
830×add-log-exp_binary64
830×log1p-expm1-u_binary64
830×expm1-log1p-u_binary64
813×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify131.0ms (1.6%)

Algorithm
egg-herbie
Rules
883×fma-def_binary64
804×sqr-pow_binary64
671×unswap-sqr_binary64
409×*-commutative_binary64
388×cube-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0301089
182842
2195838
3480834
41452834
52705834
63792834
73968834
84212834
94557834
105096834
115842834
126665834
137389834
Stop Event
node limit
Counts
156 → 102
Calls
Call 1
Inputs
(pow.f64 b 2)
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2)))))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))))
(pow.f64 a 3)
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2)))))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))))
(pow.f64 a 3)
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2)))))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))))
(*.f64 a (+.f64 a (pow.f64 a 2)))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(*.f64 b (+.f64 (*.f64 -3 a) 1))
(*.f64 b (+.f64 (*.f64 -3 a) 1))
(*.f64 b (+.f64 (*.f64 -3 a) 1))
(*.f64 b (+.f64 (*.f64 -3 a) 1))
(*.f64 (+.f64 1 (*.f64 -3 a)) b)
(*.f64 (+.f64 1 (*.f64 -3 a)) b)
(*.f64 (+.f64 1 (*.f64 -3 a)) b)
(*.f64 (+.f64 1 (*.f64 -3 a)) b)
(*.f64 b (+.f64 (*.f64 -3 a) 1))
(*.f64 b (+.f64 (*.f64 -3 a) 1))
(*.f64 b (+.f64 (*.f64 -3 a) 1))
(*.f64 b (+.f64 (*.f64 -3 a) 1))
b
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(*.f64 -3 (*.f64 a b))
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(*.f64 -3 (*.f64 a b))
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(pow.f64 b 2)
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(*.f64 -3 (*.f64 a (pow.f64 b 2)))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(*.f64 -3 (*.f64 a (pow.f64 b 2)))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
1
(+.f64 (*.f64 -3 a) 1)
(+.f64 (*.f64 -3 a) 1)
(+.f64 (*.f64 -3 a) 1)
(*.f64 -3 a)
(+.f64 1 (*.f64 -3 a))
(+.f64 1 (*.f64 -3 a))
(+.f64 1 (*.f64 -3 a))
(*.f64 -3 a)
(+.f64 1 (*.f64 -3 a))
(+.f64 1 (*.f64 -3 a))
(+.f64 1 (*.f64 -3 a))
Outputs
(pow.f64 b 2)
(*.f64 b b)
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2)))))
(+.f64 (+.f64 (*.f64 b b) (*.f64 a a)) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(+.f64 (*.f64 a a) (*.f64 (*.f64 b b) (fma.f64 -3 a 1)))
(fma.f64 (*.f64 b b) (fma.f64 -3 a 1) (*.f64 a a))
(fma.f64 b b (*.f64 a (fma.f64 (*.f64 b b) -3 a)))
(fma.f64 b (*.f64 b (fma.f64 -3 a 1)) (*.f64 a a))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))))
(+.f64 (+.f64 (+.f64 (*.f64 b b) (*.f64 a a)) (*.f64 -3 (*.f64 (*.f64 b b) a))) (pow.f64 a 3))
(fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 -3 a 1)))
(fma.f64 b (*.f64 b (fma.f64 -3 a 1)) (*.f64 a (fma.f64 a a a)))
(fma.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)) (*.f64 b b))
(pow.f64 a 3)
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (*.f64 a a) (pow.f64 a 3))
(*.f64 a (fma.f64 a a a))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2)))))
(+.f64 (+.f64 (*.f64 a a) (pow.f64 a 3)) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(fma.f64 a (fma.f64 a a a) (*.f64 -3 (*.f64 b (*.f64 b a))))
(*.f64 a (+.f64 (fma.f64 a a a) (*.f64 b (*.f64 b -3))))
(*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))))
(+.f64 (+.f64 (+.f64 (*.f64 b b) (*.f64 a a)) (*.f64 -3 (*.f64 (*.f64 b b) a))) (pow.f64 a 3))
(fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 -3 a 1)))
(fma.f64 b (*.f64 b (fma.f64 -3 a 1)) (*.f64 a (fma.f64 a a a)))
(fma.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)) (*.f64 b b))
(pow.f64 a 3)
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (*.f64 a a) (pow.f64 a 3))
(*.f64 a (fma.f64 a a a))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2)))))
(+.f64 (+.f64 (*.f64 a a) (pow.f64 a 3)) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(fma.f64 a (fma.f64 a a a) (*.f64 -3 (*.f64 b (*.f64 b a))))
(*.f64 a (+.f64 (fma.f64 a a a) (*.f64 b (*.f64 b -3))))
(*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))))
(+.f64 (+.f64 (+.f64 (*.f64 b b) (*.f64 a a)) (*.f64 -3 (*.f64 (*.f64 b b) a))) (pow.f64 a 3))
(fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 -3 a 1)))
(fma.f64 b (*.f64 b (fma.f64 -3 a 1)) (*.f64 a (fma.f64 a a a)))
(fma.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)) (*.f64 b b))
(*.f64 a (+.f64 a (pow.f64 a 2)))
(+.f64 (*.f64 a a) (pow.f64 a 3))
(*.f64 a (fma.f64 a a a))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(+.f64 (+.f64 (+.f64 (*.f64 b b) (*.f64 a a)) (*.f64 -3 (*.f64 (*.f64 b b) a))) (pow.f64 a 3))
(fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 -3 a 1)))
(fma.f64 b (*.f64 b (fma.f64 -3 a 1)) (*.f64 a (fma.f64 a a a)))
(fma.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)) (*.f64 b b))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(+.f64 (+.f64 (+.f64 (*.f64 b b) (*.f64 a a)) (*.f64 -3 (*.f64 (*.f64 b b) a))) (pow.f64 a 3))
(fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 -3 a 1)))
(fma.f64 b (*.f64 b (fma.f64 -3 a 1)) (*.f64 a (fma.f64 a a a)))
(fma.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)) (*.f64 b b))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(+.f64 (+.f64 (+.f64 (*.f64 b b) (*.f64 a a)) (*.f64 -3 (*.f64 (*.f64 b b) a))) (pow.f64 a 3))
(fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 -3 a 1)))
(fma.f64 b (*.f64 b (fma.f64 -3 a 1)) (*.f64 a (fma.f64 a a a)))
(fma.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(+.f64 (+.f64 (+.f64 (*.f64 b b) (*.f64 a a)) (*.f64 -3 (*.f64 (*.f64 b b) a))) (pow.f64 a 3))
(fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 -3 a 1)))
(fma.f64 b (*.f64 b (fma.f64 -3 a 1)) (*.f64 a (fma.f64 a a a)))
(fma.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)) (*.f64 b b))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(+.f64 (+.f64 (+.f64 (*.f64 b b) (*.f64 a a)) (*.f64 -3 (*.f64 (*.f64 b b) a))) (pow.f64 a 3))
(fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 -3 a 1)))
(fma.f64 b (*.f64 b (fma.f64 -3 a 1)) (*.f64 a (fma.f64 a a a)))
(fma.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)) (*.f64 b b))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(+.f64 (+.f64 (+.f64 (*.f64 b b) (*.f64 a a)) (*.f64 -3 (*.f64 (*.f64 b b) a))) (pow.f64 a 3))
(fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 -3 a 1)))
(fma.f64 b (*.f64 b (fma.f64 -3 a 1)) (*.f64 a (fma.f64 a a a)))
(fma.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)) (*.f64 b b))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(+.f64 (+.f64 (+.f64 (*.f64 b b) (*.f64 a a)) (*.f64 -3 (*.f64 (*.f64 b b) a))) (pow.f64 a 3))
(fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 -3 a 1)))
(fma.f64 b (*.f64 b (fma.f64 -3 a 1)) (*.f64 a (fma.f64 a a a)))
(fma.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)) (*.f64 b b))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(+.f64 (+.f64 (+.f64 (*.f64 b b) (*.f64 a a)) (*.f64 -3 (*.f64 (*.f64 b b) a))) (pow.f64 a 3))
(fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 -3 a 1)))
(fma.f64 b (*.f64 b (fma.f64 -3 a 1)) (*.f64 a (fma.f64 a a a)))
(fma.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)) (*.f64 b b))
(+.f64 (*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2)) (*.f64 a (+.f64 a (pow.f64 a 2))))
(+.f64 (+.f64 (+.f64 (*.f64 b b) (*.f64 a a)) (*.f64 -3 (*.f64 (*.f64 b b) a))) (pow.f64 a 3))
(fma.f64 a (fma.f64 a a a) (*.f64 (*.f64 b b) (fma.f64 -3 a 1)))
(fma.f64 b (*.f64 b (fma.f64 -3 a 1)) (*.f64 a (fma.f64 a a a)))
(fma.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)) (*.f64 b b))
(*.f64 b (+.f64 (*.f64 -3 a) 1))
(*.f64 b (fma.f64 -3 a 1))
(*.f64 b (+.f64 (*.f64 -3 a) 1))
(*.f64 b (fma.f64 -3 a 1))
(*.f64 b (+.f64 (*.f64 -3 a) 1))
(*.f64 b (fma.f64 -3 a 1))
(*.f64 b (+.f64 (*.f64 -3 a) 1))
(*.f64 b (fma.f64 -3 a 1))
(*.f64 (+.f64 1 (*.f64 -3 a)) b)
(*.f64 b (fma.f64 -3 a 1))
(*.f64 (+.f64 1 (*.f64 -3 a)) b)
(*.f64 b (fma.f64 -3 a 1))
(*.f64 (+.f64 1 (*.f64 -3 a)) b)
(*.f64 b (fma.f64 -3 a 1))
(*.f64 (+.f64 1 (*.f64 -3 a)) b)
(*.f64 b (fma.f64 -3 a 1))
(*.f64 b (+.f64 (*.f64 -3 a) 1))
(*.f64 b (fma.f64 -3 a 1))
(*.f64 b (+.f64 (*.f64 -3 a) 1))
(*.f64 b (fma.f64 -3 a 1))
(*.f64 b (+.f64 (*.f64 -3 a) 1))
(*.f64 b (fma.f64 -3 a 1))
(*.f64 b (+.f64 (*.f64 -3 a) 1))
(*.f64 b (fma.f64 -3 a 1))
b
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(*.f64 b (fma.f64 -3 a 1))
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(*.f64 b (fma.f64 -3 a 1))
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(*.f64 b (fma.f64 -3 a 1))
(*.f64 -3 (*.f64 a b))
(*.f64 -3 (*.f64 b a))
(*.f64 a (*.f64 b -3))
(*.f64 b (*.f64 -3 a))
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(*.f64 b (fma.f64 -3 a 1))
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(*.f64 b (fma.f64 -3 a 1))
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(*.f64 b (fma.f64 -3 a 1))
(*.f64 -3 (*.f64 a b))
(*.f64 -3 (*.f64 b a))
(*.f64 a (*.f64 b -3))
(*.f64 b (*.f64 -3 a))
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(*.f64 b (fma.f64 -3 a 1))
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(*.f64 b (fma.f64 -3 a 1))
(+.f64 (*.f64 -3 (*.f64 a b)) b)
(*.f64 b (fma.f64 -3 a 1))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 (+.f64 1 (*.f64 -3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(pow.f64 b 2)
(*.f64 b b)
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 -3 (*.f64 a (pow.f64 b 2)))
(*.f64 -3 (*.f64 (*.f64 b b) a))
(*.f64 -3 (*.f64 b (*.f64 b a)))
(*.f64 b (*.f64 a (*.f64 b -3)))
(*.f64 (*.f64 b b) (*.f64 -3 a))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 -3 (*.f64 a (pow.f64 b 2)))
(*.f64 -3 (*.f64 (*.f64 b b) a))
(*.f64 -3 (*.f64 b (*.f64 b a)))
(*.f64 b (*.f64 a (*.f64 b -3)))
(*.f64 (*.f64 b b) (*.f64 -3 a))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 b b) (*.f64 -3 (*.f64 (*.f64 b b) a)))
(*.f64 (*.f64 b b) (fma.f64 -3 a 1))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
1
(+.f64 (*.f64 -3 a) 1)
(fma.f64 -3 a 1)
(+.f64 (*.f64 -3 a) 1)
(fma.f64 -3 a 1)
(+.f64 (*.f64 -3 a) 1)
(fma.f64 -3 a 1)
(*.f64 -3 a)
(+.f64 1 (*.f64 -3 a))
(fma.f64 -3 a 1)
(+.f64 1 (*.f64 -3 a))
(fma.f64 -3 a 1)
(+.f64 1 (*.f64 -3 a))
(fma.f64 -3 a 1)
(*.f64 -3 a)
(+.f64 1 (*.f64 -3 a))
(fma.f64 -3 a 1)
(+.f64 1 (*.f64 -3 a))
(fma.f64 -3 a 1)
(+.f64 1 (*.f64 -3 a))
(fma.f64 -3 a 1)

eval139.0ms (1.7%)

Compiler

Compiled 7596 to 4355 computations (42.7% saved)

prune44.0ms (0.5%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New2367243
Fresh000
Picked101
Done101
Total2387245
Error
0b
Counts
245 → 7
Alt Table
Click to see full alt table
StatusErrorProgram
12.3b
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
1.7b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1)
9.1b
(-.f64 (+.f64 (fma.f64 2 (*.f64 b (*.f64 b (*.f64 a a))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
9.4b
(-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
0.1b
(-.f64 (+.f64 (fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 a (*.f64 a 2))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
1.9b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (expm1.f64 (log1p.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3))))))))) 1)
12.3b
(-.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
Compiler

Compiled 438 to 298 computations (32% saved)

localize22.0ms (0.3%)

Local error

Found 8 expressions with local error:

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

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite50.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
952×pow1_binary64
873×add-log-exp_binary64
873×log1p-expm1-u_binary64
873×expm1-log1p-u_binary64
851×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify154.0ms (1.8%)

Algorithm
egg-herbie
Rules
1076×sqr-pow_binary64
702×fma-def_binary64
528×cube-prod_binary64
527×pow-sqr_binary64
514×fabs-mul_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
017402
142402
299378
3305378
41193378
52395378
62796378
72959378
83175378
93404378
103710378
114096378
124561378
135175378
145954378
156332378
166650378
176924378
187100378
197234378
Stop Event
node limit
Counts
45 → 30
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))) (+.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 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)))
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 2 (*.f64 (*.f64 a b) (*.f64 a b)) (pow.f64 a 4))
(*.f64 a (fma.f64 b (*.f64 2 (*.f64 a b)) (pow.f64 a 3)))
(+.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 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 a 4) (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (fma.f64 a a (*.f64 2 (*.f64 b b))) (pow.f64 b 4))
(fma.f64 a (fma.f64 2 (*.f64 b (*.f64 a b)) (pow.f64 a 3)) (pow.f64 b 4))
(fma.f64 a (fma.f64 b (*.f64 2 (*.f64 a b)) (pow.f64 a 3)) (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 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 a 4) (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (fma.f64 a a (*.f64 2 (*.f64 b b))) (pow.f64 b 4))
(fma.f64 a (fma.f64 2 (*.f64 b (*.f64 a b)) (pow.f64 a 3)) (pow.f64 b 4))
(fma.f64 a (fma.f64 b (*.f64 2 (*.f64 a b)) (pow.f64 a 3)) (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))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(*.f64 (*.f64 b b) (fma.f64 a (*.f64 a 2) (*.f64 b b)))
(*.f64 b (fma.f64 a (*.f64 2 (*.f64 a b)) (pow.f64 b 3)))
(+.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 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 a 4) (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (fma.f64 a a (*.f64 2 (*.f64 b b))) (pow.f64 b 4))
(fma.f64 a (fma.f64 2 (*.f64 b (*.f64 a b)) (pow.f64 a 3)) (pow.f64 b 4))
(fma.f64 a (fma.f64 b (*.f64 2 (*.f64 a b)) (pow.f64 a 3)) (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 (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 a 4) (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (fma.f64 a a (*.f64 2 (*.f64 b b))) (pow.f64 b 4))
(fma.f64 a (fma.f64 2 (*.f64 b (*.f64 a b)) (pow.f64 a 3)) (pow.f64 b 4))
(fma.f64 a (fma.f64 b (*.f64 2 (*.f64 a b)) (pow.f64 a 3)) (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))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(*.f64 (*.f64 b b) (fma.f64 a (*.f64 a 2) (*.f64 b b)))
(*.f64 b (fma.f64 a (*.f64 2 (*.f64 a b)) (pow.f64 b 3)))
(+.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 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 a 4) (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (fma.f64 a a (*.f64 2 (*.f64 b b))) (pow.f64 b 4))
(fma.f64 a (fma.f64 2 (*.f64 b (*.f64 a b)) (pow.f64 a 3)) (pow.f64 b 4))
(fma.f64 a (fma.f64 b (*.f64 2 (*.f64 a b)) (pow.f64 a 3)) (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 (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 a 4) (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (fma.f64 a a (*.f64 2 (*.f64 b b))) (pow.f64 b 4))
(fma.f64 a (fma.f64 2 (*.f64 b (*.f64 a b)) (pow.f64 a 3)) (pow.f64 b 4))
(fma.f64 a (fma.f64 b (*.f64 2 (*.f64 a b)) (pow.f64 a 3)) (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))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(*.f64 (*.f64 b b) (fma.f64 a (*.f64 a 2) (*.f64 b b)))
(*.f64 b (fma.f64 a (*.f64 2 (*.f64 a b)) (pow.f64 b 3)))
(+.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 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 a 4) (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (fma.f64 a a (*.f64 2 (*.f64 b b))) (pow.f64 b 4))
(fma.f64 a (fma.f64 2 (*.f64 b (*.f64 a b)) (pow.f64 a 3)) (pow.f64 b 4))
(fma.f64 a (fma.f64 b (*.f64 2 (*.f64 a b)) (pow.f64 a 3)) (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 (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 a 4) (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (fma.f64 a a (*.f64 2 (*.f64 b b))) (pow.f64 b 4))
(fma.f64 a (fma.f64 2 (*.f64 b (*.f64 a b)) (pow.f64 a 3)) (pow.f64 b 4))
(fma.f64 a (fma.f64 b (*.f64 2 (*.f64 a b)) (pow.f64 a 3)) (pow.f64 b 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 (*.f64 a b) (*.f64 a b)) (pow.f64 a 4))
(*.f64 a (fma.f64 b (*.f64 2 (*.f64 a b)) (pow.f64 a 3)))
(+.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 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 a 4) (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (fma.f64 a a (*.f64 2 (*.f64 b b))) (pow.f64 b 4))
(fma.f64 a (fma.f64 2 (*.f64 b (*.f64 a b)) (pow.f64 a 3)) (pow.f64 b 4))
(fma.f64 a (fma.f64 b (*.f64 2 (*.f64 a b)) (pow.f64 a 3)) (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 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 a 4) (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (fma.f64 a a (*.f64 2 (*.f64 b b))) (pow.f64 b 4))
(fma.f64 a (fma.f64 2 (*.f64 b (*.f64 a b)) (pow.f64 a 3)) (pow.f64 b 4))
(fma.f64 a (fma.f64 b (*.f64 2 (*.f64 a b)) (pow.f64 a 3)) (pow.f64 b 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 (*.f64 a b) (*.f64 a b)) (pow.f64 a 4))
(*.f64 a (fma.f64 b (*.f64 2 (*.f64 a b)) (pow.f64 a 3)))
(+.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 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 a 4) (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (fma.f64 a a (*.f64 2 (*.f64 b b))) (pow.f64 b 4))
(fma.f64 a (fma.f64 2 (*.f64 b (*.f64 a b)) (pow.f64 a 3)) (pow.f64 b 4))
(fma.f64 a (fma.f64 b (*.f64 2 (*.f64 a b)) (pow.f64 a 3)) (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 a 4)) (pow.f64 b 4))
(+.f64 (pow.f64 a 4) (fma.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (*.f64 b b)) (pow.f64 a 4))
(fma.f64 (*.f64 a a) (fma.f64 a a (*.f64 2 (*.f64 b b))) (pow.f64 b 4))
(fma.f64 a (fma.f64 2 (*.f64 b (*.f64 a b)) (pow.f64 a 3)) (pow.f64 b 4))
(fma.f64 a (fma.f64 b (*.f64 2 (*.f64 a b)) (pow.f64 a 3)) (pow.f64 b 4))

localize37.0ms (0.4%)

Local error

Found 4 expressions with local error:

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

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite61.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
572×log-prod_binary64
472×fma-def_binary64
436×pow-prod-down_binary64
315×pow2_binary64
219×fma-neg_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify100.0ms (1.2%)

Algorithm
egg-herbie
Rules
619×distribute-rgt-in_binary64
599×associate-+l+_binary64
587×associate-+r+_binary64
578×distribute-lft-in_binary64
423×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
028519
174425
2191401
3572401
41943401
53055401
63241401
73479401
83932401
94796401
106498401
117992401
Stop Event
node limit
Counts
88 → 80
Calls
Call 1
Inputs
(+.f64 (pow.f64 b 4) (*.f64 4 (pow.f64 b 2)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 4 (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) (+.f64 (*.f64 4 (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) (+.f64 (*.f64 4 (pow.f64 b 2)) (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) (+.f64 (*.f64 4 (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) (+.f64 (*.f64 4 (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))) (+.f64 (pow.f64 b 4) (+.f64 (*.f64 4 (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) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 a 4))))
(pow.f64 a 4)
(+.f64 (pow.f64 a 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (pow.f64 b 4) (+.f64 (pow.f64 a 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2))))
(+.f64 (pow.f64 b 4) (+.f64 (pow.f64 a 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2))))
(pow.f64 b 4)
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (pow.f64 a 4) (+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2))))
(+.f64 (pow.f64 a 4) (+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2))))
(pow.f64 b 4)
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (pow.f64 a 4) (+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2))))
(+.f64 (pow.f64 a 4) (+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2))))
Outputs
(+.f64 (pow.f64 b 4) (*.f64 4 (pow.f64 b 2)))
(fma.f64 4 (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 b b 4))
(*.f64 b (*.f64 b (fma.f64 b b 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4)))
(fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (fma.f64 4 (*.f64 b b) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (fma.f64 4 (*.f64 b b) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 b b (fma.f64 2 (*.f64 a a) 4)) (pow.f64 a 4))
(fma.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (fma.f64 4 (*.f64 b b) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 b b (fma.f64 2 (*.f64 a a) 4)) (pow.f64 a 4))
(fma.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b 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 b b) (*.f64 a a)) (pow.f64 a 4))
(fma.f64 2 (*.f64 b (*.f64 b (*.f64 a a))) (pow.f64 a 4))
(*.f64 a (*.f64 a (fma.f64 b (*.f64 b 2) (*.f64 a a))))
(fma.f64 b (*.f64 2 (*.f64 b (*.f64 a a))) (pow.f64 a 4))
(*.f64 a (*.f64 a (fma.f64 2 (*.f64 b b) (*.f64 a a))))
(fma.f64 a (*.f64 b (*.f64 b (*.f64 2 a))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 a 4))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (fma.f64 4 (*.f64 b b) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 b b (fma.f64 2 (*.f64 a a) 4)) (pow.f64 a 4))
(fma.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 a 4))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (fma.f64 4 (*.f64 b b) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 b b (fma.f64 2 (*.f64 a a) 4)) (pow.f64 a 4))
(fma.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b 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 b b) (*.f64 a a)) (pow.f64 a 4))
(fma.f64 2 (*.f64 b (*.f64 b (*.f64 a a))) (pow.f64 a 4))
(*.f64 a (*.f64 a (fma.f64 b (*.f64 b 2) (*.f64 a a))))
(fma.f64 b (*.f64 2 (*.f64 b (*.f64 a a))) (pow.f64 a 4))
(*.f64 a (*.f64 a (fma.f64 2 (*.f64 b b) (*.f64 a a))))
(fma.f64 a (*.f64 b (*.f64 b (*.f64 2 a))) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 a 4))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (fma.f64 4 (*.f64 b b) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 b b (fma.f64 2 (*.f64 a a) 4)) (pow.f64 a 4))
(fma.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)) (pow.f64 a 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 a 4))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (fma.f64 4 (*.f64 b b) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 b b (fma.f64 2 (*.f64 a a) 4)) (pow.f64 a 4))
(fma.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)) (pow.f64 a 4))
(pow.f64 a 4)
(+.f64 (pow.f64 a 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (pow.f64 a 4) (*.f64 (*.f64 b b) (+.f64 4 (*.f64 2 (*.f64 a a)))))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 a 4))
(fma.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) 4)) (pow.f64 a 4))
(+.f64 (pow.f64 b 4) (+.f64 (pow.f64 a 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (fma.f64 4 (*.f64 b b) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 b b (fma.f64 2 (*.f64 a a) 4)) (pow.f64 a 4))
(fma.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 b 4) (+.f64 (pow.f64 a 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (fma.f64 4 (*.f64 b b) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 b b (fma.f64 2 (*.f64 a a) 4)) (pow.f64 a 4))
(fma.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)) (pow.f64 a 4))
(pow.f64 b 4)
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (fma.f64 4 (*.f64 b b) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (pow.f64 a 4) (+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (fma.f64 4 (*.f64 b b) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 b b (fma.f64 2 (*.f64 a a) 4)) (pow.f64 a 4))
(fma.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 a 4) (+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (fma.f64 4 (*.f64 b b) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 b b (fma.f64 2 (*.f64 a a) 4)) (pow.f64 a 4))
(fma.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)) (pow.f64 a 4))
(pow.f64 b 4)
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (fma.f64 4 (*.f64 b b) (pow.f64 b 4)))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (pow.f64 a 4) (+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (fma.f64 4 (*.f64 b b) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 b b (fma.f64 2 (*.f64 a a) 4)) (pow.f64 a 4))
(fma.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)) (pow.f64 a 4))
(+.f64 (pow.f64 a 4) (+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 b b) (*.f64 a a)) (pow.f64 a 4)) (fma.f64 4 (*.f64 b b) (pow.f64 b 4)))
(+.f64 (pow.f64 b 4) (fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) 4) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 b b (fma.f64 2 (*.f64 a a) 4)) (pow.f64 a 4))
(fma.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))) (pow.f64 a 4))
(fma.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)) (pow.f64 a 4))

localize26.0ms (0.3%)

Local error

Found 8 expressions with local error:

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

series2.0ms (0%)

Counts
1 → 24
Calls

6 calls:

TimeVariablePointExpression
0.0ms
b
@0
(+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.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 1 (*.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 1 (*.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 1 (*.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 1 (*.f64 3 a))))))

rewrite76.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
467×fma-neg_binary64
319×expm1-udef_binary64
318×log1p-udef_binary64
260×log-pow_binary64
196×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify134.0ms (1.6%)

Algorithm
egg-herbie
Rules
574×associate-*l*_binary64
455×distribute-rgt-out_binary64
428×associate-+l-_binary64
376×associate-*r*_binary64
375×distribute-lft-out_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
035566
1114527
2327437
31132437
43136437
55643437
Stop Event
node limit
Counts
67 → 62
Calls
Call 1
Inputs
(*.f64 4 (pow.f64 b 2))
(+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (*.f64 4 (pow.f64 b 2)))
(+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (pow.f64 b 2))))
(+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (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 -12 (*.f64 a (pow.f64 b 2))) (+.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 -12 (*.f64 a (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (pow.f64 a 4))))
(+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
Outputs
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (*.f64 4 (pow.f64 b 2)))
(fma.f64 -12 (*.f64 (*.f64 b b) a) (*.f64 4 (*.f64 b b)))
(*.f64 (*.f64 b b) (+.f64 4 (*.f64 -12 a)))
(*.f64 (*.f64 b b) (fma.f64 -12 a 4))
(*.f64 b (*.f64 b (fma.f64 -12 a 4)))
(+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (pow.f64 b 2))))
(fma.f64 -12 (*.f64 (*.f64 b b) a) (*.f64 4 (+.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 4 (fma.f64 a a (*.f64 b b)) (*.f64 (*.f64 b b) (*.f64 -12 a)))
(fma.f64 4 (*.f64 a a) (*.f64 (*.f64 b b) (fma.f64 -12 a 4)))
(fma.f64 (*.f64 b b) (fma.f64 -12 a 4) (*.f64 4 (*.f64 a a)))
(+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (pow.f64 b 2)))))
(fma.f64 -12 (*.f64 (*.f64 b b) a) (fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b)))))
(+.f64 (*.f64 (*.f64 4 (*.f64 a a)) (+.f64 a 1)) (*.f64 (*.f64 b b) (+.f64 4 (*.f64 -12 a))))
(fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (*.f64 (*.f64 b b) (fma.f64 -12 a 4)))
(fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (*.f64 b (*.f64 b (fma.f64 -12 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 4 a))
(+.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 (*.f64 a a) (pow.f64 a 3)) (pow.f64 a 4))
(fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (pow.f64 a 4))
(+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (pow.f64 a 4))))
(fma.f64 -12 (*.f64 (*.f64 b b) a) (fma.f64 4 (*.f64 a a) (fma.f64 4 (pow.f64 a 3) (pow.f64 a 4))))
(fma.f64 -12 (*.f64 b (*.f64 b a)) (fma.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (*.f64 -12 a) (fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (pow.f64 a 4)))
(*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 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 (*.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 (*.f64 a a) (pow.f64 a 3)) (pow.f64 a 4))
(fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (pow.f64 a 4))
(+.f64 (*.f64 -12 (*.f64 a (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (pow.f64 a 4))))
(fma.f64 -12 (*.f64 (*.f64 b b) a) (fma.f64 4 (*.f64 a a) (fma.f64 4 (pow.f64 a 3) (pow.f64 a 4))))
(fma.f64 -12 (*.f64 b (*.f64 b a)) (fma.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 (*.f64 b b) (*.f64 -12 a) (fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (pow.f64 a 4)))
(*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 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 (*.f64 a a) (pow.f64 a 3)) (pow.f64 a 4))
(fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (pow.f64 a 4))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (*.f64 a a) (+.f64 a 1)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3))) (fma.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (fma.f64 (*.f64 b b) (fma.f64 -12 a 4) (pow.f64 a 4)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (*.f64 a a) (+.f64 a 1)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3))) (fma.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (fma.f64 (*.f64 b b) (fma.f64 -12 a 4) (pow.f64 a 4)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (*.f64 a a) (+.f64 a 1)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3))) (fma.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (fma.f64 (*.f64 b b) (fma.f64 -12 a 4) (pow.f64 a 4)))
(*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(fma.f64 -12 (*.f64 (*.f64 b b) a) (*.f64 4 (*.f64 b b)))
(*.f64 (*.f64 b b) (+.f64 4 (*.f64 -12 a)))
(*.f64 (*.f64 b b) (fma.f64 -12 a 4))
(*.f64 b (*.f64 b (fma.f64 -12 a 4)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (*.f64 a a) (+.f64 a 1)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3))) (fma.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (fma.f64 (*.f64 b b) (fma.f64 -12 a 4) (pow.f64 a 4)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (*.f64 a a) (+.f64 a 1)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3))) (fma.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (fma.f64 (*.f64 b b) (fma.f64 -12 a 4) (pow.f64 a 4)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (*.f64 a a) (+.f64 a 1)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3))) (fma.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (fma.f64 (*.f64 b b) (fma.f64 -12 a 4) (pow.f64 a 4)))
(*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(fma.f64 -12 (*.f64 (*.f64 b b) a) (*.f64 4 (*.f64 b b)))
(*.f64 (*.f64 b b) (+.f64 4 (*.f64 -12 a)))
(*.f64 (*.f64 b b) (fma.f64 -12 a 4))
(*.f64 b (*.f64 b (fma.f64 -12 a 4)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (*.f64 a a) (+.f64 a 1)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3))) (fma.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (fma.f64 (*.f64 b b) (fma.f64 -12 a 4) (pow.f64 a 4)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (*.f64 a a) (+.f64 a 1)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3))) (fma.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (fma.f64 (*.f64 b b) (fma.f64 -12 a 4) (pow.f64 a 4)))
(+.f64 (*.f64 4 (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a))) (+.f64 (pow.f64 a 4) (*.f64 4 (*.f64 (*.f64 a a) (+.f64 a 1)))))
(fma.f64 4 (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3))) (fma.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)) (pow.f64 a 4)))
(fma.f64 4 (fma.f64 a a (pow.f64 a 3)) (fma.f64 (*.f64 b b) (fma.f64 -12 a 4) (pow.f64 a 4)))

localize16.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 1 (*.f64 3 a)))))
0.0b
(+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a))))
0.0b
(-.f64 1 (*.f64 3 a))
0.0b
(+.f64 (pow.f64 b 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a))))))
0.0b
(+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a))))
0.0b
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))
0.1b
(*.f64 (*.f64 a a) (+.f64 1 a))
0.8b
(*.f64 (*.f64 b b) (-.f64 1 (*.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 1 (*.f64 3 a))))
0.0ms
b
@0
(+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a))))
0.0ms
b
@inf
(+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a))))
0.0ms
a
@-inf
(+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a))))
0.0ms
a
@inf
(+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a))))

rewrite68.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
777×fma-def_binary64
697×log-prod_binary64
316×fma-neg_binary64
244×expm1-udef_binary64
243×log1p-udef_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify173.0ms (2.1%)

Algorithm
egg-herbie
Rules
689×unsub-neg_binary64
671×unswap-sqr_binary64
480×fma-def_binary64
416×fma-neg_binary64
387×distribute-rgt-in_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
024492
170385
2187346
3524342
41859342
53138342
65985342
Stop Event
node limit
Counts
105 → 97
Calls
Call 1
Inputs
(pow.f64 b 2)
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2)))))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))))
(pow.f64 a 3)
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2)))))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))))
(pow.f64 a 3)
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2)))))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))))
(*.f64 (pow.f64 a 2) (+.f64 1 a))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
Outputs
(pow.f64 b 2)
(*.f64 b b)
(+.f64 (pow.f64 b 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))
(+.f64 (*.f64 b b) (*.f64 (*.f64 -3 a) (*.f64 b b)))
(*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 b (fma.f64 b (*.f64 -3 a) b))
(+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2)))))
(+.f64 (*.f64 b b) (+.f64 (*.f64 (*.f64 -3 a) (*.f64 b b)) (*.f64 a a)))
(fma.f64 b b (fma.f64 -3 (*.f64 b (*.f64 b a)) (*.f64 a a)))
(fma.f64 (*.f64 b b) (fma.f64 -3 a 1) (*.f64 a a))
(fma.f64 b (fma.f64 b (*.f64 -3 a) b) (*.f64 a a))
(fma.f64 b (*.f64 b (fma.f64 -3 a 1)) (*.f64 a a))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))))
(+.f64 (+.f64 (*.f64 b b) (+.f64 (*.f64 (*.f64 -3 a) (*.f64 b b)) (*.f64 a a))) (pow.f64 a 3))
(fma.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)) (fma.f64 a a (pow.f64 a 3)))
(fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 -3 a 1))))
(fma.f64 a a (fma.f64 b (fma.f64 b (*.f64 -3 a) b) (pow.f64 a 3)))
(fma.f64 b b (*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a))))
(pow.f64 a 3)
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (*.f64 a a) (pow.f64 a 3))
(fma.f64 a a (pow.f64 a 3))
(*.f64 a (fma.f64 a a a))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2)))))
(+.f64 (+.f64 (*.f64 a a) (pow.f64 a 3)) (*.f64 (*.f64 -3 a) (*.f64 b b)))
(+.f64 (*.f64 (*.f64 b b) (*.f64 -3 a)) (fma.f64 a a (pow.f64 a 3)))
(*.f64 a (+.f64 (*.f64 b (*.f64 b -3)) (fma.f64 a a a)))
(*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))))
(+.f64 (+.f64 (*.f64 b b) (+.f64 (*.f64 (*.f64 -3 a) (*.f64 b b)) (*.f64 a a))) (pow.f64 a 3))
(fma.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)) (fma.f64 a a (pow.f64 a 3)))
(fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 -3 a 1))))
(fma.f64 a a (fma.f64 b (fma.f64 b (*.f64 -3 a) b) (pow.f64 a 3)))
(fma.f64 b b (*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a))))
(pow.f64 a 3)
(+.f64 (pow.f64 a 3) (pow.f64 a 2))
(+.f64 (*.f64 a a) (pow.f64 a 3))
(fma.f64 a a (pow.f64 a 3))
(*.f64 a (fma.f64 a a a))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2)))))
(+.f64 (+.f64 (*.f64 a a) (pow.f64 a 3)) (*.f64 (*.f64 -3 a) (*.f64 b b)))
(+.f64 (*.f64 (*.f64 b b) (*.f64 -3 a)) (fma.f64 a a (pow.f64 a 3)))
(*.f64 a (+.f64 (*.f64 b (*.f64 b -3)) (fma.f64 a a a)))
(*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a)))
(+.f64 (pow.f64 a 3) (+.f64 (pow.f64 b 2) (+.f64 (pow.f64 a 2) (*.f64 -3 (*.f64 a (pow.f64 b 2))))))
(+.f64 (+.f64 (*.f64 b b) (+.f64 (*.f64 (*.f64 -3 a) (*.f64 b b)) (*.f64 a a))) (pow.f64 a 3))
(fma.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)) (fma.f64 a a (pow.f64 a 3)))
(fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 -3 a 1))))
(fma.f64 a a (fma.f64 b (fma.f64 b (*.f64 -3 a) b) (pow.f64 a 3)))
(fma.f64 b b (*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a))))
(*.f64 (pow.f64 a 2) (+.f64 1 a))
(+.f64 (*.f64 a a) (pow.f64 a 3))
(fma.f64 a a (pow.f64 a 3))
(*.f64 a (fma.f64 a a a))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (+.f64 (*.f64 b b) (+.f64 (*.f64 (*.f64 -3 a) (*.f64 b b)) (*.f64 a a))) (pow.f64 a 3))
(fma.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)) (fma.f64 a a (pow.f64 a 3)))
(fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 -3 a 1))))
(fma.f64 a a (fma.f64 b (fma.f64 b (*.f64 -3 a) b) (pow.f64 a 3)))
(fma.f64 b b (*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a))))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (+.f64 (*.f64 b b) (+.f64 (*.f64 (*.f64 -3 a) (*.f64 b b)) (*.f64 a a))) (pow.f64 a 3))
(fma.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)) (fma.f64 a a (pow.f64 a 3)))
(fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 -3 a 1))))
(fma.f64 a a (fma.f64 b (fma.f64 b (*.f64 -3 a) b) (pow.f64 a 3)))
(fma.f64 b b (*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a))))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (+.f64 (*.f64 b b) (+.f64 (*.f64 (*.f64 -3 a) (*.f64 b b)) (*.f64 a a))) (pow.f64 a 3))
(fma.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)) (fma.f64 a a (pow.f64 a 3)))
(fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 -3 a 1))))
(fma.f64 a a (fma.f64 b (fma.f64 b (*.f64 -3 a) b) (pow.f64 a 3)))
(fma.f64 b b (*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a))))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 (*.f64 -3 a) (*.f64 b b)))
(*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 b (fma.f64 b (*.f64 -3 a) b))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (+.f64 (*.f64 b b) (+.f64 (*.f64 (*.f64 -3 a) (*.f64 b b)) (*.f64 a a))) (pow.f64 a 3))
(fma.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)) (fma.f64 a a (pow.f64 a 3)))
(fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 -3 a 1))))
(fma.f64 a a (fma.f64 b (fma.f64 b (*.f64 -3 a) b) (pow.f64 a 3)))
(fma.f64 b b (*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a))))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (+.f64 (*.f64 b b) (+.f64 (*.f64 (*.f64 -3 a) (*.f64 b b)) (*.f64 a a))) (pow.f64 a 3))
(fma.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)) (fma.f64 a a (pow.f64 a 3)))
(fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 -3 a 1))))
(fma.f64 a a (fma.f64 b (fma.f64 b (*.f64 -3 a) b) (pow.f64 a 3)))
(fma.f64 b b (*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a))))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (+.f64 (*.f64 b b) (+.f64 (*.f64 (*.f64 -3 a) (*.f64 b b)) (*.f64 a a))) (pow.f64 a 3))
(fma.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)) (fma.f64 a a (pow.f64 a 3)))
(fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 -3 a 1))))
(fma.f64 a a (fma.f64 b (fma.f64 b (*.f64 -3 a) b) (pow.f64 a 3)))
(fma.f64 b b (*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a))))
(*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2))
(+.f64 (*.f64 b b) (*.f64 (*.f64 -3 a) (*.f64 b b)))
(*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)))
(*.f64 b (*.f64 b (fma.f64 -3 a 1)))
(*.f64 b (fma.f64 b (*.f64 -3 a) b))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (+.f64 (*.f64 b b) (+.f64 (*.f64 (*.f64 -3 a) (*.f64 b b)) (*.f64 a a))) (pow.f64 a 3))
(fma.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)) (fma.f64 a a (pow.f64 a 3)))
(fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 -3 a 1))))
(fma.f64 a a (fma.f64 b (fma.f64 b (*.f64 -3 a) b) (pow.f64 a 3)))
(fma.f64 b b (*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a))))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (+.f64 (*.f64 b b) (+.f64 (*.f64 (*.f64 -3 a) (*.f64 b b)) (*.f64 a a))) (pow.f64 a 3))
(fma.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)) (fma.f64 a a (pow.f64 a 3)))
(fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 -3 a 1))))
(fma.f64 a a (fma.f64 b (fma.f64 b (*.f64 -3 a) b) (pow.f64 a 3)))
(fma.f64 b b (*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a))))
(+.f64 (*.f64 (pow.f64 a 2) (+.f64 1 a)) (*.f64 (-.f64 1 (*.f64 3 a)) (pow.f64 b 2)))
(+.f64 (+.f64 (*.f64 b b) (+.f64 (*.f64 (*.f64 -3 a) (*.f64 b b)) (*.f64 a a))) (pow.f64 a 3))
(fma.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)) (fma.f64 a a (pow.f64 a 3)))
(fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 -3 a 1))))
(fma.f64 a a (fma.f64 b (fma.f64 b (*.f64 -3 a) b) (pow.f64 a 3)))
(fma.f64 b b (*.f64 a (fma.f64 b (*.f64 b -3) (fma.f64 a a a))))

localize22.0ms (0.3%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a))))
0.0b
(+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a))))))
0.0b
(-.f64 1 (*.f64 3 a))
0.0b
(fma.f64 b b (*.f64 a (*.f64 a 2)))
0.1b
(*.f64 (*.f64 a a) (+.f64 1 a))
0.1b
(*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2)))))
0.2b
(*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))
0.8b
(*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))

series11.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite48.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
842×pow1_binary64
771×add-log-exp_binary64
771×log1p-expm1-u_binary64
771×expm1-log1p-u_binary64
755×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0931
118129
2213329
Stop Event
node limit
Counts
2 → 30
Calls
Call 1
Inputs
(*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))
(*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2)))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 b 3) (*.f64 (*.f64 a (*.f64 a 2)) b))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 b 3) (*.f64 b (*.f64 a (*.f64 a 2))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 b) (hypot.f64 b (*.f64 a (sqrt.f64 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 b) (fma.f64 b b (*.f64 a (*.f64 a 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (fma.f64 b b (*.f64 a (*.f64 a 2))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 b b (*.f64 a (*.f64 a 2))) 3) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 b b) (*.f64 a (*.f64 a 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (pow.f64 (*.f64 b (hypot.f64 b (*.f64 a (sqrt.f64 2)))) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (hypot.f64 b (*.f64 a (sqrt.f64 2)))) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (*.f64 b (hypot.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 (hypot.f64 b (*.f64 a (sqrt.f64 2)))) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (hypot.f64 b (*.f64 a (sqrt.f64 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (*.f64 b (hypot.f64 b (*.f64 a (sqrt.f64 2)))) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (*.f64 b (hypot.f64 b (*.f64 a (sqrt.f64 2)))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (*.f64 b (hypot.f64 b (*.f64 a (sqrt.f64 2)))) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2)))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2)))) 3) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b (hypot.f64 b (*.f64 a (sqrt.f64 2)))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (*.f64 b (hypot.f64 b (*.f64 a (sqrt.f64 2)))) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (*.f64 b (hypot.f64 b (*.f64 a (sqrt.f64 2)))) 2)))))))

simplify198.0ms (2.4%)

Algorithm
egg-herbie
Rules
2389×unswap-sqr_binary64
1224×sqr-pow_binary64
582×pow-sqr_binary64
441×cube-prod_binary64
426×*-commutative_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
016687
143651
2104651
3296651
41185651
52492651
62695651
72867651
83088651
93333651
103635651
114002651
124421651
134949651
145577651
155837651
166043651
176211651
186323651
196395651
207121651
Stop Event
node limit
Counts
78 → 40
Calls
Call 1
Inputs
(*.f64 2 (*.f64 (pow.f64 a 2) b))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(pow.f64 b 3)
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(pow.f64 b 3)
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(pow.f64 b 3)
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(*.f64 2 (*.f64 (pow.f64 a 2) b))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(*.f64 2 (*.f64 (pow.f64 a 2) b))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(*.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 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))) (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))) (pow.f64 b 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (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))) (pow.f64 b 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (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))) (pow.f64 b 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (pow.f64 b 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 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))) (pow.f64 b 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 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))) (pow.f64 b 4))
Outputs
(*.f64 2 (*.f64 (pow.f64 a 2) b))
(*.f64 2 (*.f64 (*.f64 a a) b))
(*.f64 2 (*.f64 a (*.f64 a b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(pow.f64 b 3)
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(pow.f64 b 3)
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(pow.f64 b 3)
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (pow.f64 a 2) b))
(*.f64 2 (*.f64 (*.f64 a a) b))
(*.f64 2 (*.f64 a (*.f64 a b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (pow.f64 a 2) b))
(*.f64 2 (*.f64 (*.f64 a a) b))
(*.f64 2 (*.f64 a (*.f64 a b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(+.f64 (pow.f64 b 3) (*.f64 2 (*.f64 (pow.f64 a 2) b)))
(+.f64 (*.f64 2 (*.f64 (*.f64 a a) b)) (pow.f64 b 3))
(fma.f64 2 (*.f64 a (*.f64 a b)) (pow.f64 b 3))
(*.f64 b (fma.f64 2 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(+.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 2 (*.f64 a (*.f64 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 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 2 (*.f64 a (*.f64 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 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 2 (*.f64 a (*.f64 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))))
(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 2 (*.f64 a (*.f64 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 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 2 (*.f64 a (*.f64 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 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 2 (*.f64 a (*.f64 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))))
(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 2 (*.f64 a (*.f64 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 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 2 (*.f64 a (*.f64 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 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 2 (*.f64 a (*.f64 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))))
(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 2 (*.f64 a (*.f64 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 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 2 (*.f64 a (*.f64 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 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 2 (*.f64 a (*.f64 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 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(+.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 2 (*.f64 a (*.f64 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 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 2 (*.f64 a (*.f64 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 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 2 (*.f64 a (*.f64 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 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(+.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 2 (*.f64 a (*.f64 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 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 2 (*.f64 a (*.f64 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 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 2 (*.f64 a (*.f64 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))))

eval615.0ms (7.4%)

Compiler

Compiled 21849 to 13915 computations (36.3% saved)

prune110.0ms (1.3%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New70212714
Fresh202
Picked101
Done314
Total70813721
Error
0b
Counts
721 → 13
Alt Table
Click to see full alt table
StatusErrorProgram
1.6b
(-.f64 (fma.f64 (*.f64 b 4) b (pow.f64 (hypot.f64 a b) 4)) 1)
1.7b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1)
13.8b
(-.f64 (pow.f64 b 4) 1)
21.4b
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
10.9b
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 4 a)) 1)
11.3b
(-.f64 (fma.f64 a (*.f64 b (*.f64 b (*.f64 2 a))) (pow.f64 a 4)) 1)
11.5b
(-.f64 (pow.f64 a 4) 1)
12.3b
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
9.3b
(-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
22.1b
(-.f64 (*.f64 4 (*.f64 b b)) 1)
10.0b
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
12.9b
(-.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (*.f64 b (*.f64 b 4))) 1)
0.1b
(-.f64 (+.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
Compiler

Compiled 503 to 347 computations (31% saved)

localize21.0ms (0.3%)

Local error

Found 8 expressions with local error:

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

rewrite0.0ms (0%)

Counts
0 → 0

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize4.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(*.f64 4 (*.f64 b b))
0.0b
(-.f64 (*.f64 4 (*.f64 b b)) 1)
0.0b
(-.f64 (*.f64 4 (*.f64 b b)) 1)
0.0b
(*.f64 4 (*.f64 b b))

series3.0ms (0%)

Counts
2 → 24
Calls

6 calls:

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

rewrite43.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
645×pow1_binary64
604×add-log-exp_binary64
602×log1p-expm1-u_binary64
602×expm1-log1p-u_binary64
592×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify147.0ms (1.8%)

Algorithm
egg-herbie
Rules
1104×sqr-pow_binary64
618×cube-prod_binary64
555×fabs-mul_binary64
536×pow-sqr_binary64
445×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09171
119171
230171
355171
4121171
5336171
61252171
72154171
82318171
92502171
102710171
113002171
123393171
133871171
144434171
155116171
165955171
176353171
186641171
196915171
206989171
217025171
227966171
Stop Event
node limit
Counts
70 → 50
Calls
Call 1
Inputs
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (pow.f64 b 2))
-1
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(*.f64 4 (pow.f64 b 2))
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(*.f64 4 (pow.f64 b 2))
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
Outputs
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
-1
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)

localize19.0ms (0.2%)

Local error

Found 8 expressions with local error:

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

series9.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite47.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
786×pow1_binary64
722×add-log-exp_binary64
722×log1p-expm1-u_binary64
722×expm1-log1p-u_binary64
708×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0820
116417
2198717
Stop Event
node limit
Counts
2 → 26
Calls
Call 1
Inputs
(*.f64 b (*.f64 2 (*.f64 a (*.f64 a b))))
(*.f64 a (*.f64 a b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 2 (pow.f64 (*.f64 b a) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (pow.f64 (*.f64 b a) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 2 (pow.f64 (*.f64 b a) 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 2 (pow.f64 (*.f64 b a) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 2 (pow.f64 (*.f64 b a) 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 2 (pow.f64 (*.f64 b a) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 2 (pow.f64 (*.f64 b a) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 2 (pow.f64 (*.f64 b a) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 b 3) (pow.f64 (*.f64 2 (*.f64 b (*.f64 a a))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 2 (*.f64 b (*.f64 a a))) 3) (pow.f64 b 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 2 (pow.f64 (*.f64 b a) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 2 (pow.f64 (*.f64 b a) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 2 (pow.f64 (*.f64 b a) 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 b (*.f64 a a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (*.f64 a a)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 b (*.f64 a a))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a (sqrt.f64 b)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b (*.f64 a a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 b) a) a))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 b (*.f64 a a)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a 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 a 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 b (*.f64 a a))))))))

simplify196.0ms (2.3%)

Algorithm
egg-herbie
Rules
1252×unswap-sqr_binary64
934×sqr-pow_binary64
591×cube-prod_binary64
480×fabs-mul_binary64
367×pow-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
09480
122480
254480
3175480
4860480
51523480
61589480
71689480
81809480
91931480
102078480
112242480
122431480
132644480
142874480
153118480
163383480
173662480
183962480
194276480
204346480
216294480
226539480
236761480
246879480
257713480
Stop Event
node limit
Counts
74 → 30
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)))
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
(*.f64 (pow.f64 a 2) b)
Outputs
(*.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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b 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 a) (*.f64 b a)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 b (*.f64 (*.f64 a a) (*.f64 2 b)))
(*.f64 (*.f64 b b) (*.f64 2 (*.f64 a a)))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))
(*.f64 (pow.f64 a 2) b)
(*.f64 (*.f64 a a) b)
(*.f64 a (*.f64 a b))

localize3.0ms (0%)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (pow.f64 a 3) (+.f64 4 a))
0.1b
(*.f64 (pow.f64 a 3) (+.f64 4 a))

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

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

rewrite45.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
762×pow1_binary64
719×add-log-exp_binary64
719×log1p-expm1-u_binary64
719×expm1-log1p-u_binary64
705×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify129.0ms (1.5%)

Algorithm
egg-herbie
Rules
1088×sqr-pow_binary64
592×pow-sqr_binary64
563×fabs-mul_binary64
542×cube-prod_binary64
528×fma-def_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
08114
122114
248114
3101105
4236105
5864105
61965105
72378105
82538105
92720105
102960105
113271105
123657105
134138105
144765105
155567105
165969105
176335105
186625105
196863105
207013105
Stop Event
node limit
Counts
36 → 28
Calls
Call 1
Inputs
(*.f64 4 (pow.f64 a 3))
(+.f64 (*.f64 4 (pow.f64 a 3)) (pow.f64 a 4))
(+.f64 (*.f64 4 (pow.f64 a 3)) (pow.f64 a 4))
(+.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 3)) (pow.f64 a 4))
(+.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 3)) (pow.f64 a 4))
(+.f64 (*.f64 4 (pow.f64 a 3)) (pow.f64 a 4))
Outputs
(*.f64 4 (pow.f64 a 3))
(+.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 (pow.f64 a 3) (+.f64 4 a))
(+.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 (pow.f64 a 3) (+.f64 4 a))
(+.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 (pow.f64 a 3) (+.f64 4 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 a 4))
(*.f64 (pow.f64 a 3) (+.f64 4 a))
(+.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 (pow.f64 a 3) (+.f64 4 a))
(+.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 (pow.f64 a 3) (+.f64 4 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 a 4))
(*.f64 (pow.f64 a 3) (+.f64 4 a))
(+.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 (pow.f64 a 3) (+.f64 4 a))
(+.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 (pow.f64 a 3) (+.f64 4 a))

eval137.0ms (1.6%)

Compiler

Compiled 7939 to 5018 computations (36.8% saved)

prune48.0ms (0.6%)

Pruning

15 alts after pruning (11 fresh and 4 done)

PrunedKeptTotal
New2635268
Fresh167
Picked011
Done235
Total26615281
Error
0b
Counts
281 → 15
Alt Table
Click to see full alt table
StatusErrorProgram
1.6b
(-.f64 (fma.f64 (*.f64 b 4) b (pow.f64 (hypot.f64 a b) 4)) 1)
1.7b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1)
22.1b
(-.f64 (*.f64 4 (*.f64 b b)) 1)
22.1b
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))
21.4b
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
12.9b
(-.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (*.f64 b (*.f64 b 4))) 1)
11.5b
(-.f64 (pow.f64 a 4) 1)
12.3b
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
9.3b
(-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
13.8b
(-.f64 (pow.f64 b 4) 1)
10.0b
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
9.1b
(-.f64 (+.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
10.9b
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 4 a)) 1)
22.8b
-1
0.1b
(-.f64 (+.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
Compiler

Compiled 545 to 368 computations (32.5% saved)

localize21.0ms (0.3%)

Local error

Found 8 expressions with local error:

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

series3.0ms (0%)

Counts
2 → 36
Calls

9 calls:

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

rewrite45.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
829×pow1_binary64
762×add-log-exp_binary64
762×log1p-expm1-u_binary64
762×expm1-log1p-u_binary64
741×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0920
118516
2221616
Stop Event
node limit
Counts
2 → 25
Calls
Call 1
Inputs
(*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))
(*.f64 (*.f64 b b) (*.f64 b b))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (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 (pow.f64 (pow.f64 (*.f64 b (*.f64 a (sqrt.f64 2))) 2) 2))))) (#(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 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 a (*.f64 a 2)) 3) (pow.f64 (*.f64 b b) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 b b) 3) (pow.f64 (*.f64 a (*.f64 a 2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (*.f64 b (*.f64 a (sqrt.f64 2))) 2)))))) (#(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 -.f64 (+.f64 1 (pow.f64 b 4)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 b 4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b b) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 b 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 b 4) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 b (cbrt.f64 b)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 b b) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 b 4)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 b 4) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 b 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 b 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 b 4)))))))

simplify131.0ms (1.6%)

Algorithm
egg-herbie
Rules
1798×unswap-sqr_binary64
929×sqr-pow_binary64
429×pow-sqr_binary64
394×cube-prod_binary64
378×fabs-mul_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010360
124360
261360
3195360
4884360
51540360
61629360
71755360
81915360
92097360
102330360
112613360
122946360
133364360
143876360
154479360
164733360
174937360
185109360
195213360
205285360
Stop Event
node limit
Counts
61 → 27
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)))
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
Outputs
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 (*.f64 b a) (*.f64 b a)))
(*.f64 (*.f64 a a) (*.f64 2 (*.f64 b b)))
(*.f64 a (*.f64 (*.f64 b b) (*.f64 2 a)))
(*.f64 a (*.f64 a (*.f64 b (*.f64 2 b))))
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)
(pow.f64 b 4)

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))
0.0b
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
b
@0
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))
1.0ms
b
@-inf
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))
1.0ms
b
@inf
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))

rewrite43.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
801×pow1_binary64
746×add-log-exp_binary64
745×log1p-expm1-u_binary64
745×expm1-log1p-u_binary64
733×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify138.0ms (1.6%)

Algorithm
egg-herbie
Rules
1107×sqr-pow_binary64
618×cube-prod_binary64
562×fabs-mul_binary64
536×pow-sqr_binary64
453×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0987
11987
23087
35487
411787
534587
6125687
7215187
8231587
9249987
10270787
11299887
12339187
13386987
14443087
15512287
16596187
17635587
18664587
19692187
20699787
21703387
22797487
Stop Event
node limit
Counts
51 → 44
Calls
Call 1
Inputs
-1
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(*.f64 4 (pow.f64 b 2))
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(*.f64 4 (pow.f64 b 2))
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
Outputs
-1
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)
(-.f64 (*.f64 4 (pow.f64 b 2)) 1)
(fma.f64 4 (*.f64 b b) -1)

localize14.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 b b)))
0.0b
(*.f64 2 (*.f64 a (*.f64 a b)))
0.0b
(+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b))))
0.0b
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
0.0b
(*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))
0.1b
(*.f64 (*.f64 a a) (+.f64 1 a))
0.1b
(*.f64 a (*.f64 a b))
0.6b
(*.f64 b (*.f64 2 (*.f64 a (*.f64 a b))))

series3.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite51.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
569×fma-def_binary64
546×log-prod_binary64
399×pow-prod-down_binary64
294×pow2_binary64
269×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify134.0ms (1.6%)

Algorithm
egg-herbie
Rules
888×fma-def_binary64
797×sqr-pow_binary64
769×cube-prod_binary64
628×fabs-mul_binary64
430×unpow3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
021387
168304
2169304
3422304
41012304
51597304
62237304
72540304
82748304
93018304
103389304
113862304
124449304
135178304
146119304
156666304
167157304
177601304
187919304
Stop Event
node limit
Counts
76 → 63
Calls
Call 1
Inputs
(*.f64 4 (pow.f64 b 2))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (pow.f64 b 2)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (pow.f64 b 2))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (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 (pow.f64 b 2))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (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 (pow.f64 b 2))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (pow.f64 b 2))))
(*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(*.f64 4 (pow.f64 b 2))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(*.f64 4 (pow.f64 b 2))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
Outputs
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (pow.f64 b 2)))
(*.f64 4 (+.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 4 (fma.f64 a a (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (pow.f64 b 2))))
(fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b))))
(*.f64 4 (fma.f64 b b (fma.f64 a a (pow.f64 a 3))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a (fma.f64 a a a))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (pow.f64 b 2))))
(fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b))))
(*.f64 4 (fma.f64 b b (fma.f64 a a (pow.f64 a 3))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a (fma.f64 a a a))))
(*.f64 4 (pow.f64 a 3))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (pow.f64 a 3)))
(*.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)))
(*.f64 4 (fma.f64 a a (pow.f64 a 3)))
(*.f64 4 (*.f64 a (fma.f64 a a a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (pow.f64 b 2))))
(fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b))))
(*.f64 4 (fma.f64 b b (fma.f64 a a (pow.f64 a 3))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a (fma.f64 a a a))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (pow.f64 b 2))))
(fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b))))
(*.f64 4 (fma.f64 b b (fma.f64 a a (pow.f64 a 3))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a (fma.f64 a a a))))
(*.f64 4 (pow.f64 a 3))
(+.f64 (*.f64 4 (pow.f64 a 2)) (*.f64 4 (pow.f64 a 3)))
(*.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)))
(*.f64 4 (fma.f64 a a (pow.f64 a 3)))
(*.f64 4 (*.f64 a (fma.f64 a a a)))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (pow.f64 b 2))))
(fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b))))
(*.f64 4 (fma.f64 b b (fma.f64 a a (pow.f64 a 3))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a (fma.f64 a a a))))
(+.f64 (*.f64 4 (pow.f64 a 2)) (+.f64 (*.f64 4 (pow.f64 a 3)) (*.f64 4 (pow.f64 b 2))))
(fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b))))
(*.f64 4 (fma.f64 b b (fma.f64 a a (pow.f64 a 3))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a (fma.f64 a a a))))
(*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a)))
(*.f64 4 (+.f64 (*.f64 a a) (pow.f64 a 3)))
(*.f64 4 (fma.f64 a a (pow.f64 a 3)))
(*.f64 4 (*.f64 a (fma.f64 a a a)))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b))))
(*.f64 4 (fma.f64 b b (fma.f64 a a (pow.f64 a 3))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a (fma.f64 a a a))))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b))))
(*.f64 4 (fma.f64 b b (fma.f64 a a (pow.f64 a 3))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a (fma.f64 a a a))))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b))))
(*.f64 4 (fma.f64 b b (fma.f64 a a (pow.f64 a 3))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a (fma.f64 a a a))))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b))))
(*.f64 4 (fma.f64 b b (fma.f64 a a (pow.f64 a 3))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a (fma.f64 a a a))))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b))))
(*.f64 4 (fma.f64 b b (fma.f64 a a (pow.f64 a 3))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a (fma.f64 a a a))))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b))))
(*.f64 4 (fma.f64 b b (fma.f64 a a (pow.f64 a 3))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a (fma.f64 a a a))))
(*.f64 4 (pow.f64 b 2))
(*.f64 4 (*.f64 b b))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b))))
(*.f64 4 (fma.f64 b b (fma.f64 a a (pow.f64 a 3))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a (fma.f64 a a a))))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b))))
(*.f64 4 (fma.f64 b b (fma.f64 a a (pow.f64 a 3))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a (fma.f64 a a a))))
(+.f64 (*.f64 4 (pow.f64 b 2)) (*.f64 4 (*.f64 (pow.f64 a 2) (+.f64 1 a))))
(fma.f64 4 (*.f64 a a) (*.f64 4 (+.f64 (pow.f64 a 3) (*.f64 b b))))
(*.f64 4 (fma.f64 b b (fma.f64 a a (pow.f64 a 3))))
(*.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b b)))
(*.f64 4 (fma.f64 b b (*.f64 a (fma.f64 a a a))))

localize3.0ms (0%)

localize11.0ms (0.1%)

Local error

Found 8 expressions with local error:

NewErrorProgram
0.2b
(*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))
0.1b
(*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2)))))
0.0b
(+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (*.f64 b (*.f64 b 4)))
0.0b
(fma.f64 b b (*.f64 a (*.f64 a 2)))
0.0b
(fma.f64 b b (*.f64 a (*.f64 a 2)))
0.0b
(+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (*.f64 b (*.f64 b 4)))
0.1b
(*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2)))))
0.2b
(*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))

series5.0ms (0.1%)

Counts
2 → 48
Calls

12 calls:

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

rewrite68.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
732×log-prod_binary64
603×fma-def_binary64
345×pow2_binary64
289×pow-unpow_binary64
255×fma-neg_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify191.0ms (2.3%)

Algorithm
egg-herbie
Rules
1798×unswap-sqr_binary64
1067×fma-def_binary64
929×sqr-pow_binary64
429×pow-sqr_binary64
420×*-commutative_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
020724
147614
2127614
3397614
41473614
52947614
63469614
73706614
83894614
94076614
104315614
114604614
124937614
135361614
145875614
156478614
166730614
176932614
187106614
197208614
207282614
Stop Event
node limit
Counts
159 → 128
Calls
Call 1
Inputs
(*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2))
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(pow.f64 b 4)
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(pow.f64 b 4)
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (*.f64 4 (pow.f64 b 2))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (*.f64 4 (pow.f64 b 2))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (*.f64 4 (pow.f64 b 2))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4)))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4)))
(*.f64 2 (pow.f64 a 2))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(pow.f64 b 2)
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(pow.f64 b 2)
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(pow.f64 b 2)
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(*.f64 2 (pow.f64 a 2))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(*.f64 2 (pow.f64 a 2))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
Outputs
(*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2))
(*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b))
(*.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b))
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(pow.f64 b 4)
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(pow.f64 b 4)
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (pow.f64 b 4) (*.f64 (+.f64 4 (*.f64 2 (pow.f64 a 2))) (pow.f64 b 2)))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4))
(fma.f64 4 (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 b b 4))
(*.f64 b (*.f64 b (fma.f64 b b 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (*.f64 4 (pow.f64 b 2))))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (*.f64 4 (pow.f64 b 2))))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (pow.f64 b 4) (*.f64 4 (pow.f64 b 2))))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 a (*.f64 a (*.f64 2 (*.f64 b b))))
(*.f64 b (*.f64 2 (*.f64 a (*.f64 a b))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4)))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4)))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4)))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2)))
(*.f64 2 (*.f64 (*.f64 a a) (*.f64 b b)))
(*.f64 2 (*.f64 a (*.f64 a (*.f64 b b))))
(*.f64 a (*.f64 a (*.f64 2 (*.f64 b b))))
(*.f64 b (*.f64 2 (*.f64 a (*.f64 a b))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4)))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4)))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a 2) (pow.f64 b 2))) (+.f64 (*.f64 4 (pow.f64 b 2)) (pow.f64 b 4)))
(+.f64 (*.f64 (+.f64 4 (*.f64 2 (*.f64 a a))) (*.f64 b b)) (pow.f64 b 4))
(fma.f64 (fma.f64 2 (*.f64 a a) 4) (*.f64 b b) (pow.f64 b 4))
(*.f64 (*.f64 b b) (fma.f64 2 (*.f64 a a) (fma.f64 b b 4)))
(*.f64 b (*.f64 b (fma.f64 2 (*.f64 a a) (fma.f64 b b 4))))
(*.f64 2 (pow.f64 a 2))
(*.f64 2 (*.f64 a a))
(*.f64 a (*.f64 2 a))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(pow.f64 b 2)
(*.f64 b b)
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(pow.f64 b 2)
(*.f64 b b)
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(pow.f64 b 2)
(*.f64 b b)
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(*.f64 2 (pow.f64 a 2))
(*.f64 2 (*.f64 a a))
(*.f64 a (*.f64 2 a))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(*.f64 2 (pow.f64 a 2))
(*.f64 2 (*.f64 a a))
(*.f64 a (*.f64 2 a))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))
(+.f64 (pow.f64 b 2) (*.f64 2 (pow.f64 a 2)))
(+.f64 (*.f64 2 (*.f64 a a)) (*.f64 b b))
(fma.f64 2 (*.f64 a a) (*.f64 b b))
(fma.f64 a (*.f64 2 a) (*.f64 b b))

eval210.0ms (2.5%)

Compiler

Compiled 12145 to 6884 computations (43.3% saved)

prune72.0ms (0.9%)

Pruning

18 alts after pruning (13 fresh and 5 done)

PrunedKeptTotal
New4179426
Fresh246
Picked101
Done358
Total42318441
Error
0b
Counts
441 → 18
Alt Table
Click to see full alt table
StatusErrorProgram
22.5b
(-.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) 1)
61.8b
(*.f64 4 (*.f64 b b))
9.3b
(-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
1.6b
(-.f64 (fma.f64 (*.f64 b 4) b (pow.f64 (hypot.f64 a b) 4)) 1)
1.7b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1)
22.1b
(-.f64 (*.f64 4 (*.f64 b b)) 1)
22.8b
-1
10.0b
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
12.9b
(-.f64 (+.f64 (*.f64 b (*.f64 b (+.f64 (*.f64 a (+.f64 a a)) (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
13.0b
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
9.1b
(-.f64 (+.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
21.9b
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 a (*.f64 2 a)))) (*.f64 b (*.f64 b 4))) 1)
11.5b
(-.f64 (pow.f64 a 4) 1)
21.9b
(-.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
13.8b
(-.f64 (pow.f64 b 4) 1)
12.9b
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
0.1b
(-.f64 (+.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
10.9b
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 4 a)) 1)
Compiler

Compiled 313 to 211 computations (32.6% saved)

regimes106.0ms (1.3%)

Counts
35 → 1
Calls
Call 1
Inputs
-1
-1
(*.f64 4 (*.f64 b b))
(-.f64 (*.f64 4 (*.f64 b b)) 1)
(-.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) 1)
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 a (*.f64 2 a)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (+.f64 (*.f64 a (+.f64 a a)) (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (pow.f64 b 4) 1)
(-.f64 (pow.f64 a 4) 1)
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 4 a)) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.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 1 (*.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 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (fma.f64 a (*.f64 b (*.f64 b (*.f64 2 a))) (pow.f64 a 4)) 1)
(-.f64 (+.f64 (fma.f64 2 (*.f64 b (*.f64 b (*.f64 a a))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (fma.f64 (*.f64 b 4) b (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)) (expm1.f64 (log1p.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3))))))))) 1)
(-.f64 (+.f64 (fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 a (*.f64 a 2))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(+.f64 (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 a -3 1)))) (pow.f64 (hypot.f64 a b) 4)) -1)
Outputs
(+.f64 (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 a -3 1)))) (pow.f64 (hypot.f64 a b) 4)) -1)
Calls

8 calls:

18.0ms
a
16.0ms
b
13.0ms
(+.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 1 (*.f64 3 a))))))
12.0ms
(+.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 1 (*.f64 3 a))))))
9.0ms
(*.f64 b b)
Results
ErrorSegmentsBranch
0.0b1a
0.0b1b
0.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 1 (*.f64 3 a)))))) 1)
0.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 1 (*.f64 3 a)))))) 1)
0.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 1 (*.f64 3 a))))))
0.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 1 (*.f64 3 a))))))
0.0b1(*.f64 b b)
0.0b1(*.f64 b b)
Compiler

Compiled 887 to 516 computations (41.8% saved)

regimes102.0ms (1.2%)

Counts
34 → 1
Calls
Call 1
Inputs
-1
-1
(*.f64 4 (*.f64 b b))
(-.f64 (*.f64 4 (*.f64 b b)) 1)
(-.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) 1)
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 a (*.f64 2 a)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (+.f64 (*.f64 a (+.f64 a a)) (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (pow.f64 b 4) 1)
(-.f64 (pow.f64 a 4) 1)
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 4 a)) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.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 1 (*.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 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (fma.f64 a (*.f64 b (*.f64 b (*.f64 2 a))) (pow.f64 a 4)) 1)
(-.f64 (+.f64 (fma.f64 2 (*.f64 b (*.f64 b (*.f64 a a))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (fma.f64 (*.f64 b 4) b (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)) (expm1.f64 (log1p.f64 (*.f64 b (+.f64 b (*.f64 b (*.f64 a -3))))))))) 1)
(-.f64 (+.f64 (fma.f64 (*.f64 b b) (fma.f64 b b (*.f64 a (*.f64 a 2))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
Outputs
(-.f64 (+.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
Calls

8 calls:

17.0ms
b
16.0ms
a
12.0ms
(+.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 1 (*.f64 3 a))))))
12.0ms
(+.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 1 (*.f64 3 a))))))
8.0ms
(*.f64 b b)
Results
ErrorSegmentsBranch
0.1b1a
0.1b1b
0.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 1 (*.f64 3 a)))))) 1)
0.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 1 (*.f64 3 a)))))) 1)
0.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 1 (*.f64 3 a))))))
0.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 1 (*.f64 3 a))))))
0.1b1(*.f64 b b)
0.1b1(*.f64 b b)
Compiler

Compiled 864 to 503 computations (41.8% saved)

regimes134.0ms (1.6%)

Counts
30 → 1
Calls
Call 1
Inputs
-1
-1
(*.f64 4 (*.f64 b b))
(-.f64 (*.f64 4 (*.f64 b b)) 1)
(-.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) 1)
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 a (*.f64 2 a)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (+.f64 (*.f64 a (+.f64 a a)) (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (pow.f64 b 4) 1)
(-.f64 (pow.f64 a 4) 1)
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 4 a)) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.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 1 (*.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 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (fma.f64 a (*.f64 b (*.f64 b (*.f64 2 a))) (pow.f64 a 4)) 1)
(-.f64 (+.f64 (fma.f64 2 (*.f64 b (*.f64 b (*.f64 a a))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
Outputs
(-.f64 (+.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
Calls

7 calls:

34.0ms
b
33.0ms
(-.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 1 (*.f64 3 a)))))) 1)
14.0ms
a
12.0ms
(+.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 1 (*.f64 3 a))))))
10.0ms
(+.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 1 (*.f64 3 a))))))
Results
ErrorSegmentsBranch
0.1b1a
0.1b1b
0.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 1 (*.f64 3 a)))))) 1)
0.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 1 (*.f64 3 a)))))) 1)
0.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 1 (*.f64 3 a))))))
0.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 1 (*.f64 3 a))))))
0.1b1(*.f64 b b)
Compiler

Compiled 739 to 430 computations (41.8% saved)

regimes103.0ms (1.2%)

Counts
26 → 1
Calls
Call 1
Inputs
-1
-1
(*.f64 4 (*.f64 b b))
(-.f64 (*.f64 4 (*.f64 b b)) 1)
(-.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) 1)
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 a (*.f64 2 a)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (+.f64 (*.f64 a (+.f64 a a)) (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (pow.f64 b 4) 1)
(-.f64 (pow.f64 a 4) 1)
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 4 a)) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.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 1 (*.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 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.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 1 (*.f64 3 a)))))) 1)
Calls

5 calls:

44.0ms
(-.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 1 (*.f64 3 a)))))) 1)
16.0ms
b
13.0ms
a
9.0ms
(+.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 1 (*.f64 3 a))))))
8.0ms
(*.f64 b b)
Results
ErrorSegmentsBranch
0.2b1a
0.2b1b
0.2b1(-.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 1 (*.f64 3 a)))))) 1)
0.2b1(+.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 1 (*.f64 3 a))))))
0.2b1(*.f64 b b)
Compiler

Compiled 547 to 322 computations (41.1% saved)

regimes118.0ms (1.4%)

Counts
23 → 2
Calls
Call 1
Inputs
-1
-1
(*.f64 4 (*.f64 b b))
(-.f64 (*.f64 4 (*.f64 b b)) 1)
(-.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) 1)
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 a (*.f64 2 a)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (+.f64 (*.f64 a (+.f64 a a)) (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (pow.f64 b 4) 1)
(-.f64 (pow.f64 a 4) 1)
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 4 a)) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (pow.f64 b 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.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 1 (*.f64 3 a)))))) 1)
Outputs
(-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1)
Calls

4 calls:

30.0ms
b
12.0ms
(*.f64 b b)
12.0ms
a
11.0ms
(*.f64 b b)
Results
ErrorSegmentsBranch
1.7b1a
0.1b3b
0.1b2(*.f64 b b)
0.1b2(*.f64 b b)
Compiler

Compiled 388 to 230 computations (40.7% saved)

bsearch0.0ms (0%)

Algorithm
left-value
Steps
TimeLeftRight
0.0ms
2.671672666945647e-6
3.4039317169023743e-6
Compiler

Compiled 36 to 25 computations (30.6% saved)

regimes100.0ms (1.2%)

Counts
19 → 3
Calls
Call 1
Inputs
-1
-1
(*.f64 4 (*.f64 b b))
(-.f64 (*.f64 4 (*.f64 b b)) 1)
(-.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) 1)
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 a (*.f64 2 a)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (+.f64 (*.f64 a (+.f64 a a)) (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (pow.f64 b 4) 1)
(-.f64 (pow.f64 a 4) 1)
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 4 a)) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1)
Outputs
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1)
Calls

4 calls:

29.0ms
b
28.0ms
(*.f64 b b)
23.0ms
a
12.0ms
(*.f64 b b)
Results
ErrorSegmentsBranch
1.7b1a
0.2b3b
0.2b2(*.f64 b b)
0.2b2(*.f64 b b)
Compiler

Compiled 299 to 175 computations (41.5% saved)

bsearch35.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
0.0ms
4.0008997077918144e-19
4.04236056365002e-19
34.0ms
-0.0018449747198545498
-0.0016345252114744657
Compiler

Compiled 38 to 25 computations (34.2% saved)

regimes88.0ms (1.1%)

Counts
18 → 3
Calls
Call 1
Inputs
-1
-1
(*.f64 4 (*.f64 b b))
(-.f64 (*.f64 4 (*.f64 b b)) 1)
(-.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) 1)
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 a (*.f64 2 a)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (+.f64 (*.f64 a (+.f64 a a)) (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (pow.f64 b 4) 1)
(-.f64 (pow.f64 a 4) 1)
(-.f64 (*.f64 (pow.f64 a 3) (+.f64 4 a)) 1)
Outputs
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
Calls

4 calls:

29.0ms
a
27.0ms
b
16.0ms
(*.f64 b b)
10.0ms
(*.f64 b b)
Results
ErrorSegmentsBranch
1.1b3a
1.9b3b
2.0b2(*.f64 b b)
2.0b2(*.f64 b b)
Compiler

Compiled 282 to 166 computations (41.1% saved)

bsearch64.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
31.0ms
60195.97999073543
619617.4153522542
32.0ms
-164235.85908825533
-5.42357209298148e-5
Compiler

Compiled 38 to 25 computations (34.2% saved)

regimes72.0ms (0.9%)

Counts
14 → 3
Calls
Call 1
Inputs
-1
-1
(*.f64 4 (*.f64 b b))
(-.f64 (*.f64 4 (*.f64 b b)) 1)
(-.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) 1)
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 a (*.f64 2 a)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (+.f64 (*.f64 a (+.f64 a a)) (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
Outputs
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (+.f64 (*.f64 a (+.f64 a a)) (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
Calls

4 calls:

25.0ms
a
24.0ms
b
9.0ms
(*.f64 b b)
9.0ms
(*.f64 b b)
Results
ErrorSegmentsBranch
1.3b3a
1.9b3b
2.0b2(*.f64 b b)
2.0b2(*.f64 b b)
Compiler

Compiled 224 to 132 computations (41.1% saved)

bsearch103.0ms (1.2%)

Algorithm
binary-search
Steps
TimeLeftRight
71.0ms
8.85656691015874e-26
3.5419387869662007e-23
31.0ms
-9.957393309110197e-9
-2.2586866410986545e-11
Compiler

Compiled 38 to 25 computations (34.2% saved)

regimes129.0ms (1.5%)

Counts
10 → 3
Calls
Call 1
Inputs
-1
-1
(*.f64 4 (*.f64 b b))
(-.f64 (*.f64 4 (*.f64 b b)) 1)
(-.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) 1)
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 a (*.f64 2 a)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
Outputs
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)
Calls

4 calls:

93.0ms
b
17.0ms
a
7.0ms
(*.f64 b b)
7.0ms
(*.f64 b b)
Results
ErrorSegmentsBranch
1.3b3a
1.9b3b
2.0b2(*.f64 b b)
2.0b2(*.f64 b b)
Compiler

Compiled 122 to 79 computations (35.2% saved)

bsearch80.0ms (1%)

Algorithm
binary-search
Steps
TimeLeftRight
48.0ms
8.85656691015874e-26
3.5419387869662007e-23
32.0ms
-9.957393309110197e-9
-2.2586866410986545e-11
Compiler

Compiled 38 to 25 computations (34.2% saved)

regimes78.0ms (0.9%)

Counts
9 → 1
Calls
Call 1
Inputs
-1
-1
(*.f64 4 (*.f64 b b))
(-.f64 (*.f64 4 (*.f64 b b)) 1)
(-.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) 1)
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 a (*.f64 2 a)))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (+.f64 (*.f64 2 (*.f64 a (*.f64 a (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1)
Outputs
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
Calls

4 calls:

61.0ms
b
6.0ms
a
4.0ms
(*.f64 b b)
4.0ms
(*.f64 b b)
Results
ErrorSegmentsBranch
13.0b1a
13.0b1b
13.0b1(*.f64 b b)
13.0b1(*.f64 b b)
Compiler

Compiled 103 to 66 computations (35.9% saved)

regimes17.0ms (0.2%)

Counts
6 → 1
Calls
Call 1
Inputs
-1
-1
(*.f64 4 (*.f64 b b))
(-.f64 (*.f64 4 (*.f64 b b)) 1)
(-.f64 (*.f64 b (*.f64 2 (*.f64 a (*.f64 a b)))) 1)
(*.f64 (+.f64 (*.f64 b 2) 1) (-.f64 (*.f64 b 2) 1))
Outputs
(-.f64 (*.f64 4 (*.f64 b b)) 1)
Calls

3 calls:

6.0ms
a
5.0ms
b
4.0ms
(*.f64 b b)
Results
ErrorSegmentsBranch
22.1b1a
22.1b1b
22.1b1(*.f64 b b)
Compiler

Compiled 49 to 34 computations (30.6% saved)

regimes12.0ms (0.1%)

Accuracy

Total -39.8b remaining (-174.4%)

Threshold costs -39.8b (-174.4%)

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

3 calls:

4.0ms
a
4.0ms
b
3.0ms
(*.f64 b b)
Results
ErrorSegmentsBranch
22.8b1a
22.8b1b
22.8b1(*.f64 b b)
Compiler

Compiled 20 to 14 computations (30% saved)

simplify32.0ms (0.4%)

Algorithm
egg-herbie
Rules
33×+-commutative_binary64
27×*-commutative_binary64
13×sub-neg_binary64
distribute-lft-neg-in_binary64
distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0103689
1166689
2184689
3188689
4191689
5192689
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 a -3 1)))) (pow.f64 (hypot.f64 a b) 4)) -1)
(-.f64 (+.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(-.f64 (+.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 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 1 (*.f64 3 a)))))) 1)
(if (<=.f64 (*.f64 b b) 1770887431076117/590295810358705651712) (-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1) (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1))
(if (<=.f64 b -34033776479620856/18446744073709551616) (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1) (if (<=.f64 b 8349213348524003/20769187434139310514121985316880384) (-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1) (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1)))
(if (<=.f64 a -705387643614521/4294967296) (-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1) (if (<=.f64 a 4136636246574065/68719476736) (-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) (-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)))
(if (<=.f64 a -6018874933720635/604462909807314587353088) (-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1) (if (<=.f64 a 7715157890515145/87112285931760246646623899502532662132736) (-.f64 (+.f64 (*.f64 b (*.f64 b (+.f64 (*.f64 a (+.f64 a a)) (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1) (-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)))
(if (<=.f64 a -6018874933720635/604462909807314587353088) (-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1) (if (<=.f64 a 7715157890515145/87112285931760246646623899502532662132736) (-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1) (-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)))
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(-.f64 (*.f64 4 (*.f64 b b)) 1)
-1
Outputs
(+.f64 (fma.f64 4 (fma.f64 a (fma.f64 a a a) (*.f64 b (*.f64 b (fma.f64 a -3 1)))) (pow.f64 (hypot.f64 a b) 4)) -1)
(-.f64 (+.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
(+.f64 (+.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 a 1)) (*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a)))))) -1)
(+.f64 -1 (+.f64 (+.f64 (*.f64 b (*.f64 b (fma.f64 b b (*.f64 a (*.f64 a 2))))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 a 1)) (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3)))))))
(-.f64 (+.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (pow.f64 a 4)) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1)
(+.f64 (+.f64 (+.f64 (pow.f64 a 4) (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 a 1)) (*.f64 b b)))) -1)
(+.f64 -1 (+.f64 (+.f64 (pow.f64 a 4) (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b)))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 a 1)) (*.f64 b b)))))
(-.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 1 (*.f64 3 a)))))) 1)
(+.f64 (+.f64 (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 a 1)) (*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a))))) (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)) -1)
(+.f64 -1 (+.f64 (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 a 1)) (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3))))) (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)))
(if (<=.f64 (*.f64 b b) 1770887431076117/590295810358705651712) (-.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 b b)))) 1) (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1))
(if (<=.f64 (*.f64 b b) 1770887431076117/590295810358705651712) (+.f64 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 a 1)) (*.f64 b b)))) -1) (+.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 4 b))) -1))
(if (<=.f64 (*.f64 b b) 1770887431076117/590295810358705651712) (+.f64 -1 (+.f64 (pow.f64 a 4) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 a 1)) (*.f64 b b))))) (+.f64 -1 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 4 b)))))
(if (<=.f64 b -34033776479620856/18446744073709551616) (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1) (if (<=.f64 b 8349213348524003/20769187434139310514121985316880384) (-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1) (-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 b 4))) 1)))
(if (<=.f64 b -4254222059952607/2305843009213693952) (+.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 4 b))) -1) (if (<=.f64 b 8349213348524003/20769187434139310514121985316880384) (+.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) -1) (+.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 4 b))) -1)))
(if (<=.f64 b -4254222059952607/2305843009213693952) (+.f64 -1 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 4 b)))) (if (<=.f64 b 8349213348524003/20769187434139310514121985316880384) (+.f64 -1 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a))))))) (+.f64 -1 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 b (*.f64 4 b))))))
(if (<=.f64 a -705387643614521/4294967296) (-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1) (if (<=.f64 a 4136636246574065/68719476736) (-.f64 (+.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1) (-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)))
(if (<=.f64 a -705387643614521/4294967296) (+.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) -1) (if (<=.f64 a 4136636246574065/68719476736) (+.f64 (+.f64 (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 a 1)) (*.f64 (*.f64 b b) (+.f64 1 (*.f64 -3 a))))) (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b)))) -1) (+.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) -1)))
(if (<=.f64 a -705387643614521/4294967296) (+.f64 -1 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a))))))) (if (<=.f64 a 4136636246574065/68719476736) (+.f64 -1 (+.f64 (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 a 1)) (*.f64 (*.f64 b b) (+.f64 1 (*.f64 a -3))))) (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (*.f64 (*.f64 a (*.f64 a 2)) (*.f64 b b))))) (+.f64 -1 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))))))
(if (<=.f64 a -6018874933720635/604462909807314587353088) (-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1) (if (<=.f64 a 7715157890515145/87112285931760246646623899502532662132736) (-.f64 (+.f64 (*.f64 b (*.f64 b (+.f64 (*.f64 a (+.f64 a a)) (*.f64 b b)))) (*.f64 b (*.f64 b 4))) 1) (-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)))
(if (<=.f64 a -6018874933720635/604462909807314587353088) (+.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) -1) (if (<=.f64 a 7715157890515145/87112285931760246646623899502532662132736) (+.f64 (+.f64 (*.f64 b (*.f64 4 b)) (*.f64 b (*.f64 b (+.f64 (*.f64 b b) (*.f64 a (+.f64 a a)))))) -1) (+.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) -1)))
(if (<=.f64 a -6018874933720635/604462909807314587353088) (+.f64 -1 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a))))))) (if (<=.f64 a 7715157890515145/87112285931760246646623899502532662132736) (+.f64 -1 (+.f64 (*.f64 b (*.f64 4 b)) (*.f64 b (*.f64 b (+.f64 (*.f64 b b) (*.f64 a (+.f64 a a))))))) (+.f64 -1 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))))))
(if (<=.f64 a -6018874933720635/604462909807314587353088) (-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1) (if (<=.f64 a 7715157890515145/87112285931760246646623899502532662132736) (-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1) (-.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) 1)))
(if (<=.f64 a -6018874933720635/604462909807314587353088) (+.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) -1) (if (<=.f64 a 7715157890515145/87112285931760246646623899502532662132736) (+.f64 (+.f64 (*.f64 b (*.f64 4 b)) (*.f64 b (*.f64 b (*.f64 b b)))) -1) (+.f64 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))) -1)))
(if (<=.f64 a -6018874933720635/604462909807314587353088) (+.f64 -1 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a))))))) (if (<=.f64 a 7715157890515145/87112285931760246646623899502532662132736) (+.f64 -1 (+.f64 (*.f64 b (*.f64 4 b)) (*.f64 b (*.f64 b (*.f64 b b))))) (+.f64 -1 (*.f64 a (+.f64 (*.f64 b (*.f64 b -12)) (*.f64 a (+.f64 4 (*.f64 a (+.f64 4 a)))))))))
(-.f64 (+.f64 (*.f64 b (*.f64 b (*.f64 b b))) (*.f64 b (*.f64 b 4))) 1)
(+.f64 (+.f64 (*.f64 b (*.f64 4 b)) (*.f64 b (*.f64 b (*.f64 b b)))) -1)
(+.f64 -1 (+.f64 (*.f64 b (*.f64 4 b)) (*.f64 b (*.f64 b (*.f64 b b)))))
(-.f64 (*.f64 4 (*.f64 b b)) 1)
(+.f64 (*.f64 4 (*.f64 b b)) -1)
(+.f64 -1 (*.f64 4 (*.f64 b b)))
-1

end525.0ms (6.3%)

Stop Event
fuel
Compiler

Compiled 962 to 597 computations (37.9% saved)

Profiling

Loading profile data...