Details

Time bar (total: 7.1s)

analyze1.1s (14.8%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
25%74.9%0.1%6
25%74.9%0.1%7
25%74.9%0.1%8
25%74.9%0.1%9
25%64%11.1%10
31.2%54.6%14.2%11
39%44.1%16.9%12
39%41.5%19.5%13
42.9%37%20.1%14
Compiler

Compiled 23 to 16 computations (30.4% saved)

sample4.3s (60.8%)

Results
1.2s1766×body1024valid
1.0s1566×body1024invalid
848.0ms5053×body128valid
430.0ms985×body512valid
395.0ms844×body512invalid
140.0ms447×body256valid
136.0ms424×body256invalid
120.0ms690×body128invalid
5.0msbody2048valid
1.0msbody2048invalid
Compiler

Compiled 46 to 32 computations (30.4% saved)

preprocess28.0ms (0.4%)

Algorithm
egg-herbie
Rules
96×fma-def_binary64
70×*-commutative_binary64
57×associate-/l*_binary64
30×associate-/r/_binary64
26×distribute-rgt-out_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02580
16972
216072
324372
432172
537572
642072
747472
848072
033
133
Stop Event
unsound
saturated
Calls
Call 1
Inputs
0
1
2
Outputs
0
1
0
2
Call 2
Inputs
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)))
(+.f64 (*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 2)) (*.f64 th th)) (*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 2)) (*.f64 a2 a2)))
(+.f64 (*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 2)) (*.f64 th th)))
Outputs
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
(+.f64 (*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 2)) (*.f64 th th)) (*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 2)) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 2)) (+.f64 (*.f64 th th) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 a1) (sqrt.f64 2)) (fma.f64 th th (*.f64 a2 a2)))
(*.f64 (cos.f64 a1) (/.f64 (fma.f64 th th (*.f64 a2 a2)) (sqrt.f64 2)))
(+.f64 (*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 2)) (*.f64 th th)))
(*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 th th)))
(*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 th th)))
(*.f64 (/.f64 (cos.f64 a2) (sqrt.f64 2)) (fma.f64 th th (*.f64 a1 a1)))
Symmetry

(sort a1 a2)

Compiler

Compiled 22 to 15 computations (31.8% saved)

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Rules
32×fma-def_binary64
23×*-commutative_binary64
20×associate-/l*_binary64
11×associate-/r/_binary64
associate-*r/_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01320
12718
25818
38818
411518
513518
615218
717018
817218
Stop Event
saturated
Counts
1 → 2
Calls
Call 1
Inputs
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
Outputs
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.5b
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
0.4b
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
Compiler

Compiled 108 to 70 computations (35.2% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a1 a1 (*.f64 a2 a2))
0.1b
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
0.4b
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))

series16.0ms (0.2%)

Counts
3 → 84
Calls

21 calls:

TimeVariablePointExpression
2.0ms
th
@0
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
2.0ms
a2
@inf
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
1.0ms
a1
@0
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))
1.0ms
th
@inf
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
1.0ms
a1
@0
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))

rewrite50.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
523×log-prod_binary64
195×expm1-udef_binary64
195×log1p-udef_binary64
182×pow3_binary64
171×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01139
122436
2272936
Stop Event
node limit
Counts
3 → 94
Calls
Call 1
Inputs
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
(fma.f64 a1 a1 (*.f64 a2 a2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)))) (cbrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)))))) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 2 -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))) (cbrt.f64 (/.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2) 2)) (cbrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) 2) (*.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 a1 a2) (pow.f64 2 1/4)) (/.f64 (hypot.f64 a1 a2) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 a1 a2) (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (/.f64 1 (neg.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 2 -1/2) (pow.f64 (hypot.f64 a1 a2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) 2) 1) (/.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 a1 a2) 1) (/.f64 (hypot.f64 a1 a2) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 2)) (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cbrt.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) 2) (cbrt.f64 2)) (cbrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 a1 a2) (cbrt.f64 2)) (/.f64 (hypot.f64 a1 a2) (cbrt.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 2 1/4)) (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) 2) (pow.f64 2 1/4)) (/.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (hypot.f64 a1 a2) (pow.f64 2 1/4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (neg.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 3) (*.f64 2 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)))) (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cos.f64 th)) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cos.f64 th))) (neg.f64 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cos.f64 th)) 1) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cos.f64 th)) (cbrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cos.f64 th)) (pow.f64 2 1/4)) (pow.f64 2 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (cos.f64 th)) (neg.f64 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 th) (neg.f64 (pow.f64 (hypot.f64 a1 a2) 2))) (neg.f64 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (hypot.f64 a1 a2) (pow.f64 2 1/4)) (sqrt.f64 (cos.f64 th))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cos.f64 th))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 th)) (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)) 3) (pow.f64 (cos.f64 th) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 th) 3) (pow.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a2 a2) (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a1 a1) (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (hypot.f64 a1 a2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a1 a1) 1) (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2))) (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (hypot.f64 a1 a2) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 a1 a2) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (hypot.f64 a1 a2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) 2) (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 a1 a2) (hypot.f64 a1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a1 a1) 3) (pow.f64 (*.f64 a2 a2) 3)) (fma.f64 (*.f64 a1 a1) (*.f64 a1 a1) (-.f64 (pow.f64 a2 4) (*.f64 (*.f64 a1 a1) (*.f64 a2 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 a1 a1) (*.f64 a1 a1)) (pow.f64 a2 4)) (-.f64 (*.f64 a1 a1) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 a1 a2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (pow.f64 (exp.f64 a2) a2) (exp.f64 (*.f64 a1 a1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (*.f64 a2 a2))) (exp.f64 (*.f64 a1 a1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 a1 a1)) (+.f64 1 (expm1.f64 (*.f64 a2 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (hypot.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 a1 a2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))))

simplify44.0ms (0.6%)

Algorithm
egg-herbie
Rules
488×associate-/r/_binary64
338×unswap-sqr_binary64
331×fma-neg_binary64
276×sub-neg_binary64
206×associate-/l/_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0691517
12011427
26041383
327571341
Stop Event
node limit
Counts
178 → 122
Calls
Call 1
Inputs
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(/.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 2))
(-.f64 (+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 2)) (sqrt.f64 2))) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 2)) (sqrt.f64 2)))))
(-.f64 (+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 4)) (sqrt.f64 2))) (+.f64 (/.f64 (pow.f64 a1 2) (sqrt.f64 2)) (*.f64 1/24 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 4)) (sqrt.f64 2)))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 2)) (sqrt.f64 2))) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 th 2) (pow.f64 a2 2)) (sqrt.f64 2)))))
(-.f64 (+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 4)) (sqrt.f64 2))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 th 4) (pow.f64 a2 2)) (sqrt.f64 2))) (/.f64 (pow.f64 a1 2) (sqrt.f64 2))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 2)) (sqrt.f64 2))) (+.f64 (*.f64 1/720 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 6)) (sqrt.f64 2))) (+.f64 (*.f64 1/720 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 6)) (sqrt.f64 2))) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 th 2) (pow.f64 a2 2)) (sqrt.f64 2)))))))
(/.f64 (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (cos.f64 th) (+.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (sqrt.f64 2))
(/.f64 (*.f64 (cos.f64 th) (+.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (sqrt.f64 2))
(/.f64 (*.f64 (cos.f64 th) (+.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (sqrt.f64 2))
(/.f64 (*.f64 (cos.f64 th) (+.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (sqrt.f64 2))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(pow.f64 a2 2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(pow.f64 a1 2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(pow.f64 a1 2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(pow.f64 a1 2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(pow.f64 a2 2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(pow.f64 a2 2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
Outputs
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))
(/.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 2))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (sqrt.f64 2))
(/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2))
(-.f64 (+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 2)) (sqrt.f64 2))) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 2)) (sqrt.f64 2)))))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (-.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (*.f64 1/2 (+.f64 (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (*.f64 th th))) (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (*.f64 th th)))))))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (-.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 1/2 (+.f64 (*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (*.f64 th th)) (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 th th))))))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) (+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1)))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.f64 (*.f64 (*.f64 (/.f64 th (sqrt.f64 2)) th) (fma.f64 a1 a1 (*.f64 a2 a2))) -1/2)))
(-.f64 (+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 4)) (sqrt.f64 2))) (+.f64 (/.f64 (pow.f64 a1 2) (sqrt.f64 2)) (*.f64 1/24 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 4)) (sqrt.f64 2)))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 2)) (sqrt.f64 2))) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 th 2) (pow.f64 a2 2)) (sqrt.f64 2)))))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (-.f64 (fma.f64 1/24 (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (pow.f64 th 4))) (fma.f64 1/24 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (pow.f64 th 4))) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))) (*.f64 1/2 (+.f64 (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (*.f64 th th))) (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (*.f64 th th)))))))
(+.f64 (fma.f64 1/24 (*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (pow.f64 th 4)) (fma.f64 1/24 (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (pow.f64 th 4)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))) (-.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 1/2 (+.f64 (*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (*.f64 th th)) (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 th th))))))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) (+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (fma.f64 1/24 (*.f64 (pow.f64 th 4) (+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))))
(+.f64 (fma.f64 1/24 (*.f64 (/.f64 (pow.f64 th 4) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2))) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1)) (fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 (*.f64 (*.f64 (/.f64 th (sqrt.f64 2)) th) (fma.f64 a1 a1 (*.f64 a2 a2))) -1/2)))
(-.f64 (+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 4)) (sqrt.f64 2))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 th 4) (pow.f64 a2 2)) (sqrt.f64 2))) (/.f64 (pow.f64 a1 2) (sqrt.f64 2))))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 2)) (sqrt.f64 2))) (+.f64 (*.f64 1/720 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 6)) (sqrt.f64 2))) (+.f64 (*.f64 1/720 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 6)) (sqrt.f64 2))) (*.f64 1/2 (/.f64 (*.f64 (pow.f64 th 2) (pow.f64 a2 2)) (sqrt.f64 2)))))))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (-.f64 (fma.f64 1/24 (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (pow.f64 th 4))) (fma.f64 1/24 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (pow.f64 th 4))) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))) (fma.f64 1/2 (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (*.f64 th th))) (fma.f64 1/720 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (pow.f64 th 6))) (fma.f64 1/720 (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (pow.f64 th 6))) (*.f64 1/2 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (*.f64 th th)))))))))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (-.f64 (fma.f64 1/24 (*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (pow.f64 th 4)) (fma.f64 1/24 (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (pow.f64 th 4)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))) (+.f64 (*.f64 1/720 (+.f64 (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (pow.f64 th 6)) (*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (pow.f64 th 6)))) (*.f64 1/2 (+.f64 (*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (*.f64 th th)) (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 th th)))))))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (-.f64 (fma.f64 1/24 (*.f64 (pow.f64 th 4) (+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1)) (fma.f64 1/720 (*.f64 (pow.f64 th 6) (+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) (*.f64 1/2 (*.f64 (*.f64 th th) (+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1)))))))
(+.f64 (fma.f64 1/24 (*.f64 (/.f64 (pow.f64 th 4) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2))) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1)) (+.f64 (fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 (*.f64 (/.f64 (pow.f64 th 6) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2))) -1/720)) (*.f64 (*.f64 (*.f64 (/.f64 th (sqrt.f64 2)) th) (fma.f64 a1 a1 (*.f64 a2 a2))) -1/2)))
(/.f64 (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (+.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (sqrt.f64 2))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (+.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (sqrt.f64 2))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (+.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (sqrt.f64 2))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (+.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (sqrt.f64 2))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (cos.f64 th))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (cos.f64 th))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (cos.f64 th))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 2)) (sqrt.f64 2)) (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(pow.f64 a2 2)
(*.f64 a2 a2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(pow.f64 a1 2)
(*.f64 a1 a1)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(pow.f64 a1 2)
(*.f64 a1 a1)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(pow.f64 a1 2)
(*.f64 a1 a1)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(pow.f64 a2 2)
(*.f64 a2 a2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(pow.f64 a2 2)
(*.f64 a2 a2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))

prune101.0ms (1.4%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1184122
Fresh011
Picked011
Done000
Total1186124
Error
0b
Counts
124 → 6
Alt Table
StatusErrorProgram
0.5b
(/.f64 (/.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cos.f64 th)) (pow.f64 2 1/4)) (pow.f64 2 1/4))
0.4b
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))))
0.4b
(*.f64 (cos.f64 th) (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 2 -1/2)))
0.5b
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
0.7b
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)))
0.4b
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
Compiler

Compiled 2282 to 1457 computations (36.2% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 a1 a2)
0.0b
(pow.f64 (hypot.f64 a1 a2) 2)
0.1b
(*.f64 (cos.f64 th) (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 2 -1/2)))
0.4b
(*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 2 -1/2))

series30.0ms (0.4%)

Counts
4 → 108
Calls

27 calls:

TimeVariablePointExpression
6.0ms
a2
@inf
(*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 2 -1/2))
3.0ms
a1
@0
(*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 2 -1/2))
3.0ms
a1
@inf
(*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 2 -1/2))
3.0ms
a2
@0
(*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 2 -1/2))
2.0ms
th
@0
(*.f64 (cos.f64 th) (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 2 -1/2)))

rewrite52.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
533×log-prod_binary64
208×pow1/3_binary64
207×expm1-udef_binary64
207×log1p-udef_binary64
189×pow3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01242
124940
2278240
Stop Event
node limit
Counts
4 → 105
Calls
Call 1
Inputs
(*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 2 -1/2))
(*.f64 (cos.f64 th) (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 2 -1/2)))
(pow.f64 (hypot.f64 a1 a2) 2)
(hypot.f64 a1 a2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (pow.f64 (hypot.f64 a1 a2) 2))) (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (pow.f64 (hypot.f64 a1 a2) 2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (pow.f64 (hypot.f64 a1 a2) 2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 3) (*.f64 (sqrt.f64 1/2) 1/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 (sqrt.f64 1/2) 1/2) (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 3) (*.f64 (sqrt.f64 1/2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (sqrt.f64 1/2) 1/2) (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2)))) (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (cos.f64 th)) (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2)) 3) (pow.f64 (cos.f64 th) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (cos.f64 th) 3) (pow.f64 (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 th)) (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2)) 3) (pow.f64 (cos.f64 th) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 th) 3) (pow.f64 (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1/2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a1 a1) (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a2 a2) (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (hypot.f64 a1 a2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2))) (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2))))) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)))) (log.f64 (sqrt.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (hypot.f64 a1 a2) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 a1 a2) (hypot.f64 a1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 a1 a2) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (hypot.f64 a1 a2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2) (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2) (*.f64 (cbrt.f64 (hypot.f64 a1 a2)) (hypot.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 4)) (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (hypot.f64 a1 a2)) (*.f64 (sqrt.f64 (hypot.f64 a1 a2)) (hypot.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (sqrt.f64 (hypot.f64 a1 a2)) 3) (sqrt.f64 (hypot.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (hypot.f64 a1 a2) (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2)) (cbrt.f64 (hypot.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 (*.f64 a1 a1) 3) (pow.f64 (*.f64 a2 a2) 3)) (fma.f64 (*.f64 a1 a1) (*.f64 a1 a1) (-.f64 (*.f64 (*.f64 a2 a2) (*.f64 a2 a2)) (*.f64 (*.f64 a1 a1) (*.f64 a2 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (*.f64 (*.f64 a1 a1) (*.f64 a1 a1)) (*.f64 (*.f64 a2 a2) (*.f64 a2 a2))) (-.f64 (*.f64 a1 a1) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (hypot.f64 a1 a2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 a1 a1)) (exp.f64 (*.f64 a2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 a2 a2)) (exp.f64 (*.f64 a1 a1))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 a1 a2) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a1 a1 (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a2 a2 (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a1 a1) (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a2 a2) (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a1) 2) (*.f64 (cbrt.f64 a1) a1) (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a2) 2) (*.f64 (cbrt.f64 a2) a2) (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a1) (*.f64 (sqrt.f64 a1) a1) (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a2) (*.f64 (sqrt.f64 a2) a2) (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 (cbrt.f64 a2) 2) (pow.f64 (cbrt.f64 a2) 2)) (pow.f64 (cbrt.f64 a2) 2) (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 (cbrt.f64 a1) 2) (pow.f64 (cbrt.f64 a1) 2)) (pow.f64 (cbrt.f64 a1) 2) (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a1 (sqrt.f64 a1)) (sqrt.f64 a1) (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a2 (sqrt.f64 a2)) (sqrt.f64 a2) (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a2 (pow.f64 (cbrt.f64 a2) 2)) (cbrt.f64 a2) (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a1 (pow.f64 (cbrt.f64 a1) 2)) (cbrt.f64 a1) (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (hypot.f64 a1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (hypot.f64 a1 a2))) (cbrt.f64 (exp.f64 (hypot.f64 a1 a2))))) (log.f64 (cbrt.f64 (exp.f64 (hypot.f64 a1 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (hypot.f64 a1 a2)))) (log.f64 (sqrt.f64 (exp.f64 (hypot.f64 a1 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (hypot.f64 a1 a2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 a1 a2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (hypot.f64 a1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2) (cbrt.f64 (hypot.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (hypot.f64 a1 a2)) (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (hypot.f64 a1 a2)) (sqrt.f64 (hypot.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 4))) (sqrt.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 a1 a2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 a1 a2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (hypot.f64 a1 a2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (hypot.f64 a1 a2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (hypot.f64 a1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (hypot.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (hypot.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (hypot.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (hypot.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (hypot.f64 a1 a2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (hypot.f64 a1 a2)))))))

simplify44.0ms (0.6%)

Algorithm
egg-herbie
Rules
653×fma-def_binary64
546×associate-*r*_binary64
530×associate-*l*_binary64
451×cancel-sign-sub-inv_binary64
184×times-frac_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01121905
13651696
212591648
Stop Event
node limit
Counts
213 → 163
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2))))))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4)))) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 2) (pow.f64 a2 2))))))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 4) (pow.f64 a2 2))))))) (+.f64 (*.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 6)))) (+.f64 (*.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 6)))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 2) (pow.f64 a2 2))))))))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(pow.f64 a2 2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(pow.f64 a1 2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(pow.f64 a1 2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(pow.f64 a1 2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(pow.f64 a2 2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(pow.f64 a2 2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
a2
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2)
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2) (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2)) (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))))
a1
(+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))
(-.f64 (+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1))) (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5))) (+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))) (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))))
(*.f64 -1 a1)
(neg.f64 (+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1))))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1))))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5))) (+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))))
a1
(+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))
(-.f64 (+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1))) (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5))) (+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))) (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))))
a2
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2)
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2) (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2)) (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))))
(*.f64 -1 a2)
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2)))
Outputs
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2))))))
(-.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (*.f64 th th))))))
(fma.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 -1/2 (*.f64 (*.f64 th th) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))))))
(fma.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th th) (fma.f64 a2 a2 (*.f64 a1 a1)))) -1/2))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4)))) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 2) (pow.f64 a2 2))))))
(-.f64 (fma.f64 (sqrt.f64 1/2) (*.f64 a1 a1) (fma.f64 1/24 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)) (pow.f64 th 4)) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (pow.f64 th 4))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))) (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (*.f64 th th))))))
(+.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) 1/24) (+.f64 (*.f64 a2 (*.f64 a2 (pow.f64 th 4))) (*.f64 (*.f64 a1 a1) (pow.f64 th 4)))) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))) (*.f64 -1/2 (*.f64 (*.f64 th th) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th th) (fma.f64 a2 a2 (*.f64 a1 a1)))) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 4) (fma.f64 a2 a2 (*.f64 a1 a1)))) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 4) (pow.f64 a2 2))))))) (+.f64 (*.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 6)))) (+.f64 (*.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 6)))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 2) (pow.f64 a2 2))))))))
(-.f64 (fma.f64 (sqrt.f64 1/2) (*.f64 a1 a1) (fma.f64 1/24 (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)) (pow.f64 th 4)) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (pow.f64 th 4))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))) (fma.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 6))) (fma.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (pow.f64 th 6))) (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (*.f64 th th))))))))
(-.f64 (-.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) 1/24) (+.f64 (*.f64 a2 (*.f64 a2 (pow.f64 th 4))) (*.f64 (*.f64 a1 a1) (pow.f64 th 4)))) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))) (*.f64 (*.f64 (sqrt.f64 1/2) 1/720) (+.f64 (*.f64 a2 (*.f64 a2 (pow.f64 th 6))) (*.f64 a1 (*.f64 a1 (pow.f64 th 6)))))) (*.f64 1/2 (*.f64 (*.f64 th th) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))))))
(-.f64 (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 4) (fma.f64 a2 a2 (*.f64 a1 a1)))) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))) (fma.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th th) (fma.f64 a2 a2 (*.f64 a1 a1)))) (*.f64 (sqrt.f64 1/2) (*.f64 1/720 (*.f64 (pow.f64 th 6) (fma.f64 a2 a2 (*.f64 a1 a1)))))))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(pow.f64 a2 2)
(*.f64 a2 a2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(pow.f64 a1 2)
(*.f64 a1 a1)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(pow.f64 a1 2)
(*.f64 a1 a1)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(pow.f64 a1 2)
(*.f64 a1 a1)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(pow.f64 a2 2)
(*.f64 a2 a2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(pow.f64 a2 2)
(*.f64 a2 a2)
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
a2
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2)
(fma.f64 1/2 (/.f64 (*.f64 a1 a1) a2) a2)
(fma.f64 1/2 (/.f64 a1 (/.f64 a2 a1)) a2)
(fma.f64 1/2 (*.f64 (/.f64 a1 a2) a1) a2)
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2) (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))))
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 a1 a1) a2) a2) (/.f64 (*.f64 1/8 (pow.f64 a1 4)) (pow.f64 a2 3)))
(+.f64 (fma.f64 1/2 (/.f64 a1 (/.f64 a2 a1)) a2) (*.f64 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) -1/8))
(fma.f64 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) -1/8 (fma.f64 1/2 (*.f64 (/.f64 a1 a2) a1) a2))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2)) (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))))
(-.f64 (fma.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) (fma.f64 1/2 (/.f64 (*.f64 a1 a1) a2) a2)) (/.f64 (*.f64 1/8 (pow.f64 a1 4)) (pow.f64 a2 3)))
(-.f64 (fma.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) (fma.f64 1/2 (/.f64 a1 (/.f64 a2 a1)) a2)) (/.f64 (*.f64 1/8 (pow.f64 a1 4)) (pow.f64 a2 3)))
(fma.f64 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) -1/8 (fma.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) (fma.f64 1/2 (*.f64 (/.f64 a1 a2) a1) a2)))
a1
(+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))
(+.f64 a1 (/.f64 (*.f64 1/2 (*.f64 a2 a2)) a1))
(fma.f64 1/2 (/.f64 (*.f64 a2 a2) a1) a1)
(fma.f64 1/2 (*.f64 (/.f64 a2 a1) a2) a1)
(-.f64 (+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1))) (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))))
(+.f64 (+.f64 a1 (/.f64 (*.f64 1/2 (*.f64 a2 a2)) a1)) (*.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))))
(+.f64 a1 (fma.f64 1/2 (/.f64 (*.f64 a2 a2) a1) (*.f64 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) -1/8)))
(fma.f64 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) -1/8 (fma.f64 1/2 (*.f64 (/.f64 a2 a1) a2) a1))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5))) (+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))) (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) (+.f64 a1 (/.f64 (*.f64 1/2 (*.f64 a2 a2)) a1))) (*.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) (fma.f64 1/2 (/.f64 (*.f64 a2 a2) a1) a1)) (*.f64 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) -1/8))
(fma.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) (fma.f64 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) -1/8 (fma.f64 1/2 (*.f64 (/.f64 a2 a1) a2) a1)))
(*.f64 -1 a1)
(neg.f64 a1)
(neg.f64 (+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1))))
(neg.f64 (+.f64 a1 (/.f64 (*.f64 1/2 (*.f64 a2 a2)) a1)))
(neg.f64 (fma.f64 1/2 (/.f64 (*.f64 a2 a2) a1) a1))
(fma.f64 (*.f64 (/.f64 a2 a1) a2) -1/2 (neg.f64 a1))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1))))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (+.f64 a1 (/.f64 (*.f64 1/2 (*.f64 a2 a2)) a1)))
(fma.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) (neg.f64 (fma.f64 1/2 (/.f64 (*.f64 a2 a2) a1) a1)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (fma.f64 1/2 (*.f64 (/.f64 a2 a1) a2) a1))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5))) (+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (fma.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) (+.f64 a1 (/.f64 (*.f64 1/2 (*.f64 a2 a2)) a1))))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (fma.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) (fma.f64 1/2 (/.f64 (*.f64 a2 a2) a1) a1)))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (fma.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) (fma.f64 1/2 (*.f64 (/.f64 a2 a1) a2) a1)))
a1
(+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))
(+.f64 a1 (/.f64 (*.f64 1/2 (*.f64 a2 a2)) a1))
(fma.f64 1/2 (/.f64 (*.f64 a2 a2) a1) a1)
(fma.f64 1/2 (*.f64 (/.f64 a2 a1) a2) a1)
(-.f64 (+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1))) (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))))
(+.f64 (+.f64 a1 (/.f64 (*.f64 1/2 (*.f64 a2 a2)) a1)) (*.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))))
(+.f64 a1 (fma.f64 1/2 (/.f64 (*.f64 a2 a2) a1) (*.f64 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) -1/8)))
(fma.f64 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) -1/8 (fma.f64 1/2 (*.f64 (/.f64 a2 a1) a2) a1))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5))) (+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))) (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) (+.f64 a1 (/.f64 (*.f64 1/2 (*.f64 a2 a2)) a1))) (*.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))))
(+.f64 (fma.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) (fma.f64 1/2 (/.f64 (*.f64 a2 a2) a1) a1)) (*.f64 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) -1/8))
(fma.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) (fma.f64 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) -1/8 (fma.f64 1/2 (*.f64 (/.f64 a2 a1) a2) a1)))
a2
(+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2)
(fma.f64 1/2 (/.f64 (*.f64 a1 a1) a2) a2)
(fma.f64 1/2 (/.f64 a1 (/.f64 a2 a1)) a2)
(fma.f64 1/2 (*.f64 (/.f64 a1 a2) a1) a2)
(-.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2) (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))))
(-.f64 (fma.f64 1/2 (/.f64 (*.f64 a1 a1) a2) a2) (/.f64 (*.f64 1/8 (pow.f64 a1 4)) (pow.f64 a2 3)))
(+.f64 (fma.f64 1/2 (/.f64 a1 (/.f64 a2 a1)) a2) (*.f64 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) -1/8))
(fma.f64 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) -1/8 (fma.f64 1/2 (*.f64 (/.f64 a1 a2) a1) a2))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2)) (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))))
(-.f64 (fma.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) (fma.f64 1/2 (/.f64 (*.f64 a1 a1) a2) a2)) (/.f64 (*.f64 1/8 (pow.f64 a1 4)) (pow.f64 a2 3)))
(-.f64 (fma.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) (fma.f64 1/2 (/.f64 a1 (/.f64 a2 a1)) a2)) (/.f64 (*.f64 1/8 (pow.f64 a1 4)) (pow.f64 a2 3)))
(fma.f64 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) -1/8 (fma.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) (fma.f64 1/2 (*.f64 (/.f64 a1 a2) a1) a2)))
(*.f64 -1 a2)
(neg.f64 a2)
(neg.f64 (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2))
(neg.f64 (fma.f64 1/2 (/.f64 (*.f64 a1 a1) a2) a2))
(neg.f64 (fma.f64 1/2 (/.f64 a1 (/.f64 a2 a1)) a2))
(-.f64 (/.f64 -1/2 (/.f64 a2 (*.f64 a1 a1))) a2)
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2))
(-.f64 (/.f64 (*.f64 1/8 (pow.f64 a1 4)) (pow.f64 a2 3)) (fma.f64 1/2 (/.f64 (*.f64 a1 a1) a2) a2))
(-.f64 (/.f64 (*.f64 1/8 (pow.f64 a1 4)) (pow.f64 a2 3)) (fma.f64 1/2 (/.f64 a1 (/.f64 a2 a1)) a2))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))) (fma.f64 1/2 (*.f64 (/.f64 a1 a2) a1) a2))
(-.f64 (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2)))
(-.f64 (/.f64 (*.f64 1/8 (pow.f64 a1 4)) (pow.f64 a2 3)) (fma.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) (fma.f64 1/2 (/.f64 (*.f64 a1 a1) a2) a2)))
(-.f64 (/.f64 (*.f64 1/8 (pow.f64 a1 4)) (pow.f64 a2 3)) (fma.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) (fma.f64 1/2 (/.f64 a1 (/.f64 a2 a1)) a2)))
(-.f64 (fma.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (*.f64 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) -1/16)) (fma.f64 1/2 (*.f64 (/.f64 a1 a2) a1) a2))

prune131.0ms (1.8%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New1621163
Fresh134
Picked011
Done101
Total1645169
Error
0b
Counts
169 → 5
Alt Table
StatusErrorProgram
0.4b
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))))
0.4b
(*.f64 (cos.f64 th) (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 2 -1/2)))
0.5b
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
0.7b
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)))
0.5b
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
Compiler

Compiled 3242 to 2038 computations (37.1% saved)

localize8.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 a1 a2)
0.1b
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))))
0.2b
(*.f64 (hypot.f64 a1 a2) (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2)))
0.4b
(*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))

series9.0ms (0.1%)

Counts
3 → 84
Calls

21 calls:

TimeVariablePointExpression
1.0ms
a1
@0
(*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))
1.0ms
a1
@inf
(*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))
1.0ms
a2
@-inf
(*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))
1.0ms
a1
@-inf
(*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))
1.0ms
a2
@0
(*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))

rewrite46.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
577×log-prod_binary64
213×expm1-udef_binary64
213×log1p-udef_binary64
194×pow3_binary64
181×log-pow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01247
124738
2285038
Stop Event
node limit
Counts
3 → 54
Calls
Call 1
Inputs
(*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))
(*.f64 (hypot.f64 a1 a2) (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2)))
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (hypot.f64 a1 a2))) (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (hypot.f64 a1 a2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (hypot.f64 a1 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (hypot.f64 a1 a2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (hypot.f64 a1 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 1/2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 1/2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 1/2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 1/2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 1/2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (hypot.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 1/2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 3) (*.f64 (sqrt.f64 1/2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (sqrt.f64 1/2) 1/2) (pow.f64 (hypot.f64 a1 a2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 1/2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 1/2))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (sqrt.f64 1/2))) (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (sqrt.f64 1/2))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (sqrt.f64 1/2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (sqrt.f64 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 3) (pow.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 1/2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 1/2)) 3) (pow.f64 (hypot.f64 a1 a2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (*.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2)))) (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2)))))) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (cos.f64 th)) (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2)) 3) (pow.f64 (cos.f64 th) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 th) 3) (pow.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a1 a2) 2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))))

simplify45.0ms (0.6%)

Algorithm
egg-herbie
Rules
672×fma-def_binary64
605×associate-*l*_binary64
419×cancel-sign-sub-inv_binary64
302×times-frac_binary64
228×associate-/l*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01181983
13891812
214081780
Stop Event
node limit
Counts
138 → 107
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 1/2) a2)
(+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2)))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 4)) (pow.f64 a2 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 6)) (pow.f64 a2 5))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2)))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 4)) (pow.f64 a2 3))))
(*.f64 (sqrt.f64 1/2) a1)
(+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1)))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 4)) (pow.f64 a1 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 6)) (pow.f64 a1 5))) (+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1)))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 4)) (pow.f64 a1 3))))
(*.f64 -1 (*.f64 (sqrt.f64 1/2) a1))
(neg.f64 (+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1))))
(-.f64 (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 4)) (pow.f64 a1 3))) (+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1))))
(-.f64 (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 4)) (pow.f64 a1 3))) (+.f64 (*.f64 1/16 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 6)) (pow.f64 a1 5))) (+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1)))))
(*.f64 (sqrt.f64 1/2) a1)
(+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1)))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 4)) (pow.f64 a1 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 6)) (pow.f64 a1 5))) (+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1)))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 4)) (pow.f64 a1 3))))
(*.f64 (sqrt.f64 1/2) a2)
(+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2)))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 4)) (pow.f64 a2 3))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 6)) (pow.f64 a2 5))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2)))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 4)) (pow.f64 a2 3))))
(*.f64 -1 (*.f64 (sqrt.f64 1/2) a2))
(neg.f64 (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2))))
(-.f64 (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 4)) (pow.f64 a2 3))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2))))
(-.f64 (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 4)) (pow.f64 a2 3))) (+.f64 (*.f64 1/16 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 6)) (pow.f64 a2 5))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2)))))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2))))))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4)))) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 2) (pow.f64 a2 2))))))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 4) (pow.f64 a2 2))))))) (+.f64 (*.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 6)))) (+.f64 (*.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 6)))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 2) (pow.f64 a2 2))))))))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
Outputs
(*.f64 (sqrt.f64 1/2) a2)
(+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2)))
(fma.f64 (sqrt.f64 1/2) a2 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a2 (*.f64 a1 a1)))))
(fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) a2))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 4)) (pow.f64 a2 3))))
(+.f64 (fma.f64 (sqrt.f64 1/2) a2 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a2 (*.f64 a1 a1))))) (*.f64 -1/8 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a2 3) (pow.f64 a1 4)))))
(fma.f64 (sqrt.f64 1/2) a2 (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) (*.f64 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a2 3) (pow.f64 a1 4))) -1/8)))
(fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) (fma.f64 (sqrt.f64 1/2) a2 (*.f64 (*.f64 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (sqrt.f64 1/2)) -1/8)))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 6)) (pow.f64 a2 5))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2)))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 4)) (pow.f64 a2 3))))
(+.f64 (fma.f64 1/16 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a2 5) (pow.f64 a1 6))) (fma.f64 (sqrt.f64 1/2) a2 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a2 (*.f64 a1 a1)))))) (*.f64 -1/8 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a2 3) (pow.f64 a1 4)))))
(fma.f64 1/16 (/.f64 (pow.f64 a1 6) (/.f64 (pow.f64 a2 5) (sqrt.f64 1/2))) (fma.f64 (sqrt.f64 1/2) a2 (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) (*.f64 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a2 3) (pow.f64 a1 4))) -1/8))))
(fma.f64 1/16 (*.f64 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) (sqrt.f64 1/2)) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) (fma.f64 (sqrt.f64 1/2) a2 (*.f64 (*.f64 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (sqrt.f64 1/2)) -1/8))))
(*.f64 (sqrt.f64 1/2) a1)
(+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1)))
(fma.f64 (sqrt.f64 1/2) a1 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a1 (*.f64 a2 a2)))))
(fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 a2 a2)) (*.f64 (sqrt.f64 1/2) a1))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 4)) (pow.f64 a1 3))))
(+.f64 (fma.f64 (sqrt.f64 1/2) a1 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a1 (*.f64 a2 a2))))) (*.f64 -1/8 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a1 3) (pow.f64 a2 4)))))
(fma.f64 (sqrt.f64 1/2) a1 (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 a2 a2)) (/.f64 (*.f64 -1/8 (sqrt.f64 1/2)) (/.f64 (pow.f64 a1 3) (pow.f64 a2 4)))))
(fma.f64 (sqrt.f64 1/2) a1 (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 a2 a2)) (*.f64 (/.f64 (*.f64 -1/8 (sqrt.f64 1/2)) (pow.f64 a1 3)) (pow.f64 a2 4))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 6)) (pow.f64 a1 5))) (+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1)))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 4)) (pow.f64 a1 3))))
(+.f64 (fma.f64 1/16 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a1 5) (pow.f64 a2 6))) (fma.f64 (sqrt.f64 1/2) a1 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a1 (*.f64 a2 a2)))))) (*.f64 -1/8 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a1 3) (pow.f64 a2 4)))))
(fma.f64 1/16 (*.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 a1 5)) (pow.f64 a2 6)) (fma.f64 (sqrt.f64 1/2) a1 (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 a2 a2)) (/.f64 (*.f64 -1/8 (sqrt.f64 1/2)) (/.f64 (pow.f64 a1 3) (pow.f64 a2 4))))))
(fma.f64 (*.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 a1 3)) (pow.f64 a2 4)) -1/8 (fma.f64 (sqrt.f64 1/2) a1 (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 a2 a2)) (*.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 a1 5)) (*.f64 (pow.f64 a2 6) 1/16)))))
(*.f64 -1 (*.f64 (sqrt.f64 1/2) a1))
(neg.f64 (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (neg.f64 a1))
(*.f64 a1 (neg.f64 (sqrt.f64 1/2)))
(neg.f64 (+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1))))
(neg.f64 (fma.f64 (sqrt.f64 1/2) a1 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a1 (*.f64 a2 a2))))))
(neg.f64 (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 a2 a2)) (*.f64 (sqrt.f64 1/2) a1)))
(-.f64 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 (*.f64 a2 a2) -1/2)) (*.f64 (sqrt.f64 1/2) a1))
(-.f64 (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 4)) (pow.f64 a1 3))) (+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1))))
(-.f64 (*.f64 1/8 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a1 3) (pow.f64 a2 4)))) (fma.f64 (sqrt.f64 1/2) a1 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a1 (*.f64 a2 a2))))))
(-.f64 (/.f64 (*.f64 (*.f64 1/8 (sqrt.f64 1/2)) (pow.f64 a2 4)) (pow.f64 a1 3)) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 a2 a2)) (*.f64 (sqrt.f64 1/2) a1)))
(-.f64 (/.f64 1/8 (/.f64 (/.f64 (pow.f64 a1 3) (pow.f64 a2 4)) (sqrt.f64 1/2))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 a2 a2)) (*.f64 (sqrt.f64 1/2) a1)))
(-.f64 (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 4)) (pow.f64 a1 3))) (+.f64 (*.f64 1/16 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 6)) (pow.f64 a1 5))) (+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1)))))
(-.f64 (*.f64 1/8 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a1 3) (pow.f64 a2 4)))) (fma.f64 1/16 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a1 5) (pow.f64 a2 6))) (fma.f64 (sqrt.f64 1/2) a1 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a1 (*.f64 a2 a2)))))))
(-.f64 (/.f64 (*.f64 (*.f64 1/8 (sqrt.f64 1/2)) (pow.f64 a2 4)) (pow.f64 a1 3)) (fma.f64 1/16 (*.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 a1 5)) (pow.f64 a2 6)) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 a2 a2)) (*.f64 (sqrt.f64 1/2) a1))))
(-.f64 (/.f64 1/8 (/.f64 (/.f64 (pow.f64 a1 3) (pow.f64 a2 4)) (sqrt.f64 1/2))) (fma.f64 (sqrt.f64 1/2) a1 (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 a2 a2)) (*.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 a1 5)) (*.f64 (pow.f64 a2 6) 1/16)))))
(*.f64 (sqrt.f64 1/2) a1)
(+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1)))
(fma.f64 (sqrt.f64 1/2) a1 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a1 (*.f64 a2 a2)))))
(fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 a2 a2)) (*.f64 (sqrt.f64 1/2) a1))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 4)) (pow.f64 a1 3))))
(+.f64 (fma.f64 (sqrt.f64 1/2) a1 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a1 (*.f64 a2 a2))))) (*.f64 -1/8 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a1 3) (pow.f64 a2 4)))))
(fma.f64 (sqrt.f64 1/2) a1 (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 a2 a2)) (/.f64 (*.f64 -1/8 (sqrt.f64 1/2)) (/.f64 (pow.f64 a1 3) (pow.f64 a2 4)))))
(fma.f64 (sqrt.f64 1/2) a1 (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 a2 a2)) (*.f64 (/.f64 (*.f64 -1/8 (sqrt.f64 1/2)) (pow.f64 a1 3)) (pow.f64 a2 4))))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 6)) (pow.f64 a1 5))) (+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) a1)))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 4)) (pow.f64 a1 3))))
(+.f64 (fma.f64 1/16 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a1 5) (pow.f64 a2 6))) (fma.f64 (sqrt.f64 1/2) a1 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a1 (*.f64 a2 a2)))))) (*.f64 -1/8 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a1 3) (pow.f64 a2 4)))))
(fma.f64 1/16 (*.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 a1 5)) (pow.f64 a2 6)) (fma.f64 (sqrt.f64 1/2) a1 (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 a2 a2)) (/.f64 (*.f64 -1/8 (sqrt.f64 1/2)) (/.f64 (pow.f64 a1 3) (pow.f64 a2 4))))))
(fma.f64 (*.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 a1 3)) (pow.f64 a2 4)) -1/8 (fma.f64 (sqrt.f64 1/2) a1 (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a1) (*.f64 a2 a2)) (*.f64 (/.f64 (sqrt.f64 1/2) (pow.f64 a1 5)) (*.f64 (pow.f64 a2 6) 1/16)))))
(*.f64 (sqrt.f64 1/2) a2)
(+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2)))
(fma.f64 (sqrt.f64 1/2) a2 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a2 (*.f64 a1 a1)))))
(fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) a2))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 4)) (pow.f64 a2 3))))
(+.f64 (fma.f64 (sqrt.f64 1/2) a2 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a2 (*.f64 a1 a1))))) (*.f64 -1/8 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a2 3) (pow.f64 a1 4)))))
(fma.f64 (sqrt.f64 1/2) a2 (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) (*.f64 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a2 3) (pow.f64 a1 4))) -1/8)))
(fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) (fma.f64 (sqrt.f64 1/2) a2 (*.f64 (*.f64 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (sqrt.f64 1/2)) -1/8)))
(-.f64 (+.f64 (*.f64 1/16 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 6)) (pow.f64 a2 5))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2)))) (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 4)) (pow.f64 a2 3))))
(+.f64 (fma.f64 1/16 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a2 5) (pow.f64 a1 6))) (fma.f64 (sqrt.f64 1/2) a2 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a2 (*.f64 a1 a1)))))) (*.f64 -1/8 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a2 3) (pow.f64 a1 4)))))
(fma.f64 1/16 (/.f64 (pow.f64 a1 6) (/.f64 (pow.f64 a2 5) (sqrt.f64 1/2))) (fma.f64 (sqrt.f64 1/2) a2 (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) (*.f64 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a2 3) (pow.f64 a1 4))) -1/8))))
(fma.f64 1/16 (*.f64 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) (sqrt.f64 1/2)) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) (fma.f64 (sqrt.f64 1/2) a2 (*.f64 (*.f64 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (sqrt.f64 1/2)) -1/8))))
(*.f64 -1 (*.f64 (sqrt.f64 1/2) a2))
(neg.f64 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (neg.f64 a2))
(neg.f64 (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2))))
(neg.f64 (fma.f64 (sqrt.f64 1/2) a2 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a2 (*.f64 a1 a1))))))
(neg.f64 (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) a2)))
(fma.f64 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) -1/2 (*.f64 (sqrt.f64 1/2) (neg.f64 a2)))
(-.f64 (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 4)) (pow.f64 a2 3))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2))))
(-.f64 (*.f64 1/8 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a2 3) (pow.f64 a1 4)))) (fma.f64 (sqrt.f64 1/2) a2 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a2 (*.f64 a1 a1))))))
(-.f64 (*.f64 1/8 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a2 3) (pow.f64 a1 4)))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) a2)))
(-.f64 (*.f64 1/8 (*.f64 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (sqrt.f64 1/2))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) a2)))
(-.f64 (*.f64 1/8 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 4)) (pow.f64 a2 3))) (+.f64 (*.f64 1/16 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 6)) (pow.f64 a2 5))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/2 (/.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) a2)))))
(-.f64 (*.f64 1/8 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a2 3) (pow.f64 a1 4)))) (fma.f64 1/16 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a2 5) (pow.f64 a1 6))) (fma.f64 (sqrt.f64 1/2) a2 (*.f64 1/2 (/.f64 (sqrt.f64 1/2) (/.f64 a2 (*.f64 a1 a1)))))))
(-.f64 (*.f64 1/8 (/.f64 (sqrt.f64 1/2) (/.f64 (pow.f64 a2 3) (pow.f64 a1 4)))) (fma.f64 1/16 (/.f64 (pow.f64 a1 6) (/.f64 (pow.f64 a2 5) (sqrt.f64 1/2))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) a2))))
(-.f64 (*.f64 1/8 (*.f64 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (sqrt.f64 1/2))) (fma.f64 1/2 (*.f64 (/.f64 (sqrt.f64 1/2) a2) (*.f64 a1 a1)) (fma.f64 (sqrt.f64 1/2) a2 (*.f64 1/16 (*.f64 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) (sqrt.f64 1/2))))))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2))))))
(-.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (*.f64 th th))) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 th th)) (*.f64 a2 a2)))))
(fma.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 -1/2 (*.f64 (*.f64 th th) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th th) (fma.f64 a2 a2 (*.f64 a1 a1)))) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4)))) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 2) (pow.f64 a2 2))))))
(-.f64 (fma.f64 (sqrt.f64 1/2) (*.f64 a1 a1) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (pow.f64 th 4))) (fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (*.f64 1/24 (*.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4)) (*.f64 a2 a2)))))) (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (*.f64 th th))) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 th th)) (*.f64 a2 a2)))))
(+.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) 1/24) (+.f64 (*.f64 a2 (*.f64 a2 (pow.f64 th 4))) (*.f64 (*.f64 a1 a1) (pow.f64 th 4)))) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))) (*.f64 -1/2 (*.f64 (*.f64 th th) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th th) (fma.f64 a2 a2 (*.f64 a1 a1)))) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 4) (fma.f64 a2 a2 (*.f64 a1 a1)))) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 4) (pow.f64 a2 2))))))) (+.f64 (*.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 6)))) (+.f64 (*.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 6)))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 2) (pow.f64 a2 2))))))))
(-.f64 (fma.f64 (sqrt.f64 1/2) (*.f64 a1 a1) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (pow.f64 th 4))) (fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (*.f64 1/24 (*.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4)) (*.f64 a2 a2)))))) (fma.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 6))) (fma.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (pow.f64 th 6))) (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (*.f64 th th))) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 th th)) (*.f64 a2 a2)))))))
(-.f64 (-.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) 1/24) (+.f64 (*.f64 a2 (*.f64 a2 (pow.f64 th 4))) (*.f64 (*.f64 a1 a1) (pow.f64 th 4)))) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))) (*.f64 (*.f64 (sqrt.f64 1/2) 1/720) (+.f64 (*.f64 a2 (*.f64 a2 (pow.f64 th 6))) (*.f64 (*.f64 a1 a1) (pow.f64 th 6))))) (*.f64 1/2 (*.f64 (*.f64 th th) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))))))
(-.f64 (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 4) (fma.f64 a2 a2 (*.f64 a1 a1)))) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))) (fma.f64 1/720 (*.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 th 6)) (fma.f64 a2 a2 (*.f64 a1 a1))) (*.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 th th))) (fma.f64 a2 a2 (*.f64 a1 a1)))))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) (*.f64 a2 a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) (*.f64 a2 a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) (*.f64 a2 a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)))

prune147.0ms (2.1%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New2150215
Fresh033
Picked011
Done011
Total2155220
Error
0b
Counts
220 → 5
Alt Table
StatusErrorProgram
0.4b
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))))
0.4b
(*.f64 (cos.f64 th) (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 2 -1/2)))
0.5b
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
0.7b
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)))
0.5b
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
Compiler

Compiled 4913 to 2931 computations (40.3% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.0b
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
0.2b
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
0.3b
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))

series8.0ms (0.1%)

Counts
3 → 46
Calls

18 calls:

TimeVariablePointExpression
1.0ms
a1
@inf
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
1.0ms
a1
@0
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
1.0ms
th
@inf
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
1.0ms
th
@0
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
1.0ms
a2
@0
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))

rewrite53.0ms (0.7%)

Algorithm
batch-egg-rewrite
Rules
598×prod-diff_binary64
226×expm1-udef_binary64
226×log1p-udef_binary64
134×add-sqr-sqrt_binary64
131×pow1_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01338
127532
2329832
Stop Event
node limit
Counts
3 → 73
Calls
Call 1
Inputs
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
(+.f64 (pow.f64 a1 2) (pow.f64 a2 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a1 a1) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) (*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) (*.f64 (*.f64 a1 a1) (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) (*.f64 a1 a1)) (*.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) (*.f64 a2 a2)) (*.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) (*.f64 a1 a1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (+.f64 (pow.f64 a1 6) (pow.f64 a2 6)) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) (-.f64 (+.f64 (pow.f64 a1 4) (pow.f64 a2 4)) (pow.f64 (*.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 (pow.f64 a1 4) (pow.f64 a2 4)) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) (-.f64 (*.f64 a1 a1) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) (+.f64 (pow.f64 a1 6) (pow.f64 a2 6))) (-.f64 (+.f64 (pow.f64 a1 4) (pow.f64 a2 4)) (pow.f64 (*.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) (-.f64 (pow.f64 a1 4) (pow.f64 a2 4))) (-.f64 (*.f64 a1 a1) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th))) (hypot.f64 a1 a2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 (cos.f64 th)) (sqrt.f64 1/2)) (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 3) (pow.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) 3) (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/2 (pow.f64 (cos.f64 th) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 th)) (sqrt.f64 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 1/2 (sqrt.f64 1/2)) (pow.f64 (cos.f64 th) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (cos.f64 th) 3) (*.f64 1/2 (sqrt.f64 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (hypot.f64 a1 a2) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (/.f64 (pow.f64 a1 4) (-.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (/.f64 (pow.f64 a2 4) (-.f64 (*.f64 a1 a1) (*.f64 a2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 a1 a2) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (hypot.f64 a1 a2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2)) (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 a1 a2) (hypot.f64 a1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (+.f64 (pow.f64 a1 6) (pow.f64 a2 6)) (/.f64 1 (-.f64 (+.f64 (pow.f64 a1 4) (pow.f64 a2 4)) (pow.f64 (*.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (-.f64 (pow.f64 a1 4) (pow.f64 a2 4)) (/.f64 1 (-.f64 (*.f64 a1 a1) (*.f64 a2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (+.f64 (pow.f64 a1 4) (pow.f64 a2 4)) (pow.f64 (*.f64 a1 a2) 2)) (+.f64 (pow.f64 a1 6) (pow.f64 a2 6))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (-.f64 (*.f64 a1 a1) (*.f64 a2 a2)) (-.f64 (pow.f64 a1 4) (pow.f64 a2 4))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 a1 6) (pow.f64 a2 6)) (-.f64 (+.f64 (pow.f64 a1 4) (pow.f64 a2 4)) (pow.f64 (*.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 a1 6) (pow.f64 a2 6)) (+.f64 (pow.f64 a2 4) (-.f64 (pow.f64 a1 4) (pow.f64 (*.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 a1 4) (pow.f64 a2 4)) (-.f64 (*.f64 a1 a1) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (+.f64 (pow.f64 a1 6) (pow.f64 a2 6))) (neg.f64 (-.f64 (+.f64 (pow.f64 a1 4) (pow.f64 a2 4)) (pow.f64 (*.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (-.f64 (pow.f64 a1 4) (pow.f64 a2 4))) (neg.f64 (-.f64 (*.f64 a1 a1) (*.f64 a2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 (pow.f64 a2 4) (pow.f64 a1 4)) (-.f64 (*.f64 a2 a2) (*.f64 a1 a1)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (hypot.f64 a1 a2) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 a1 a2) 2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 a1 a2) 2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a1 a1 (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a2 a2 (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a1 a1) (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a2 a2) (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 a2 4)) (pow.f64 (cbrt.f64 a2) 2) (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 a1 4)) (pow.f64 (cbrt.f64 a1) 2) (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 a1 a2) 2)))))))

simplify30.0ms (0.4%)

Algorithm
egg-herbie
Rules
584×fma-def_binary64
505×associate-*l*_binary64
455×associate-*r*_binary64
432×cancel-sign-sub-inv_binary64
209×associate--l+_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0801135
1255844
2878804
Stop Event
node limit
Counts
119 → 101
Calls
Call 1
Inputs
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2))))))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4)))) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 2) (pow.f64 a2 2))))))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 4) (pow.f64 a2 2))))))) (+.f64 (*.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 6)))) (+.f64 (*.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 6)))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 2) (pow.f64 a2 2))))))))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(sqrt.f64 1/2)
(-.f64 (sqrt.f64 1/2) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))))
(-.f64 (+.f64 (sqrt.f64 1/2) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))))
(-.f64 (+.f64 (sqrt.f64 1/2) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4)))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (*.f64 1/720 (*.f64 (sqrt.f64 1/2) (pow.f64 th 6)))))
(*.f64 (cos.f64 th) (sqrt.f64 1/2))
(*.f64 (cos.f64 th) (sqrt.f64 1/2))
(*.f64 (cos.f64 th) (sqrt.f64 1/2))
(*.f64 (cos.f64 th) (sqrt.f64 1/2))
(pow.f64 a2 2)
(pow.f64 a1 2)
(pow.f64 a1 2)
(pow.f64 a1 2)
(pow.f64 a2 2)
(pow.f64 a2 2)
Outputs
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a1 2))) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(+.f64 (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2))))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2))))))
(-.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))))))
(fma.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 -1/2 (*.f64 (*.f64 th th) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))))))
(fma.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (*.f64 (sqrt.f64 1/2) -1/2) (*.f64 (*.f64 th th) (fma.f64 a2 a2 (*.f64 a1 a1)))))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4)))) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 2) (pow.f64 a2 2))))))
(-.f64 (fma.f64 (sqrt.f64 1/2) (*.f64 a1 a1) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 4))) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (pow.f64 th 4))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))) (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))))))
(+.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) 1/24) (+.f64 (*.f64 (*.f64 a2 a2) (pow.f64 th 4)) (*.f64 a1 (*.f64 a1 (pow.f64 th 4))))) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))) (*.f64 -1/2 (*.f64 (*.f64 th th) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th th) (fma.f64 a2 a2 (*.f64 a1 a1)))) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 4) (fma.f64 a2 a2 (*.f64 a1 a1)))) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))))
(-.f64 (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 4) (pow.f64 a2 2))))))) (+.f64 (*.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 6)))) (+.f64 (*.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 6)))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 2) (pow.f64 a2 2))))))))
(-.f64 (fma.f64 (sqrt.f64 1/2) (*.f64 a1 a1) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 4))) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (pow.f64 th 4))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))) (fma.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 6))) (fma.f64 1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (pow.f64 th 6))) (*.f64 1/2 (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))))))))
(-.f64 (+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) 1/24) (+.f64 (*.f64 (*.f64 a2 a2) (pow.f64 th 4)) (*.f64 a1 (*.f64 a1 (pow.f64 th 4))))) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))) (+.f64 (*.f64 1/2 (*.f64 (*.f64 th th) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))))) (*.f64 (*.f64 (sqrt.f64 1/2) 1/720) (+.f64 (*.f64 a2 (*.f64 a2 (pow.f64 th 6))) (*.f64 a1 (*.f64 a1 (pow.f64 th 6)))))))
(+.f64 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 6) (fma.f64 a2 a2 (*.f64 a1 a1))))) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th th) (fma.f64 a2 a2 (*.f64 a1 a1)))) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 4) (fma.f64 a2 a2 (*.f64 a1 a1)))) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))))))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(*.f64 (cos.f64 th) (*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (sqrt.f64 1/2)))
(fma.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))
(sqrt.f64 1/2)
(-.f64 (sqrt.f64 1/2) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))))
(+.f64 (sqrt.f64 1/2) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 th th))))
(+.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th (*.f64 th (sqrt.f64 1/2))) -1/2))
(*.f64 (+.f64 (*.f64 (*.f64 th th) -1/2) 1) (sqrt.f64 1/2))
(-.f64 (+.f64 (sqrt.f64 1/2) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4)))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))))
(+.f64 (sqrt.f64 1/2) (-.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4))) (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 th th)))))
(+.f64 (sqrt.f64 1/2) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4)) (*.f64 (*.f64 th (*.f64 th (sqrt.f64 1/2))) -1/2)))
(+.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 (*.f64 th th) -1/2))))
(-.f64 (+.f64 (sqrt.f64 1/2) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4)))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (*.f64 1/720 (*.f64 (sqrt.f64 1/2) (pow.f64 th 6)))))
(+.f64 (sqrt.f64 1/2) (-.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4))) (fma.f64 1/2 (*.f64 (sqrt.f64 1/2) (*.f64 th th)) (*.f64 1/720 (*.f64 (sqrt.f64 1/2) (pow.f64 th 6))))))
(-.f64 (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4)) (sqrt.f64 1/2)) (fma.f64 1/2 (*.f64 th (*.f64 th (sqrt.f64 1/2))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 6) 1/720))))
(+.f64 (sqrt.f64 1/2) (fma.f64 (sqrt.f64 1/2) (*.f64 1/24 (pow.f64 th 4)) (*.f64 (sqrt.f64 1/2) (-.f64 (*.f64 (*.f64 th th) -1/2) (*.f64 1/720 (pow.f64 th 6))))))
(*.f64 (cos.f64 th) (sqrt.f64 1/2))
(*.f64 (cos.f64 th) (sqrt.f64 1/2))
(*.f64 (cos.f64 th) (sqrt.f64 1/2))
(*.f64 (cos.f64 th) (sqrt.f64 1/2))
(pow.f64 a2 2)
(*.f64 a2 a2)
(pow.f64 a1 2)
(*.f64 a1 a1)
(pow.f64 a1 2)
(*.f64 a1 a1)
(pow.f64 a1 2)
(*.f64 a1 a1)
(pow.f64 a2 2)
(*.f64 a2 a2)
(pow.f64 a2 2)
(*.f64 a2 a2)

prune74.0ms (1%)

Pruning

5 alts after pruning (2 fresh and 3 done)

PrunedKeptTotal
New1010101
Fresh022
Picked011
Done022
Total1015106
Error
0b
Counts
106 → 5
Alt Table
StatusErrorProgram
0.4b
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))))
0.4b
(*.f64 (cos.f64 th) (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 2 -1/2)))
0.5b
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
0.7b
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)))
0.5b
(*.f64 (+.f64 (pow.f64 a1 2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
Compiler

Compiled 1990 to 1301 computations (34.6% saved)

regimes690.0ms (9.7%)

Accuracy

Total 0.3b remaining (91.2%)

Threshold costs 0.3b (91.2%)

Counts
137 → 1
Compiler

Compiled 1946 to 1157 computations (40.5% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01323
11623
Stop Event
saturated
Calls
Call 1
Inputs
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) 1/2))))
Outputs
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) 1/2))))

end91.0ms (1.3%)

Stop Event
fuel
Remove

(sort a1 a2)

Compiler

Compiled 156 to 110 computations (29.5% saved)

Profiling

Loading profile data...