Details

Time bar (total: 1.8s)

analyze33.0ms (1.8%)

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)

sample994.0ms (54.6%)

Results
942.0ms8256×body128valid
41.0ms361×body128invalid

preprocess48.0ms (2.6%)

Algorithm
egg-herbie
Rules
766×rule-a-+a0_binary64
764×rule-a-/a1_binary64
201×fma-neg_binary64
149×fma-def_binary64
146×rule-/a*bc-//abc_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01340
110834
259130
3392630
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 (/.f64 (fabs.f64 (-.f64 (*.f64 a a) (*.f64 b b))) (*.f64 a a)))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(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 (/.f64 (fabs.f64 (-.f64 (*.f64 b b) (*.f64 a a))) (*.f64 b b)))
(sqrt.f64 (fabs.f64 (-.f64 (*.f64 a (/.f64 a (*.f64 b b))) 1)))
(sqrt.f64 (fabs.f64 (fma.f64 a (/.f64 a (*.f64 b b)) -1)))
Compiler

Compiled 15 to 8 computations (46.7% saved)

simplify27.0ms (1.5%)

Algorithm
egg-herbie
Rules
484×rule-/ab-*+aa/1/2b_binary64
458×rule-a-*a1_binary64
458×rule-a--a0_binary64
458×rule-a-+a0_binary64
456×rule-a-/a1_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0920
16917
235515
3234715
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 (/.f64 (fabs.f64 (-.f64 (*.f64 a a) (*.f64 b b))) (*.f64 a a)))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))

prune3.0ms (0.2%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
15.5b
Counts
3 → 1
Alt Table
StatusErrorProgram
15.5b
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))
Compiler

Compiled 55 to 29 computations (47.3% saved)

localize7.0ms (0.4%)

Local error

Found 2 expressions with local error:

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

series6.0ms (0.3%)

Counts
2 → 48
Calls

12 calls:

TimeVariablePointExpression
1.0ms
a
@0
(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))
1.0ms
b
@inf
(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))
1.0ms
a
@inf
(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))
1.0ms
b
@0
(/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))
0.0ms
a
@0
(sqrt.f64 (fabs.f64 (/.f64 (-.f64 (*.f64 a a) (*.f64 b b)) (*.f64 a a))))

rewrite50.0ms (2.7%)

Algorithm
batch-egg-rewrite
Rules
264×rule-/ab-*+aa/1/2b_binary64
217×rule-*aa-fabs*aa_binary64
172×rule-nega--0a_binary64
172×rule-nega-/a-1_binary64
172×rule-nega-*a-1_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0936
125128
2380917
Stop Event
node limit
Counts
2 → 105
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))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) (/.f64 (fma.f64 b b (*.f64 b b)) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (/.f64 (+.f64 a b) a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (pow.f64 (/.f64 (+.f64 a b) a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 2 (+.f64 1 (*.f64 b (/.f64 b (*.f64 a a)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) (pow.f64 (/.f64 (+.f64 a b) a) 2)) (pow.f64 (/.f64 (+.f64 a b) a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (*.f64 a (+.f64 a a)) (*.f64 a a)) (pow.f64 (/.f64 (+.f64 a b) a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (+.f64 a b) 2) (/.f64 1 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) -1)))) (#(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 1 (pow.f64 (/.f64 (+.f64 a b) a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 2) (pow.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 2) (*.f64 (/.f64 (+.f64 a b) a) (cbrt.f64 (/.f64 (+.f64 a b) a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (+.f64 a b) 2)) (/.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 a b) 2)) 2) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 2) 2) (pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (+.f64 a b) a)) (*.f64 (/.f64 (+.f64 a b) a) (sqrt.f64 (/.f64 (+.f64 a b) a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (+.f64 a b) 2) 2) (/.f64 1/2 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1/2 (*.f64 a a)) (*.f64 (pow.f64 (+.f64 a b) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 a b) (/.f64 (+.f64 a b) (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (+.f64 a b) 2) a) (/.f64 1 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/2 (/.f64 (*.f64 a a) (pow.f64 (+.f64 a b) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 2 (/.f64 1/2 (/.f64 a (/.f64 (pow.f64 (+.f64 a b) 2) a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) (pow.f64 (/.f64 (+.f64 a b) a) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) (pow.f64 (/.f64 (+.f64 a b) a) 2)) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (+.f64 a b) a) (/.f64 (+.f64 a b) a)) (/.f64 1/2 (/.f64 1 (/.f64 (+.f64 a b) a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (-.f64 (pow.f64 a 6) (pow.f64 b 6)) (-.f64 (pow.f64 a 6) (pow.f64 b 6))) (/.f64 1/2 (*.f64 (+.f64 (pow.f64 b 4) (+.f64 (pow.f64 a 4) (pow.f64 (*.f64 a b) 2))) (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (pow.f64 (+.f64 a b) 2) a) (/.f64 (pow.f64 (+.f64 a b) 2) a)) (/.f64 1/2 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) 3) (pow.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) 3)) (/.f64 1/2 (pow.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 (pow.f64 (+.f64 a b) 2) 2) (*.f64 (pow.f64 (+.f64 a b) 2) 2)) (/.f64 1/2 (*.f64 a (+.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (neg.f64 (/.f64 (pow.f64 (+.f64 a b) 2) a)) (neg.f64 (/.f64 (pow.f64 (+.f64 a b) 2) a))) (/.f64 1/2 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (*.f64 1/2 (*.f64 (pow.f64 (+.f64 a b) 2) 2)) (*.f64 1/2 (*.f64 (pow.f64 (+.f64 a b) 2) 2))) (/.f64 1/2 (*.f64 a a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (pow.f64 (+.f64 a b) 2) (cbrt.f64 (pow.f64 a 4))) (/.f64 (pow.f64 (+.f64 a b) 2) (cbrt.f64 (pow.f64 a 4)))) (/.f64 1/2 (cbrt.f64 (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (/.f64 (pow.f64 (+.f64 a b) 2) a) (cbrt.f64 (*.f64 a a))) (/.f64 (/.f64 (pow.f64 (+.f64 a b) 2) a) (cbrt.f64 (*.f64 a a)))) (/.f64 1/2 (cbrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (/.f64 (pow.f64 (+.f64 a b) 2) a) (sqrt.f64 a)) (/.f64 (/.f64 (pow.f64 (+.f64 a b) 2) a) (sqrt.f64 a))) (/.f64 1/2 (sqrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (-.f64 (pow.f64 a 6) (pow.f64 b 6)) (*.f64 a a)) (/.f64 (-.f64 (pow.f64 a 6) (pow.f64 b 6)) (*.f64 a a))) (/.f64 1/2 (+.f64 (pow.f64 b 4) (+.f64 (pow.f64 a 4) (pow.f64 (*.f64 a b) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (-.f64 1 (pow.f64 (*.f64 b (/.f64 b (*.f64 a a))) 3)) (-.f64 1 (pow.f64 (*.f64 b (/.f64 b (*.f64 a a))) 3))) (/.f64 1/2 (+.f64 1 (+.f64 (*.f64 (*.f64 b (/.f64 b (*.f64 a a))) (*.f64 b (/.f64 b (*.f64 a a)))) (*.f64 b (/.f64 b (*.f64 a a)))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 a b) a) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 2) 3)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (+.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 (+.f64 a b) a) 3) (pow.f64 (/.f64 (+.f64 a b) a) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (pow.f64 (+.f64 a b) 2) 3) (pow.f64 a 6)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (+.f64 a b) a) (/.f64 (+.f64 a b) a) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 2) 2) (pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 2) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 (+.f64 a b) 2) 2) (/.f64 1/2 (*.f64 a a)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (/.f64 (+.f64 a b) a) 0)))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (+.f64 a b) a))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 a b) a))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (+.f64 a b) a) 0)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 0 (/.f64 (+.f64 a b) a))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (+.f64 a b) a))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 (/.f64 (+.f64 a b) a) (/.f64 (+.f64 a b) a)) (/.f64 (+.f64 a b) a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 a b) a) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 a b) a) -1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (+.f64 a b) a) (pow.f64 1 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (+.f64 a b) a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 2) (cbrt.f64 (/.f64 (+.f64 a b) a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) (pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (+.f64 a b) a)) (sqrt.f64 (/.f64 (+.f64 a b) a)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (*.f64 (pow.f64 (+.f64 a b) 2) 2)) (sqrt.f64 (/.f64 1/2 (*.f64 a a))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 2) 2)) (sqrt.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (+.f64 a b) a) (/.f64 (+.f64 a b) a)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (/.f64 (+.f64 a b) a) (/.f64 (+.f64 a b) a)) -1/2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (pow.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 2) 2) 1/2) (pow.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (+.f64 a b) (+.f64 a b)) (/.f64 1/2 a))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 (/.f64 (+.f64 a b) a) 3) (pow.f64 (/.f64 (+.f64 a b) a) 3)) (/.f64 1/2 (pow.f64 (/.f64 (+.f64 a b) a) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (sqrt.f64 (/.f64 (pow.f64 (+.f64 a b) 2) a)) (sqrt.f64 (/.f64 (pow.f64 (+.f64 a b) 2) a))) (/.f64 1/2 (sqrt.f64 a)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 a b) a) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (+.f64 a b) a) -1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (pow.f64 (/.f64 (+.f64 a b) a) 3) (pow.f64 (/.f64 (+.f64 a b) a) 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 a b) a)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (sqrt.f64 (/.f64 (pow.f64 (+.f64 a b) 2) a)) (sqrt.f64 a))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (+.f64 a b) a) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (+.f64 a b) a) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (+.f64 a b) a) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (+.f64 a b) a)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (+.f64 a b) a))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (/.f64 (+.f64 a b) a))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (+.f64 a b) a)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (+.f64 a b) a))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (+.f64 a b) a) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (+.f64 a b) a)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (+.f64 a b) a)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (+.f64 a b) a) 1 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (/.f64 (+.f64 a b) a)) 2) (cbrt.f64 (/.f64 (+.f64 a b) a)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (/.f64 (+.f64 a b) a)) (sqrt.f64 (/.f64 (+.f64 a b) a)) 0)))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (+.f64 a b) a)))))))

simplify40.0ms (2.2%)

Algorithm
egg-herbie
Rules
505×rule-/ab-*+aa/1/2b_binary64
442×rule-a-*a1_binary64
442×rule-a--a0_binary64
442×rule-a-+a0_binary64
439×rule-a-/a1_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
015810
1105699
2468633
32521633
Stop Event
node limit
Counts
153 → 111
Calls
Call 1
Inputs
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 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 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 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 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.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))))
Outputs
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a))
(/.f64 (neg.f64 (*.f64 b b)) (*.f64 a a))
(*.f64 (neg.f64 b) (/.f64 b (*.f64 a a)))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a))
(/.f64 (neg.f64 (*.f64 b b)) (*.f64 a a))
(*.f64 (neg.f64 b) (/.f64 b (*.f64 a a)))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a))
(/.f64 (neg.f64 (*.f64 b b)) (*.f64 a a))
(*.f64 (neg.f64 b) (/.f64 b (*.f64 a a)))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 (/.f64 (*.f64 (*.f64 b b) -1) (*.f64 a a)) 1)
(fma.f64 -1 (/.f64 (*.f64 b b) (*.f64 a a)) 1)
(-.f64 1 (*.f64 b (/.f64 b (*.f64 a 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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(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 b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))

prune71.0ms (3.9%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New1092111
Fresh000
Picked101
Done000
Total1102112
Error
0.7b
Counts
112 → 2
Alt Table
StatusErrorProgram
15.5b
(sqrt.f64 (fabs.f64 (-.f64 2 (+.f64 1 (*.f64 b (/.f64 b (*.f64 a a)))))))
1.3b
(sqrt.f64 (fabs.f64 1))
Compiler

Compiled 1650 to 781 computations (52.7% saved)

localize2.0ms (0.1%)

prune6.0ms (0.3%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New000
Fresh011
Picked011
Done000
Total022
Error
0.7b
Counts
2 → 2
Alt Table
StatusErrorProgram
15.5b
(sqrt.f64 (fabs.f64 (-.f64 2 (+.f64 1 (*.f64 b (/.f64 b (*.f64 a a)))))))
1.3b
(sqrt.f64 (fabs.f64 1))
Compiler

Compiled 37 to 29 computations (21.6% saved)

localize8.0ms (0.4%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (fabs.f64 (-.f64 2 (+.f64 1 (*.f64 b (/.f64 b (*.f64 a a)))))))
0.0b
(-.f64 2 (+.f64 1 (*.f64 b (/.f64 b (*.f64 a a)))))
0.2b
(*.f64 b (/.f64 b (*.f64 a a)))
15.6b
(/.f64 b (*.f64 a a))

series11.0ms (0.6%)

Counts
4 → 96
Calls

24 calls:

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

rewrite59.0ms (3.2%)

Algorithm
batch-egg-rewrite
Rules
268×rule-*aa-fabs*aa_binary64
212×rule-nega-/a-1_binary64
212×rule-nega-*a-1_binary64
211×rule-nega--0a_binary64
140×add-sqr-sqrt_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify44.0ms (2.4%)

Algorithm
egg-herbie
Rules
386×rule-/ab-*+aa/1/2b_binary64
300×rule-a-*a1_binary64
300×rule-a--a0_binary64
300×rule-a-+a0_binary64
299×rule-a-/a1_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0151146
11021107
23821041
318641041
Stop Event
node limit
Counts
258 → 172
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))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 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 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 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 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 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 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
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))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(*.f64 b (/.f64 b (*.f64 a a)))
(/.f64 b (*.f64 a (/.f64 a b)))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (*.f64 b (/.f64 b (*.f64 a a))))
(*.f64 (neg.f64 b) (/.f64 b (*.f64 a a)))
(/.f64 b (neg.f64 (*.f64 a (/.f64 a b))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (*.f64 b (/.f64 b (*.f64 a a))))
(*.f64 (neg.f64 b) (/.f64 b (*.f64 a a)))
(/.f64 b (neg.f64 (*.f64 a (/.f64 a b))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b)))
(neg.f64 (*.f64 b (/.f64 b (*.f64 a a))))
(*.f64 (neg.f64 b) (/.f64 b (*.f64 a a)))
(/.f64 b (neg.f64 (*.f64 a (/.f64 a b))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (*.f64 b (/.f64 b (*.f64 a a))) -1 1)
(-.f64 1 (/.f64 b (*.f64 a (/.f64 a b))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (/.f64 (*.f64 b b) (*.f64 a a)))))
(sqrt.f64 (fabs.f64 (-.f64 1 (*.f64 b (/.f64 b (*.f64 a a))))))
(sqrt.f64 (fabs.f64 (fma.f64 b (/.f64 b (*.f64 a a)) -1)))

prune126.0ms (6.9%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New1711172
Fresh000
Picked101
Done101
Total1731174
Error
0b
Counts
174 → 1
Alt Table
StatusErrorProgram
0b
(sqrt.f64 (fabs.f64 (-.f64 2 (+.f64 1 (pow.f64 (/.f64 b a) 2)))))
Compiler

Compiled 2651 to 1803 computations (32% saved)

localize7.0ms (0.4%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(sqrt.f64 (fabs.f64 (-.f64 2 (+.f64 1 (pow.f64 (/.f64 b a) 2)))))
0.0b
(-.f64 2 (+.f64 1 (pow.f64 (/.f64 b a) 2)))
0.4b
(pow.f64 (/.f64 b a) 2)

series10.0ms (0.6%)

Counts
3 → 72
Calls

18 calls:

TimeVariablePointExpression
2.0ms
b
@-inf
(pow.f64 (/.f64 b a) 2)
1.0ms
b
@0
(pow.f64 (/.f64 b a) 2)
1.0ms
b
@inf
(pow.f64 (/.f64 b a) 2)
1.0ms
a
@-inf
(pow.f64 (/.f64 b a) 2)
1.0ms
a
@inf
(pow.f64 (/.f64 b a) 2)

rewrite58.0ms (3.2%)

Algorithm
batch-egg-rewrite
Rules
240×rule-*aa-fabs*aa_binary64
237×rule-/ab-*+aa/1/2b_binary64
190×rule-nega-/a-1_binary64
190×rule-nega-*a-1_binary64
189×rule-nega--0a_binary64
Iterations

Useful iterations: 2 (0.0ms)

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

simplify41.0ms (2.2%)

Algorithm
egg-herbie
Rules
426×rule-/ab-*+aa/1/2b_binary64
335×rule-a-*a1_binary64
335×rule-a--a0_binary64
335×rule-a-+a0_binary64
334×rule-a-/a1_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
016906
1111867
2426714
32141714
Stop Event
node limit
Counts
210 → 146
Calls
Call 1
Inputs
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 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 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 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 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 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 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
Outputs
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
(/.f64 (pow.f64 b 2) (pow.f64 a 2))
(/.f64 (*.f64 b b) (*.f64 a a))
(pow.f64 (/.f64 b a) 2)
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b)))
(/.f64 (neg.f64 (*.f64 b b)) (*.f64 a a))
(neg.f64 (pow.f64 (/.f64 b a) 2))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b)))
(/.f64 (neg.f64 (*.f64 b b)) (*.f64 a a))
(neg.f64 (pow.f64 (/.f64 b a) 2))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2)))
(/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b)))
(/.f64 (neg.f64 (*.f64 b b)) (*.f64 a a))
(neg.f64 (pow.f64 (/.f64 b a) 2))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
1
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(+.f64 1 (*.f64 -1 (/.f64 (pow.f64 b 2) (pow.f64 a 2))))
(+.f64 1 (/.f64 -1 (/.f64 (*.f64 a a) (*.f64 b b))))
(fma.f64 (/.f64 (*.f64 b b) (*.f64 a a)) -1 1)
(-.f64 1 (pow.f64 (/.f64 b a) 2))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))
(sqrt.f64 (fabs.f64 (-.f64 1 (pow.f64 (/.f64 b a) 2))))

prune88.0ms (4.8%)

Pruning

1 alts after pruning (0 fresh and 1 done)

PrunedKeptTotal
New1460146
Fresh000
Picked011
Done000
Total1461147
Error
0b
Counts
147 → 1
Alt Table
StatusErrorProgram
0b
(sqrt.f64 (fabs.f64 (-.f64 2 (+.f64 1 (pow.f64 (/.f64 b a) 2)))))
Compiler

Compiled 2402 to 1708 computations (28.9% saved)

regimes51.0ms (2.8%)

Accuracy

Total 0.0b remaining (0%)

Threshold costs 0.0b (0%)

Counts
12 → 1
Compiler

Compiled 236 to 132 computations (44.1% saved)

simplify1.0ms (0.1%)

Algorithm
egg-herbie
Rules
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01117
11317
Stop Event
saturated
Calls
Call 1
Inputs
(sqrt.f64 (fabs.f64 (-.f64 2 (+.f64 1 (pow.f64 (/.f64 b a) 2)))))
Outputs
(sqrt.f64 (fabs.f64 (-.f64 2 (+.f64 1 (pow.f64 (/.f64 b a) 2)))))

end31.0ms (1.7%)

Stop Event
done
Compiler

Compiled 37 to 30 computations (18.9% saved)

Profiling

Loading profile data...