Details

Time bar (total: 3.9s)

analyze60.0ms (1.5%)

Algorithm
search
Search
TrueOtherFalseIter
0%37.5%62.5%0
0%37.5%62.5%1
0%18.7%81.3%2
0%9.4%90.6%3
0%9.4%90.6%4
0%7%93%5
1.2%4.7%94.1%6
1.2%3.5%95.3%7
1.8%2.6%95.6%8
2%1.9%96%9
2.4%1.3%96.3%10
2.6%1%96.5%11
2.7%0.7%96.6%12
2.8%0.5%96.7%13
2.9%0.3%96.7%14
Compiler

Compiled 26 to 15 computations (42.3% saved)

sample1.9s (49.9%)

Results
1.8s8256×body128valid
82.0ms391×body128invalid
Compiler

Compiled 52 to 30 computations (42.3% saved)

preprocess42.0ms (1.1%)

Algorithm
egg-herbie
Rules
303×associate-/l*_binary64
282×associate-/r/_binary64
258×times-frac_binary64
232×fma-def_binary64
190×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01340
14734
213730
339430
4128230
022
Stop Event
saturated
node limit
Calls
Call 1
Inputs
0
1
Outputs
0
1
Call 2
Inputs
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (*.f64 b b))))
Outputs
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b (*.f64 a a)) b -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 b b) (*.f64 a a)) (*.f64 b b))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 a a) (*.f64 b b)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 a b) (/.f64 a b) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 a (/.f64 a (*.f64 b b)) -1)))
Compiler

Compiled 15 to 8 computations (46.7% saved)

simplify30.0ms (0.8%)

Algorithm
egg-herbie
Rules
704×fma-def_binary64
600×associate-/r*_binary64
362×distribute-rgt-in_binary64
331×distribute-lft-in_binary64
206×div-sub_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0920
12617
27215
320115
454915
5197915
Stop Event
node limit
Counts
1 → 2
Calls
Call 1
Inputs
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
Outputs
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))

prune6.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
14.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
14.3b
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
14.3b
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
Compiler

Compiled 79 to 45 computations (43% saved)

localize13.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
14.4b
(/.f64 b (*.f64 a a))

series62.0ms (1.6%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
14.0ms
b
@-inf
(/.f64 b (*.f64 a a))
12.0ms
b
@inf
(/.f64 b (*.f64 a a))
11.0ms
b
@0
(/.f64 b (*.f64 a a))
4.0ms
a
@inf
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
4.0ms
b
@-inf
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))

rewrite65.0ms (1.7%)

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

Useful iterations: 1 (0.0ms)

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

simplify81.0ms (2.1%)

Algorithm
egg-herbie
Rules
693×associate-/r/_binary64
497×fma-def_binary64
434×unswap-sqr_binary64
232×associate-/r*_binary64
211×times-frac_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
010528
117528
230528
355528
4136528
5444528
61879528
73242528
83964528
94573528
Stop Event
node limit
Counts
105 → 61
Calls
Call 1
Inputs
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(/.f64 b (pow.f64 a 2))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
Outputs
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(/.f64 b (pow.f64 a 2))
(/.f64 b (*.f64 a a))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (pow.f64 a 2)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))

prune68.0ms (1.8%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New60161
Fresh011
Picked101
Done000
Total61263
Error
0.0b
Counts
63 → 2
Alt Table
StatusErrorProgram
0.0b
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
14.3b
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
Compiler

Compiled 893 to 609 computations (31.8% saved)

localize12.0ms (0.3%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))

series16.0ms (0.4%)

Counts
1 → 0
Calls

6 calls:

TimeVariablePointExpression
4.0ms
a
@-inf
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
3.0ms
b
@inf
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
3.0ms
b
@-inf
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
2.0ms
b
@0
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
2.0ms
a
@inf
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))

rewrite59.0ms (1.5%)

Algorithm
batch-egg-rewrite
Rules
710×pow1_binary64
656×add-log-exp_binary64
656×log1p-expm1-u_binary64
656×expm1-log1p-u_binary64
80×add-sqr-sqrt_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify12.0ms (0.3%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

prune17.0ms (0.4%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New21021
Fresh011
Picked011
Done000
Total21223
Error
0.0b
Counts
23 → 2
Alt Table
StatusErrorProgram
0.0b
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
14.3b
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
Compiler

Compiled 310 to 214 computations (31% saved)

localize14.0ms (0.4%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 a a) (*.f64 b b))
0.0b
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
13.8b
(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))

series85.0ms (2.2%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
10.0ms
b
@inf
(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))
9.0ms
b
@-inf
(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))
8.0ms
b
@0
(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))
7.0ms
a
@inf
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
7.0ms
b
@-inf
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))

rewrite112.0ms (2.9%)

Algorithm
batch-egg-rewrite
Rules
881×prod-diff_binary64
132×egg-rr
113×add-sqr-sqrt_binary64
110×*-un-lft-identity_binary64
110×pow1_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify70.0ms (1.8%)

Algorithm
egg-herbie
Rules
726×associate-/r*_binary64
696×associate-/l/_binary64
493×associate-/r/_binary64
166×times-frac_binary64
127×fma-def_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
016963
137891
292843
3296843
41358843
Stop Event
node limit
Counts
283 → 223
Calls
Call 1
Inputs
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
1
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
1
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
1
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(*.f64 -1 (pow.f64 b 2))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 a 2)
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 a 2)
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(pow.f64 a 2)
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 -1 (pow.f64 b 2))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(*.f64 -1 (pow.f64 b 2))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
Outputs
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(/.f64 (neg.f64 (*.f64 b b)) (*.f64 a a))
(/.f64 (*.f64 b (neg.f64 b)) (*.f64 a a))
(*.f64 (/.f64 b a) (/.f64 (neg.f64 b) a))
(/.f64 (neg.f64 b) (/.f64 a (/.f64 b a)))
(*.f64 (neg.f64 b) (/.f64 b (*.f64 a a)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
1
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
1
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
1
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(/.f64 (neg.f64 (*.f64 b b)) (*.f64 a a))
(/.f64 (*.f64 b (neg.f64 b)) (*.f64 a a))
(*.f64 (/.f64 b a) (/.f64 (neg.f64 b) a))
(/.f64 (neg.f64 b) (/.f64 a (/.f64 b a)))
(*.f64 (neg.f64 b) (/.f64 b (*.f64 a a)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(/.f64 (neg.f64 (*.f64 b b)) (*.f64 a a))
(/.f64 (*.f64 b (neg.f64 b)) (*.f64 a a))
(*.f64 (/.f64 b a) (/.f64 (neg.f64 b) a))
(/.f64 (neg.f64 b) (/.f64 a (/.f64 b a)))
(*.f64 (neg.f64 b) (/.f64 b (*.f64 a a)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
(-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))
(-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (pow.f64 a 2) (pow.f64 b 2)) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 (/.f64 b a) (/.f64 b a)))))
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(*.f64 -1 (pow.f64 b 2))
(neg.f64 (*.f64 b b))
(*.f64 b (neg.f64 b))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(pow.f64 a 2)
(*.f64 a a)
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(pow.f64 a 2)
(*.f64 a a)
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(pow.f64 a 2)
(*.f64 a a)
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(*.f64 -1 (pow.f64 b 2))
(neg.f64 (*.f64 b b))
(*.f64 b (neg.f64 b))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(*.f64 -1 (pow.f64 b 2))
(neg.f64 (*.f64 b b))
(*.f64 b (neg.f64 b))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))
(-.f64 (pow.f64 a 2) (pow.f64 b 2))
(-.f64 (*.f64 a a) (*.f64 b b))
(fma.f64 a a (*.f64 b (neg.f64 b)))

prune260.0ms (6.7%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New2221223
Fresh000
Picked101
Done011
Total2232225
Error
0.0b
Counts
225 → 2
Alt Table
StatusErrorProgram
14.6b
(/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) a)
0.0b
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
Compiler

Compiled 5385 to 2244 computations (58.3% saved)

localize12.0ms (0.3%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(-.f64 (*.f64 a a) (*.f64 b b))
0.0b
(/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) a)
14.2b
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))

series54.0ms (1.4%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
7.0ms
a
@0
(/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) a)
7.0ms
b
@inf
(/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) a)
5.0ms
b
@-inf
(/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) a)
5.0ms
a
@-inf
(/.f64 (sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b))) a)
5.0ms
a
@0
(sqrt.f64 (-.f64 (*.f64 a a) (*.f64 b b)))

rewrite70.0ms (1.8%)

Algorithm
batch-egg-rewrite
Rules
666×prod-diff_binary64
400×fma-def_binary64
166×fma-neg_binary64
160×expm1-udef_binary64
160×log1p-udef_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify66.0ms (1.7%)

Algorithm
egg-herbie
Rules
632×associate-/l*_binary64
557×associate-/r*_binary64
328×fma-def_binary64
214×associate-*r/_binary64
210×associate-*l/_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01151368
13781344
213451312
Stop Event
node limit
Counts
112 → 141
Calls
Call 1
Inputs
(sqrt.f64 (neg.f64 (pow.f64 b 2)))
(+.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) (*.f64 1/2 (/.f64 (pow.f64 a 2) (sqrt.f64 (neg.f64 (pow.f64 b 2))))))
(-.f64 (+.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) (*.f64 1/2 (/.f64 (pow.f64 a 2) (sqrt.f64 (neg.f64 (pow.f64 b 2)))))) (*.f64 1/8 (/.f64 (pow.f64 a 4) (pow.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 6) (pow.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) 5))) (+.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) (*.f64 1/2 (/.f64 (pow.f64 a 2) (sqrt.f64 (neg.f64 (pow.f64 b 2))))))) (*.f64 1/8 (/.f64 (pow.f64 a 4) (pow.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) 3))))
a
(-.f64 a (*.f64 1/2 (/.f64 (pow.f64 b 2) a)))
(-.f64 a (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)))))
(-.f64 a (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))))))
(*.f64 -1 a)
(-.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) a)
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)))) a)
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))))) a)
a
(-.f64 a (*.f64 1/2 (/.f64 (pow.f64 b 2) a)))
(-.f64 a (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)))))
(-.f64 a (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))))))
(*.f64 (sqrt.f64 -1) b)
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b)) (*.f64 1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))) (*.f64 (sqrt.f64 -1) b))) (*.f64 1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))))
(*.f64 -1 (*.f64 (sqrt.f64 -1) b))
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))) (*.f64 (sqrt.f64 -1) b))))
(/.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) a)
(+.f64 (/.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) a) (*.f64 1/2 (/.f64 a (sqrt.f64 (neg.f64 (pow.f64 b 2))))))
(-.f64 (+.f64 (/.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) a) (*.f64 1/2 (/.f64 a (sqrt.f64 (neg.f64 (pow.f64 b 2)))))) (*.f64 1/8 (/.f64 (pow.f64 a 3) (pow.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 5) (pow.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) 5))) (+.f64 (/.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) a) (*.f64 1/2 (/.f64 a (sqrt.f64 (neg.f64 (pow.f64 b 2))))))) (*.f64 1/8 (/.f64 (pow.f64 a 3) (pow.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) 3))))
1
(-.f64 1 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(-.f64 1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)))))
(-.f64 1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 6))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4))))))
-1
(-.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))) 1)
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)))) 1)
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 6))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4))))) 1)
1
(-.f64 1 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(-.f64 1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)))))
(-.f64 1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 6))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4))))))
(/.f64 (*.f64 (sqrt.f64 -1) b) a)
(+.f64 (*.f64 1/2 (/.f64 a (*.f64 (sqrt.f64 -1) b))) (/.f64 (*.f64 (sqrt.f64 -1) b) a))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 a (*.f64 (sqrt.f64 -1) b))) (/.f64 (*.f64 (sqrt.f64 -1) b) a)) (*.f64 1/8 (/.f64 (pow.f64 a 3) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 5) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))) (+.f64 (*.f64 1/2 (/.f64 a (*.f64 (sqrt.f64 -1) b))) (/.f64 (*.f64 (sqrt.f64 -1) b) a))) (*.f64 1/8 (/.f64 (pow.f64 a 3) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))))
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 -1) b) a))
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 a (*.f64 (sqrt.f64 -1) b))) (/.f64 (*.f64 (sqrt.f64 -1) b) a)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a 3) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 a (*.f64 (sqrt.f64 -1) b))) (/.f64 (*.f64 (sqrt.f64 -1) b) a)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a 3) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 5) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))) (+.f64 (*.f64 1/2 (/.f64 a (*.f64 (sqrt.f64 -1) b))) (/.f64 (*.f64 (sqrt.f64 -1) b) a))))
Outputs
(sqrt.f64 (neg.f64 (pow.f64 b 2)))
(sqrt.f64 (neg.f64 (*.f64 b b)))
(sqrt.f64 (*.f64 b (neg.f64 b)))
(+.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) (*.f64 1/2 (/.f64 (pow.f64 a 2) (sqrt.f64 (neg.f64 (pow.f64 b 2))))))
(+.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) (*.f64 1/2 (/.f64 (*.f64 a a) (sqrt.f64 (neg.f64 (*.f64 b b))))))
(fma.f64 1/2 (/.f64 (*.f64 a a) (sqrt.f64 (neg.f64 (*.f64 b b)))) (sqrt.f64 (neg.f64 (*.f64 b b))))
(fma.f64 1/2 (*.f64 (/.f64 a (sqrt.f64 (*.f64 b (neg.f64 b)))) a) (sqrt.f64 (*.f64 b (neg.f64 b))))
(-.f64 (+.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) (*.f64 1/2 (/.f64 (pow.f64 a 2) (sqrt.f64 (neg.f64 (pow.f64 b 2)))))) (*.f64 1/8 (/.f64 (pow.f64 a 4) (pow.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) 3))))
(+.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) (-.f64 (*.f64 1/2 (/.f64 (*.f64 a a) (sqrt.f64 (neg.f64 (*.f64 b b))))) (/.f64 (*.f64 1/8 (pow.f64 a 4)) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) 3))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 a a) (sqrt.f64 (neg.f64 (*.f64 b b)))) (sqrt.f64 (neg.f64 (*.f64 b b)))) (*.f64 (/.f64 (pow.f64 a 4) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) 3)) -1/8))
(fma.f64 (/.f64 (pow.f64 a 4) (pow.f64 (sqrt.f64 (*.f64 b (neg.f64 b))) 3)) -1/8 (fma.f64 1/2 (*.f64 (/.f64 a (sqrt.f64 (*.f64 b (neg.f64 b)))) a) (sqrt.f64 (*.f64 b (neg.f64 b)))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 6) (pow.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) 5))) (+.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) (*.f64 1/2 (/.f64 (pow.f64 a 2) (sqrt.f64 (neg.f64 (pow.f64 b 2))))))) (*.f64 1/8 (/.f64 (pow.f64 a 4) (pow.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) 3))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 a 6) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) 5)) (+.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) (*.f64 1/2 (/.f64 (*.f64 a a) (sqrt.f64 (neg.f64 (*.f64 b b))))))) (*.f64 -1/8 (/.f64 (pow.f64 a 4) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) 3))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 a 6) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) 5)) (fma.f64 1/2 (/.f64 (*.f64 a a) (sqrt.f64 (neg.f64 (*.f64 b b)))) (sqrt.f64 (neg.f64 (*.f64 b b))))) (*.f64 (/.f64 (pow.f64 a 4) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) 3)) -1/8))
(fma.f64 (/.f64 (pow.f64 a 4) (pow.f64 (sqrt.f64 (*.f64 b (neg.f64 b))) 3)) -1/8 (fma.f64 1/16 (/.f64 (pow.f64 a 6) (pow.f64 (sqrt.f64 (*.f64 b (neg.f64 b))) 5)) (fma.f64 1/2 (*.f64 (/.f64 a (sqrt.f64 (*.f64 b (neg.f64 b)))) a) (sqrt.f64 (*.f64 b (neg.f64 b))))))
a
(-.f64 a (*.f64 1/2 (/.f64 (pow.f64 b 2) a)))
(+.f64 a (*.f64 -1/2 (/.f64 (*.f64 b b) a)))
(+.f64 a (*.f64 (/.f64 b (/.f64 a b)) -1/2))
(fma.f64 (*.f64 (/.f64 b a) b) -1/2 a)
(-.f64 a (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)))))
(-.f64 a (fma.f64 1/2 (/.f64 (*.f64 b b) a) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)))))
(-.f64 a (fma.f64 1/2 (/.f64 b (/.f64 a b)) (/.f64 1/8 (/.f64 (pow.f64 a 3) (pow.f64 b 4)))))
(+.f64 (fma.f64 (*.f64 (/.f64 b a) b) -1/2 a) (*.f64 (/.f64 (pow.f64 b 4) (pow.f64 a 3)) -1/8))
(-.f64 a (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))))))
(-.f64 a (fma.f64 1/2 (/.f64 (*.f64 b b) a) (fma.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))))))
(-.f64 a (fma.f64 1/2 (/.f64 b (/.f64 a b)) (fma.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5)) (/.f64 1/8 (/.f64 (pow.f64 a 3) (pow.f64 b 4))))))
(-.f64 a (fma.f64 1/2 (*.f64 (/.f64 b a) b) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)) (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))))))
(*.f64 -1 a)
(neg.f64 a)
(-.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) a)
(-.f64 (*.f64 1/2 (/.f64 (*.f64 b b) a)) a)
(fma.f64 1/2 (/.f64 b (/.f64 a b)) (neg.f64 a))
(-.f64 (*.f64 1/2 (*.f64 (/.f64 b a) b)) a)
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)))) a)
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 b b) a) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)))) a)
(-.f64 (fma.f64 1/2 (/.f64 b (/.f64 a b)) (/.f64 1/8 (/.f64 (pow.f64 a 3) (pow.f64 b 4)))) a)
(fma.f64 1/2 (*.f64 (/.f64 b a) b) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)) (neg.f64 a)))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))))) a)
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 b b) a) (fma.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))))) a)
(fma.f64 1/2 (/.f64 b (/.f64 a b)) (-.f64 (fma.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5)) (/.f64 1/8 (/.f64 (pow.f64 a 3) (pow.f64 b 4)))) a))
(-.f64 (fma.f64 1/2 (*.f64 (/.f64 b a) b) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)) (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))))) a)
a
(-.f64 a (*.f64 1/2 (/.f64 (pow.f64 b 2) a)))
(+.f64 a (*.f64 -1/2 (/.f64 (*.f64 b b) a)))
(+.f64 a (*.f64 (/.f64 b (/.f64 a b)) -1/2))
(fma.f64 (*.f64 (/.f64 b a) b) -1/2 a)
(-.f64 a (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)))))
(-.f64 a (fma.f64 1/2 (/.f64 (*.f64 b b) a) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)))))
(-.f64 a (fma.f64 1/2 (/.f64 b (/.f64 a b)) (/.f64 1/8 (/.f64 (pow.f64 a 3) (pow.f64 b 4)))))
(+.f64 (fma.f64 (*.f64 (/.f64 b a) b) -1/2 a) (*.f64 (/.f64 (pow.f64 b 4) (pow.f64 a 3)) -1/8))
(-.f64 a (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) a)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))))))
(-.f64 a (fma.f64 1/2 (/.f64 (*.f64 b b) a) (fma.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3))))))
(-.f64 a (fma.f64 1/2 (/.f64 b (/.f64 a b)) (fma.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5)) (/.f64 1/8 (/.f64 (pow.f64 a 3) (pow.f64 b 4))))))
(-.f64 a (fma.f64 1/2 (*.f64 (/.f64 b a) b) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 3)) (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 5))))))
(*.f64 (sqrt.f64 -1) b)
(*.f64 b (sqrt.f64 -1))
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b))
(fma.f64 1/2 (/.f64 (*.f64 a a) (*.f64 b (sqrt.f64 -1))) (*.f64 b (sqrt.f64 -1)))
(fma.f64 1/2 (*.f64 (/.f64 a b) (/.f64 a (sqrt.f64 -1))) (*.f64 b (sqrt.f64 -1)))
(fma.f64 b (sqrt.f64 -1) (*.f64 1/2 (*.f64 (/.f64 a (*.f64 b (sqrt.f64 -1))) a)))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b)) (*.f64 1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))))
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 a a) (*.f64 b (sqrt.f64 -1))) (*.f64 b (sqrt.f64 -1))) (/.f64 (*.f64 1/8 (pow.f64 a 4)) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3))))
(fma.f64 1/2 (*.f64 (/.f64 a b) (/.f64 a (sqrt.f64 -1))) (fma.f64 b (sqrt.f64 -1) (*.f64 (/.f64 (/.f64 (pow.f64 a 4) (neg.f64 (sqrt.f64 -1))) (pow.f64 b 3)) -1/8)))
(-.f64 (fma.f64 b (sqrt.f64 -1) (*.f64 1/2 (*.f64 (/.f64 a (*.f64 b (sqrt.f64 -1))) a))) (*.f64 (/.f64 -1/8 (sqrt.f64 -1)) (/.f64 (pow.f64 a 4) (pow.f64 b 3))))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))) (*.f64 (sqrt.f64 -1) b))) (*.f64 1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 a a) (*.f64 b (sqrt.f64 -1))) (fma.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5))) (*.f64 b (sqrt.f64 -1)))) (*.f64 -1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))))
(fma.f64 1/2 (*.f64 (/.f64 a b) (/.f64 a (sqrt.f64 -1))) (+.f64 (fma.f64 b (sqrt.f64 -1) (/.f64 1/16 (/.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)) (pow.f64 a 6)))) (*.f64 (/.f64 (/.f64 (pow.f64 a 4) (neg.f64 (sqrt.f64 -1))) (pow.f64 b 3)) -1/8)))
(fma.f64 1/2 (*.f64 (/.f64 a (*.f64 b (sqrt.f64 -1))) a) (fma.f64 b (sqrt.f64 -1) (fma.f64 (/.f64 1/16 (pow.f64 (sqrt.f64 -1) 5)) (/.f64 (pow.f64 a 6) (pow.f64 b 5)) (*.f64 (/.f64 (pow.f64 a 4) (neg.f64 (*.f64 (sqrt.f64 -1) (pow.f64 b 3)))) -1/8))))
(*.f64 -1 (*.f64 (sqrt.f64 -1) b))
(neg.f64 (*.f64 b (sqrt.f64 -1)))
(*.f64 b (neg.f64 (sqrt.f64 -1)))
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b)))
(neg.f64 (fma.f64 1/2 (/.f64 (*.f64 a a) (*.f64 b (sqrt.f64 -1))) (*.f64 b (sqrt.f64 -1))))
(neg.f64 (fma.f64 1/2 (*.f64 (/.f64 a b) (/.f64 a (sqrt.f64 -1))) (*.f64 b (sqrt.f64 -1))))
(-.f64 (/.f64 (*.f64 (*.f64 a a) -1/2) (*.f64 b (sqrt.f64 -1))) (*.f64 b (sqrt.f64 -1)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (*.f64 (sqrt.f64 -1) b)))
(-.f64 (/.f64 (*.f64 1/8 (pow.f64 a 4)) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3))) (fma.f64 1/2 (/.f64 (*.f64 a a) (*.f64 b (sqrt.f64 -1))) (*.f64 b (sqrt.f64 -1))))
(-.f64 (*.f64 1/8 (/.f64 (/.f64 (pow.f64 a 4) (neg.f64 (sqrt.f64 -1))) (pow.f64 b 3))) (fma.f64 1/2 (*.f64 (/.f64 a b) (/.f64 a (sqrt.f64 -1))) (*.f64 b (sqrt.f64 -1))))
(-.f64 (fma.f64 (/.f64 -1/8 (sqrt.f64 -1)) (/.f64 (pow.f64 a 4) (pow.f64 b 3)) (/.f64 (*.f64 (*.f64 a a) -1/2) (*.f64 b (sqrt.f64 -1)))) (*.f64 b (sqrt.f64 -1)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a 4) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a 2) (*.f64 (sqrt.f64 -1) b))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))) (*.f64 (sqrt.f64 -1) b))))
(-.f64 (/.f64 (*.f64 1/8 (pow.f64 a 4)) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3))) (fma.f64 1/2 (/.f64 (*.f64 a a) (*.f64 b (sqrt.f64 -1))) (fma.f64 1/16 (/.f64 (pow.f64 a 6) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5))) (*.f64 b (sqrt.f64 -1)))))
(-.f64 (fma.f64 1/8 (/.f64 (/.f64 (pow.f64 a 4) (neg.f64 (sqrt.f64 -1))) (pow.f64 b 3)) (*.f64 (*.f64 (/.f64 a b) (/.f64 a (sqrt.f64 -1))) -1/2)) (fma.f64 b (sqrt.f64 -1) (/.f64 1/16 (/.f64 (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)) (pow.f64 a 6)))))
(-.f64 (fma.f64 (/.f64 -1/8 (sqrt.f64 -1)) (/.f64 (pow.f64 a 4) (pow.f64 b 3)) (/.f64 (*.f64 (*.f64 a a) -1/2) (*.f64 b (sqrt.f64 -1)))) (fma.f64 b (sqrt.f64 -1) (/.f64 (/.f64 (pow.f64 a 6) (/.f64 (pow.f64 (sqrt.f64 -1) 5) 1/16)) (pow.f64 b 5))))
(/.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) a)
(/.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) a)
(/.f64 (sqrt.f64 (*.f64 b (neg.f64 b))) a)
(+.f64 (/.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) a) (*.f64 1/2 (/.f64 a (sqrt.f64 (neg.f64 (pow.f64 b 2))))))
(+.f64 (/.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) a) (*.f64 1/2 (/.f64 a (sqrt.f64 (neg.f64 (*.f64 b b))))))
(fma.f64 1/2 (/.f64 a (sqrt.f64 (neg.f64 (*.f64 b b)))) (/.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) a))
(fma.f64 1/2 (/.f64 a (sqrt.f64 (*.f64 b (neg.f64 b)))) (/.f64 (sqrt.f64 (*.f64 b (neg.f64 b))) a))
(-.f64 (+.f64 (/.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) a) (*.f64 1/2 (/.f64 a (sqrt.f64 (neg.f64 (pow.f64 b 2)))))) (*.f64 1/8 (/.f64 (pow.f64 a 3) (pow.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) 3))))
(+.f64 (/.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) a) (-.f64 (*.f64 1/2 (/.f64 a (sqrt.f64 (neg.f64 (*.f64 b b))))) (/.f64 (*.f64 1/8 (pow.f64 a 3)) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) 3))))
(+.f64 (/.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) a) (fma.f64 1/2 (/.f64 a (sqrt.f64 (neg.f64 (*.f64 b b)))) (*.f64 (/.f64 (pow.f64 a 3) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) 3)) -1/8)))
(fma.f64 (/.f64 (pow.f64 a 3) (pow.f64 (sqrt.f64 (*.f64 b (neg.f64 b))) 3)) -1/8 (fma.f64 1/2 (/.f64 a (sqrt.f64 (*.f64 b (neg.f64 b)))) (/.f64 (sqrt.f64 (*.f64 b (neg.f64 b))) a)))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 5) (pow.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) 5))) (+.f64 (/.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) a) (*.f64 1/2 (/.f64 a (sqrt.f64 (neg.f64 (pow.f64 b 2))))))) (*.f64 1/8 (/.f64 (pow.f64 a 3) (pow.f64 (sqrt.f64 (neg.f64 (pow.f64 b 2))) 3))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 a 5) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) 5)) (+.f64 (/.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) a) (*.f64 1/2 (/.f64 a (sqrt.f64 (neg.f64 (*.f64 b b))))))) (*.f64 -1/8 (/.f64 (pow.f64 a 3) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) 3))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 a 5) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) 5)) (fma.f64 1/2 (/.f64 a (sqrt.f64 (neg.f64 (*.f64 b b)))) (/.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) a))) (*.f64 (/.f64 (pow.f64 a 3) (pow.f64 (sqrt.f64 (neg.f64 (*.f64 b b))) 3)) -1/8))
(fma.f64 1/16 (/.f64 (pow.f64 a 5) (pow.f64 (sqrt.f64 (*.f64 b (neg.f64 b))) 5)) (fma.f64 (/.f64 (pow.f64 a 3) (pow.f64 (sqrt.f64 (*.f64 b (neg.f64 b))) 3)) -1/8 (fma.f64 1/2 (/.f64 a (sqrt.f64 (*.f64 b (neg.f64 b)))) (/.f64 (sqrt.f64 (*.f64 b (neg.f64 b))) a))))
1
(-.f64 1 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1/2 (/.f64 (*.f64 b b) (*.f64 a a))))
(+.f64 1 (*.f64 (*.f64 (/.f64 b a) (/.f64 b a)) -1/2))
(fma.f64 (*.f64 (/.f64 b a) (/.f64 b a)) -1/2 1)
(-.f64 1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)))))
(-.f64 1 (fma.f64 1/2 (/.f64 (*.f64 b b) (*.f64 a a)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)))))
(-.f64 1 (fma.f64 1/2 (*.f64 (/.f64 b a) (/.f64 b a)) (/.f64 (*.f64 1/8 (pow.f64 b 4)) (pow.f64 a 4))))
(+.f64 1 (fma.f64 (*.f64 (/.f64 b a) (/.f64 b a)) -1/2 (/.f64 -1/8 (/.f64 (pow.f64 a 4) (pow.f64 b 4)))))
(-.f64 1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 6))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4))))))
(-.f64 1 (fma.f64 1/2 (/.f64 (*.f64 b b) (*.f64 a a)) (fma.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 6)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4))))))
(-.f64 1 (fma.f64 1/2 (*.f64 (/.f64 b a) (/.f64 b a)) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)) (/.f64 (*.f64 1/16 (pow.f64 b 6)) (pow.f64 a 6)))))
(-.f64 1 (fma.f64 1/2 (*.f64 (/.f64 b a) (/.f64 b a)) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)) (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 6))))))
-1
(-.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))) 1)
(fma.f64 1/2 (/.f64 (*.f64 b b) (*.f64 a a)) -1)
(fma.f64 1/2 (*.f64 (/.f64 b a) (/.f64 b a)) -1)
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)))) 1)
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 b b) (*.f64 a a)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)))) -1)
(fma.f64 1/2 (*.f64 (/.f64 b a) (/.f64 b a)) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)) -1))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 6))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4))))) 1)
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 b b) (*.f64 a a)) (fma.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 6)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4))))) -1)
(+.f64 (fma.f64 1/2 (*.f64 (/.f64 b a) (/.f64 b a)) (/.f64 (*.f64 1/16 (pow.f64 b 6)) (pow.f64 a 6))) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)) -1))
(fma.f64 1/2 (*.f64 (/.f64 b a) (/.f64 b a)) (fma.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 6)) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)) -1)))
1
(-.f64 1 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1/2 (/.f64 (*.f64 b b) (*.f64 a a))))
(+.f64 1 (*.f64 (*.f64 (/.f64 b a) (/.f64 b a)) -1/2))
(fma.f64 (*.f64 (/.f64 b a) (/.f64 b a)) -1/2 1)
(-.f64 1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)))))
(-.f64 1 (fma.f64 1/2 (/.f64 (*.f64 b b) (*.f64 a a)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)))))
(-.f64 1 (fma.f64 1/2 (*.f64 (/.f64 b a) (/.f64 b a)) (/.f64 (*.f64 1/8 (pow.f64 b 4)) (pow.f64 a 4))))
(+.f64 1 (fma.f64 (*.f64 (/.f64 b a) (/.f64 b a)) -1/2 (/.f64 -1/8 (/.f64 (pow.f64 a 4) (pow.f64 b 4)))))
(-.f64 1 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 b 2) (pow.f64 a 2))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 6))) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4))))))
(-.f64 1 (fma.f64 1/2 (/.f64 (*.f64 b b) (*.f64 a a)) (fma.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 6)) (*.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4))))))
(-.f64 1 (fma.f64 1/2 (*.f64 (/.f64 b a) (/.f64 b a)) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)) (/.f64 (*.f64 1/16 (pow.f64 b 6)) (pow.f64 a 6)))))
(-.f64 1 (fma.f64 1/2 (*.f64 (/.f64 b a) (/.f64 b a)) (fma.f64 1/8 (/.f64 (pow.f64 b 4) (pow.f64 a 4)) (*.f64 1/16 (/.f64 (pow.f64 b 6) (pow.f64 a 6))))))
(/.f64 (*.f64 (sqrt.f64 -1) b) a)
(/.f64 (sqrt.f64 -1) (/.f64 a b))
(*.f64 (/.f64 (sqrt.f64 -1) a) b)
(*.f64 (/.f64 b a) (sqrt.f64 -1))
(+.f64 (*.f64 1/2 (/.f64 a (*.f64 (sqrt.f64 -1) b))) (/.f64 (*.f64 (sqrt.f64 -1) b) a))
(fma.f64 1/2 (/.f64 a (*.f64 b (sqrt.f64 -1))) (/.f64 (sqrt.f64 -1) (/.f64 a b)))
(fma.f64 1/2 (/.f64 a (*.f64 b (sqrt.f64 -1))) (*.f64 (/.f64 (sqrt.f64 -1) a) b))
(fma.f64 1/2 (/.f64 a (*.f64 b (sqrt.f64 -1))) (*.f64 (/.f64 b a) (sqrt.f64 -1)))
(-.f64 (+.f64 (*.f64 1/2 (/.f64 a (*.f64 (sqrt.f64 -1) b))) (/.f64 (*.f64 (sqrt.f64 -1) b) a)) (*.f64 1/8 (/.f64 (pow.f64 a 3) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))))
(+.f64 (fma.f64 1/2 (/.f64 a (*.f64 b (sqrt.f64 -1))) (/.f64 (sqrt.f64 -1) (/.f64 a b))) (*.f64 -1/8 (/.f64 (pow.f64 a 3) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))))
(+.f64 (fma.f64 1/2 (/.f64 a (*.f64 b (sqrt.f64 -1))) (*.f64 (/.f64 (sqrt.f64 -1) a) b)) (/.f64 (*.f64 -1/8 (pow.f64 a 3)) (*.f64 (neg.f64 (sqrt.f64 -1)) (pow.f64 b 3))))
(-.f64 (fma.f64 1/2 (/.f64 a (*.f64 b (sqrt.f64 -1))) (*.f64 (/.f64 b a) (sqrt.f64 -1))) (*.f64 (/.f64 -1/8 (sqrt.f64 -1)) (/.f64 (pow.f64 a 3) (pow.f64 b 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 5) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))) (+.f64 (*.f64 1/2 (/.f64 a (*.f64 (sqrt.f64 -1) b))) (/.f64 (*.f64 (sqrt.f64 -1) b) a))) (*.f64 1/8 (/.f64 (pow.f64 a 3) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 a 5) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5))) (fma.f64 1/2 (/.f64 a (*.f64 b (sqrt.f64 -1))) (/.f64 (sqrt.f64 -1) (/.f64 a b)))) (*.f64 -1/8 (/.f64 (pow.f64 a 3) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 a 5) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5))) (fma.f64 1/2 (/.f64 a (*.f64 b (sqrt.f64 -1))) (*.f64 (/.f64 (sqrt.f64 -1) a) b))) (/.f64 (*.f64 -1/8 (pow.f64 a 3)) (*.f64 (neg.f64 (sqrt.f64 -1)) (pow.f64 b 3))))
(-.f64 (fma.f64 1/2 (/.f64 a (*.f64 b (sqrt.f64 -1))) (fma.f64 (/.f64 (sqrt.f64 -1) a) b (/.f64 (*.f64 (/.f64 1/16 (pow.f64 (sqrt.f64 -1) 5)) (pow.f64 a 5)) (pow.f64 b 5)))) (*.f64 (/.f64 -1/8 (sqrt.f64 -1)) (/.f64 (pow.f64 a 3) (pow.f64 b 3))))
(*.f64 -1 (/.f64 (*.f64 (sqrt.f64 -1) b) a))
(neg.f64 (/.f64 (sqrt.f64 -1) (/.f64 a b)))
(/.f64 (neg.f64 (sqrt.f64 -1)) (/.f64 a b))
(/.f64 (neg.f64 b) (/.f64 a (sqrt.f64 -1)))
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 a (*.f64 (sqrt.f64 -1) b))) (/.f64 (*.f64 (sqrt.f64 -1) b) a)))
(neg.f64 (fma.f64 1/2 (/.f64 a (*.f64 b (sqrt.f64 -1))) (/.f64 (sqrt.f64 -1) (/.f64 a b))))
(-.f64 (*.f64 (/.f64 a (*.f64 b (sqrt.f64 -1))) -1/2) (*.f64 (/.f64 (sqrt.f64 -1) a) b))
(-.f64 (*.f64 (/.f64 a (*.f64 b (sqrt.f64 -1))) -1/2) (*.f64 (/.f64 b a) (sqrt.f64 -1)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a 3) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/2 (/.f64 a (*.f64 (sqrt.f64 -1) b))) (/.f64 (*.f64 (sqrt.f64 -1) b) a)))
(fma.f64 1/8 (/.f64 (pow.f64 a 3) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3))) (neg.f64 (fma.f64 1/2 (/.f64 a (*.f64 b (sqrt.f64 -1))) (/.f64 (sqrt.f64 -1) (/.f64 a b)))))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a 3) (*.f64 (neg.f64 (sqrt.f64 -1)) (pow.f64 b 3)))) (fma.f64 1/2 (/.f64 a (*.f64 b (sqrt.f64 -1))) (*.f64 (/.f64 (sqrt.f64 -1) a) b)))
(fma.f64 (/.f64 -1/8 (sqrt.f64 -1)) (/.f64 (pow.f64 a 3) (pow.f64 b 3)) (-.f64 (*.f64 (/.f64 a (*.f64 b (sqrt.f64 -1))) -1/2) (*.f64 (/.f64 b a) (sqrt.f64 -1))))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a 3) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a 5) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5)))) (+.f64 (*.f64 1/2 (/.f64 a (*.f64 (sqrt.f64 -1) b))) (/.f64 (*.f64 (sqrt.f64 -1) b) a))))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a 3) (*.f64 (pow.f64 (sqrt.f64 -1) 3) (pow.f64 b 3)))) (fma.f64 1/16 (/.f64 (pow.f64 a 5) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5))) (fma.f64 1/2 (/.f64 a (*.f64 b (sqrt.f64 -1))) (/.f64 (sqrt.f64 -1) (/.f64 a b)))))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a 3) (*.f64 (neg.f64 (sqrt.f64 -1)) (pow.f64 b 3)))) (fma.f64 1/16 (/.f64 (pow.f64 a 5) (*.f64 (pow.f64 (sqrt.f64 -1) 5) (pow.f64 b 5))) (fma.f64 1/2 (/.f64 a (*.f64 b (sqrt.f64 -1))) (*.f64 (/.f64 (sqrt.f64 -1) a) b))))
(-.f64 (*.f64 (/.f64 -1/8 (sqrt.f64 -1)) (/.f64 (pow.f64 a 3) (pow.f64 b 3))) (fma.f64 1/2 (/.f64 a (*.f64 b (sqrt.f64 -1))) (fma.f64 (/.f64 (sqrt.f64 -1) a) b (/.f64 (*.f64 (/.f64 1/16 (pow.f64 (sqrt.f64 -1) 5)) (pow.f64 a 5)) (pow.f64 b 5)))))

prune276.0ms (7.1%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New2771278
Fresh000
Picked101
Done011
Total2782280
Error
0.0b
Counts
280 → 2
Alt Table
StatusErrorProgram
0.0b
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
1.0b
(fma.f64 (*.f64 (/.f64 b a) (/.f64 b a)) -1/2 1)
Compiler

Compiled 6161 to 2666 computations (56.7% saved)

regimes299.0ms (7.7%)

Accuracy

Total 0.0b remaining (70.5%)

Threshold costs 0.0b (70.5%)

Counts
22 → 1
Compiler

Compiled 2365 to 1614 computations (31.8% saved)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0815
Stop Event
saturated
Calls
Call 1
Inputs
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))
Outputs
(sqrt.f64 (fabs.f64 (fma.f64 (/.f64 b a) (/.f64 b a) -1)))

end81.0ms (2.1%)

Stop Event
fuel
Compiler

Compiled 48 to 28 computations (41.7% saved)

Profiling

Loading profile data...