Details

Time bar (total: 17.1s)

analyze491.0ms (2.9%)

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
Compiler

Compiled 23 to 16 computations (30.4% saved)

sample5.0s (29.2%)

Results
1.3s1864×body1024valid
1.3s5477×body256valid
1.1s1620×body1024invalid
432.0ms1511×body256invalid
409.0ms796×body512invalid
377.0ms914×body512valid
1.0msbody2048invalid
1.0msbody2048valid

preprocess29.0ms (0.2%)

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 a2 a2) (*.f64 a1 a1)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.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 (cos.f64 th) (sqrt.f64 2)) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(+.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)))
(*.f64 (cos.f64 a2) (/.f64 (fma.f64 th th (*.f64 a1 a1)) (sqrt.f64 2)))
Symmetry

(sort a1 a2)

Compiler

Compiled 25 to 18 computations (28% saved)

simplify9.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)))

eval1.0ms (0%)

Compiler

Compiled 34 to 20 computations (41.2% saved)

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
0.5b
Counts
3 → 1
Alt Table
Click to see full alt table
StatusErrorProgram
0.5b
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
Compiler

Compiled 15 to 10 computations (33.3% saved)

localize15.0ms (0.1%)

Local error

Found 2 expressions with local error:

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

Compiled 37 to 16 computations (56.8% saved)

series14.0ms (0.1%)

Counts
2 → 40
Calls

12 calls:

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

rewrite63.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
523×log-prod_binary64
407×exp-prod_binary64
343×pow-prod-down_binary64
283×pow2_binary64
198×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01126
122425
2273825
Stop Event
node limit
Counts
2 → 86
Calls
Call 1
Inputs
(/.f64 (cos.f64 th) (sqrt.f64 2))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (cos.f64 th) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 th) (pow.f64 2 -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (cos.f64 th) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) (cbrt.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2)) (cbrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 th)) 2) (*.f64 (cbrt.f64 (cos.f64 th)) (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 th)) (*.f64 (sqrt.f64 (cos.f64 th)) (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (cos.f64 th)) (/.f64 1 (neg.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 2 -1/2) (cos.f64 th))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (cos.f64 th)) 2) 1) (/.f64 (cbrt.f64 (cos.f64 th)) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (cos.f64 th)) 1) (/.f64 (sqrt.f64 (cos.f64 th)) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 2)) (/.f64 (cos.f64 th) (pow.f64 2 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (cos.f64 th)) 2) (cbrt.f64 2)) (cbrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 (cos.f64 th)) (cbrt.f64 2)) (/.f64 (sqrt.f64 (cos.f64 th)) (pow.f64 2 1/6)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 2 -1/4) (/.f64 (cos.f64 th) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (cos.f64 th)) 2) (pow.f64 2 1/4)) (/.f64 (cbrt.f64 (cos.f64 th)) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (cos.f64 th) 3) (pow.f64 2 3/2)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 2)) (cbrt.f64 (log.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))))) (sqrt.f64 (log.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (cos.f64 th) (neg.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (cos.f64 th) 3) (pow.f64 2 3/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a1 a1) (/.f64 (cos.f64 th) (sqrt.f64 2))) (*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (/.f64 (cos.f64 th) (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 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (sqrt.f64 2) (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2)) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2))) (neg.f64 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2)) 1) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2)) (cbrt.f64 2)) (pow.f64 2 1/6))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2)) (pow.f64 2 1/4)) (pow.f64 2 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 (cos.f64 th)) (pow.f64 (hypot.f64 a1 a2) 2)) (neg.f64 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (neg.f64 (cos.f64 th))) (neg.f64 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (pow.f64 (hypot.f64 a1 a2) 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) (hypot.f64 a1 a2)) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) (hypot.f64 a1 a2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2)))) 2)) (cbrt.f64 (log.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2))))) (sqrt.f64 (log.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (pow.f64 (hypot.f64 a1 a2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) (hypot.f64 a1 a2)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) (hypot.f64 a1 a2)) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) (hypot.f64 a1 a2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a1 a1) (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2))))))))

simplify53.0ms (0.3%)

Algorithm
egg-herbie
Rules
821×unswap-sqr_binary64
749×associate-*l*_binary64
547×associate-/l/_binary64
515×fma-def_binary64
494×distribute-rgt-in_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
059925
1145857
2373853
31196821
44370806
Stop Event
node limit
Counts
126 → 109
Calls
Call 1
Inputs
(/.f64 1 (sqrt.f64 2))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 th 2) (sqrt.f64 2))) (/.f64 1 (sqrt.f64 2)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 th 2) (sqrt.f64 2))) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 th 4) (sqrt.f64 2))) (/.f64 1 (sqrt.f64 2))))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 th 2) (sqrt.f64 2))) (+.f64 (*.f64 -1/720 (/.f64 (pow.f64 th 6) (sqrt.f64 2))) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 th 4) (sqrt.f64 2))) (/.f64 1 (sqrt.f64 2)))))
(/.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (/.f64 (pow.f64 a1 2) (sqrt.f64 2)) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)) (sqrt.f64 2)))))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (/.f64 (pow.f64 a1 2) (sqrt.f64 2)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)) (sqrt.f64 2))) (*.f64 1/24 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)) (sqrt.f64 2))))))
(+.f64 (*.f64 -1/720 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 6)) (sqrt.f64 2))) (+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (/.f64 (pow.f64 a1 2) (sqrt.f64 2)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)) (sqrt.f64 2))) (*.f64 1/24 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)) (sqrt.f64 2)))))))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
Outputs
(/.f64 1 (sqrt.f64 2))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 th 2) (sqrt.f64 2))) (/.f64 1 (sqrt.f64 2)))
(fma.f64 -1/2 (/.f64 (*.f64 th th) (sqrt.f64 2)) (/.f64 1 (sqrt.f64 2)))
(fma.f64 -1/2 (/.f64 th (/.f64 (sqrt.f64 2) th)) (/.f64 1 (sqrt.f64 2)))
(fma.f64 -1/2 (*.f64 (/.f64 th (sqrt.f64 2)) th) (/.f64 1 (sqrt.f64 2)))
(fma.f64 -1/2 (*.f64 th (/.f64 th (sqrt.f64 2))) (/.f64 1 (sqrt.f64 2)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 th 2) (sqrt.f64 2))) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 th 4) (sqrt.f64 2))) (/.f64 1 (sqrt.f64 2))))
(fma.f64 -1/2 (/.f64 (*.f64 th th) (sqrt.f64 2)) (fma.f64 1/24 (/.f64 (pow.f64 th 4) (sqrt.f64 2)) (/.f64 1 (sqrt.f64 2))))
(fma.f64 -1/2 (/.f64 th (/.f64 (sqrt.f64 2) th)) (fma.f64 1/24 (/.f64 (pow.f64 th 4) (sqrt.f64 2)) (/.f64 1 (sqrt.f64 2))))
(fma.f64 -1/2 (*.f64 (/.f64 th (sqrt.f64 2)) th) (fma.f64 1/24 (/.f64 (pow.f64 th 4) (sqrt.f64 2)) (/.f64 1 (sqrt.f64 2))))
(fma.f64 -1/2 (*.f64 th (/.f64 th (sqrt.f64 2))) (fma.f64 1/24 (/.f64 (pow.f64 th 4) (sqrt.f64 2)) (/.f64 1 (sqrt.f64 2))))
(+.f64 (/.f64 1 (sqrt.f64 2)) (*.f64 (*.f64 th (/.f64 th (sqrt.f64 2))) (+.f64 -1/2 (*.f64 th (*.f64 th 1/24)))))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 th 2) (sqrt.f64 2))) (+.f64 (*.f64 -1/720 (/.f64 (pow.f64 th 6) (sqrt.f64 2))) (+.f64 (*.f64 1/24 (/.f64 (pow.f64 th 4) (sqrt.f64 2))) (/.f64 1 (sqrt.f64 2)))))
(fma.f64 -1/2 (/.f64 (*.f64 th th) (sqrt.f64 2)) (fma.f64 -1/720 (/.f64 (pow.f64 th 6) (sqrt.f64 2)) (fma.f64 1/24 (/.f64 (pow.f64 th 4) (sqrt.f64 2)) (/.f64 1 (sqrt.f64 2)))))
(fma.f64 -1/2 (/.f64 th (/.f64 (sqrt.f64 2) th)) (fma.f64 -1/720 (/.f64 (pow.f64 th 6) (sqrt.f64 2)) (fma.f64 1/24 (/.f64 (pow.f64 th 4) (sqrt.f64 2)) (/.f64 1 (sqrt.f64 2)))))
(fma.f64 -1/2 (*.f64 (/.f64 th (sqrt.f64 2)) th) (fma.f64 1/24 (/.f64 (pow.f64 th 4) (sqrt.f64 2)) (fma.f64 -1/720 (/.f64 (pow.f64 th 6) (sqrt.f64 2)) (/.f64 1 (sqrt.f64 2)))))
(fma.f64 -1/2 (*.f64 th (/.f64 th (sqrt.f64 2))) (fma.f64 1/24 (/.f64 (pow.f64 th 4) (sqrt.f64 2)) (fma.f64 -1/720 (/.f64 (pow.f64 th 6) (sqrt.f64 2)) (/.f64 1 (sqrt.f64 2)))))
(+.f64 (/.f64 1 (sqrt.f64 2)) (fma.f64 -1/720 (/.f64 (pow.f64 th 6) (sqrt.f64 2)) (*.f64 (*.f64 th (/.f64 th (sqrt.f64 2))) (+.f64 -1/2 (*.f64 th (*.f64 th 1/24))))))
(/.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (sqrt.f64 2))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (/.f64 (pow.f64 a1 2) (sqrt.f64 2)) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 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 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (*.f64 th th))))))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (fma.f64 -1/2 (*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 th th)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1))))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (fma.f64 -1/2 (*.f64 (*.f64 th th) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1)))
(fma.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 -1/2 (*.f64 th th)) (fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 (*.f64 a2 a2) (sqrt.f64 2))))
(fma.f64 -1/2 (*.f64 (*.f64 th (/.f64 th (sqrt.f64 2))) (fma.f64 a2 a2 (*.f64 a1 a1))) (fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (/.f64 (pow.f64 a1 2) (sqrt.f64 2)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)) (sqrt.f64 2))) (*.f64 1/24 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)) (sqrt.f64 2))))))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (fma.f64 -1/2 (/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (*.f64 th th))) (*.f64 1/24 (/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (pow.f64 th 4)))))))
(+.f64 (fma.f64 1/24 (*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (pow.f64 th 4)) (/.f64 (*.f64 -1/2 (fma.f64 a2 a2 (*.f64 a1 a1))) (/.f64 (sqrt.f64 2) (*.f64 th th)))) (+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1))))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (fma.f64 -1/2 (*.f64 (*.f64 th th) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))) (fma.f64 1/24 (*.f64 (pow.f64 th 4) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4))))))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (*.f64 th (/.f64 th (sqrt.f64 2))) (+.f64 -1/2 (*.f64 th (*.f64 th 1/24)))))))
(+.f64 (*.f64 -1/720 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 6)) (sqrt.f64 2))) (+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (/.f64 (pow.f64 a1 2) (sqrt.f64 2)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)) (sqrt.f64 2))) (*.f64 1/24 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)) (sqrt.f64 2)))))))
(fma.f64 -1/720 (/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (pow.f64 th 6))) (+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (fma.f64 -1/2 (/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (*.f64 th th))) (*.f64 1/24 (/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (pow.f64 th 4))))))))
(+.f64 (+.f64 (fma.f64 -1/720 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (pow.f64 th 6))) (/.f64 a2 (/.f64 (sqrt.f64 2) a2))) (/.f64 a1 (/.f64 (sqrt.f64 2) a1))) (fma.f64 1/24 (*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (pow.f64 th 4)) (/.f64 (*.f64 -1/2 (fma.f64 a2 a2 (*.f64 a1 a1))) (/.f64 (sqrt.f64 2) (*.f64 th th)))))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (fma.f64 -1/720 (*.f64 (pow.f64 th 6) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))) (fma.f64 -1/2 (*.f64 (*.f64 th th) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))) (fma.f64 1/24 (*.f64 (pow.f64 th 4) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1)))))
(fma.f64 -1/720 (*.f64 (pow.f64 th 6) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))) (fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4)))))))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (*.f64 -1/2 (*.f64 th th)))))))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a1 a1) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 (cos.f64 th) a1) a1) (sqrt.f64 2))
(*.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (cos.f64 th))
(*.f64 a1 (*.f64 (/.f64 a1 (sqrt.f64 2)) (cos.f64 th)))
(*.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (cos.f64 th))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a1 a1) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 (cos.f64 th) a1) a1) (sqrt.f64 2))
(*.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (cos.f64 th))
(*.f64 a1 (*.f64 (/.f64 a1 (sqrt.f64 2)) (cos.f64 th)))
(*.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (cos.f64 th))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a1 a1) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 (cos.f64 th) a1) a1) (sqrt.f64 2))
(*.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (cos.f64 th))
(*.f64 a1 (*.f64 (/.f64 a1 (sqrt.f64 2)) (cos.f64 th)))
(*.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (cos.f64 th))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (/.f64 (cos.f64 th) (sqrt.f64 2)))

eval37.0ms (0.2%)

Compiler

Compiled 1964 to 1149 computations (41.5% saved)

prune31.0ms (0.2%)

Pruning

14 alts after pruning (13 fresh and 1 done)

PrunedKeptTotal
New9613109
Fresh000
Picked011
Done000
Total9614110
Error
0.0b
Counts
110 → 14
Alt Table
Click to see full alt table
StatusErrorProgram
19.2b
(pow.f64 (*.f64 (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) (hypot.f64 a1 a2)) 2)
0.7b
(*.f64 (-.f64 (exp.f64 (log1p.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 1) (fma.f64 a1 a1 (*.f64 a2 a2)))
0.4b
(*.f64 (*.f64 (pow.f64 2 -1/2) (cos.f64 th)) (fma.f64 a1 a1 (*.f64 a2 a2)))
30.5b
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
0.5b
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
0.5b
(/.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2)) (pow.f64 2 1/4)) (pow.f64 2 1/4))
25.2b
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
25.2b
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
36.5b
(sqrt.f64 (*.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (pow.f64 (hypot.f64 a1 a2) 4)))
1.0b
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2))))
0.4b
(/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (sqrt.f64 2) (cos.f64 th)))
0.9b
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)))
29.4b
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
30.5b
(*.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (cos.f64 th))
Compiler

Compiled 393 to 304 computations (22.6% saved)

localize18.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (pow.f64 2 -1/2) (cos.f64 th))
0.4b
(*.f64 (*.f64 (pow.f64 2 -1/2) (cos.f64 th)) (fma.f64 a1 a1 (*.f64 a2 a2)))
Compiler

Compiled 41 to 20 computations (51.2% saved)

series7.0ms (0%)

Counts
2 → 48
Calls

12 calls:

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

rewrite60.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
532×log-prod_binary64
408×exp-prod_binary64
373×pow-prod-down_binary64
299×pow2_binary64
208×pow1/3_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01228
124425
2279125
Stop Event
node limit
Counts
2 → 52
Calls
Call 1
Inputs
(*.f64 (*.f64 (pow.f64 2 -1/2) (cos.f64 th)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.f64 (pow.f64 2 -1/2) (cos.f64 th))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2))))))) (#(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 (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 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.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 (sqrt.f64 (pow.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (*.f64 (sqrt.f64 1/2) (cos.f64 th))))) (log.f64 (sqrt.f64 (pow.f64 (exp.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) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (pow.f64 (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2)) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2))))) 2)) (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2)))))) (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/2 (pow.f64 (*.f64 (cos.f64 th) (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)) (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.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 fma.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 0 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (sqrt.f64 1/2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (sqrt.f64 1/2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (cos.f64 th)) (sqrt.f64 1/2)))))))) (#(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 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) 1/2)))) (#(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 pow.f64 (exp.f64 1) (log.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 2)) (cbrt.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))) (sqrt.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/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 expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))) (#(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 exp.f64 (*.f64 (*.f64 3 (log.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 1) 1))))))

simplify57.0ms (0.3%)

Algorithm
egg-herbie
Rules
837×distribute-rgt-in_binary64
820×distribute-lft-in_binary64
502×distribute-lft-out_binary64
488×unswap-sqr_binary64
450×associate-+l+_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
053958
1148884
2437838
31876810
45154806
Stop Event
node limit
Counts
100 → 75
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2))))
(+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)))))
(+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)))) (+.f64 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 6)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(sqrt.f64 1/2)
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4))) (sqrt.f64 1/2)))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4))) (+.f64 (sqrt.f64 1/2) (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (pow.f64 th 6))))))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
Outputs
(*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 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 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))))
(fma.f64 -1/2 (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (+.f64 (*.f64 -1/2 (*.f64 th th)) 1) (sqrt.f64 1/2)))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 -1/2 (*.f64 th th)))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (fma.f64 (sqrt.f64 1/2) (*.f64 -1/2 (*.f64 th th)) (sqrt.f64 1/2)))
(+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)))))
(fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 th 4))) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))))
(fma.f64 1/24 (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (pow.f64 th 4))) (fma.f64 -1/2 (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (*.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 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4))))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 1/24 (pow.f64 th 4)))))
(+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)))) (+.f64 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 6)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2))))))
(fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 th 4))) (fma.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 th 6))) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))))))
(fma.f64 1/24 (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (pow.f64 th 4))) (fma.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (pow.f64 th 6))) (fma.f64 -1/2 (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))))))
(+.f64 (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4))))) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (+.f64 (*.f64 -1/720 (pow.f64 th 6)) 1) (sqrt.f64 1/2))))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (+.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (+.f64 (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/720 (pow.f64 th 6))) (*.f64 -1/2 (*.f64 th th))))))
(*.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/720 (pow.f64 th 6)))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.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 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.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 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.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 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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)))
(sqrt.f64 1/2)
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 th th)) (sqrt.f64 1/2))
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 th th)) 1) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 -1/2 (*.f64 th th))))
(fma.f64 (sqrt.f64 1/2) (*.f64 -1/2 (*.f64 th th)) (sqrt.f64 1/2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4))) (sqrt.f64 1/2)))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 th th)) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4)) (sqrt.f64 1/2)))
(+.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (sqrt.f64 1/2) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 1/24 (pow.f64 th 4))))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4))) (+.f64 (sqrt.f64 1/2) (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (pow.f64 th 6))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 th th)) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4)) (+.f64 (sqrt.f64 1/2) (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (pow.f64 th 6))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 th th)) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (pow.f64 th 4)) (fma.f64 -1/720 (*.f64 (sqrt.f64 1/2) (pow.f64 th 6)) (sqrt.f64 1/2))))
(+.f64 (fma.f64 (sqrt.f64 1/2) (*.f64 1/24 (pow.f64 th 4)) (sqrt.f64 1/2)) (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (*.f64 -1/2 (*.f64 th th)))))
(+.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (+.f64 (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/720 (pow.f64 th 6))) (*.f64 -1/2 (*.f64 th th)))))
(*.f64 (sqrt.f64 1/2) (+.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/720 (pow.f64 th 6)))))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (cos.f64 th))

localize15.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
0.2b
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
0.5b
(/.f64 a2 (sqrt.f64 2))
Compiler

Compiled 30 to 19 computations (36.7% saved)

series15.0ms (0.1%)

Counts
3 → 48
Calls

15 calls:

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

rewrite67.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
953×pow1_binary64
882×add-log-exp_binary64
882×log1p-expm1-u_binary64
882×expm1-log1p-u_binary64
862×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0931
118831
2238031
Stop Event
node limit
Counts
3 → 69
Calls
Call 1
Inputs
(/.f64 a2 (sqrt.f64 2))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 a2 (sqrt.f64 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a2 (pow.f64 2 -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (sqrt.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 a2 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 a2 (sqrt.f64 2))) (cbrt.f64 (/.f64 (*.f64 a2 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (*.f64 a2 a2) 2)) (cbrt.f64 (/.f64 a2 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 a2) 2) (*.f64 (cbrt.f64 a2) (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 a2 (sqrt.f64 2))) (sqrt.f64 (/.f64 a2 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 a2) (*.f64 (sqrt.f64 a2) (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 a2) (/.f64 1 (neg.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 2 -1/2) a2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a2) 2) 1) (/.f64 (cbrt.f64 a2) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a2) 1) (/.f64 (sqrt.f64 a2) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 2)) (/.f64 a2 (cbrt.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a2) 2) (cbrt.f64 2)) (cbrt.f64 (/.f64 a2 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a2) (cbrt.f64 2)) (/.f64 (sqrt.f64 a2) (cbrt.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 2 1/4)) (/.f64 a2 (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a2) 2) (pow.f64 2 1/4)) (/.f64 (cbrt.f64 a2) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 a2 (sqrt.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 a2 (sqrt.f64 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 a2 (sqrt.f64 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 a2 (sqrt.f64 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 2) a2) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 a2 (neg.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (*.f64 a2 a2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 a2 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 a2 (sqrt.f64 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 a2 3) (*.f64 2 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 a2 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 a2 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 a2 (sqrt.f64 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 a2 (cos.f64 th)) a2) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a2 (*.f64 a2 (cos.f64 th))) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a2) (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a2 3) (pow.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) 3) (pow.f64 a2 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 a2 (/.f64 (sqrt.f64 2) (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) a2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a2 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 a2 (cos.f64 th))) (neg.f64 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a2 (cos.f64 th)) 1) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (cbrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (pow.f64 2 1/4)) (pow.f64 2 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 a2) (cos.f64 th)) (neg.f64 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (cos.f64 th) (neg.f64 a2)) (neg.f64 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (/.f64 a2 (sqrt.f64 2))) (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (/.f64 a2 (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 a2 (sqrt.f64 2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))))))))

simplify118.0ms (0.7%)

Algorithm
egg-herbie
Rules
1035×unswap-sqr_binary64
985×associate-*l/_binary64
967×fma-def_binary64
537×associate-/l*_binary64
469×*-commutative_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
053764
1135760
2350758
31142732
43628698
55294678
65470678
75679678
85894678
96098678
Stop Event
node limit
Counts
117 → 89
Calls
Call 1
Inputs
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 2)) (sqrt.f64 2))))
(+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 4)) (sqrt.f64 2))) (+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 2)) (sqrt.f64 2)))))
(+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 4)) (sqrt.f64 2))) (+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 2)) (sqrt.f64 2))) (*.f64 -1/720 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 6)) (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 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(/.f64 a2 (sqrt.f64 2))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a2 (pow.f64 th 2)) (sqrt.f64 2))) (/.f64 a2 (sqrt.f64 2)))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a2 (pow.f64 th 2)) (sqrt.f64 2))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 a2 (pow.f64 th 4)) (sqrt.f64 2))) (/.f64 a2 (sqrt.f64 2))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a2 (pow.f64 th 2)) (sqrt.f64 2))) (+.f64 (*.f64 -1/720 (/.f64 (*.f64 a2 (pow.f64 th 6)) (sqrt.f64 2))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 a2 (pow.f64 th 4)) (sqrt.f64 2))) (/.f64 a2 (sqrt.f64 2)))))
(/.f64 (*.f64 (cos.f64 th) a2) (sqrt.f64 2))
(/.f64 (*.f64 (cos.f64 th) a2) (sqrt.f64 2))
(/.f64 (*.f64 (cos.f64 th) a2) (sqrt.f64 2))
(/.f64 (*.f64 (cos.f64 th) a2) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
Outputs
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 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 -1/2 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (*.f64 th th)))))
(fma.f64 -1/2 (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 th th)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(fma.f64 -1/2 (*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 th th)) (*.f64 (/.f64 a2 (sqrt.f64 2)) a2))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 (/.f64 (*.f64 a2 -1/2) (sqrt.f64 2)) (*.f64 a2 (*.f64 th th))))
(*.f64 a2 (*.f64 (+.f64 (*.f64 th (*.f64 th -1/2)) 1) (/.f64 a2 (sqrt.f64 2))))
(*.f64 a2 (*.f64 (+.f64 1 (*.f64 th (*.f64 th -1/2))) (/.f64 a2 (sqrt.f64 2))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
(+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 4)) (sqrt.f64 2))) (+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 2)) (sqrt.f64 2)))))
(fma.f64 1/24 (/.f64 (*.f64 (*.f64 a2 a2) (pow.f64 th 4)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 -1/2 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (*.f64 th th))))))
(fma.f64 1/24 (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (pow.f64 th 4)) (fma.f64 -1/2 (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 th th)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2))))
(fma.f64 -1/2 (*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 th th)) (fma.f64 1/24 (*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (pow.f64 th 4)) (*.f64 (/.f64 a2 (sqrt.f64 2)) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 1/24 (pow.f64 th 4)))))
(fma.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (fma.f64 1/24 (pow.f64 th 4) (*.f64 th (*.f64 th -1/2))) (*.f64 a2 (/.f64 a2 (sqrt.f64 2))))
(*.f64 (+.f64 (fma.f64 1/24 (pow.f64 th 4) (*.f64 th (*.f64 th -1/2))) 1) (*.f64 a2 (/.f64 a2 (sqrt.f64 2))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (fma.f64 1/24 (pow.f64 th 4) (*.f64 th (*.f64 th -1/2)))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (fma.f64 th (*.f64 th -1/2) (*.f64 1/24 (pow.f64 th 4)))))
(+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 4)) (sqrt.f64 2))) (+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 2)) (sqrt.f64 2))) (*.f64 -1/720 (/.f64 (*.f64 (pow.f64 a2 2) (pow.f64 th 6)) (sqrt.f64 2))))))
(fma.f64 1/24 (/.f64 (*.f64 (*.f64 a2 a2) (pow.f64 th 4)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (fma.f64 -1/2 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (*.f64 th th))) (*.f64 -1/720 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (pow.f64 th 6)))))))
(+.f64 (fma.f64 1/24 (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (pow.f64 th 4)) (fma.f64 -1/2 (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 th th)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))) (*.f64 -1/720 (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (pow.f64 th 6))))
(fma.f64 1/24 (*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (pow.f64 th 4)) (fma.f64 -1/2 (*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 th th)) (fma.f64 -1/720 (*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (pow.f64 th 6)) (*.f64 (/.f64 a2 (sqrt.f64 2)) a2))))
(fma.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (*.f64 1/24 (pow.f64 th 4)) (fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 -1/720 (pow.f64 th 6))))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 (fma.f64 th (*.f64 th -1/2) (*.f64 -1/720 (pow.f64 th 6))) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 (+.f64 1 (*.f64 th (*.f64 th -1/2))) (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6)))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (fma.f64 1/24 (pow.f64 th 4) (*.f64 th (*.f64 th -1/2))))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (fma.f64 th (*.f64 th -1/2) (*.f64 1/24 (pow.f64 th 4))))))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2)))
(*.f64 (*.f64 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 a2 (sqrt.f64 2))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a2 (pow.f64 th 2)) (sqrt.f64 2))) (/.f64 a2 (sqrt.f64 2)))
(fma.f64 -1/2 (/.f64 (*.f64 a2 (*.f64 th th)) (sqrt.f64 2)) (/.f64 a2 (sqrt.f64 2)))
(fma.f64 -1/2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (*.f64 th th)) (/.f64 a2 (sqrt.f64 2)))
(*.f64 (+.f64 (*.f64 th (*.f64 th -1/2)) 1) (/.f64 a2 (sqrt.f64 2)))
(*.f64 (+.f64 1 (*.f64 th (*.f64 th -1/2))) (/.f64 a2 (sqrt.f64 2)))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a2 (pow.f64 th 2)) (sqrt.f64 2))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 a2 (pow.f64 th 4)) (sqrt.f64 2))) (/.f64 a2 (sqrt.f64 2))))
(fma.f64 -1/2 (/.f64 (*.f64 a2 (*.f64 th th)) (sqrt.f64 2)) (fma.f64 1/24 (/.f64 a2 (/.f64 (sqrt.f64 2) (pow.f64 th 4))) (/.f64 a2 (sqrt.f64 2))))
(fma.f64 -1/2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (*.f64 th th)) (fma.f64 1/24 (*.f64 (/.f64 a2 (sqrt.f64 2)) (pow.f64 th 4)) (/.f64 a2 (sqrt.f64 2))))
(fma.f64 -1/2 (/.f64 (*.f64 a2 (*.f64 th th)) (sqrt.f64 2)) (fma.f64 1/24 (*.f64 (pow.f64 th 4) (/.f64 a2 (sqrt.f64 2))) (/.f64 a2 (sqrt.f64 2))))
(+.f64 (/.f64 a2 (sqrt.f64 2)) (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 1/24 (pow.f64 th 4)))))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) (fma.f64 1/24 (pow.f64 th 4) (*.f64 th (*.f64 th -1/2))) (/.f64 a2 (sqrt.f64 2)))
(*.f64 (+.f64 (fma.f64 1/24 (pow.f64 th 4) (*.f64 th (*.f64 th -1/2))) 1) (/.f64 a2 (sqrt.f64 2)))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (fma.f64 1/24 (pow.f64 th 4) (*.f64 th (*.f64 th -1/2)))))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (fma.f64 th (*.f64 th -1/2) (*.f64 1/24 (pow.f64 th 4)))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 a2 (pow.f64 th 2)) (sqrt.f64 2))) (+.f64 (*.f64 -1/720 (/.f64 (*.f64 a2 (pow.f64 th 6)) (sqrt.f64 2))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 a2 (pow.f64 th 4)) (sqrt.f64 2))) (/.f64 a2 (sqrt.f64 2)))))
(fma.f64 -1/2 (/.f64 (*.f64 a2 (*.f64 th th)) (sqrt.f64 2)) (fma.f64 -1/720 (/.f64 a2 (/.f64 (sqrt.f64 2) (pow.f64 th 6))) (fma.f64 1/24 (/.f64 a2 (/.f64 (sqrt.f64 2) (pow.f64 th 4))) (/.f64 a2 (sqrt.f64 2)))))
(fma.f64 -1/2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (*.f64 th th)) (fma.f64 -1/720 (*.f64 (/.f64 a2 (sqrt.f64 2)) (pow.f64 th 6)) (fma.f64 1/24 (*.f64 (/.f64 a2 (sqrt.f64 2)) (pow.f64 th 4)) (/.f64 a2 (sqrt.f64 2)))))
(fma.f64 -1/2 (/.f64 (*.f64 a2 (*.f64 th th)) (sqrt.f64 2)) (fma.f64 1/24 (*.f64 (pow.f64 th 4) (/.f64 a2 (sqrt.f64 2))) (fma.f64 -1/720 (*.f64 (pow.f64 th 6) (/.f64 a2 (sqrt.f64 2))) (/.f64 a2 (sqrt.f64 2)))))
(+.f64 (/.f64 a2 (sqrt.f64 2)) (fma.f64 -1/2 (/.f64 (*.f64 a2 (*.f64 th th)) (sqrt.f64 2)) (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/720 (pow.f64 th 6))))))
(+.f64 (/.f64 a2 (sqrt.f64 2)) (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 (*.f64 th (*.f64 th -1/2)) (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6))))))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 (+.f64 1 (*.f64 th (*.f64 th -1/2))) (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6)))))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (fma.f64 1/24 (pow.f64 th 4) (*.f64 th (*.f64 th -1/2))))))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (fma.f64 th (*.f64 th -1/2) (*.f64 1/24 (pow.f64 th 4))))))
(/.f64 (*.f64 (cos.f64 th) a2) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) a2) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) a2) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (cos.f64 th) a2) (sqrt.f64 2))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 a2 (cos.f64 th)) (sqrt.f64 2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))
(*.f64 a2 (/.f64 (cos.f64 th) (sqrt.f64 2)))

localize15.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (pow.f64 a1 2) (cos.f64 th))
0.3b
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
Compiler

Compiled 28 to 18 computations (35.7% saved)

series7.0ms (0%)

Counts
2 → 8
Calls

12 calls:

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

rewrite57.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
921×pow1_binary64
854×add-log-exp_binary64
854×log1p-expm1-u_binary64
854×expm1-log1p-u_binary64
834×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0923
118923
2233223
Stop Event
node limit
Counts
2 → 54
Calls
Call 1
Inputs
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(*.f64 (pow.f64 a1 2) (cos.f64 th))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a1 a1) (/.f64 1 (/.f64 (sqrt.f64 2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a1 a1) (*.f64 (cos.f64 th) (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (pow.f64 2 -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2))) (cbrt.f64 (/.f64 (pow.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) 2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (pow.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) 2) 2)) (cbrt.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) 2)) (*.f64 (cbrt.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th)))) (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 (sqrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))) (/.f64 a1 (sqrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a1 (sqrt.f64 (cos.f64 th))) (*.f64 (*.f64 a1 (sqrt.f64 (cos.f64 th))) (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (*.f64 a1 a1) (neg.f64 (cos.f64 th))) (/.f64 1 (neg.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 2 -1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 a1) 1) (/.f64 (cos.f64 th) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cos.f64 th) 1) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (cos.f64 th))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) 2)) 1) (/.f64 (cbrt.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th)))) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 (sqrt.f64 (cos.f64 th))) 1) (/.f64 (*.f64 a1 (sqrt.f64 (cos.f64 th))) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 a1) (cbrt.f64 2)) (/.f64 (cos.f64 th) (cbrt.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cos.f64 th) (cbrt.f64 2)) (/.f64 (*.f64 a1 a1) (cbrt.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 2)) (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (cbrt.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) 2)) (cbrt.f64 2)) (cbrt.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 (sqrt.f64 (cos.f64 th))) (cbrt.f64 2)) (/.f64 (*.f64 a1 (sqrt.f64 (cos.f64 th))) (cbrt.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (*.f64 a1 a1) (pow.f64 2 1/4)) (/.f64 (cos.f64 th) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cos.f64 th) (pow.f64 2 1/4)) (/.f64 (*.f64 a1 a1) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 2 1/4)) (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) 2)) (pow.f64 2 1/4)) (/.f64 (cbrt.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th)))) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 a1 (sqrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a1 (*.f64 a1 (cos.f64 th)))) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (neg.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (pow.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) 3) (*.f64 2 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a1 (*.f64 a1 (cos.f64 th)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a1 (sqrt.f64 (cos.f64 th))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 th)) (*.f64 a1 a1)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 a1 a1) 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 a1 a1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th)))))))))

simplify52.0ms (0.3%)

Algorithm
egg-herbie
Rules
940×distribute-rgt-out_binary64
773×fma-def_binary64
609×associate-*l/_binary64
507×*-commutative_binary64
477×associate-*r/_binary64
Iterations

Useful iterations: 5 (0.0ms)

IterNodesCost
037242
1105238
2308229
31192196
44490179
56028162
Stop Event
node limit
Counts
62 → 70
Calls
Call 1
Inputs
(/.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 (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/24 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 4)) (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 a1 2) (pow.f64 th 6)) (sqrt.f64 2))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 4)) (sqrt.f64 2))) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))))
(pow.f64 a1 2)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 a1 2) (pow.f64 th 2))) (pow.f64 a1 2))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 a1 2) (pow.f64 th 2))) (+.f64 (pow.f64 a1 2) (*.f64 1/24 (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 a1 2) (pow.f64 th 2))) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 a1 2) (pow.f64 th 6))) (+.f64 (pow.f64 a1 2) (*.f64 1/24 (*.f64 (pow.f64 a1 2) (pow.f64 th 4))))))
Outputs
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 2)) (sqrt.f64 2))) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(fma.f64 -1/2 (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (*.f64 th th))) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(fma.f64 -1/2 (*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (*.f64 th th)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(fma.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (*.f64 -1/2 (*.f64 th th)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(+.f64 (*.f64 -1/2 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 2)) (sqrt.f64 2))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 4)) (sqrt.f64 2))) (/.f64 (pow.f64 a1 2) (sqrt.f64 2))))
(fma.f64 -1/2 (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (*.f64 th th))) (fma.f64 1/24 (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (pow.f64 th 4))) (/.f64 (*.f64 a1 a1) (sqrt.f64 2))))
(fma.f64 -1/2 (*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (*.f64 th th)) (fma.f64 1/24 (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (pow.f64 th 4))) (/.f64 (*.f64 a1 a1) (sqrt.f64 2))))
(fma.f64 -1/2 (*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (*.f64 th th)) (fma.f64 1/24 (*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (pow.f64 th 4)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2))))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (+.f64 1 (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4)))))
(+.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 a1 2) (pow.f64 th 6)) (sqrt.f64 2))) (+.f64 (*.f64 1/24 (/.f64 (*.f64 (pow.f64 a1 2) (pow.f64 th 4)) (sqrt.f64 2))) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))))
(fma.f64 -1/2 (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (*.f64 th th))) (fma.f64 -1/720 (/.f64 (*.f64 (*.f64 a1 a1) (pow.f64 th 6)) (sqrt.f64 2)) (fma.f64 1/24 (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (pow.f64 th 4))) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))))
(fma.f64 -1/2 (*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (*.f64 th th)) (fma.f64 -1/720 (*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (pow.f64 th 6)) (fma.f64 1/24 (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (pow.f64 th 4))) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))))
(fma.f64 -1/2 (*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (*.f64 th th)) (fma.f64 1/24 (*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (pow.f64 th 4)) (fma.f64 -1/720 (/.f64 (*.f64 (*.f64 a1 a1) (pow.f64 th 6)) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))))
(fma.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (*.f64 -1/2 (*.f64 th th)) (fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6))))))
(+.f64 (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) (*.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6)))))
(*.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (+.f64 (fma.f64 -1/2 (*.f64 th th) 1) (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6)))))
(pow.f64 a1 2)
(*.f64 a1 a1)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 a1 2) (pow.f64 th 2))) (pow.f64 a1 2))
(fma.f64 -1/2 (*.f64 (*.f64 a1 a1) (*.f64 th th)) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 (*.f64 th th) (*.f64 (*.f64 -1/2 a1) a1)))
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 th th)) 1) (*.f64 a1 a1))
(*.f64 (*.f64 a1 a1) (fma.f64 -1/2 (*.f64 th th) 1))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 a1 2) (pow.f64 th 2))) (+.f64 (pow.f64 a1 2) (*.f64 1/24 (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))))
(+.f64 (fma.f64 -1/2 (*.f64 (*.f64 a1 a1) (*.f64 th th)) (*.f64 a1 a1)) (*.f64 1/24 (*.f64 (*.f64 a1 a1) (pow.f64 th 4))))
(fma.f64 -1/2 (*.f64 a1 (*.f64 a1 (*.f64 th th))) (fma.f64 1/24 (*.f64 (*.f64 a1 a1) (pow.f64 th 4)) (*.f64 a1 a1)))
(fma.f64 a1 a1 (*.f64 (*.f64 a1 a1) (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (*.f64 a1 a1) (+.f64 (*.f64 -1/2 (*.f64 th th)) (fma.f64 1/24 (pow.f64 th 4) 1)))
(*.f64 (*.f64 a1 a1) (+.f64 1 (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4)))))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 a1 2) (pow.f64 th 2))) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 a1 2) (pow.f64 th 6))) (+.f64 (pow.f64 a1 2) (*.f64 1/24 (*.f64 (pow.f64 a1 2) (pow.f64 th 4))))))
(fma.f64 -1/2 (*.f64 (*.f64 a1 a1) (*.f64 th th)) (fma.f64 -1/720 (*.f64 (*.f64 a1 a1) (pow.f64 th 6)) (+.f64 (*.f64 a1 a1) (*.f64 1/24 (*.f64 (*.f64 a1 a1) (pow.f64 th 4))))))
(fma.f64 -1/2 (*.f64 a1 (*.f64 a1 (*.f64 th th))) (fma.f64 -1/720 (*.f64 a1 (*.f64 a1 (pow.f64 th 6))) (fma.f64 1/24 (*.f64 (*.f64 a1 a1) (pow.f64 th 4)) (*.f64 a1 a1))))
(fma.f64 (*.f64 a1 a1) (*.f64 -1/2 (*.f64 th th)) (fma.f64 a1 a1 (*.f64 (*.f64 a1 a1) (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (*.f64 1/24 (pow.f64 th 4))))))
(fma.f64 a1 a1 (*.f64 (*.f64 a1 a1) (+.f64 (*.f64 -1/2 (*.f64 th th)) (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6))))))
(*.f64 (*.f64 a1 a1) (+.f64 (fma.f64 -1/2 (*.f64 th th) 1) (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6)))))

localize17.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(pow.f64 (hypot.f64 a1 a2) 2)
0.0b
(hypot.f64 a1 a2)
0.2b
(/.f64 (sqrt.f64 2) (cos.f64 th))
0.4b
(/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (sqrt.f64 2) (cos.f64 th)))
Compiler

Compiled 35 to 19 computations (45.7% saved)

series25.0ms (0.1%)

Counts
4 → 88
Calls

24 calls:

TimeVariablePointExpression
5.0ms
a1
@0
(/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (sqrt.f64 2) (cos.f64 th)))
5.0ms
a2
@0
(/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (sqrt.f64 2) (cos.f64 th)))
2.0ms
th
@0
(/.f64 (sqrt.f64 2) (cos.f64 th))
2.0ms
a2
@inf
(/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (sqrt.f64 2) (cos.f64 th)))
1.0ms
a1
@inf
(/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (sqrt.f64 2) (cos.f64 th)))

rewrite78.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
569×log-prod_binary64
451×exp-prod_binary64
292×pow2_binary64
289×pow-prod-down_binary64
204×pow1/3_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01136
123536
2297236
Stop Event
node limit
Counts
4 → 181
Calls
Call 1
Inputs
(/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(/.f64 (sqrt.f64 2) (cos.f64 th))
(hypot.f64 a1 a2)
(pow.f64 (hypot.f64 a1 a2) 2)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2))))) 2)) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (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) (/.f64 (cos.f64 th) (sqrt.f64 2)))))) (log.f64 (sqrt.f64 (exp.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2)))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 a1 a2) (*.f64 (hypot.f64 a1 a2) (/.f64 (cos.f64 th) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 th) (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2)))) (cbrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 4) (*.f64 2 (pow.f64 (cos.f64 th) -2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 4) (*.f64 2 (pow.f64 (cos.f64 th) -2)))) (cbrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 4) (*.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2) (/.f64 (cos.f64 th) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (pow.f64 (hypot.f64 a1 a2) 2)) (/.f64 1 (/.f64 (neg.f64 (sqrt.f64 2)) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (pow.f64 (hypot.f64 a1 a2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)) (cos.f64 th))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 a1 a2) 1) (/.f64 (hypot.f64 a1 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 a1 a2) (sqrt.f64 2)) (/.f64 (hypot.f64 a1 a2) (/.f64 1 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 4) 1) (/.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2) (/.f64 (sqrt.f64 2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 2 -1/2) (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 1 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 4) (sqrt.f64 2)) (/.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2) (/.f64 1 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 a1 a2) (cbrt.f64 (*.f64 2 (pow.f64 (cos.f64 th) -2)))) (/.f64 (hypot.f64 a1 a2) (cbrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))) -2) (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cbrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 4) (cbrt.f64 (*.f64 2 (pow.f64 (cos.f64 th) -2)))) (cbrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)) -1/2) (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 4) (sqrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))) (/.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2) (sqrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) 1) (/.f64 (cos.f64 th) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (neg.f64 (sqrt.f64 2))) (neg.f64 (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)) 1) (cos.f64 th))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)) (cbrt.f64 (pow.f64 (cos.f64 th) 2))) (cbrt.f64 (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (sqrt.f64 2)) (sqrt.f64 (cos.f64 th))) (sqrt.f64 (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 4) (*.f64 2 (pow.f64 (cos.f64 th) -2))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 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 pow.f64 (exp.f64 1) (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 6) (pow.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) -3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cos.f64 th))) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2))))) 2)) (cbrt.f64 (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2)))))) (sqrt.f64 (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (neg.f64 (sqrt.f64 2)) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 4) (*.f64 2 (pow.f64 (cos.f64 th) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 6))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (hypot.f64 a1 a2) 6) (pow.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) -3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (hypot.f64 a1 a2) (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sqrt.f64 2) (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (cos.f64 th)))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (cos.f64 th) (sqrt.f64 2)))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (/.f64 (sqrt.f64 2) (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))) 2)) (log.f64 (cbrt.f64 (exp.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (exp.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))))) (log.f64 (sqrt.f64 (exp.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 2) (/.f64 1 (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (sqrt.f64 2) (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))) (cbrt.f64 (*.f64 2 (pow.f64 (cos.f64 th) -2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 2 (pow.f64 (cos.f64 th) -2))) (cbrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 2) (*.f64 (pow.f64 2 1/6) (/.f64 1 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))) (sqrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 2 1/4) (*.f64 (pow.f64 2 1/4) (/.f64 1 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (sqrt.f64 2)) (/.f64 1 (neg.f64 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cos.f64 th)) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 2) 1) (/.f64 (pow.f64 2 1/6) (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 2 1/4) 1) (/.f64 (pow.f64 2 1/4) (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 th)) -2) (/.f64 (sqrt.f64 2) (cbrt.f64 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 2) (cbrt.f64 (pow.f64 (cos.f64 th) 2))) (cbrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 2 1/4) (cbrt.f64 (pow.f64 (cos.f64 th) 2))) (/.f64 (pow.f64 2 1/4) (cbrt.f64 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cos.f64 th) -1/2) (/.f64 (sqrt.f64 2) (sqrt.f64 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 2) (sqrt.f64 (cos.f64 th))) (/.f64 (pow.f64 2 1/6) (sqrt.f64 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 2 (pow.f64 (cos.f64 th) -2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) -3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 2 3/2) (pow.f64 (cos.f64 th) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) 1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))) 2)) (cbrt.f64 (log.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))))) (sqrt.f64 (log.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (sqrt.f64 2) (neg.f64 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 2 (pow.f64 (cos.f64 th) -2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) -3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 2 3/2) (pow.f64 (cos.f64 th) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (/.f64 (sqrt.f64 2) (cos.f64 th)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) -1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (/.f64 (sqrt.f64 2) (cos.f64 th))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (hypot.f64 a1 a2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (hypot.f64 a1 a2))) 2)) (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 (cbrt.f64 (hypot.f64 a1 a2)) (pow.f64 (cbrt.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 (hypot.f64 a1 a2)))))) (#(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 (pow.f64 (cbrt.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) 6) 1/6)))) (#(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 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (hypot.f64 a1 a2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 1) (log.f64 (hypot.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (pow.f64 (cbrt.f64 (log.f64 (hypot.f64 a1 a2))) 2)) (cbrt.f64 (log.f64 (hypot.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (exp.f64 (sqrt.f64 (log.f64 (hypot.f64 a1 a2)))) (sqrt.f64 (log.f64 (hypot.f64 a1 a2))))))) (#(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 expm1.f64 (log1p.f64 (hypot.f64 a1 a2)))))) (#(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 exp.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 a1 a2))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 3 (log.f64 (hypot.f64 a1 a2))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (hypot.f64 a1 a2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (sqrt.f64 (hypot.f64 a1 a2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (hypot.f64 a1 a2)) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 a1 a2))) 1) 1/2))))))
((#(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 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 2))) 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)) 4) (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 2) (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (hypot.f64 a1 a2)) (pow.f64 (hypot.f64 a1 a2) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 a1 a2) 3/2) (sqrt.f64 (hypot.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 5) (cbrt.f64 (hypot.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (pow.f64 a1 6) (pow.f64 a2 6)) (+.f64 (pow.f64 a1 4) (-.f64 (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 (*.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 cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 6))))) (#(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 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 exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 a1 a2) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (cbrt.f64 (hypot.f64 a1 a2)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (hypot.f64 a1 a2)) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 a1 a2))) 1) 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) (pow.f64 a1 3/2) (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 a2) (pow.f64 a2 3/2) (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 a1) a1) (pow.f64 (cbrt.f64 a1) 2) (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 a1 3/2) (sqrt.f64 a1) (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (cbrt.f64 a2) a2) (pow.f64 (cbrt.f64 a2) 2) (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 a2 3/2) (sqrt.f64 a2) (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a2) 5) (cbrt.f64 a2) (*.f64 a1 a1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 a1) 5) (cbrt.f64 a1) (*.f64 a2 a2))))))

simplify74.0ms (0.4%)

Algorithm
egg-herbie
Rules
796×times-frac_binary64
631×associate-/l*_binary64
567×associate-/r*_binary64
409×distribute-rgt-in_binary64
394×distribute-lft-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02802949
18502759
229152439
Stop Event
node limit
Counts
269 → 265
Calls
Call 1
Inputs
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 a2 6)))) (*.f64 (pow.f64 a1 8) (cos.f64 th))) (sqrt.f64 2))))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 12) (*.f64 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a2 8))) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 2)))) (pow.f64 a2 2))) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a2 8))) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 2)))) (pow.f64 a2 2))) (+.f64 (pow.f64 (/.f64 1/16 (pow.f64 a2 5)) 2) (*.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 4)))))) (+.f64 (*.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 4))) (*.f64 1/256 (/.f64 1 (pow.f64 a2 10)))))) (cos.f64 th))) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 a2 6)))) (*.f64 (pow.f64 a1 8) (cos.f64 th))) (sqrt.f64 2)))))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a1 2)))))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a1 2))) (/.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a2 6)) (*.f64 -1/8 (pow.f64 a2 6))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a1 4))))))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a1 2)))))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a1 2))) (/.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a2 6)) (*.f64 -1/8 (pow.f64 a2 6))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a1 4))))))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a1 6)))) (*.f64 (cos.f64 th) (pow.f64 a2 8))) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))))
(+.f64 (/.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a1 6)))) (*.f64 (pow.f64 a2 8) (cos.f64 th))) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a1 8))) (*.f64 -1/2 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 2)))) (pow.f64 a1 2))) (+.f64 (*.f64 1/8 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4))) (+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 a1 10))) (*.f64 -1 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a1 8))) (*.f64 -1/2 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 2)))) (pow.f64 a1 2))) (+.f64 (pow.f64 (/.f64 1/16 (pow.f64 a1 5)) 2) (*.f64 1/8 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4))))))))) (*.f64 (cos.f64 th) (pow.f64 a2 12))) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a2 2)))))
(+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a1 6)) (*.f64 -1/8 (pow.f64 a1 6))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a2 4))) (+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a2 2))))))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a2 2)))))
(+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a1 6)) (*.f64 -1/8 (pow.f64 a1 6))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a2 4))) (+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a2 2))))))
(/.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (/.f64 (pow.f64 a1 2) (sqrt.f64 2)) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)) (sqrt.f64 2)))))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (/.f64 (pow.f64 a1 2) (sqrt.f64 2)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)) (sqrt.f64 2))) (*.f64 1/24 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)) (sqrt.f64 2))))))
(+.f64 (*.f64 -1/720 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 6)) (sqrt.f64 2))) (+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (/.f64 (pow.f64 a1 2) (sqrt.f64 2)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)) (sqrt.f64 2))) (*.f64 1/24 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)) (sqrt.f64 2)))))))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)) (sqrt.f64 2))
(sqrt.f64 2)
(+.f64 (sqrt.f64 2) (*.f64 1/2 (*.f64 (sqrt.f64 2) (pow.f64 th 2))))
(+.f64 (sqrt.f64 2) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 2) (pow.f64 th 2))) (*.f64 -1 (*.f64 (+.f64 (*.f64 1/24 (sqrt.f64 2)) (*.f64 -1/4 (sqrt.f64 2))) (pow.f64 th 4)))))
(+.f64 (sqrt.f64 2) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1/720 (sqrt.f64 2)) (+.f64 (*.f64 1/2 (+.f64 (*.f64 1/24 (sqrt.f64 2)) (*.f64 -1/4 (sqrt.f64 2)))) (*.f64 1/48 (sqrt.f64 2)))) (pow.f64 th 6))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 2) (pow.f64 th 2))) (*.f64 -1 (*.f64 (+.f64 (*.f64 1/24 (sqrt.f64 2)) (*.f64 -1/4 (sqrt.f64 2))) (pow.f64 th 4))))))
a2
(+.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/2 (/.f64 (pow.f64 a1 2) a2)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5))) a2)))
a1
(+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))
(+.f64 a1 (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1))))
(+.f64 (*.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5))) (+.f64 a1 (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))))
(*.f64 -1 a1)
(+.f64 (*.f64 -1 a1) (*.f64 -1/2 (/.f64 (pow.f64 a2 2) a1)))
(+.f64 (*.f64 -1 a1) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (*.f64 -1/2 (/.f64 (pow.f64 a2 2) a1))))
(+.f64 (*.f64 -1 a1) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (*.f64 -1/2 (/.f64 (pow.f64 a2 2) a1)))))
a1
(+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))
(+.f64 a1 (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1))))
(+.f64 (*.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5))) (+.f64 a1 (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))))
a2
(+.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/2 (/.f64 (pow.f64 a1 2) a2)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5))) a2)))
(*.f64 -1 a2)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 a1 2) a2)) (*.f64 -1 a2))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 a1 2) a2)) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))) (*.f64 -1 a2)))
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 a1 2) 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 -1 a2))))
(pow.f64 a2 2)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a1 8)) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)))
(pow.f64 a1 2)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (+.f64 (pow.f64 a2 2) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (pow.f64 a1 2))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (+.f64 (pow.f64 a2 2) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (+.f64 (pow.f64 a1 2) (*.f64 1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4))))))))
(pow.f64 a1 2)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (+.f64 (pow.f64 a2 2) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (pow.f64 a1 2))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (+.f64 (pow.f64 a2 2) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (+.f64 (pow.f64 a1 2) (*.f64 1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4))))))))
(pow.f64 a1 2)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (pow.f64 a2 2) (+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a1 6)))) (pow.f64 a2 8)) (pow.f64 a1 2)))
(pow.f64 a2 2)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2))))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a1 6) (pow.f64 a2 4))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (pow.f64 a2 2) (+.f64 (pow.f64 a1 2) (*.f64 1/8 (/.f64 (pow.f64 a1 6) (pow.f64 a2 4))))))))
(pow.f64 a2 2)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2))))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a1 6) (pow.f64 a2 4))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (pow.f64 a2 2) (+.f64 (pow.f64 a1 2) (*.f64 1/8 (/.f64 (pow.f64 a1 6) (pow.f64 a2 4))))))))
Outputs
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)))
(*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 a2 6)))) (*.f64 (pow.f64 a1 8) (cos.f64 th))) (sqrt.f64 2))))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (/.f64 (fma.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (/.f64 5/64 (pow.f64 a2 6))) (/.f64 (sqrt.f64 2) (*.f64 (cos.f64 th) (pow.f64 a1 8))))))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (/.f64 (-.f64 (/.f64 5/64 (pow.f64 a2 6)) (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6)))) (/.f64 (sqrt.f64 2) (*.f64 (cos.f64 th) (pow.f64 a1 8))))))
(+.f64 (*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) (*.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 8)) (sqrt.f64 2)) (+.f64 (neg.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2)) (*.f64 (/.f64 1 (pow.f64 a2 6)) 1/64))))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 12) (*.f64 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a2 8))) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 2)))) (pow.f64 a2 2))) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a2 8))) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 2)))) (pow.f64 a2 2))) (+.f64 (pow.f64 (/.f64 1/16 (pow.f64 a2 5)) 2) (*.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 4)))))) (+.f64 (*.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 4))) (*.f64 1/256 (/.f64 1 (pow.f64 a2 10)))))) (cos.f64 th))) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 a2 6)))) (*.f64 (pow.f64 a1 8) (cos.f64 th))) (sqrt.f64 2)))))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (+.f64 (/.f64 (fma.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (/.f64 5/64 (pow.f64 a2 6))) (/.f64 (sqrt.f64 2) (*.f64 (cos.f64 th) (pow.f64 a1 8)))) (/.f64 (pow.f64 a1 12) (/.f64 (sqrt.f64 2) (*.f64 (cos.f64 th) (fma.f64 1/2 (/.f64 (-.f64 (/.f64 1/64 (pow.f64 a2 8)) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (*.f64 a2 a2)))) (*.f64 a2 a2)) (fma.f64 -1 (fma.f64 1/2 (/.f64 (-.f64 (/.f64 1/64 (pow.f64 a2 8)) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (*.f64 a2 a2)))) (*.f64 a2 a2)) (+.f64 (pow.f64 (/.f64 1/16 (pow.f64 a2 5)) 2) (*.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (pow.f64 a2 4))))) (fma.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (pow.f64 a2 4)) (/.f64 1/256 (pow.f64 a2 10)))))))))))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (+.f64 (/.f64 (-.f64 (/.f64 5/64 (pow.f64 a2 6)) (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6)))) (/.f64 (sqrt.f64 2) (*.f64 (cos.f64 th) (pow.f64 a1 8)))) (*.f64 (/.f64 (pow.f64 a1 12) (sqrt.f64 2)) (*.f64 (cos.f64 th) (fma.f64 1/2 (-.f64 (/.f64 1/64 (*.f64 (*.f64 a2 a2) (pow.f64 a2 8))) (/.f64 (*.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) -1/2) (pow.f64 a2 4))) (-.f64 (fma.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (pow.f64 a2 4)) (/.f64 1/256 (pow.f64 a2 10))) (fma.f64 1/2 (-.f64 (/.f64 1/64 (*.f64 (*.f64 a2 a2) (pow.f64 a2 8))) (/.f64 (*.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) -1/2) (pow.f64 a2 4))) (fma.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (pow.f64 a2 4)) (pow.f64 (/.f64 1/16 (pow.f64 a2 5)) 2))))))))))
(+.f64 (*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) (+.f64 (*.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a1 8)) (sqrt.f64 2)) (+.f64 (neg.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2)) (*.f64 (/.f64 1 (pow.f64 a2 6)) 1/64))) (*.f64 (/.f64 (pow.f64 a1 12) (sqrt.f64 2)) (*.f64 (cos.f64 th) (+.f64 (fma.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (pow.f64 a2 4)) (/.f64 1/256 (pow.f64 a2 10))) (-.f64 (*.f64 (+.f64 (/.f64 (/.f64 1/64 (pow.f64 a2 8)) (*.f64 a2 a2)) (/.f64 (*.f64 (-.f64 (/.f64 -1/16 (pow.f64 a2 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2)) -1/2) (pow.f64 a2 4))) 0) (fma.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (pow.f64 a2 4)) (/.f64 1/256 (pow.f64 a2 10)))))))))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2))
(*.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (cos.f64 th))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)))
(*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a1 2)))))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 (/.f64 (*.f64 (pow.f64 a2 4) 0) (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)))))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (fma.f64 (/.f64 0 (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2))))
(+.f64 (*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) 0)
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a1 2))) (/.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a2 6)) (*.f64 -1/8 (pow.f64 a2 6))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a1 4))))))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 (/.f64 (*.f64 (pow.f64 a2 4) 0) (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)))))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (fma.f64 (/.f64 0 (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2))))
(+.f64 (*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) 0)
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2))
(*.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (cos.f64 th))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)))
(*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a1 2)))))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 (/.f64 (*.f64 (pow.f64 a2 4) 0) (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)))))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (fma.f64 (/.f64 0 (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2))))
(+.f64 (*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) 0)
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a1 2))) (/.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a2 6)) (*.f64 -1/8 (pow.f64 a2 6))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a1 4))))))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 (/.f64 (*.f64 (pow.f64 a2 4) 0) (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)))))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (fma.f64 (/.f64 0 (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2))))
(+.f64 (*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) 0)
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2))
(*.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (cos.f64 th))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)))
(*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1)))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a1 6)))) (*.f64 (cos.f64 th) (pow.f64 a2 8))) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (/.f64 (fma.f64 -1 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (/.f64 5/64 (pow.f64 a1 6))) (/.f64 (sqrt.f64 2) (*.f64 (cos.f64 th) (pow.f64 a2 8))))))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (*.f64 (/.f64 (-.f64 (/.f64 5/64 (pow.f64 a1 6)) (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (sqrt.f64 2)) (*.f64 (cos.f64 th) (pow.f64 a2 8)))))
(+.f64 (*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) (*.f64 (/.f64 (-.f64 (*.f64 (/.f64 1 (pow.f64 a1 6)) 1/64) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (sqrt.f64 2)) (*.f64 (cos.f64 th) (pow.f64 a2 8))))
(+.f64 (/.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a1 6)))) (*.f64 (pow.f64 a2 8) (cos.f64 th))) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a1 8))) (*.f64 -1/2 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 2)))) (pow.f64 a1 2))) (+.f64 (*.f64 1/8 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4))) (+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 a1 10))) (*.f64 -1 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a1 8))) (*.f64 -1/2 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 2)))) (pow.f64 a1 2))) (+.f64 (pow.f64 (/.f64 1/16 (pow.f64 a1 5)) 2) (*.f64 1/8 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4))))))))) (*.f64 (cos.f64 th) (pow.f64 a2 12))) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))))
(+.f64 (/.f64 (fma.f64 -1 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (/.f64 5/64 (pow.f64 a1 6))) (/.f64 (sqrt.f64 2) (*.f64 (cos.f64 th) (pow.f64 a2 8)))) (+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (/.f64 (fma.f64 1/2 (/.f64 (+.f64 (/.f64 1/64 (pow.f64 a1 8)) (*.f64 1/2 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (*.f64 a1 a1)))) (*.f64 a1 a1)) (fma.f64 1/8 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4)) (+.f64 (/.f64 1/256 (pow.f64 a1 10)) (neg.f64 (fma.f64 1/2 (/.f64 (+.f64 (/.f64 1/64 (pow.f64 a1 8)) (*.f64 1/2 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (*.f64 a1 a1)))) (*.f64 a1 a1)) (+.f64 (*.f64 1/8 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4))) (pow.f64 (/.f64 1/16 (pow.f64 a1 5)) 2))))))) (/.f64 (sqrt.f64 2) (*.f64 (cos.f64 th) (pow.f64 a2 12)))))))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (+.f64 (+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (/.f64 (fma.f64 1/2 (-.f64 (/.f64 (/.f64 1/64 (pow.f64 a1 8)) (*.f64 a1 a1)) (/.f64 (*.f64 -1/2 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (pow.f64 a1 4))) (-.f64 (fma.f64 1/8 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4)) (/.f64 1/256 (pow.f64 a1 10))) (fma.f64 1/2 (-.f64 (/.f64 (/.f64 1/64 (pow.f64 a1 8)) (*.f64 a1 a1)) (/.f64 (*.f64 -1/2 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (pow.f64 a1 4))) (fma.f64 1/8 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4)) (pow.f64 (/.f64 1/16 (pow.f64 a1 5)) 2))))) (/.f64 (sqrt.f64 2) (*.f64 (cos.f64 th) (pow.f64 a2 12))))) (*.f64 (/.f64 (-.f64 (/.f64 5/64 (pow.f64 a1 6)) (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (sqrt.f64 2)) (*.f64 (cos.f64 th) (pow.f64 a2 8)))))
(+.f64 (*.f64 (/.f64 (-.f64 (*.f64 (/.f64 1 (pow.f64 a1 6)) 1/64) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (sqrt.f64 2)) (*.f64 (cos.f64 th) (pow.f64 a2 8))) (+.f64 (*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) (*.f64 (/.f64 (-.f64 (fma.f64 1/2 (+.f64 (/.f64 (/.f64 1/64 (pow.f64 a1 8)) (*.f64 a1 a1)) (/.f64 1/2 (/.f64 (pow.f64 a1 4) (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))))) (fma.f64 1/8 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4)) (/.f64 1/256 (pow.f64 a1 10)))) (fma.f64 1/2 (+.f64 (/.f64 (/.f64 1/64 (pow.f64 a1 8)) (*.f64 a1 a1)) (/.f64 1/2 (/.f64 (pow.f64 a1 4) (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))))) (fma.f64 1/8 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4)) (/.f64 1/256 (pow.f64 a1 10))))) (sqrt.f64 2)) (*.f64 (cos.f64 th) (pow.f64 a2 12)))))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)))
(*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a2 2)))))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 (/.f64 (*.f64 (pow.f64 a2 4) 0) (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)))))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (fma.f64 (/.f64 0 (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2))))
(+.f64 (*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) 0)
(+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a1 6)) (*.f64 -1/8 (pow.f64 a1 6))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a2 4))) (+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a2 2))))))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 (/.f64 (*.f64 (pow.f64 a2 4) 0) (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)))))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (fma.f64 (/.f64 0 (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2))))
(+.f64 (*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) 0)
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)))
(*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a2 2)))))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 (/.f64 (*.f64 (pow.f64 a2 4) 0) (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)))))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (fma.f64 (/.f64 0 (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2))))
(+.f64 (*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) 0)
(+.f64 (/.f64 (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a1 6)) (*.f64 -1/8 (pow.f64 a1 6))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a2 4))) (+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th)) (*.f64 (sqrt.f64 2) (pow.f64 a2 2))))))
(+.f64 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 (/.f64 (*.f64 (pow.f64 a2 4) 0) (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)))))
(+.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (cos.f64 th)) (fma.f64 (/.f64 0 (sqrt.f64 2)) (/.f64 (cos.f64 th) (*.f64 a1 a1)) (/.f64 (*.f64 (cos.f64 th) (*.f64 a1 a1)) (sqrt.f64 2))))
(+.f64 (*.f64 (cos.f64 th) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1))) 0)
(/.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (sqrt.f64 2))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (sqrt.f64 2))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (/.f64 (pow.f64 a1 2) (sqrt.f64 2)) (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 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 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (*.f64 th th))))))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (fma.f64 -1/2 (*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 th th)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2))))
(+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (fma.f64 -1/2 (*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 th th)) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (/.f64 (pow.f64 a1 2) (sqrt.f64 2)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)) (sqrt.f64 2))) (*.f64 1/24 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)) (sqrt.f64 2))))))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (fma.f64 -1/2 (/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (*.f64 th th))) (*.f64 1/24 (/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (pow.f64 th 4)))))))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (fma.f64 -1/2 (*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 th th)) (*.f64 1/24 (*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (pow.f64 th 4))))))
(+.f64 (fma.f64 1/24 (*.f64 (/.f64 (pow.f64 th 4) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1))) (*.f64 (/.f64 -1/2 (sqrt.f64 2)) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 th th)))) (+.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (*.f64 (/.f64 a1 (sqrt.f64 2)) a1)))
(+.f64 (*.f64 -1/720 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 6)) (sqrt.f64 2))) (+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (+.f64 (/.f64 (pow.f64 a1 2) (sqrt.f64 2)) (+.f64 (*.f64 -1/2 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)) (sqrt.f64 2))) (*.f64 1/24 (/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)) (sqrt.f64 2)))))))
(fma.f64 -1/720 (/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (pow.f64 th 6))) (+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (fma.f64 -1/2 (/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (*.f64 th th))) (*.f64 1/24 (/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (pow.f64 th 4))))))))
(+.f64 (+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (fma.f64 -1/2 (*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 th th)) (*.f64 1/24 (*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (pow.f64 th 4))))) (fma.f64 -1/720 (*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (pow.f64 th 6)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2))))
(+.f64 (+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (fma.f64 1/24 (*.f64 (/.f64 (pow.f64 th 4) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1))) (*.f64 (/.f64 -1/2 (sqrt.f64 2)) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 th th))))) (fma.f64 -1/720 (*.f64 (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (pow.f64 th 6)) (*.f64 (/.f64 a2 (sqrt.f64 2)) a2)))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 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 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1)))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 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 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1)))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 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 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1)))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 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 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1)))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 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 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1)))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 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 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1)))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 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 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1)))
(/.f64 (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 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 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a2 a2 (*.f64 a1 a1)))
(sqrt.f64 2)
(+.f64 (sqrt.f64 2) (*.f64 1/2 (*.f64 (sqrt.f64 2) (pow.f64 th 2))))
(+.f64 (sqrt.f64 2) (*.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 th th))))
(fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 th th)) (sqrt.f64 2))
(fma.f64 1/2 (*.f64 th (*.f64 th (sqrt.f64 2))) (sqrt.f64 2))
(+.f64 (sqrt.f64 2) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 2) (pow.f64 th 2))) (*.f64 -1 (*.f64 (+.f64 (*.f64 1/24 (sqrt.f64 2)) (*.f64 -1/4 (sqrt.f64 2))) (pow.f64 th 4)))))
(+.f64 (sqrt.f64 2) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 th th)) (neg.f64 (*.f64 (pow.f64 th 4) (*.f64 (sqrt.f64 2) -5/24)))))
(-.f64 (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 th th)) (sqrt.f64 2)) (*.f64 (pow.f64 th 4) (*.f64 (sqrt.f64 2) -5/24)))
(+.f64 (sqrt.f64 2) (*.f64 (sqrt.f64 2) (-.f64 (*.f64 (*.f64 th th) 1/2) (*.f64 -5/24 (pow.f64 th 4)))))
(+.f64 (sqrt.f64 2) (+.f64 (*.f64 -1 (*.f64 (+.f64 (*.f64 -1/720 (sqrt.f64 2)) (+.f64 (*.f64 1/2 (+.f64 (*.f64 1/24 (sqrt.f64 2)) (*.f64 -1/4 (sqrt.f64 2)))) (*.f64 1/48 (sqrt.f64 2)))) (pow.f64 th 6))) (+.f64 (*.f64 1/2 (*.f64 (sqrt.f64 2) (pow.f64 th 2))) (*.f64 -1 (*.f64 (+.f64 (*.f64 1/24 (sqrt.f64 2)) (*.f64 -1/4 (sqrt.f64 2))) (pow.f64 th 4))))))
(+.f64 (sqrt.f64 2) (fma.f64 -1 (*.f64 (pow.f64 th 6) (fma.f64 -1/720 (sqrt.f64 2) (fma.f64 1/2 (*.f64 (sqrt.f64 2) -5/24) (*.f64 (sqrt.f64 2) 1/48)))) (fma.f64 1/2 (*.f64 (sqrt.f64 2) (*.f64 th th)) (neg.f64 (*.f64 (pow.f64 th 4) (*.f64 (sqrt.f64 2) -5/24))))))
(+.f64 (sqrt.f64 2) (-.f64 (-.f64 (*.f64 (sqrt.f64 2) (*.f64 (*.f64 th th) 1/2)) (*.f64 (pow.f64 th 4) (*.f64 (sqrt.f64 2) -5/24))) (*.f64 (pow.f64 th 6) (fma.f64 (sqrt.f64 2) -1/720 (fma.f64 (sqrt.f64 2) 1/48 (*.f64 (sqrt.f64 2) -5/48))))))
(+.f64 (*.f64 (sqrt.f64 2) (-.f64 (*.f64 (*.f64 th th) 1/2) (*.f64 -5/24 (pow.f64 th 4)))) (-.f64 (sqrt.f64 2) (*.f64 (pow.f64 th 6) (fma.f64 (sqrt.f64 2) -1/720 (*.f64 (sqrt.f64 2) -1/12)))))
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 -1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2))
(fma.f64 -1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (fma.f64 1/2 (/.f64 (*.f64 a1 a1) a2) a2))
(fma.f64 -1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (fma.f64 1/2 (/.f64 a1 (/.f64 a2 a1)) a2))
(fma.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/2 (/.f64 (pow.f64 a1 2) a2)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5))) a2)))
(fma.f64 -1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (fma.f64 1/2 (/.f64 (*.f64 a1 a1) a2) (fma.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) a2)))
(fma.f64 -1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (fma.f64 1/2 (/.f64 a1 (/.f64 a2 a1)) (fma.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) a2)))
(fma.f64 -1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (fma.f64 1/2 (*.f64 (/.f64 a1 a2) a1) (fma.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) a2)))
a1
(+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))
(+.f64 a1 (*.f64 1/2 (/.f64 (*.f64 a2 a2) a1)))
(fma.f64 1/2 (/.f64 a2 (/.f64 a1 a2)) a1)
(fma.f64 1/2 (/.f64 (*.f64 a2 a2) a1) a1)
(+.f64 a1 (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1))))
(+.f64 a1 (fma.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) (*.f64 1/2 (/.f64 (*.f64 a2 a2) a1))))
(+.f64 a1 (fma.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) (*.f64 1/2 (/.f64 a2 (/.f64 a1 a2)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 a2 a2) a1) a1) (*.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 (*.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))))
(fma.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) (+.f64 a1 (fma.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) (*.f64 1/2 (/.f64 (*.f64 a2 a2) a1)))))
(+.f64 (fma.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) (*.f64 1/2 (/.f64 a2 (/.f64 a1 a2)))) (fma.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) a1))
(+.f64 (fma.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) (*.f64 1/2 (/.f64 (*.f64 a2 a2) a1))) (fma.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) a1))
(*.f64 -1 a1)
(neg.f64 a1)
(+.f64 (*.f64 -1 a1) (*.f64 -1/2 (/.f64 (pow.f64 a2 2) a1)))
(fma.f64 -1 a1 (*.f64 -1/2 (/.f64 (*.f64 a2 a2) a1)))
(-.f64 (*.f64 -1/2 (/.f64 a2 (/.f64 a1 a2))) a1)
(-.f64 (*.f64 -1/2 (/.f64 (*.f64 a2 a2) a1)) a1)
(+.f64 (*.f64 -1 a1) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (*.f64 -1/2 (/.f64 (pow.f64 a2 2) a1))))
(fma.f64 -1 a1 (fma.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) (*.f64 -1/2 (/.f64 (*.f64 a2 a2) a1))))
(-.f64 (fma.f64 -1/2 (/.f64 a2 (/.f64 a1 a2)) (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)))) a1)
(-.f64 (fma.f64 -1/2 (/.f64 (*.f64 a2 a2) a1) (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)))) a1)
(+.f64 (*.f64 -1 a1) (+.f64 (*.f64 -1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5))) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (*.f64 -1/2 (/.f64 (pow.f64 a2 2) a1)))))
(fma.f64 -1 a1 (fma.f64 -1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) (fma.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) (*.f64 -1/2 (/.f64 (*.f64 a2 a2) a1)))))
(-.f64 (fma.f64 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) -1/16 (fma.f64 -1/2 (/.f64 a2 (/.f64 a1 a2)) (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))))) a1)
(-.f64 (fma.f64 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) -1/16 (fma.f64 -1/2 (/.f64 (*.f64 a2 a2) a1) (*.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))))) a1)
a1
(+.f64 a1 (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))
(+.f64 a1 (*.f64 1/2 (/.f64 (*.f64 a2 a2) a1)))
(fma.f64 1/2 (/.f64 a2 (/.f64 a1 a2)) a1)
(fma.f64 1/2 (/.f64 (*.f64 a2 a2) a1) a1)
(+.f64 a1 (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1))))
(+.f64 a1 (fma.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) (*.f64 1/2 (/.f64 (*.f64 a2 a2) a1))))
(+.f64 a1 (fma.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) (*.f64 1/2 (/.f64 a2 (/.f64 a1 a2)))))
(+.f64 (fma.f64 1/2 (/.f64 (*.f64 a2 a2) a1) a1) (*.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 (*.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3))) (*.f64 1/2 (/.f64 (pow.f64 a2 2) a1)))))
(fma.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) (+.f64 a1 (fma.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) (*.f64 1/2 (/.f64 (*.f64 a2 a2) a1)))))
(+.f64 (fma.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) (*.f64 1/2 (/.f64 a2 (/.f64 a1 a2)))) (fma.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) a1))
(+.f64 (fma.f64 -1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 3)) (*.f64 1/2 (/.f64 (*.f64 a2 a2) a1))) (fma.f64 1/16 (/.f64 (pow.f64 a2 6) (pow.f64 a1 5)) 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 -1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))) (+.f64 (*.f64 1/2 (/.f64 (pow.f64 a1 2) a2)) a2))
(fma.f64 -1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (fma.f64 1/2 (/.f64 (*.f64 a1 a1) a2) a2))
(fma.f64 -1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (fma.f64 1/2 (/.f64 a1 (/.f64 a2 a1)) a2))
(fma.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/2 (/.f64 (pow.f64 a1 2) a2)) (+.f64 (*.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5))) a2)))
(fma.f64 -1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (fma.f64 1/2 (/.f64 (*.f64 a1 a1) a2) (fma.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) a2)))
(fma.f64 -1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (fma.f64 1/2 (/.f64 a1 (/.f64 a2 a1)) (fma.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) a2)))
(fma.f64 -1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (fma.f64 1/2 (*.f64 (/.f64 a1 a2) a1) (fma.f64 1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) a2)))
(*.f64 -1 a2)
(neg.f64 a2)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 a1 2) a2)) (*.f64 -1 a2))
(fma.f64 -1/2 (/.f64 (*.f64 a1 a1) a2) (neg.f64 a2))
(-.f64 (*.f64 -1/2 (/.f64 a1 (/.f64 a2 a1))) a2)
(-.f64 (*.f64 (/.f64 -1/2 a2) (*.f64 a1 a1)) a2)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 a1 2) a2)) (+.f64 (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3))) (*.f64 -1 a2)))
(fma.f64 -1/2 (/.f64 (*.f64 a1 a1) a2) (fma.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (neg.f64 a2)))
(-.f64 (fma.f64 -1/2 (/.f64 a1 (/.f64 a2 a1)) (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)))) a2)
(-.f64 (fma.f64 -1/2 (*.f64 (/.f64 a1 a2) a1) (*.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)))) a2)
(+.f64 (*.f64 -1/2 (/.f64 (pow.f64 a1 2) 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 -1 a2))))
(fma.f64 -1/2 (/.f64 (*.f64 a1 a1) a2) (fma.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (fma.f64 -1/16 (/.f64 (pow.f64 a1 6) (pow.f64 a2 5)) (neg.f64 a2))))
(fma.f64 -1/2 (/.f64 a1 (/.f64 a2 a1)) (-.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)) a2))
(fma.f64 -1/2 (*.f64 (/.f64 a1 a2) a1) (-.f64 (fma.f64 1/8 (/.f64 (pow.f64 a1 4) (pow.f64 a2 3)) (*.f64 (/.f64 -1/16 (pow.f64 a2 5)) (pow.f64 a1 6))) a2))
(pow.f64 a2 2)
(*.f64 a2 a2)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a1 8)) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)))
(fma.f64 (fma.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (/.f64 5/64 (pow.f64 a2 6))) (pow.f64 a1 8) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
(fma.f64 (-.f64 (/.f64 5/64 (pow.f64 a2 6)) (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6)))) (pow.f64 a1 8) (fma.f64 a2 a2 (*.f64 a1 a1)))
(fma.f64 (+.f64 (neg.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2)) (*.f64 (/.f64 1 (pow.f64 a2 6)) 1/64)) (pow.f64 a1 8) (fma.f64 a2 a2 (*.f64 a1 a1)))
(pow.f64 a1 2)
(*.f64 a1 a1)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (+.f64 (pow.f64 a2 2) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (pow.f64 a1 2))))
(fma.f64 -1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (+.f64 (*.f64 a2 a2) (fma.f64 1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (*.f64 a1 a1))))
(fma.f64 -1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (fma.f64 a2 a2 (fma.f64 a1 a1 (*.f64 (/.f64 (pow.f64 a2 4) a1) (/.f64 1/4 a1)))))
(fma.f64 -1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (fma.f64 a2 a2 (fma.f64 a1 a1 (*.f64 1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1))))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (+.f64 (pow.f64 a2 2) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (+.f64 (pow.f64 a1 2) (*.f64 1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4))))))))
(fma.f64 -1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4)) (fma.f64 -1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (+.f64 (*.f64 a2 a2) (+.f64 (fma.f64 1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (*.f64 a1 a1)) (*.f64 1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4)))))))
(fma.f64 -1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4)) (fma.f64 -1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (fma.f64 a2 a2 (fma.f64 1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (fma.f64 a1 a1 (*.f64 1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4))))))))
(fma.f64 -1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4)) (fma.f64 -1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (fma.f64 a2 a2 (fma.f64 1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (fma.f64 a1 a1 (*.f64 (/.f64 1/8 (pow.f64 a1 4)) (pow.f64 a2 6)))))))
(pow.f64 a1 2)
(*.f64 a1 a1)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (+.f64 (pow.f64 a2 2) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (pow.f64 a1 2))))
(fma.f64 -1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (+.f64 (*.f64 a2 a2) (fma.f64 1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (*.f64 a1 a1))))
(fma.f64 -1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (fma.f64 a2 a2 (fma.f64 a1 a1 (*.f64 (/.f64 (pow.f64 a2 4) a1) (/.f64 1/4 a1)))))
(fma.f64 -1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (fma.f64 a2 a2 (fma.f64 a1 a1 (*.f64 1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1))))))
(+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (+.f64 (pow.f64 a2 2) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a2 4) (pow.f64 a1 2))) (+.f64 (pow.f64 a1 2) (*.f64 1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4))))))))
(fma.f64 -1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4)) (fma.f64 -1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (+.f64 (*.f64 a2 a2) (+.f64 (fma.f64 1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (*.f64 a1 a1)) (*.f64 1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4)))))))
(fma.f64 -1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4)) (fma.f64 -1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (fma.f64 a2 a2 (fma.f64 1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (fma.f64 a1 a1 (*.f64 1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4))))))))
(fma.f64 -1/8 (/.f64 (pow.f64 a2 6) (pow.f64 a1 4)) (fma.f64 -1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (fma.f64 a2 a2 (fma.f64 1/4 (/.f64 (pow.f64 a2 4) (*.f64 a1 a1)) (fma.f64 a1 a1 (*.f64 (/.f64 1/8 (pow.f64 a1 4)) (pow.f64 a2 6)))))))
(pow.f64 a1 2)
(*.f64 a1 a1)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (pow.f64 a2 2) (+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a1 6)))) (pow.f64 a2 8)) (pow.f64 a1 2)))
(+.f64 (*.f64 a2 a2) (fma.f64 (fma.f64 -1 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (/.f64 5/64 (pow.f64 a1 6))) (pow.f64 a2 8) (*.f64 a1 a1)))
(fma.f64 a2 a2 (fma.f64 a1 a1 (*.f64 (pow.f64 a2 8) (-.f64 (/.f64 5/64 (pow.f64 a1 6)) (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))))))
(fma.f64 a2 a2 (fma.f64 (pow.f64 a2 8) (-.f64 (*.f64 (/.f64 1 (pow.f64 a1 6)) 1/64) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (*.f64 a1 a1)))
(pow.f64 a2 2)
(*.f64 a2 a2)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2))))
(fma.f64 1/4 (/.f64 (pow.f64 a1 4) (*.f64 a2 a2)) (fma.f64 -1/4 (/.f64 (pow.f64 a1 4) (*.f64 a2 a2)) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))))
(+.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (/.f64 (pow.f64 a1 4) (*.f64 a2 a2)) 0))
(+.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 0)
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a1 6) (pow.f64 a2 4))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (pow.f64 a2 2) (+.f64 (pow.f64 a1 2) (*.f64 1/8 (/.f64 (pow.f64 a1 6) (pow.f64 a2 4))))))))
(fma.f64 1/4 (/.f64 (pow.f64 a1 4) (*.f64 a2 a2)) (fma.f64 -1/8 (/.f64 (pow.f64 a1 6) (pow.f64 a2 4)) (fma.f64 -1/4 (/.f64 (pow.f64 a1 4) (*.f64 a2 a2)) (+.f64 (*.f64 a2 a2) (+.f64 (*.f64 a1 a1) (*.f64 1/8 (/.f64 (pow.f64 a1 6) (pow.f64 a2 4))))))))
(fma.f64 1/4 (/.f64 (pow.f64 a1 4) (*.f64 a2 a2)) (fma.f64 -1/8 (/.f64 (pow.f64 a1 6) (pow.f64 a2 4)) (fma.f64 -1/4 (/.f64 (pow.f64 a1 4) (*.f64 a2 a2)) (fma.f64 a2 a2 (fma.f64 a1 a1 (/.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 6))))))))
(pow.f64 a2 2)
(*.f64 a2 a2)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a2 a2 (*.f64 a1 a1))
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2))))
(fma.f64 1/4 (/.f64 (pow.f64 a1 4) (*.f64 a2 a2)) (fma.f64 -1/4 (/.f64 (pow.f64 a1 4) (*.f64 a2 a2)) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))))
(+.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (/.f64 (pow.f64 a1 4) (*.f64 a2 a2)) 0))
(+.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 0)
(+.f64 (*.f64 1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (*.f64 -1/8 (/.f64 (pow.f64 a1 6) (pow.f64 a2 4))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a1 4) (pow.f64 a2 2))) (+.f64 (pow.f64 a2 2) (+.f64 (pow.f64 a1 2) (*.f64 1/8 (/.f64 (pow.f64 a1 6) (pow.f64 a2 4))))))))
(fma.f64 1/4 (/.f64 (pow.f64 a1 4) (*.f64 a2 a2)) (fma.f64 -1/8 (/.f64 (pow.f64 a1 6) (pow.f64 a2 4)) (fma.f64 -1/4 (/.f64 (pow.f64 a1 4) (*.f64 a2 a2)) (+.f64 (*.f64 a2 a2) (+.f64 (*.f64 a1 a1) (*.f64 1/8 (/.f64 (pow.f64 a1 6) (pow.f64 a2 4))))))))
(fma.f64 1/4 (/.f64 (pow.f64 a1 4) (*.f64 a2 a2)) (fma.f64 -1/8 (/.f64 (pow.f64 a1 6) (pow.f64 a2 4)) (fma.f64 -1/4 (/.f64 (pow.f64 a1 4) (*.f64 a2 a2)) (fma.f64 a2 a2 (fma.f64 a1 a1 (/.f64 1/8 (/.f64 (pow.f64 a2 4) (pow.f64 a1 6))))))))

localize22.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(pow.f64 (hypot.f64 a1 a2) 4)
0.2b
(pow.f64 (cos.f64 th) 2)
0.3b
(*.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (pow.f64 (hypot.f64 a1 a2) 4))
26.3b
(sqrt.f64 (*.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (pow.f64 (hypot.f64 a1 a2) 4)))
Compiler

Compiled 54 to 31 computations (42.6% saved)

series31.0ms (0.2%)

Counts
4 → 100
Calls

27 calls:

TimeVariablePointExpression
7.0ms
th
@-inf
(*.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (pow.f64 (hypot.f64 a1 a2) 4))
5.0ms
a2
@0
(sqrt.f64 (*.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (pow.f64 (hypot.f64 a1 a2) 4)))
2.0ms
a1
@0
(*.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (pow.f64 (hypot.f64 a1 a2) 4))
1.0ms
a2
@0
(*.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (pow.f64 (hypot.f64 a1 a2) 4))
1.0ms
th
@inf
(*.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (pow.f64 (hypot.f64 a1 a2) 4))

rewrite73.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
592×log-prod_binary64
354×pow-prod-down_binary64
327×pow2_binary64
228×pow-unpow_binary64
227×expm1-udef_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01451
128748
2309548
Stop Event
node limit
Counts
4 → 112
Calls
Call 1
Inputs
(sqrt.f64 (*.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (pow.f64 (hypot.f64 a1 a2) 4)))
(*.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (pow.f64 (hypot.f64 a1 a2) 4))
(pow.f64 (cos.f64 th) 2)
(pow.f64 (hypot.f64 a1 a2) 4)
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (cos.f64 th)) (pow.f64 (hypot.f64 a1 a2) 2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (cos.f64 th)) (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (cos.f64 th)) (pow.f64 (hypot.f64 a1 a2) 2)))) (log.f64 (sqrt.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (cos.f64 th)) (pow.f64 (hypot.f64 a1 a2) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 a1 a2) 2) (*.f64 (cos.f64 th) (sqrt.f64 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))) (cbrt.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))) (cbrt.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (sqrt.f64 (*.f64 (cos.f64 th) (sqrt.f64 1/2))) (hypot.f64 a1 a2)) (*.f64 (sqrt.f64 (*.f64 (cos.f64 th) (sqrt.f64 1/2))) (hypot.f64 a1 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 (cos.f64 th) (sqrt.f64 1/2)) (pow.f64 (hypot.f64 a1 a2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (*.f64 (cos.f64 th) (sqrt.f64 1/2))) (hypot.f64 a1 a2)) 6) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 8) (*.f64 (pow.f64 (cos.f64 th) 4) 1/4)) 1/4)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 12) (pow.f64 (*.f64 (cos.f64 th) (sqrt.f64 1/2)) 6)) 1/6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))) 3/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (*.f64 (cos.f64 th) (sqrt.f64 1/2))) (hypot.f64 a1 a2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x fabs.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (cos.f64 th)) (pow.f64 (hypot.f64 a1 a2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 (*.f64 (cos.f64 th) (sqrt.f64 1/2))) (hypot.f64 a1 a2)) 6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (*.f64 (sqrt.f64 (*.f64 (cos.f64 th) (sqrt.f64 1/2))) (hypot.f64 a1 a2)) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 (*.f64 (cos.f64 th) (sqrt.f64 1/2))) (hypot.f64 a1 a2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))) 1) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))) 1/2) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 (pow.f64 (cos.f64 th) 2))) (pow.f64 (hypot.f64 a1 a2) 4))) 2)) (log.f64 (cbrt.f64 (pow.f64 (sqrt.f64 (exp.f64 (pow.f64 (cos.f64 th) 2))) (pow.f64 (hypot.f64 a1 a2) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (exp.f64 (pow.f64 (cos.f64 th) 2))) (pow.f64 (hypot.f64 a1 a2) 4)))) (log.f64 (sqrt.f64 (pow.f64 (sqrt.f64 (exp.f64 (pow.f64 (cos.f64 th) 2))) (pow.f64 (hypot.f64 a1 a2) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 (*.f64 (cos.f64 th) (sqrt.f64 1/2))) (hypot.f64 a1 a2)) 6) 2/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 8) (*.f64 (pow.f64 (cos.f64 th) 4) 1/4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 12) (pow.f64 (*.f64 (cos.f64 th) (sqrt.f64 1/2)) 6)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))) 6)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 (*.f64 (cos.f64 th) (sqrt.f64 1/2))) (hypot.f64 a1 a2)) 4)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 8) (*.f64 (pow.f64 (cos.f64 th) 4) 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (sqrt.f64 (exp.f64 (pow.f64 (cos.f64 th) 2))) (pow.f64 (hypot.f64 a1 a2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 12) (pow.f64 (*.f64 (cos.f64 th) (sqrt.f64 1/2)) 6)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 8) (*.f64 (pow.f64 (cos.f64 th) 4) 1/4))) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (hypot.f64 a1 a2) 12) (pow.f64 (*.f64 (cos.f64 th) (sqrt.f64 1/2)) 6))) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (pow.f64 (cos.f64 th) 2) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))) 1/2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (*.f64 (cos.f64 th) (sqrt.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4))))) 1) 2))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 1/2 (*.f64 1/2 (cos.f64 (+.f64 th th))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (cos.f64 th) 2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (cos.f64 th) 2))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (cos.f64 th) 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (cos.f64 th) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cos.f64 th) (cos.f64 th))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cos.f64 th) 2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (cos.f64 th) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 th)) 4) (cbrt.f64 (pow.f64 (cos.f64 th) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (cos.f64 th) 2)) (pow.f64 (cbrt.f64 (cos.f64 th)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (cos.f64 th)) (pow.f64 (cos.f64 th) 3/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cos.f64 th) 3/2) (sqrt.f64 (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (cos.f64 th)) 5) (cbrt.f64 (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (+.f64 (cos.f64 (+.f64 th th)) (cos.f64 (-.f64 th th))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (cos.f64 th) 4))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (cos.f64 th) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (cos.f64 th) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (cos.f64 th) 6))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (cos.f64 th) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (cos.f64 th) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 2 (log.f64 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (cos.f64 th))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (cos.f64 th) 6)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (cbrt.f64 (pow.f64 (cos.f64 th) 2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (cos.f64 th)) 1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 2 (log.f64 (cos.f64 th))) 1) 1))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)) (*.f64 1/2 (pow.f64 (hypot.f64 a1 a2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (pow.f64 (hypot.f64 a1 a2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 4))) 2)) (log.f64 (cbrt.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 4)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (pow.f64 (hypot.f64 a1 a2) 4))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 a1 a2) 4) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (pow.f64 (hypot.f64 a1 a2) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 a1 a2) 2) (pow.f64 (hypot.f64 a1 a2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 4) (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 8)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 8)) (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 8) (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 4))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (hypot.f64 a1 a2) 8))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (pow.f64 (hypot.f64 a1 a2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (pow.f64 (hypot.f64 a1 a2) 4))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (hypot.f64 a1 a2) 12))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (pow.f64 (hypot.f64 a1 a2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (pow.f64 (hypot.f64 a1 a2) 4)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 4 (log.f64 (hypot.f64 a1 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 4 (log.f64 (hypot.f64 a1 a2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (hypot.f64 a1 a2) 12)) 1/3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 2 (log.f64 (hypot.f64 a1 a2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (pow.f64 (cbrt.f64 (hypot.f64 a1 a2)) 4)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (hypot.f64 a1 a2)) 1) 4))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (*.f64 4 (log.f64 (hypot.f64 a1 a2))) 1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (*.f64 (log.f64 (hypot.f64 a1 a2)) 2) 2))))))

simplify88.0ms (0.5%)

Algorithm
egg-herbie
Rules
500×times-frac_binary64
449×associate-/l*_binary64
439×fma-def_binary64
424×associate-/r*_binary64
273×distribute-rgt-out_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03093505
19913121
240522717
Stop Event
node limit
Counts
212 → 194
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2))))
(+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)))))
(+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)))) (+.f64 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 6)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 a2 6)))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 8) (cos.f64 th)))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 a2 6)))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 8) (cos.f64 th)))) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 12) (*.f64 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a2 8))) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 2)))) (pow.f64 a2 2))) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a2 8))) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 2)))) (pow.f64 a2 2))) (+.f64 (pow.f64 (/.f64 1/16 (pow.f64 a2 5)) 2) (*.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 4)))))) (+.f64 (*.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 4))) (*.f64 1/256 (/.f64 1 (pow.f64 a2 10)))))) (cos.f64 th)))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th))) (pow.f64 a1 2)) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))))
(+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a2 6)) (*.f64 -1/8 (pow.f64 a2 6))) (cos.f64 th))) (pow.f64 a1 4)) (+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th))) (pow.f64 a1 2)) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th))) (pow.f64 a1 2)) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))))
(+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a2 6)) (*.f64 -1/8 (pow.f64 a2 6))) (cos.f64 th))) (pow.f64 a1 4)) (+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th))) (pow.f64 a1 2)) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a1 6)))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 8)))) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a1 8))) (*.f64 -1/2 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 2)))) (pow.f64 a1 2))) (+.f64 (*.f64 1/8 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4))) (+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 a1 10))) (*.f64 -1 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a1 8))) (*.f64 -1/2 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 2)))) (pow.f64 a1 2))) (+.f64 (pow.f64 (/.f64 1/16 (pow.f64 a1 5)) 2) (*.f64 1/8 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4))))))))) (*.f64 (pow.f64 a2 12) (cos.f64 th)))) (+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a1 6)))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 8)))) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th))) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th))) (pow.f64 a2 2)) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))) (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a1 6)) (*.f64 -1/8 (pow.f64 a1 6))) (cos.f64 th))) (pow.f64 a2 4)))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th))) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th))) (pow.f64 a2 2)) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))) (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a1 6)) (*.f64 -1/8 (pow.f64 a1 6))) (cos.f64 th))) (pow.f64 a2 4)))))
(*.f64 1/2 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 th 2))) (*.f64 1/2 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2)))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 th 4))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 th 2))) (*.f64 1/2 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2))))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 th 4))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 th 2))) (+.f64 (*.f64 -1/45 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 th 6))) (*.f64 1/2 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2)))))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))) (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))) (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2)))))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 a2 6)))) (*.f64 (pow.f64 a1 8) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2)))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))) (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))))))
(*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))) (*.f64 1/2 (*.f64 (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (pow.f64 a2 4))) (pow.f64 (cos.f64 th) 2)))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (pow.f64 a2 2))) (+.f64 (*.f64 -1/4 (pow.f64 a2 6)) (*.f64 1/4 (pow.f64 a2 6)))) (pow.f64 (cos.f64 th) 2)) (pow.f64 a1 2))) (*.f64 1/2 (*.f64 (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (pow.f64 a2 4))) (pow.f64 (cos.f64 th) 2))))))
(*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))) (*.f64 1/2 (*.f64 (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (pow.f64 a2 4))) (pow.f64 (cos.f64 th) 2)))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (pow.f64 a2 2))) (+.f64 (*.f64 -1/4 (pow.f64 a2 6)) (*.f64 1/4 (pow.f64 a2 6)))) (pow.f64 (cos.f64 th) 2)) (pow.f64 a1 2))) (*.f64 1/2 (*.f64 (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (pow.f64 a2 4))) (pow.f64 (cos.f64 th) 2))))))
(*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a1 6)))) (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 8)))) (+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))))))
(*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (*.f64 (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (*.f64 -1/2 (pow.f64 a1 4)))) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 6)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))))) (*.f64 1/4 (pow.f64 a1 6)))) (pow.f64 (cos.f64 th) 2)) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (*.f64 (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (*.f64 -1/2 (pow.f64 a1 4)))) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))))))
(*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (*.f64 (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (*.f64 -1/2 (pow.f64 a1 4)))) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 6)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))))) (*.f64 1/4 (pow.f64 a1 6)))) (pow.f64 (cos.f64 th) 2)) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (*.f64 (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (*.f64 -1/2 (pow.f64 a1 4)))) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))))))
1
(+.f64 1 (*.f64 -1 (pow.f64 th 2)))
(+.f64 1 (+.f64 (*.f64 -1 (pow.f64 th 2)) (*.f64 1/3 (pow.f64 th 4))))
(+.f64 1 (+.f64 (*.f64 -1 (pow.f64 th 2)) (+.f64 (*.f64 -2/45 (pow.f64 th 6)) (*.f64 1/3 (pow.f64 th 4)))))
(pow.f64 a2 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (pow.f64 a2 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (pow.f64 a2 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 a2 6)))) (*.f64 (pow.f64 a1 8) (pow.f64 a2 2)))) (pow.f64 a2 4))))
(pow.f64 a1 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (pow.f64 a1 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (pow.f64 a2 4)))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a2 6) (pow.f64 a1 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a2 6) (pow.f64 a1 2))) (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (+.f64 (pow.f64 a2 4) (*.f64 2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (pow.f64 a2 2)) (pow.f64 a1 2))))))))))
(pow.f64 a1 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (pow.f64 a1 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (pow.f64 a2 4)))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a2 6) (pow.f64 a1 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a2 6) (pow.f64 a1 2))) (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (+.f64 (pow.f64 a2 4) (*.f64 2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (pow.f64 a2 2)) (pow.f64 a1 2))))))))))
(pow.f64 a1 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (pow.f64 a1 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (pow.f64 a2 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (pow.f64 a2 4) (*.f64 2 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a1 6)))) (*.f64 (pow.f64 a1 2) (pow.f64 a2 8)))))))
(pow.f64 a2 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (pow.f64 a2 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (+.f64 (pow.f64 a2 4) (*.f64 -1/2 (pow.f64 a1 4))))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a1 6) (pow.f64 a2 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a1 6) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 a1 2) (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4)))) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (+.f64 (pow.f64 a2 4) (*.f64 -1/2 (pow.f64 a1 4)))))))))
(pow.f64 a2 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (pow.f64 a2 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (+.f64 (pow.f64 a2 4) (*.f64 -1/2 (pow.f64 a1 4))))))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a1 6) (pow.f64 a2 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a1 6) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 a1 2) (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4)))) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (+.f64 (pow.f64 a2 4) (*.f64 -1/2 (pow.f64 a1 4)))))))))
Outputs
(*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 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 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))))
(fma.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 th th)) -1/2)))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (+.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 1/2) -1/2) (*.f64 th th))))
(+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)))))
(fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 th 4))) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))))
(fma.f64 1/24 (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (pow.f64 th 4) (sqrt.f64 1/2))) (fma.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 th th)) -1/2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))) (*.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))) (+.f64 (*.f64 (*.f64 th th) -1/2) (*.f64 (pow.f64 th 4) 1/24))))
(+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 4)))) (+.f64 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 6)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (+.f64 (pow.f64 a2 2) (pow.f64 a1 2))))))
(fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 th 4))) (fma.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 th 6))) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))))))
(fma.f64 1/24 (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (pow.f64 th 4) (sqrt.f64 1/2))) (fma.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (pow.f64 th 6))) (fma.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 th th)) -1/2)))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1))) (+.f64 (*.f64 (*.f64 th th) -1/2) (*.f64 (pow.f64 th 6) -1/720))) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (+.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 1/2) 1/24) (pow.f64 th 4)))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (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 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 a2 6)))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 8) (cos.f64 th)))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)) (fma.f64 (fma.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (/.f64 5/64 (pow.f64 a2 6))) (*.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 8)) (cos.f64 th)) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))))
(+.f64 (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (cos.f64 th) (pow.f64 a1 8)) (-.f64 (/.f64 5/64 (pow.f64 a2 6)) (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6)))))))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) (*.f64 (+.f64 (neg.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2)) (*.f64 (/.f64 1 (pow.f64 a2 6)) 1/64)) (*.f64 (cos.f64 th) (pow.f64 a1 8)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 a2 6)))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 8) (cos.f64 th)))) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 12) (*.f64 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a2 8))) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 2)))) (pow.f64 a2 2))) (+.f64 (*.f64 -1 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a2 8))) (*.f64 -1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 2)))) (pow.f64 a2 2))) (+.f64 (pow.f64 (/.f64 1/16 (pow.f64 a2 5)) 2) (*.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 4)))))) (+.f64 (*.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6)))) (pow.f64 a2 4))) (*.f64 1/256 (/.f64 1 (pow.f64 a2 10)))))) (cos.f64 th)))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)) (fma.f64 (fma.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (/.f64 5/64 (pow.f64 a2 6))) (*.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a1 8)) (cos.f64 th)) (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 (*.f64 a2 a2) (cos.f64 th)) (*.f64 (pow.f64 a1 12) (*.f64 (cos.f64 th) (fma.f64 1/2 (/.f64 (+.f64 (/.f64 1/64 (pow.f64 a2 8)) (*.f64 1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (*.f64 a2 a2)))) (*.f64 a2 a2)) (fma.f64 -1 (fma.f64 1/2 (/.f64 (+.f64 (/.f64 1/64 (pow.f64 a2 8)) (*.f64 1/2 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (*.f64 a2 a2)))) (*.f64 a2 a2)) (+.f64 (pow.f64 (/.f64 1/16 (pow.f64 a2 5)) 2) (/.f64 (*.f64 1/8 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6)))) (pow.f64 a2 4)))) (fma.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (pow.f64 a2 4)) (/.f64 1/256 (pow.f64 a2 10)))))))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))) (fma.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (+.f64 (*.f64 a2 a2) (*.f64 (pow.f64 a1 12) (fma.f64 1/2 (-.f64 (/.f64 1/64 (*.f64 (*.f64 a2 a2) (pow.f64 a2 8))) (/.f64 (*.f64 -1/2 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6)))) (pow.f64 a2 4))) (-.f64 (fma.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (pow.f64 a2 4)) (/.f64 1/256 (pow.f64 a2 10))) (fma.f64 1/2 (-.f64 (/.f64 1/64 (*.f64 (*.f64 a2 a2) (pow.f64 a2 8))) (/.f64 (*.f64 -1/2 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6)))) (pow.f64 a2 4))) (fma.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (pow.f64 a2 4)) (pow.f64 (/.f64 1/16 (pow.f64 a2 5)) 2)))))))) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (cos.f64 th) (pow.f64 a1 8)) (-.f64 (/.f64 5/64 (pow.f64 a2 6)) (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))))))))
(+.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) (*.f64 (+.f64 (neg.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2)) (*.f64 (/.f64 1 (pow.f64 a2 6)) 1/64)) (*.f64 (cos.f64 th) (pow.f64 a1 8))))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 (pow.f64 a1 12) (+.f64 (fma.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (pow.f64 a2 4)) (/.f64 1/256 (pow.f64 a2 10))) (-.f64 (*.f64 (+.f64 (/.f64 1/64 (*.f64 (*.f64 a2 a2) (pow.f64 a2 8))) (/.f64 (*.f64 1/2 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6)))) (pow.f64 a2 4))) 0) (fma.f64 1/8 (/.f64 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (pow.f64 a2 4)) (/.f64 1/256 (pow.f64 a2 10)))))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.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 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th))) (pow.f64 a1 2)) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 (*.f64 a1 a1) (cos.f64 th)) (*.f64 (*.f64 a2 a2) (cos.f64 th)))) (/.f64 (sqrt.f64 1/2) (/.f64 (*.f64 a1 a1) (*.f64 (cos.f64 th) (*.f64 (pow.f64 a2 4) 0)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) (*.f64 (/.f64 (*.f64 (sqrt.f64 1/2) 0) a1) (/.f64 (cos.f64 th) a1)))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) 0)
(+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a2 6)) (*.f64 -1/8 (pow.f64 a2 6))) (cos.f64 th))) (pow.f64 a1 4)) (+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th))) (pow.f64 a1 2)) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))))
(+.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 (*.f64 a1 a1) (cos.f64 th)) (*.f64 (*.f64 a2 a2) (cos.f64 th)))) (/.f64 (sqrt.f64 1/2) (/.f64 (*.f64 a1 a1) (*.f64 (cos.f64 th) (*.f64 (pow.f64 a2 4) 0)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) (*.f64 (/.f64 (*.f64 (sqrt.f64 1/2) 0) a1) (/.f64 (cos.f64 th) a1)))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) 0)
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.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 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th))) (pow.f64 a1 2)) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 (*.f64 a1 a1) (cos.f64 th)) (*.f64 (*.f64 a2 a2) (cos.f64 th)))) (/.f64 (sqrt.f64 1/2) (/.f64 (*.f64 a1 a1) (*.f64 (cos.f64 th) (*.f64 (pow.f64 a2 4) 0)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) (*.f64 (/.f64 (*.f64 (sqrt.f64 1/2) 0) a1) (/.f64 (cos.f64 th) a1)))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) 0)
(+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a2 6)) (*.f64 -1/8 (pow.f64 a2 6))) (cos.f64 th))) (pow.f64 a1 4)) (+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (cos.f64 th))) (pow.f64 a1 2)) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))))
(+.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 (*.f64 a1 a1) (cos.f64 th)) (*.f64 (*.f64 a2 a2) (cos.f64 th)))) (/.f64 (sqrt.f64 1/2) (/.f64 (*.f64 a1 a1) (*.f64 (cos.f64 th) (*.f64 (pow.f64 a2 4) 0)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) (*.f64 (/.f64 (*.f64 (sqrt.f64 1/2) 0) a1) (/.f64 (cos.f64 th) a1)))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) 0)
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.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 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a1 6)))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 8)))) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))))
(fma.f64 (fma.f64 -1 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (/.f64 5/64 (pow.f64 a1 6))) (*.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) (pow.f64 a2 8)) (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 (*.f64 a1 a1) (cos.f64 th)) (*.f64 (*.f64 a2 a2) (cos.f64 th)))))
(fma.f64 (-.f64 (/.f64 5/64 (pow.f64 a1 6)) (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 8))) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th))))
(*.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) (+.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (pow.f64 a2 8) (-.f64 (*.f64 (/.f64 1 (pow.f64 a1 6)) 1/64) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a1 8))) (*.f64 -1/2 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 2)))) (pow.f64 a1 2))) (+.f64 (*.f64 1/8 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4))) (+.f64 (*.f64 1/256 (/.f64 1 (pow.f64 a1 10))) (*.f64 -1 (+.f64 (*.f64 1/2 (/.f64 (-.f64 (*.f64 1/64 (/.f64 1 (pow.f64 a1 8))) (*.f64 -1/2 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 2)))) (pow.f64 a1 2))) (+.f64 (pow.f64 (/.f64 1/16 (pow.f64 a1 5)) 2) (*.f64 1/8 (/.f64 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4))))))))) (*.f64 (pow.f64 a2 12) (cos.f64 th)))) (+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a1 6)))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 8)))) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 1/2 (/.f64 (+.f64 (/.f64 1/64 (pow.f64 a1 8)) (*.f64 1/2 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (*.f64 a1 a1)))) (*.f64 a1 a1)) (fma.f64 1/8 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4)) (+.f64 (/.f64 1/256 (pow.f64 a1 10)) (neg.f64 (fma.f64 1/2 (/.f64 (+.f64 (/.f64 1/64 (pow.f64 a1 8)) (*.f64 1/2 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (*.f64 a1 a1)))) (*.f64 a1 a1)) (+.f64 (/.f64 (*.f64 1/8 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (pow.f64 a1 4)) (pow.f64 (/.f64 1/16 (pow.f64 a1 5)) 2))))))) (*.f64 (cos.f64 th) (pow.f64 a2 12))) (fma.f64 (fma.f64 -1 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (/.f64 5/64 (pow.f64 a1 6))) (*.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) (pow.f64 a2 8)) (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 (*.f64 a1 a1) (cos.f64 th)) (*.f64 (*.f64 a2 a2) (cos.f64 th))))))
(fma.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 1/2 (-.f64 (/.f64 1/64 (*.f64 (*.f64 a1 a1) (pow.f64 a1 8))) (/.f64 (*.f64 -1/2 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (pow.f64 a1 4))) (-.f64 (fma.f64 1/8 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4)) (/.f64 1/256 (pow.f64 a1 10))) (fma.f64 1/2 (-.f64 (/.f64 1/64 (*.f64 (*.f64 a1 a1) (pow.f64 a1 8))) (/.f64 (*.f64 -1/2 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (pow.f64 a1 4))) (fma.f64 1/8 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4)) (pow.f64 (/.f64 1/16 (pow.f64 a1 5)) 2)))))) (*.f64 (cos.f64 th) (pow.f64 a2 12)) (fma.f64 (-.f64 (/.f64 5/64 (pow.f64 a1 6)) (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 8))) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))
(fma.f64 (*.f64 (sqrt.f64 1/2) (-.f64 (fma.f64 1/2 (-.f64 (/.f64 1/64 (*.f64 (*.f64 a1 a1) (pow.f64 a1 8))) (/.f64 -1/2 (/.f64 (pow.f64 a1 4) (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))))) (fma.f64 1/8 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4)) (/.f64 1/256 (pow.f64 a1 10)))) (fma.f64 1/2 (-.f64 (/.f64 1/64 (*.f64 (*.f64 a1 a1) (pow.f64 a1 8))) (/.f64 -1/2 (/.f64 (pow.f64 a1 4) (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))))) (fma.f64 1/8 (/.f64 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (pow.f64 a1 4)) (/.f64 1/256 (pow.f64 a1 10)))))) (*.f64 (cos.f64 th) (pow.f64 a2 12)) (*.f64 (*.f64 (sqrt.f64 1/2) (cos.f64 th)) (+.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (pow.f64 a2 8) (-.f64 (*.f64 (/.f64 1 (pow.f64 a1 6)) 1/64) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th))) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 (*.f64 a1 a1) (cos.f64 th)) (*.f64 (*.f64 a2 a2) (cos.f64 th)))) (/.f64 (sqrt.f64 1/2) (/.f64 (*.f64 a1 a1) (*.f64 (cos.f64 th) (*.f64 (pow.f64 a2 4) 0)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) (*.f64 (/.f64 (*.f64 (sqrt.f64 1/2) 0) a1) (/.f64 (cos.f64 th) a1)))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) 0)
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th))) (pow.f64 a2 2)) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))) (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a1 6)) (*.f64 -1/8 (pow.f64 a1 6))) (cos.f64 th))) (pow.f64 a2 4)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 (*.f64 a1 a1) (cos.f64 th)) (*.f64 (*.f64 a2 a2) (cos.f64 th)))) (/.f64 (sqrt.f64 1/2) (/.f64 (*.f64 a1 a1) (*.f64 (cos.f64 th) (*.f64 (pow.f64 a2 4) 0)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) (*.f64 (/.f64 (*.f64 (sqrt.f64 1/2) 0) a1) (/.f64 (cos.f64 th) a1)))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) 0)
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (cos.f64 th)))
(*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th))) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 (*.f64 a1 a1) (cos.f64 th)) (*.f64 (*.f64 a2 a2) (cos.f64 th)))) (/.f64 (sqrt.f64 1/2) (/.f64 (*.f64 a1 a1) (*.f64 (cos.f64 th) (*.f64 (pow.f64 a2 4) 0)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) (*.f64 (/.f64 (*.f64 (sqrt.f64 1/2) 0) a1) (/.f64 (cos.f64 th) a1)))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) 0)
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th))) (+.f64 (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))) (cos.f64 th))) (pow.f64 a2 2)) (+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th))) (/.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (+.f64 (*.f64 1/8 (pow.f64 a1 6)) (*.f64 -1/8 (pow.f64 a1 6))) (cos.f64 th))) (pow.f64 a2 4)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 (*.f64 a1 a1) (cos.f64 th)) (*.f64 (*.f64 a2 a2) (cos.f64 th)))) (/.f64 (sqrt.f64 1/2) (/.f64 (*.f64 a1 a1) (*.f64 (cos.f64 th) (*.f64 (pow.f64 a2 4) 0)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) (*.f64 (/.f64 (*.f64 (sqrt.f64 1/2) 0) a1) (/.f64 (cos.f64 th) a1)))
(fma.f64 (sqrt.f64 1/2) (*.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (cos.f64 th)) 0)
(*.f64 1/2 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2))
(*.f64 1/2 (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2))
(*.f64 1/2 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 th 2))) (*.f64 1/2 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2)))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2)) (*.f64 1/2 (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2)))
(fma.f64 1/2 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (*.f64 -1/2 (*.f64 (*.f64 th th) (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2))))
(*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (+.f64 1/2 (*.f64 -1/2 (*.f64 th th))))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 th 4))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 th 2))) (*.f64 1/2 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2))))
(fma.f64 1/6 (*.f64 (pow.f64 th 4) (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2)) (fma.f64 -1/2 (*.f64 (*.f64 th th) (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2)) (*.f64 1/2 (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2))))
(fma.f64 1/6 (*.f64 (pow.f64 th 4) (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2)) (fma.f64 1/2 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (*.f64 -1/2 (*.f64 (*.f64 th th) (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2)))))
(fma.f64 1/6 (*.f64 (pow.f64 th 4) (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2)) (*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (+.f64 1/2 (*.f64 -1/2 (*.f64 th th)))))
(+.f64 (*.f64 1/6 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 th 4))) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 th 2))) (+.f64 (*.f64 -1/45 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 th 6))) (*.f64 1/2 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2)))))
(fma.f64 1/6 (*.f64 (pow.f64 th 4) (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2)) (fma.f64 -1/2 (*.f64 (*.f64 th th) (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2)) (fma.f64 -1/45 (*.f64 (pow.f64 th 6) (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2)) (*.f64 1/2 (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2)))))
(fma.f64 1/6 (*.f64 (pow.f64 th 4) (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2)) (fma.f64 -1/2 (*.f64 (*.f64 th th) (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2)) (fma.f64 1/2 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (*.f64 (pow.f64 th 6) (*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) -1/45)))))
(+.f64 (*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (+.f64 1/2 (*.f64 -1/45 (pow.f64 th 6)))) (*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/6 (pow.f64 th 4)))))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (pow.f64 a2 2) (pow.f64 a1 2)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 1/2 (*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (pow.f64 (cos.f64 th) 2)))
(*.f64 (pow.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) 2) (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))
(*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))
(*.f64 (*.f64 1/2 (pow.f64 a2 4)) (pow.f64 (cos.f64 th) 2))
(*.f64 (pow.f64 a2 4) (*.f64 1/2 (pow.f64 (cos.f64 th) 2)))
(*.f64 (pow.f64 a2 4) (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))) (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))))
(fma.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)) (*.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (*.f64 a2 (*.f64 a2 (*.f64 a1 a1)))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))) (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2)))))
(fma.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)) (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(fma.f64 1/2 (*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 a1 a1) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (*.f64 1/2 (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 a2 6)))) (*.f64 (pow.f64 a1 8) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2)))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))) (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))))))
(fma.f64 (fma.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (/.f64 5/64 (pow.f64 a2 6))) (*.f64 (pow.f64 a1 8) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2))) (fma.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)) (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))))))
(fma.f64 (-.f64 (/.f64 5/64 (pow.f64 a2 6)) (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6)))) (*.f64 (pow.f64 a1 8) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2))) (fma.f64 1/2 (*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 a1 a1) (pow.f64 (cos.f64 th) 2)))))
(+.f64 (*.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4))) (*.f64 (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (+.f64 (*.f64 a1 a1) (*.f64 (+.f64 (neg.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2)) (*.f64 (/.f64 1 (pow.f64 a2 6)) 1/64)) (pow.f64 a1 8)))))
(*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)))
(*.f64 (pow.f64 a1 4) (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))))
(fma.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (*.f64 a2 (*.f64 a2 (*.f64 a1 a1)))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))) (*.f64 1/2 (*.f64 (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (pow.f64 a2 4))) (pow.f64 (cos.f64 th) 2)))))
(fma.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)) (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(fma.f64 1/2 (*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 a1 a1) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (*.f64 1/2 (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (pow.f64 a2 2))) (+.f64 (*.f64 -1/4 (pow.f64 a2 6)) (*.f64 1/4 (pow.f64 a2 6)))) (pow.f64 (cos.f64 th) 2)) (pow.f64 a1 2))) (*.f64 1/2 (*.f64 (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (pow.f64 a2 4))) (pow.f64 (cos.f64 th) 2))))))
(fma.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)) (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(fma.f64 1/2 (*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 a1 a1) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (*.f64 1/2 (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))))
(*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)))
(*.f64 (pow.f64 a1 4) (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))))
(fma.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (*.f64 a2 (*.f64 a2 (*.f64 a1 a1)))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))) (*.f64 1/2 (*.f64 (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (pow.f64 a2 4))) (pow.f64 (cos.f64 th) 2)))))
(fma.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)) (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(fma.f64 1/2 (*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 a1 a1) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (*.f64 1/2 (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))))
(+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (pow.f64 a2 2))) (+.f64 (*.f64 -1/4 (pow.f64 a2 6)) (*.f64 1/4 (pow.f64 a2 6)))) (pow.f64 (cos.f64 th) 2)) (pow.f64 a1 2))) (*.f64 1/2 (*.f64 (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (pow.f64 a2 4))) (pow.f64 (cos.f64 th) 2))))))
(fma.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)) (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(fma.f64 1/2 (*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 a1 a1) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (*.f64 1/2 (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))))
(*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)))
(*.f64 (pow.f64 a1 4) (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))))
(fma.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (*.f64 a2 (*.f64 a2 (*.f64 a1 a1)))))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(fma.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)) (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(fma.f64 1/2 (*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 a1 a1) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (*.f64 1/2 (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))))
(+.f64 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a1 6)))) (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 (cos.f64 th) 2) (pow.f64 a2 8)))) (+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))))))
(fma.f64 (fma.f64 -1 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (/.f64 5/64 (pow.f64 a1 6))) (*.f64 (*.f64 (*.f64 a1 a1) (pow.f64 (cos.f64 th) 2)) (pow.f64 a2 8)) (fma.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)) (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))))))
(fma.f64 (-.f64 (/.f64 5/64 (pow.f64 a1 6)) (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 (pow.f64 a2 8) (*.f64 (*.f64 a1 a1) (pow.f64 (cos.f64 th) 2))) (fma.f64 1/2 (*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 a1 a1) (pow.f64 (cos.f64 th) 2)))))
(+.f64 (*.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4))) (*.f64 (*.f64 a1 (*.f64 a1 (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 a2 a2) (*.f64 (pow.f64 a2 8) (-.f64 (*.f64 (/.f64 1 (pow.f64 a1 6)) 1/64) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))))))
(*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))
(*.f64 (*.f64 1/2 (pow.f64 a2 4)) (pow.f64 (cos.f64 th) 2))
(*.f64 (pow.f64 a2 4) (*.f64 1/2 (pow.f64 (cos.f64 th) 2)))
(*.f64 (pow.f64 a2 4) (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))))
(fma.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)) (*.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (*.f64 a2 (*.f64 a2 (*.f64 a1 a1)))))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (*.f64 (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (*.f64 -1/2 (pow.f64 a1 4)))) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(fma.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)) (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(fma.f64 1/2 (*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 a1 a1) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (*.f64 1/2 (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 6)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))))) (*.f64 1/4 (pow.f64 a1 6)))) (pow.f64 (cos.f64 th) 2)) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (*.f64 (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (*.f64 -1/2 (pow.f64 a1 4)))) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))))))
(fma.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)) (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(fma.f64 1/2 (*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 a1 a1) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (*.f64 1/2 (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))))
(*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))
(*.f64 (*.f64 1/2 (pow.f64 a2 4)) (pow.f64 (cos.f64 th) 2))
(*.f64 (pow.f64 a2 4) (*.f64 1/2 (pow.f64 (cos.f64 th) 2)))
(*.f64 (pow.f64 a2 4) (*.f64 (pow.f64 (cos.f64 th) 2) 1/2))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))))
(fma.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)) (*.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (*.f64 a2 (*.f64 a2 (*.f64 a1 a1)))))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (*.f64 (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (*.f64 -1/2 (pow.f64 a1 4)))) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(fma.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)) (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(fma.f64 1/2 (*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 a1 a1) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (*.f64 1/2 (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))))
(+.f64 (*.f64 (pow.f64 a1 2) (*.f64 (pow.f64 a2 2) (pow.f64 (cos.f64 th) 2))) (+.f64 (*.f64 1/2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a1 6)) (+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4))))) (*.f64 1/4 (pow.f64 a1 6)))) (pow.f64 (cos.f64 th) 2)) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (*.f64 (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (*.f64 -1/2 (pow.f64 a1 4)))) (pow.f64 (cos.f64 th) 2))) (*.f64 1/2 (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2))))))
(fma.f64 (*.f64 a1 a1) (*.f64 (*.f64 a2 a2) (pow.f64 (cos.f64 th) 2)) (*.f64 1/2 (+.f64 (*.f64 (pow.f64 a1 4) (pow.f64 (cos.f64 th) 2)) (*.f64 (pow.f64 a2 4) (pow.f64 (cos.f64 th) 2)))))
(fma.f64 1/2 (*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 a1 a1) (pow.f64 (cos.f64 th) 2))))
(*.f64 (pow.f64 (cos.f64 th) 2) (+.f64 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (*.f64 1/2 (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))))
1
(+.f64 1 (*.f64 -1 (pow.f64 th 2)))
(+.f64 1 (neg.f64 (*.f64 th th)))
(-.f64 1 (*.f64 th th))
(+.f64 1 (+.f64 (*.f64 -1 (pow.f64 th 2)) (*.f64 1/3 (pow.f64 th 4))))
(+.f64 1 (fma.f64 -1 (*.f64 th th) (*.f64 (pow.f64 th 4) 1/3)))
(+.f64 1 (-.f64 (*.f64 (pow.f64 th 4) 1/3) (*.f64 th th)))
(+.f64 (-.f64 1 (*.f64 th th)) (*.f64 (pow.f64 th 4) 1/3))
(+.f64 1 (+.f64 (*.f64 -1 (pow.f64 th 2)) (+.f64 (*.f64 -2/45 (pow.f64 th 6)) (*.f64 1/3 (pow.f64 th 4)))))
(+.f64 1 (fma.f64 -1 (*.f64 th th) (fma.f64 -2/45 (pow.f64 th 6) (*.f64 (pow.f64 th 4) 1/3))))
(+.f64 1 (-.f64 (fma.f64 (pow.f64 th 4) 1/3 (*.f64 (pow.f64 th 6) -2/45)) (*.f64 th th)))
(+.f64 (-.f64 1 (*.f64 th th)) (fma.f64 (pow.f64 th 4) 1/3 (*.f64 (pow.f64 th 6) -2/45)))
(pow.f64 a2 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (pow.f64 a2 4))
(fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a2 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a2 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (pow.f64 a2 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a1 4)) (pow.f64 a2 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))
(+.f64 (pow.f64 a2 4) (fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 2 (*.f64 (+.f64 (*.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (*.f64 1/16 (/.f64 1 (pow.f64 a2 6))))) (*.f64 5/64 (/.f64 1 (pow.f64 a2 6)))) (*.f64 (pow.f64 a1 8) (pow.f64 a2 2)))) (pow.f64 a2 4))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a1 4)) (fma.f64 2 (*.f64 (fma.f64 -1 (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6))) (/.f64 5/64 (pow.f64 a2 6))) (*.f64 (*.f64 a2 a2) (pow.f64 a1 8))) (pow.f64 a2 4)))
(+.f64 (fma.f64 2 (*.f64 (-.f64 (/.f64 5/64 (pow.f64 a2 6)) (+.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2) (/.f64 1/16 (pow.f64 a2 6)))) (*.f64 a2 (*.f64 a2 (pow.f64 a1 8)))) (pow.f64 a2 4)) (fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4)))
(+.f64 (fma.f64 2 (*.f64 (+.f64 (neg.f64 (pow.f64 (/.f64 -1/8 (pow.f64 a2 3)) 2)) (*.f64 (/.f64 1 (pow.f64 a2 6)) 1/64)) (*.f64 a2 (*.f64 a2 (pow.f64 a1 8)))) (pow.f64 a2 4)) (fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4)))
(pow.f64 a1 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (pow.f64 a1 4))
(fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a1 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (pow.f64 a2 4)))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a1 4)) (pow.f64 a2 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))
(+.f64 (pow.f64 a2 4) (fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a2 6) (pow.f64 a1 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a2 6) (pow.f64 a1 2))) (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (+.f64 (pow.f64 a2 4) (*.f64 2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (pow.f64 a2 2)) (pow.f64 a1 2))))))))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a1 4)) (pow.f64 a2 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))
(+.f64 (pow.f64 a2 4) (fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4)))
(pow.f64 a1 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (pow.f64 a1 4))
(fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a1 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (pow.f64 a2 4)))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a1 4)) (pow.f64 a2 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))
(+.f64 (pow.f64 a2 4) (fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a2 6) (pow.f64 a1 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a2 6) (pow.f64 a1 2))) (+.f64 (*.f64 -1/2 (pow.f64 a2 4)) (+.f64 (*.f64 1/2 (pow.f64 a2 4)) (+.f64 (pow.f64 a2 4) (*.f64 2 (/.f64 (*.f64 (+.f64 (*.f64 -1/4 (pow.f64 a2 4)) (*.f64 1/4 (pow.f64 a2 4))) (pow.f64 a2 2)) (pow.f64 a1 2))))))))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a1 4)) (pow.f64 a2 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))
(+.f64 (pow.f64 a2 4) (fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4)))
(pow.f64 a1 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (pow.f64 a1 4))
(fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a1 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (pow.f64 a2 4)))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a1 4)) (pow.f64 a2 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))
(+.f64 (pow.f64 a2 4) (fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (pow.f64 a2 4) (*.f64 2 (*.f64 (+.f64 (*.f64 -1 (+.f64 (*.f64 1/16 (/.f64 1 (pow.f64 a1 6))) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (*.f64 5/64 (/.f64 1 (pow.f64 a1 6)))) (*.f64 (pow.f64 a1 2) (pow.f64 a2 8)))))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a1 4)) (+.f64 (pow.f64 a2 4) (*.f64 2 (*.f64 (fma.f64 -1 (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2)) (/.f64 5/64 (pow.f64 a1 6))) (*.f64 (*.f64 a1 a1) (pow.f64 a2 8))))))
(+.f64 (fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4)) (fma.f64 2 (*.f64 (*.f64 a1 a1) (*.f64 (pow.f64 a2 8) (-.f64 (/.f64 5/64 (pow.f64 a1 6)) (+.f64 (/.f64 1/16 (pow.f64 a1 6)) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))))) (pow.f64 a2 4)))
(+.f64 (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)) (*.f64 (*.f64 a1 a1) (+.f64 (*.f64 (*.f64 2 (-.f64 (*.f64 (/.f64 1 (pow.f64 a1 6)) 1/64) (pow.f64 (/.f64 -1/8 (pow.f64 a1 3)) 2))) (pow.f64 a2 8)) (*.f64 2 (*.f64 a2 a2)))))
(pow.f64 a2 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (pow.f64 a2 4))
(fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a2 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a2 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (+.f64 (pow.f64 a2 4) (*.f64 -1/2 (pow.f64 a1 4))))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a1 4)) (pow.f64 a2 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))
(+.f64 (pow.f64 a2 4) (fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a1 6) (pow.f64 a2 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a1 6) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 a1 2) (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4)))) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (+.f64 (pow.f64 a2 4) (*.f64 -1/2 (pow.f64 a1 4)))))))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a1 4)) (pow.f64 a2 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))
(+.f64 (pow.f64 a2 4) (fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4)))
(pow.f64 a2 4)
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (pow.f64 a2 4))
(fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a2 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a2 4))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (+.f64 (pow.f64 a2 4) (*.f64 -1/2 (pow.f64 a1 4))))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a1 4)) (pow.f64 a2 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))
(+.f64 (pow.f64 a2 4) (fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4)))
(+.f64 (*.f64 2 (*.f64 (pow.f64 a1 2) (pow.f64 a2 2))) (+.f64 (*.f64 1/4 (/.f64 (pow.f64 a1 6) (pow.f64 a2 2))) (+.f64 (*.f64 -1/4 (/.f64 (pow.f64 a1 6) (pow.f64 a2 2))) (+.f64 (pow.f64 a1 4) (+.f64 (*.f64 2 (/.f64 (*.f64 (pow.f64 a1 2) (+.f64 (*.f64 -1/4 (pow.f64 a1 4)) (*.f64 1/4 (pow.f64 a1 4)))) (pow.f64 a2 2))) (+.f64 (*.f64 1/2 (pow.f64 a1 4)) (+.f64 (pow.f64 a2 4) (*.f64 -1/2 (pow.f64 a1 4)))))))))
(+.f64 (fma.f64 2 (*.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (pow.f64 a1 4)) (pow.f64 a2 4))
(fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (+.f64 (pow.f64 a2 4) (pow.f64 a1 4)))
(+.f64 (pow.f64 a2 4) (fma.f64 2 (*.f64 a2 (*.f64 a2 (*.f64 a1 a1))) (pow.f64 a1 4)))

eval417.0ms (2.4%)

Compiler

Compiled 14543 to 9678 computations (33.5% saved)

prune234.0ms (1.4%)

Pruning

23 alts after pruning (22 fresh and 1 done)

PrunedKeptTotal
New67122693
Fresh808
Picked101
Done415
Total68423707
Error
0b
Counts
707 → 23
Alt Table
Click to see full alt table
StatusErrorProgram
30.5b
(*.f64 (*.f64 (*.f64 a1 a1) (neg.f64 (cos.f64 th))) (/.f64 1 (neg.f64 (sqrt.f64 2))))
25.2b
(*.f64 a2 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) a2)))
25.2b
(/.f64 (*.f64 (*.f64 a2 (cos.f64 th)) a2) (sqrt.f64 2))
44.5b
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
25.2b
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
29.4b
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
41.2b
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
30.5b
(*.f64 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))
43.8b
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
41.1b
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
25.2b
(*.f64 a2 (*.f64 (*.f64 (pow.f64 2 -1/2) a2) (cos.f64 th)))
45.1b
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
25.2b
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
43.7b
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
29.4b
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
31.0b
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a1 (*.f64 a1 (cos.f64 th)))) -1)
30.5b
(/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (cos.f64 th)))
30.5b
(*.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (cos.f64 th))
25.2b
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
25.2b
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
30.5b
(*.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2)) 1)
30.5b
(*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2)))
30.5b
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
Compiler

Compiled 556 to 425 computations (23.6% saved)

localize34.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 (pow.f64 2 -1/2) a2) (cos.f64 th))
0.2b
(*.f64 a2 (*.f64 (*.f64 (pow.f64 2 -1/2) a2) (cos.f64 th)))
0.4b
(*.f64 (pow.f64 2 -1/2) a2)
Compiler

Compiled 35 to 24 computations (31.4% saved)

series16.0ms (0.1%)

Counts
3 → 60
Calls

15 calls:

TimeVariablePointExpression
2.0ms
th
@inf
(*.f64 a2 (*.f64 (*.f64 (pow.f64 2 -1/2) a2) (cos.f64 th)))
1.0ms
a2
@0
(*.f64 (pow.f64 2 -1/2) a2)
1.0ms
a2
@inf
(*.f64 a2 (*.f64 (*.f64 (pow.f64 2 -1/2) a2) (cos.f64 th)))
1.0ms
a2
@inf
(*.f64 (pow.f64 2 -1/2) a2)
1.0ms
th
@-inf
(*.f64 (*.f64 (pow.f64 2 -1/2) a2) (cos.f64 th))

rewrite82.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
949×pow1_binary64
876×add-log-exp_binary64
875×log1p-expm1-u_binary64
875×expm1-log1p-u_binary64
856×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01034
120831
2242631
Stop Event
node limit
Counts
3 → 39
Calls
Call 1
Inputs
(*.f64 (pow.f64 2 -1/2) a2)
(*.f64 a2 (*.f64 (*.f64 (pow.f64 2 -1/2) a2) (cos.f64 th)))
(*.f64 (*.f64 (pow.f64 2 -1/2) a2) (cos.f64 th))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) a2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 1/2) a2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) a2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/2) a2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 1/2) a2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 a2 a2) 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a2) (sqrt.f64 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) a2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 (sqrt.f64 1/2) 1/2) (pow.f64 a2 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a2 3) (*.f64 (sqrt.f64 1/2) 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 1/2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 1/2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 1/2) a2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a2 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a2 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a2 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a2 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a2 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a2 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a2) (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a2 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a2 3) (pow.f64 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 3) (pow.f64 a2 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a2 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a2 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a2 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 a2) (sqrt.f64 1/2)) (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a2 (*.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) a2) 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) a2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a2 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))))))))

simplify244.0ms (1.4%)

Algorithm
egg-herbie
Rules
841×distribute-lft-out_binary64
697×sqr-pow_binary64
645×*-commutative_binary64
524×distribute-rgt-in_binary64
368×pow-sqr_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
056830
1143830
2410790
31763769
43229758
53851758
64498758
75464758
85621758
95804758
106095758
116397758
126738758
137148758
147633758
Stop Event
node limit
Counts
99 → 59
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(+.f64 (*.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/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4))))))
(+.f64 (*.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 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 6)))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4)))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) a2)
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) a2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 2)))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 4))))))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 2)))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 4)))) (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 6)))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
Outputs
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th)))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 th) (*.f64 a2 th))) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (*.f64 a2 a2) (+.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th th) (*.f64 (sqrt.f64 1/2) -1/2))))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th))))))
(*.f64 (*.f64 a2 a2) (*.f64 (+.f64 1 (*.f64 th (*.f64 th -1/2))) (sqrt.f64 1/2)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(+.f64 (*.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/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 4))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 th) (*.f64 a2 th))) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 (*.f64 a2 (pow.f64 th 4))) 1/24))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (*.f64 (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/2 (*.f64 th th)))))
(*.f64 (*.f64 a2 a2) (+.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 1/24 (pow.f64 th 4))))))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 1 (+.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 1/24 (pow.f64 th 4))))))
(*.f64 (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)) (+.f64 1 (+.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 1/24 (pow.f64 th 4)))))
(+.f64 (*.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 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 6)))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4)))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))) (fma.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 6))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 4)))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 th) (*.f64 a2 th))) (fma.f64 -1/720 (*.f64 (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)) (pow.f64 th 6)) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 (*.f64 a2 (pow.f64 th 4))) 1/24)))))
(+.f64 (*.f64 (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)) (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (*.f64 -1/2 (*.f64 th th)))) (*.f64 (*.f64 a2 a2) (+.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 4) (*.f64 (sqrt.f64 1/2) 1/24)))))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th))))) (*.f64 (*.f64 a2 a2) (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (*.f64 1/24 (pow.f64 th 4))))))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)) (+.f64 (+.f64 1 (*.f64 th (*.f64 th -1/2))) (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (+.f64 (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (*.f64 th (*.f64 th -1/2))) (+.f64 1 (*.f64 1/24 (pow.f64 th 4)))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) a2)
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) a2))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) a2))
(fma.f64 (sqrt.f64 1/2) a2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 (*.f64 th th)) -1/2)))
(*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 a2 (*.f64 -1/2 (*.f64 th th)))))
(*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th)))))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 2)))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 4))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 th th))) (fma.f64 (sqrt.f64 1/2) a2 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 4))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 th th))) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 4))) (*.f64 (sqrt.f64 1/2) a2)))
(fma.f64 (sqrt.f64 1/2) a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/2 (*.f64 th th)))))
(*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 a2 (+.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 1/24 (pow.f64 th 4))))))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 (*.f64 th (*.f64 th -1/2)) (+.f64 1 (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 1 (+.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 1/24 (pow.f64 th 4)))))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 2)))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 4)))) (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 6)))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 th th))) (fma.f64 (sqrt.f64 1/2) a2 (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 4))) (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 6)))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 th th))) (fma.f64 (sqrt.f64 1/2) a2 (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 4))) (*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 (pow.f64 th 6) -1/720)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 a2 (*.f64 -1/2 (*.f64 th th))))) (*.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/720 (pow.f64 th 6)))))
(*.f64 (sqrt.f64 1/2) (+.f64 (+.f64 a2 (*.f64 a2 (*.f64 -1/720 (pow.f64 th 6)))) (*.f64 a2 (+.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 1/24 (pow.f64 th 4))))))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 (+.f64 1 (*.f64 th (*.f64 th -1/2))) (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (*.f64 th (*.f64 th -1/2))) (+.f64 1 (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))

localize16.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
0.4b
(/.f64 a1 (sqrt.f64 2))
Compiler

Compiled 17 to 13 computations (23.5% saved)

series5.0ms (0%)

Counts
2 → 12
Calls

6 calls:

TimeVariablePointExpression
1.0ms
a1
@inf
(/.f64 a1 (sqrt.f64 2))
1.0ms
a1
@0
(/.f64 a1 (sqrt.f64 2))
1.0ms
a1
@-inf
(/.f64 a1 (sqrt.f64 2))
1.0ms
a1
@0
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
1.0ms
a1
@inf
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))

rewrite65.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
618×pow1_binary64
576×add-log-exp_binary64
576×log1p-expm1-u_binary64
576×expm1-log1p-u_binary64
564×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0615
112715
2156615
Stop Event
node limit
Counts
2 → 50
Calls
Call 1
Inputs
(/.f64 a1 (sqrt.f64 2))
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 a1 (sqrt.f64 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a1 (pow.f64 2 -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a1 (sqrt.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 a1 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 a1 (sqrt.f64 2))) (cbrt.f64 (/.f64 (*.f64 a1 a1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (*.f64 a1 a1) 2)) (cbrt.f64 (/.f64 a1 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 a1) 2) (*.f64 (cbrt.f64 a1) (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 (/.f64 a1 (sqrt.f64 2))) (sqrt.f64 (/.f64 a1 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (sqrt.f64 a1) (*.f64 (sqrt.f64 a1) (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 a1) (/.f64 1 (neg.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 2 -1/2) a1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a1) 2) 1) (/.f64 (cbrt.f64 a1) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a1) 1) (/.f64 (sqrt.f64 a1) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 2)) (/.f64 a1 (cbrt.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a1) 2) (cbrt.f64 2)) (cbrt.f64 (/.f64 a1 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (sqrt.f64 a1) (cbrt.f64 2)) (/.f64 (sqrt.f64 a1) (cbrt.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 2 1/4)) (/.f64 a1 (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 a1) 2) (pow.f64 2 1/4)) (/.f64 (cbrt.f64 a1) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 a1 (sqrt.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 a1 (sqrt.f64 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 a1 (sqrt.f64 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (/.f64 a1 (sqrt.f64 2))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 2) a1) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 a1 (neg.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (*.f64 a1 a1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 a1 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 a1 (sqrt.f64 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 a1 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 a1 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 a1 (sqrt.f64 2))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 a1 (/.f64 (sqrt.f64 2) a1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a1 a1) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (neg.f64 (*.f64 a1 a1)) (neg.f64 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (neg.f64 a1) a1) (neg.f64 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 a1 (neg.f64 a1)) (neg.f64 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a1) 1) (sqrt.f64 2))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a1) (cbrt.f64 2)) (cbrt.f64 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (/.f64 (*.f64 a1 a1) (pow.f64 2 1/4)) (pow.f64 2 1/4))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 a1 (pow.f64 2 1/4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a1) (/.f64 a1 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))))))))

simplify110.0ms (0.6%)

Algorithm
egg-herbie
Rules
759×sqr-pow_binary64
434×unswap-sqr_binary64
423×*-commutative_binary64
423×associate-*r/_binary64
393×associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
06108
111108
220108
337108
483108
5266108
61091108
73478108
84280108
94465108
104681108
115028108
125456108
135935108
146584108
157273108
Stop Event
node limit
Counts
62 → 52
Calls
Call 1
Inputs
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
Outputs
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))

localize9.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
Compiler

Compiled 16 to 13 computations (18.8% saved)

series1.0ms (0%)

Counts
1 → 0
Calls

3 calls:

TimeVariablePointExpression
1.0ms
a2
@0
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
0.0ms
a2
@inf
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
0.0ms
a2
@-inf
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))

rewrite47.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
574×pow1_binary64
535×add-log-exp_binary64
535×log1p-expm1-u_binary64
535×expm1-log1p-u_binary64
522×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify11.0ms (0.1%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

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

localize23.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
Compiler

Compiled 26 to 11 computations (57.7% saved)

series6.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite61.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
674×pow1_binary64
620×add-log-exp_binary64
620×log1p-expm1-u_binary64
620×expm1-log1p-u_binary64
605×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0813
115812
2175312
Stop Event
node limit
Counts
1 → 15
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a2 a2) (sqrt.f64 1/2)) (*.f64 (*.f64 a1 a1) (sqrt.f64 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a2 a1) 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a2 a1) 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a2 a1) 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a2 a1) 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 1/2 1/4) (hypot.f64 a2 a1)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/2 (pow.f64 (pow.f64 (hypot.f64 a2 a1) 2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) (pow.f64 (hypot.f64 a2 a1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a2 a1) 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 1/2 (sqrt.f64 1/2)) (pow.f64 (pow.f64 (hypot.f64 a2 a1) 2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (pow.f64 (hypot.f64 a2 a1) 2) 3) (*.f64 1/2 (sqrt.f64 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a2 a1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a2 a1) 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 (hypot.f64 a2 a1) 2))))))))

simplify187.0ms (1.1%)

Algorithm
egg-herbie
Rules
1040×sqr-pow_binary64
784×cube-prod_binary64
743×fabs-mul_binary64
484×unswap-sqr_binary64
360×pow-sqr_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
011324
125288
249288
394288
4226288
5687288
61068288
71891288
82108288
92348288
102661288
113107288
123703288
134412288
145296288
155988288
166446288
176882288
187038288
197108288
207935288
Stop Event
node limit
Counts
39 → 21
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(+.f64 (*.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 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.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 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.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 a2 2)) (*.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 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.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 a2 2)) (*.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 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.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 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(+.f64 (*.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 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(+.f64 (*.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 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
Outputs
(*.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 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.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 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.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 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.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 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.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 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.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 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 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) (fma.f64 a1 a1 (*.f64 a2 a2)))

localize19.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.4b
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
Compiler

Compiled 26 to 11 computations (57.7% saved)

series5.0ms (0%)

Counts
1 → 24
Calls

6 calls:

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

rewrite62.0ms (0.4%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
0813
116412
2195812
Stop Event
node limit
Counts
1 → 31
Calls
Call 1
Inputs
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (sqrt.f64 2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (hypot.f64 a2 a1) 2) (pow.f64 2 -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (sqrt.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (sqrt.f64 2))) (cbrt.f64 (/.f64 (pow.f64 (pow.f64 (hypot.f64 a2 a1) 2) 2) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (pow.f64 (pow.f64 (hypot.f64 a2 a1) 2) 2) 2)) (cbrt.f64 (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a2 a1) 2)) 2) (*.f64 (cbrt.f64 (pow.f64 (hypot.f64 a2 a1) 2)) (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 a2 a1) (pow.f64 2 1/4)) (/.f64 (hypot.f64 a2 a1) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (hypot.f64 a2 a1) (*.f64 (hypot.f64 a2 a1) (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (neg.f64 (pow.f64 (hypot.f64 a2 a1) 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 a2 a1) 2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a2 a1) 2)) 2) 1) (/.f64 (cbrt.f64 (pow.f64 (hypot.f64 a2 a1) 2)) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 a2 a1) 1) (/.f64 (hypot.f64 a2 a1) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 2)) (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (cbrt.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a2 a1) 2)) 2) (cbrt.f64 2)) (cbrt.f64 (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (hypot.f64 a2 a1) (cbrt.f64 2)) (/.f64 (hypot.f64 a2 a1) (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 a2 a1) 2) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 a2 a1) 2)) 2) (pow.f64 2 1/4)) (/.f64 (cbrt.f64 (pow.f64 (hypot.f64 a2 a1) 2)) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (sqrt.f64 2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (sqrt.f64 2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (sqrt.f64 2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (hypot.f64 a2 a1) (pow.f64 2 1/4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a2 a1) 2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (neg.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (pow.f64 (pow.f64 (hypot.f64 a2 a1) 2) 2) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (sqrt.f64 2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (/.f64 (pow.f64 (pow.f64 (hypot.f64 a2 a1) 2) 3) (*.f64 2 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 (pow.f64 (hypot.f64 a2 a1) 2) (sqrt.f64 2))))))))

simplify133.0ms (0.8%)

Algorithm
egg-herbie
Rules
780×associate-/r/_binary64
600×associate-/l/_binary64
600×sqr-pow_binary64
566×*-commutative_binary64
372×cube-prod_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
010414
119414
232414
362378
4150378
5513378
62172378
73474378
83900378
94183378
104528378
115111378
126228378
137562378
Stop Event
node limit
Counts
55 → 37
Calls
Call 1
Inputs
(/.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 (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)))
Outputs
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(/.f64 a2 (/.f64 (sqrt.f64 2) a2))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(/.f64 a2 (/.f64 (sqrt.f64 2) a2))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(/.f64 a2 (/.f64 (sqrt.f64 2) a2))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 (/.f64 a1 (sqrt.f64 2)) a1)
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(+.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(+.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))
(fma.f64 a2 (/.f64 a2 (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))

eval104.0ms (0.6%)

Compiler

Compiled 2290 to 1621 computations (29.2% saved)

prune123.0ms (0.7%)

Pruning

37 alts after pruning (33 fresh and 4 done)

PrunedKeptTotal
New17920199
Fresh41317
Picked011
Done235
Total18537222
Error
0b
Counts
222 → 37
Alt Table
Click to see full alt table
StatusErrorProgram
43.8b
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
44.9b
(*.f64 a2 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th))))))
30.5b
(*.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (cos.f64 th))
44.0b
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
48.3b
(*.f64 a1 (-.f64 (+.f64 1 (/.f64 a1 (sqrt.f64 2))) 1))
25.2b
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
25.2b
(/.f64 (*.f64 (*.f64 a2 (cos.f64 th)) a2) (sqrt.f64 2))
48.6b
(-.f64 (+.f64 1 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) 1)
30.5b
(*.f64 (*.f64 (*.f64 a1 a1) (neg.f64 (cos.f64 th))) (/.f64 1 (neg.f64 (sqrt.f64 2))))
44.5b
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
41.2b
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
30.5b
(*.f64 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))
43.8b
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
41.2b
(*.f64 (*.f64 a2 (neg.f64 a2)) (/.f64 1 (neg.f64 (sqrt.f64 2))))
48.1b
(sqrt.f64 (/.f64 (pow.f64 a2 4) 2))
43.8b
(*.f64 a1 (*.f64 (pow.f64 2 -1/2) a1))
43.7b
(*.f64 a1 (*.f64 (neg.f64 a1) (/.f64 1 (neg.f64 (sqrt.f64 2)))))
44.5b
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
41.2b
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a2 a2)) -1)
54.4b
(*.f64 a1 (sqrt.f64 (/.f64 (*.f64 a1 a1) 2)))
45.1b
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
25.2b
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
30.5b
(*.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2)) 1)
41.2b
(pow.f64 (/.f64 a2 (pow.f64 2 1/4)) 2)
41.2b
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
30.5b
(*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2)))
41.2b
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
41.1b
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1)
25.2b
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
43.7b
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
25.2b
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
29.4b
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
43.7b
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
29.4b
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
43.8b
(*.f64 a1 (pow.f64 (/.f64 (sqrt.f64 2) a1) -1))
30.5b
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
30.5b
(/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (cos.f64 th)))
Compiler

Compiled 839 to 658 computations (21.6% saved)

localize31.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))
0.2b
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
0.4b
(*.f64 (sqrt.f64 1/2) a2)
Compiler

Compiled 30 to 19 computations (36.7% saved)

series10.0ms (0.1%)

Counts
3 → 48
Calls

15 calls:

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

rewrite78.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
844×pow1_binary64
775×add-log-exp_binary64
775×log1p-expm1-u_binary64
775×expm1-log1p-u_binary64
757×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0931
118131
2212831
Stop Event
node limit
Counts
3 → 39
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 1/2) a2)
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) a2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 1/2) a2) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) a2) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/2) a2)) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 1/2) a2)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/2 (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) a2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) a2) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 1/2 (sqrt.f64 1/2)) (pow.f64 a2 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a2 3) (*.f64 1/2 (sqrt.f64 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 1/2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 1/2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 1/2) a2)))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))) (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a2 3) (pow.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th))) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th))) 3) (pow.f64 a2 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 a2 (cos.f64 th)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 (sqrt.f64 1/2)) a2) (cos.f64 th)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) a2) 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) a2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))))))))

simplify251.0ms (1.5%)

Algorithm
egg-herbie
Rules
835×distribute-lft-out_binary64
697×sqr-pow_binary64
651×*-commutative_binary64
524×distribute-rgt-in_binary64
368×pow-sqr_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
056758
1144758
2411718
31768697
43235686
53860686
64495686
75461686
85618686
95801686
106092686
116390686
126735686
137143686
147626686
Stop Event
node limit
Counts
87 → 59
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(+.f64 (*.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/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4))))))
(+.f64 (*.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 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 6)))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4)))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) a2)
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) a2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 2)))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 4))))))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 2)))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 4)))) (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 6)))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
Outputs
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.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 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th)))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (+.f64 (sqrt.f64 1/2) (*.f64 -1/2 (*.f64 th (*.f64 th (sqrt.f64 1/2))))))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 a2 (*.f64 th (*.f64 th -1/2))))))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (+.f64 a2 (*.f64 a2 (*.f64 th (*.f64 th -1/2))))))
(+.f64 (*.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/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 4))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (*.f64 a2 a2) (pow.f64 th 4)) 1/24))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)) (+.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (*.f64 a2 a2) (+.f64 (*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 th (*.f64 th -1/2)))) (sqrt.f64 1/2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (+.f64 (+.f64 1 (*.f64 th (*.f64 th -1/2))) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)) (+.f64 1 (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 th (*.f64 th -1/2)))))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (+.f64 1 (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 th (*.f64 th -1/2))))))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (+.f64 a2 (*.f64 (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 th (*.f64 th -1/2))) a2))))
(+.f64 (*.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 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 6)))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4)))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))) (fma.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 6))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 4)))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))) (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 4))) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 (*.f64 a2 (pow.f64 th 6))) -1/720)))))
(+.f64 (*.f64 (*.f64 a2 a2) (+.f64 (sqrt.f64 1/2) (*.f64 -1/2 (*.f64 th (*.f64 th (sqrt.f64 1/2)))))) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/720 (pow.f64 th 6)))))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 (+.f64 a2 (*.f64 a2 (*.f64 th (*.f64 th -1/2))))) (*.f64 (*.f64 a2 a2) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/720 (pow.f64 th 6))))))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 (+.f64 1 (*.f64 -1/720 (pow.f64 th 6))) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 th (*.f64 th -1/2))))))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 1 (+.f64 (*.f64 1/24 (pow.f64 th 4)) (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (*.f64 th (*.f64 th -1/2)))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (+.f64 1 (+.f64 (*.f64 1/24 (pow.f64 th 4)) (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (*.f64 th (*.f64 th -1/2)))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) a2)
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) a2))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 a2 (*.f64 th (*.f64 th -1/2)))))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 2)))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 4))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 th th))) (fma.f64 (sqrt.f64 1/2) a2 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 4))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 th th))) (fma.f64 (sqrt.f64 1/2) a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (*.f64 (pow.f64 th 4) 1/24))))
(fma.f64 (sqrt.f64 1/2) a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 a2 (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 th (*.f64 th -1/2))))))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 (+.f64 1 (*.f64 th (*.f64 th -1/2))) (*.f64 1/24 (pow.f64 th 4))))
(*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 th (*.f64 th -1/2))) a2)))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 2)))) (+.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 4)))) (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 6)))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 th th))) (fma.f64 (sqrt.f64 1/2) a2 (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 4))) (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 6)))))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 th th))) (fma.f64 (sqrt.f64 1/2) a2 (fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a2 (pow.f64 th 4))) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 (pow.f64 th 6)) -1/720)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 a2 (*.f64 th (*.f64 th -1/2))))) (*.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/720 (pow.f64 th 6)))))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a2 (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 th (*.f64 th -1/2)))) (+.f64 a2 (*.f64 a2 (*.f64 -1/720 (pow.f64 th 6))))))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 (+.f64 1 (*.f64 -1/720 (pow.f64 th 6))) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 th (*.f64 th -1/2)))))
(*.f64 (*.f64 (sqrt.f64 1/2) a2) (+.f64 1 (+.f64 (*.f64 1/24 (pow.f64 th 4)) (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (*.f64 th (*.f64 th -1/2))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (cos.f64 th)))

localize18.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
0.4b
(*.f64 (sqrt.f64 1/2) a2)
Compiler

Compiled 17 to 13 computations (23.5% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
a2
@0
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
1.0ms
a2
@inf
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
0.0ms
a2
@-inf
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))

rewrite56.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
511×pow1_binary64
490×add-sqr-sqrt_binary64
471×add-log-exp_binary64
471×log1p-expm1-u_binary64
471×expm1-log1p-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
069
11209
213169
Stop Event
node limit
Counts
1 → 11
Calls
Call 1
Inputs
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (pow.f64 (exp.f64 a2) (sqrt.f64 1/2)) a2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))))))))

simplify194.0ms (1.1%)

Algorithm
egg-herbie
Rules
1082×sqr-pow_binary64
617×cube-prod_binary64
554×fabs-mul_binary64
523×pow-sqr_binary64
441×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
07108
113108
223108
344108
4107108
5328108
61230108
72107108
82271108
92455108
102663108
112959108
123352108
133833108
144401108
155091108
165926108
176320108
186610108
196884108
206954108
216988108
227929108
Stop Event
node limit
Counts
23 → 13
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
Outputs
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))

localize23.0ms (0.1%)

Local error

Found 1 expressions with local error:

NewErrorProgram
0.3b
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
Compiler

Compiled 25 to 16 computations (36% saved)

series2.0ms (0%)

Counts
1 → 12
Calls

3 calls:

TimeVariablePointExpression
1.0ms
a2
@0
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
0.0ms
a2
@inf
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
0.0ms
a2
@-inf
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))

rewrite68.0ms (0.4%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
069
11279
215839
Stop Event
node limit
Counts
1 → 32
Calls
Call 1
Inputs
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a2 (/.f64 1 (/.f64 (sqrt.f64 2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 a2 (*.f64 a2 (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a2 a2) (pow.f64 2 -1/2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2))) (cbrt.f64 (/.f64 (pow.f64 a2 4) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (/.f64 (pow.f64 a2 4) 2)) (cbrt.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (cbrt.f64 (pow.f64 a2 4)) (*.f64 (pow.f64 (cbrt.f64 a2) 2) (pow.f64 2 -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (pow.f64 2 1/4)) (/.f64 a2 (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (*.f64 a2 (neg.f64 a2)) (/.f64 1 (neg.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (pow.f64 2 -1/2) (*.f64 a2 a2))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 1) (/.f64 a2 (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (sqrt.f64 2)) a2)))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 a2 4)) 1) (/.f64 (pow.f64 (cbrt.f64 a2) 2) (sqrt.f64 2)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 a2 (cbrt.f64 2)) (/.f64 a2 (cbrt.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (cbrt.f64 2)) (/.f64 (*.f64 a2 a2) (cbrt.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 a2 4)) (cbrt.f64 2)) (cbrt.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 1 (pow.f64 2 1/4)) (/.f64 (*.f64 a2 a2) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x *.f64 (/.f64 (cbrt.f64 (pow.f64 a2 4)) (pow.f64 2 1/4)) (/.f64 (pow.f64 (cbrt.f64 a2) 2) (pow.f64 2 1/4)))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 a2 (pow.f64 2 1/4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a2 a2)) -1)))) (#(struct:change #<rule egg-rr> (2) ((x neg.f64 (/.f64 (*.f64 a2 a2) (neg.f64 (sqrt.f64 2))))))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (/.f64 (pow.f64 a2 4) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2))))))))

simplify123.0ms (0.7%)

Algorithm
egg-herbie
Rules
759×sqr-pow_binary64
434×unswap-sqr_binary64
423×*-commutative_binary64
423×associate-*r/_binary64
393×associate-/r/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
06108
111108
220108
337108
483108
5266108
61091108
73478108
84280108
94465108
104681108
115028108
125456108
135935108
146584108
157273108
Stop Event
node limit
Counts
44 → 34
Calls
Call 1
Inputs
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
Outputs
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(/.f64 a2 (/.f64 (sqrt.f64 2) a2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(/.f64 a2 (/.f64 (sqrt.f64 2) a2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(/.f64 a2 (/.f64 (sqrt.f64 2) a2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(/.f64 a2 (/.f64 (sqrt.f64 2) a2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(/.f64 a2 (/.f64 (sqrt.f64 2) a2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(/.f64 a2 (/.f64 (sqrt.f64 2) a2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(/.f64 a2 (/.f64 (sqrt.f64 2) a2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(/.f64 a2 (/.f64 (sqrt.f64 2) a2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(/.f64 a2 (/.f64 (sqrt.f64 2) a2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(/.f64 a2 (/.f64 (sqrt.f64 2) a2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(/.f64 a2 (/.f64 (sqrt.f64 2) a2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(/.f64 (*.f64 a2 a2) (sqrt.f64 2))
(/.f64 a2 (/.f64 (sqrt.f64 2) a2))
(*.f64 (/.f64 a2 (sqrt.f64 2)) a2)
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))

localize43.0ms (0.3%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
11.4b
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
Compiler

Compiled 52 to 36 computations (30.8% saved)

series11.0ms (0.1%)

Counts
2 → 36
Calls

9 calls:

TimeVariablePointExpression
3.0ms
a2
@0
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
2.0ms
th
@inf
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
1.0ms
a2
@inf
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
1.0ms
th
@0
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
1.0ms
th
@0
(*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2))))

rewrite110.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
632×log-prod_binary64
559×prod-diff_binary64
404×fma-def_binary64
316×pow2_binary64
249×pow-unpow_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01336
127132
2336232
Stop Event
node limit
Counts
2 → 130
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 a2 (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) (*.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) 1) (*.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) (*.f64 th (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) (*.f64 th (*.f64 th -1/2))) (*.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 a2) (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1)))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 a2) (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a2) (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1))))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 a2) (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 a2 (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1))))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) (fma.f64 (pow.f64 (*.f64 th th) 3) -1/8 1)) (fma.f64 (*.f64 th (*.f64 th -1/2)) (fma.f64 th (*.f64 th -1/2) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) (-.f64 1 (*.f64 (pow.f64 (*.f64 th th) 2) 1/4))) (-.f64 1 (*.f64 th (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a2 (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 1/2 (pow.f64 (fma.f64 th (*.f64 th -1/2) 1) 2)) (pow.f64 a2 4)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a2 (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a2 (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a2 (*.f64 (hypot.f64 1 (*.f64 th (sqrt.f64 -1/2))) (pow.f64 1/2 1/4))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 a2 a2) 3) (pow.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 th (*.f64 th -1/2) 1)) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 th (*.f64 th -1/2) 1)) 3) (pow.f64 (*.f64 a2 a2) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 (*.f64 1/2 (pow.f64 (fma.f64 th (*.f64 th -1/2) 1) 2)) (pow.f64 a2 4)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 a2) (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 a2 (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1))))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a2 (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 a2 a2) 3) (pow.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 th (*.f64 th -1/2) 1)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 th (*.f64 th -1/2) 1)) 3) (pow.f64 (*.f64 a2 a2) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a2 (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a2 (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a2 (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 a2 (*.f64 (*.f64 a2 (sqrt.f64 1/2)) (fma.f64 th (*.f64 th -1/2) 1)))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a2 (*.f64 a2 (sqrt.f64 1/2)) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a2 (*.f64 a2 (sqrt.f64 1/2)) (*.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 a2 (*.f64 a2 (sqrt.f64 1/2)) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a2 a2) (sqrt.f64 1/2) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a2 a2) (sqrt.f64 1/2) (*.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a2 a2) (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (*.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) (*.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 a2 4)) (*.f64 (pow.f64 (cbrt.f64 a2) 2) (sqrt.f64 1/2)) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 a2 4)) (*.f64 (pow.f64 (cbrt.f64 a2) 2) (sqrt.f64 1/2)) (*.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (pow.f64 a2 4)) (*.f64 (pow.f64 (cbrt.f64 a2) 2) (sqrt.f64 1/2)) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) 1 (*.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) (*.f64 th (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) (*.f64 th (*.f64 th -1/2)) (*.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) 2) (cbrt.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) 2) (cbrt.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) (*.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) 2) (cbrt.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) (sqrt.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) (sqrt.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) (*.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) (sqrt.f64 (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a2 (pow.f64 1/2 1/4)) (*.f64 a2 (pow.f64 1/2 1/4)) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a2 (pow.f64 1/2 1/4)) (*.f64 a2 (pow.f64 1/2 1/4)) (*.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 a2 (pow.f64 1/2 1/4)) (*.f64 a2 (pow.f64 1/2 1/4)) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a2 a2) (cbrt.f64 1/2)) (cbrt.f64 (sqrt.f64 1/2)) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a2 a2) (cbrt.f64 1/2)) (cbrt.f64 (sqrt.f64 1/2)) (*.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a2 a2) (cbrt.f64 1/2)) (cbrt.f64 (sqrt.f64 1/2)) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a2 a2) (pow.f64 1/2 1/4)) (pow.f64 1/2 1/4) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) (*.f64 a2 a2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a2 a2) (pow.f64 1/2 1/4)) (pow.f64 1/2 1/4) (*.f64 (*.f64 th (*.f64 th -1/2)) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 a2 a2) (pow.f64 1/2 1/4)) (pow.f64 1/2 1/4) (*.f64 (*.f64 a2 a2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))))))))
((#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 0 (*.f64 (sqrt.f64 1/2) (fma.f64 th (*.f64 th -1/2) 1)))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (pow.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 th (*.f64 th -1/2) 1)) (sqrt.f64 1/2))) 2)) (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (fma.f64 th (*.f64 th -1/2) 1)) (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x +.f64 (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 th (*.f64 th -1/2) 1)) (sqrt.f64 1/2)))) (log.f64 (sqrt.f64 (pow.f64 (exp.f64 (fma.f64 th (*.f64 th -1/2) 1)) (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x -.f64 (exp.f64 (log1p.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 th (*.f64 th -1/2) 1)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (fma.f64 1/2 (sqrt.f64 1/2) (pow.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) 3)) (+.f64 1/2 (-.f64 (pow.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) 2) (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (-.f64 1/2 (pow.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) 2)) (-.f64 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (fma.f64 (pow.f64 (*.f64 th th) 3) -1/8 1) (sqrt.f64 1/2)) (fma.f64 (*.f64 th (*.f64 th -1/2)) (fma.f64 th (*.f64 th -1/2) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (-.f64 1 (*.f64 (pow.f64 (*.f64 th th) 2) 1/4)) (sqrt.f64 1/2)) (-.f64 1 (*.f64 th (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 (pow.f64 (*.f64 th th) 3) -1/8 1)) (fma.f64 (*.f64 th (*.f64 th -1/2)) (fma.f64 th (*.f64 th -1/2) -1) 1))))) (#(struct:change #<rule egg-rr> (2) ((x /.f64 (*.f64 (sqrt.f64 1/2) (-.f64 1 (*.f64 (pow.f64 (*.f64 th th) 2) 1/4))) (-.f64 1 (*.f64 th (*.f64 th -1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 th (*.f64 th -1/2) 1)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 1/2 (pow.f64 (fma.f64 th (*.f64 th -1/2) 1) 2)) 1/2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 th (*.f64 th -1/2) 1)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 th (*.f64 th -1/2) 1))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (hypot.f64 1 (*.f64 th (sqrt.f64 -1/2))) (pow.f64 1/2 1/4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 1/2 (sqrt.f64 1/2)) (pow.f64 (fma.f64 th (*.f64 th -1/2) 1) 3)) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (pow.f64 (fma.f64 th (*.f64 th -1/2) 1) 3) (*.f64 1/2 (sqrt.f64 1/2))) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/2 (pow.f64 (fma.f64 th (*.f64 th -1/2) 1) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (fma.f64 th (*.f64 th -1/2) 1)) (sqrt.f64 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (+.f64 1 (expm1.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 th (*.f64 th -1/2) 1)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (+.f64 1 (expm1.f64 (sqrt.f64 1/2))) (exp.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))) (exp.f64 (sqrt.f64 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (*.f64 (exp.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))) (+.f64 1 (expm1.f64 (sqrt.f64 1/2)))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 th (*.f64 th -1/2) 1)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 1/2 (sqrt.f64 1/2)) (pow.f64 (fma.f64 th (*.f64 th -1/2) 1) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (fma.f64 th (*.f64 th -1/2) 1) 3) (*.f64 1/2 (sqrt.f64 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 th (*.f64 th -1/2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 th (*.f64 th -1/2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 th (*.f64 th -1/2) 1))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (*.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (fma.f64 th (*.f64 th -1/2) 1))) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 1/2) 1 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 1/2) 1 (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 1/2) (*.f64 th (*.f64 th -1/2)) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (sqrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (sqrt.f64 1/2) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 1 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 th (*.f64 (*.f64 th -1/2) (sqrt.f64 1/2)) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 th -1/2) (*.f64 th (sqrt.f64 1/2)) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 th (*.f64 th -1/2)) (sqrt.f64 1/2) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 th th) (*.f64 -1/2 (sqrt.f64 1/2)) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (sqrt.f64 1/2)) (cbrt.f64 1/2) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (sqrt.f64 1/2)) (cbrt.f64 1/2) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 1/2) (cbrt.f64 (sqrt.f64 1/2)) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 1/2) (cbrt.f64 (sqrt.f64 1/2)) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 1/2) (*.f64 (cbrt.f64 (sqrt.f64 1/2)) (*.f64 th (*.f64 th -1/2))) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 1/2) (*.f64 (cbrt.f64 (sqrt.f64 1/2)) 1) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 1/2) (*.f64 (cbrt.f64 (sqrt.f64 1/2)) 1) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (cbrt.f64 (*.f64 (pow.f64 (*.f64 th th) 2) 1/4)) (*.f64 (cbrt.f64 (*.f64 th (*.f64 th -1/2))) (sqrt.f64 1/2)) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/2 1/4) (pow.f64 1/2 1/4) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/2 1/4) (pow.f64 1/2 1/4) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/2 1/4) (*.f64 (pow.f64 1/2 1/4) (*.f64 th (*.f64 th -1/2))) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/2 1/4) (*.f64 (pow.f64 1/2 1/4) 1) (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 1/2 1/4) (*.f64 (pow.f64 1/2 1/4) 1) (*.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2)) 1))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 th (sqrt.f64 -1/2)) (*.f64 (*.f64 th (sqrt.f64 -1/2)) (sqrt.f64 1/2)) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (pow.f64 (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))) 2) (cbrt.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))) (sqrt.f64 (*.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2))) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 th (sqrt.f64 -1/2)) (pow.f64 1/2 1/4)) (*.f64 (*.f64 th (sqrt.f64 -1/2)) (pow.f64 1/2 1/4)) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (pow.f64 1/2 1/4) (*.f64 th (sqrt.f64 -1/2))) (*.f64 (pow.f64 1/2 1/4) (*.f64 th (sqrt.f64 -1/2))) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 th (*.f64 th -1/2)) (cbrt.f64 1/2)) (cbrt.f64 (sqrt.f64 1/2)) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (*.f64 th (*.f64 th -1/2)) (pow.f64 1/2 1/4)) (pow.f64 1/2 1/4) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 1/2) th) (*.f64 th -1/2) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 1/2) (*.f64 th -1/2)) th (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 1/2) (*.f64 th th)) -1/2 (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 1/2) (cbrt.f64 (*.f64 (pow.f64 (*.f64 th th) 2) 1/4))) (cbrt.f64 (*.f64 th (*.f64 th -1/2))) (sqrt.f64 1/2))))) (#(struct:change #<rule egg-rr> (2) ((x fma.f64 (*.f64 (sqrt.f64 1/2) (*.f64 th (sqrt.f64 -1/2))) (*.f64 th (sqrt.f64 -1/2)) (sqrt.f64 1/2))))))

simplify219.0ms (1.3%)

Algorithm
egg-herbie
Rules
1094×distribute-rgt-in_binary64
872×distribute-lft-in_binary64
729×fma-def_binary64
641×associate-*l*_binary64
458×sqr-pow_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
021648
149606
2129588
3503588
42364588
53203588
63759588
74355588
85360588
95495588
105651588
115821588
126019588
136243588
147521588
Stop Event
node limit
Counts
166 → 142
Calls
Call 1
Inputs
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 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 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.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 a2 2) (pow.f64 th 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.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 a2 2) (pow.f64 th 2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(sqrt.f64 1/2)
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2)))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2)))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
Outputs
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (pow.f64 th 2))) (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (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 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(*.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 (*.f64 th th) (*.f64 a2 a2))))
(*.f64 -1/2 (*.f64 (*.f64 th th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 -1/2 (*.f64 th a2)) (*.f64 th a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 -1/2 (*.f64 (*.f64 th a2) (*.f64 th a2))))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a2) (*.f64 th a2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(*.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 (*.f64 th th) (*.f64 a2 a2))))
(*.f64 -1/2 (*.f64 (*.f64 th th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 -1/2 (*.f64 th a2)) (*.f64 th a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 -1/2 (*.f64 (*.f64 th a2) (*.f64 th a2))))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a2) (*.f64 th a2))))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(*.f64 (+.f64 1 (*.f64 -1/2 (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (*.f64 a2 a2) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2)))
(sqrt.f64 1/2)
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (sqrt.f64 1/2)) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 th (*.f64 th (sqrt.f64 1/2))) (sqrt.f64 1/2))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (sqrt.f64 1/2)) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 th (*.f64 th (sqrt.f64 1/2))) (sqrt.f64 1/2))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (sqrt.f64 1/2)) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 th (*.f64 th (sqrt.f64 1/2))) (sqrt.f64 1/2))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2)))
(*.f64 -1/2 (*.f64 (*.f64 th th) (sqrt.f64 1/2)))
(*.f64 -1/2 (*.f64 th (*.f64 th (sqrt.f64 1/2))))
(*.f64 th (*.f64 th (*.f64 -1/2 (sqrt.f64 1/2))))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (sqrt.f64 1/2)) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 th (*.f64 th (sqrt.f64 1/2))) (sqrt.f64 1/2))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (sqrt.f64 1/2)) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 th (*.f64 th (sqrt.f64 1/2))) (sqrt.f64 1/2))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (sqrt.f64 1/2)) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 th (*.f64 th (sqrt.f64 1/2))) (sqrt.f64 1/2))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2)))
(*.f64 -1/2 (*.f64 (*.f64 th th) (sqrt.f64 1/2)))
(*.f64 -1/2 (*.f64 th (*.f64 th (sqrt.f64 1/2))))
(*.f64 th (*.f64 th (*.f64 -1/2 (sqrt.f64 1/2))))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (sqrt.f64 1/2)) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 th (*.f64 th (sqrt.f64 1/2))) (sqrt.f64 1/2))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (sqrt.f64 1/2)) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 th (*.f64 th (sqrt.f64 1/2))) (sqrt.f64 1/2))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (pow.f64 th 2))) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (sqrt.f64 1/2)) (sqrt.f64 1/2))
(fma.f64 -1/2 (*.f64 th (*.f64 th (sqrt.f64 1/2))) (sqrt.f64 1/2))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (sqrt.f64 1/2))

localize19.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.1b
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
0.1b
(*.f64 a2 (cos.f64 th))
0.3b
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
Compiler

Compiled 29 to 12 computations (58.6% saved)

series8.0ms (0%)

Counts
3 → 64
Calls

18 calls:

TimeVariablePointExpression
1.0ms
th
@inf
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
1.0ms
a2
@0
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
1.0ms
th
@-inf
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
1.0ms
th
@0
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
0.0ms
a2
@-inf
(*.f64 a2 (cos.f64 th))

rewrite58.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
828×pow1_binary64
760×add-log-exp_binary64
760×log1p-expm1-u_binary64
760×expm1-log1p-u_binary64
743×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0929
118029
2209229
Stop Event
node limit
Counts
3 → 39
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 a2 (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
Outputs
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a2 a2)))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a2 a2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a2 a2))) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a2 a2)))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (*.f64 a2 (sqrt.f64 (cos.f64 th))) (pow.f64 1/2 1/4)) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (*.f64 1/2 (pow.f64 (*.f64 (cos.f64 th) (*.f64 a2 a2)) 2)))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (*.f64 (cos.f64 th) (*.f64 a2 a2))) (sqrt.f64 1/2)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a2 a2))) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (*.f64 1/2 (sqrt.f64 1/2)) (pow.f64 (*.f64 (cos.f64 th) (*.f64 a2 a2)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 th) (*.f64 a2 a2)) 3) (*.f64 1/2 (sqrt.f64 1/2))))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a2 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a2 a2)))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a2 a2)))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 a2 (cos.f64 th))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a2 (cos.f64 th)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 a2 (cos.f64 th)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 a2 (cos.f64 th))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (sqrt.f64 (*.f64 a2 (cos.f64 th))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 a2 (cos.f64 th)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (pow.f64 (exp.f64 (cos.f64 th)) a2))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 a2 (cos.f64 th)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a2 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 a2 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 a2 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 a2 (cos.f64 th))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 a2 (cos.f64 th))))))))
((#(struct:change #<rule egg-rr> (2) ((x -.f64 (+.f64 1 (*.f64 (cos.f64 th) (*.f64 a2 a2))) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 (cos.f64 th) (*.f64 a2 a2)) 1)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (pow.f64 (*.f64 (cos.f64 th) (*.f64 a2 a2)) 3) 1/3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (cbrt.f64 (*.f64 (cos.f64 th) (*.f64 a2 a2))) 3)))) (#(struct:change #<rule egg-rr> (2) ((x pow.f64 (*.f64 a2 (sqrt.f64 (cos.f64 th))) 2)))) (#(struct:change #<rule egg-rr> (2) ((x sqrt.f64 (pow.f64 (*.f64 (cos.f64 th) (*.f64 a2 a2)) 2))))) (#(struct:change #<rule egg-rr> (2) ((x log.f64 (exp.f64 (*.f64 (cos.f64 th) (*.f64 a2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (pow.f64 (*.f64 (cos.f64 th) (*.f64 a2 a2)) 3))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 a2 3) (pow.f64 (*.f64 a2 (cos.f64 th)) 3)))))) (#(struct:change #<rule egg-rr> (2) ((x cbrt.f64 (*.f64 (pow.f64 (*.f64 a2 (cos.f64 th)) 3) (pow.f64 a2 3)))))) (#(struct:change #<rule egg-rr> (2) ((x expm1.f64 (log1p.f64 (*.f64 (cos.f64 th) (*.f64 a2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x log1p.f64 (expm1.f64 (*.f64 (cos.f64 th) (*.f64 a2 a2))))))) (#(struct:change #<rule egg-rr> (2) ((x exp.f64 (log.f64 (*.f64 (cos.f64 th) (*.f64 a2 a2))))))))

simplify195.0ms (1.1%)

Algorithm
egg-herbie
Rules
752×*-commutative_binary64
697×sqr-pow_binary64
460×fma-def_binary64
434×distribute-rgt-out_binary64
368×pow-sqr_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
061840
1164825
2480772
31967747
43760747
54017747
64246747
74481747
84816747
95421747
105985747
116288747
126629747
137037747
147520747
Stop Event
node limit
Counts
103 → 70
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(+.f64 (*.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/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4))))))
(+.f64 (*.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 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 6)))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4)))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (cos.f64 th) a2)
(*.f64 (cos.f64 th) a2)
(*.f64 (cos.f64 th) a2)
(*.f64 (cos.f64 th) a2)
(*.f64 (cos.f64 th) a2)
(*.f64 (cos.f64 th) a2)
(*.f64 (cos.f64 th) a2)
(*.f64 (cos.f64 th) a2)
(*.f64 (cos.f64 th) a2)
(*.f64 (cos.f64 th) a2)
(*.f64 (cos.f64 th) a2)
(*.f64 (cos.f64 th) a2)
a2
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 th 2) a2)) a2)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 th 2) a2)) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 th 4) a2)) a2))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 th 2) a2)) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 th 4) a2)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 th 6) a2)) a2)))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(pow.f64 a2 2)
(+.f64 (pow.f64 a2 2) (*.f64 -1/2 (*.f64 (pow.f64 th 2) (pow.f64 a2 2))))
(+.f64 (pow.f64 a2 2) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 th 2) (pow.f64 a2 2))) (*.f64 1/24 (*.f64 (pow.f64 th 4) (pow.f64 a2 2)))))
(+.f64 (pow.f64 a2 2) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 th 2) (pow.f64 a2 2))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 th 4) (pow.f64 a2 2))) (*.f64 -1/720 (*.f64 (pow.f64 th 6) (pow.f64 a2 2))))))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
Outputs
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a2 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(+.f64 (*.f64 (sqrt.f64 1/2) (pow.f64 a2 2)) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 2)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th)))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (*.f64 (*.f64 (*.f64 a2 a2) (*.f64 th th)) (*.f64 (sqrt.f64 1/2) -1/2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (fma.f64 (*.f64 th -1/2) th 1)))
(*.f64 (fma.f64 (*.f64 th -1/2) th 1) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)) (fma.f64 (*.f64 th -1/2) th 1))
(+.f64 (*.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/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 4))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))) (*.f64 (*.f64 a2 (*.f64 a2 (pow.f64 th 4))) (*.f64 (sqrt.f64 1/2) 1/24))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)) (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (fma.f64 a2 (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4))) a2)))
(+.f64 (*.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 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 6)))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (pow.f64 th 4)))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))) (fma.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 6))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 4)))))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a2 a2) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (*.f64 th th))) (fma.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (pow.f64 th 6))) (*.f64 (*.f64 a2 (*.f64 a2 (pow.f64 th 4))) (*.f64 (sqrt.f64 1/2) 1/24)))))
(+.f64 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (fma.f64 (*.f64 th -1/2) th 1))) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)) (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6)))))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (+.f64 (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4))) (fma.f64 -1/720 (pow.f64 th 6) 1))))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (+.f64 (fma.f64 -1/720 (pow.f64 th 6) 1) (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (pow.f64 a2 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a2 a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (sqrt.f64 1/2) (*.f64 a2 a2)))
(*.f64 (cos.f64 th) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(*.f64 (cos.f64 th) a2)
(*.f64 a2 (cos.f64 th))
(*.f64 (cos.f64 th) a2)
(*.f64 a2 (cos.f64 th))
(*.f64 (cos.f64 th) a2)
(*.f64 a2 (cos.f64 th))
(*.f64 (cos.f64 th) a2)
(*.f64 a2 (cos.f64 th))
(*.f64 (cos.f64 th) a2)
(*.f64 a2 (cos.f64 th))
(*.f64 (cos.f64 th) a2)
(*.f64 a2 (cos.f64 th))
(*.f64 (cos.f64 th) a2)
(*.f64 a2 (cos.f64 th))
(*.f64 (cos.f64 th) a2)
(*.f64 a2 (cos.f64 th))
(*.f64 (cos.f64 th) a2)
(*.f64 a2 (cos.f64 th))
(*.f64 (cos.f64 th) a2)
(*.f64 a2 (cos.f64 th))
(*.f64 (cos.f64 th) a2)
(*.f64 a2 (cos.f64 th))
(*.f64 (cos.f64 th) a2)
(*.f64 a2 (cos.f64 th))
a2
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 th 2) a2)) a2)
(fma.f64 -1/2 (*.f64 a2 (*.f64 th th)) a2)
(*.f64 a2 (fma.f64 (*.f64 th -1/2) th 1))
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 th 2) a2)) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 th 4) a2)) a2))
(fma.f64 -1/2 (*.f64 a2 (*.f64 th th)) (fma.f64 1/24 (*.f64 a2 (pow.f64 th 4)) a2))
(fma.f64 a2 (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4))) a2)
(+.f64 (*.f64 -1/2 (*.f64 (pow.f64 th 2) a2)) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 th 4) a2)) (+.f64 (*.f64 -1/720 (*.f64 (pow.f64 th 6) a2)) a2)))
(fma.f64 -1/2 (*.f64 a2 (*.f64 th th)) (fma.f64 1/24 (*.f64 a2 (pow.f64 th 4)) (fma.f64 -1/720 (*.f64 a2 (pow.f64 th 6)) a2)))
(fma.f64 a2 (*.f64 th (*.f64 th -1/2)) (fma.f64 a2 (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6))) a2))
(*.f64 a2 (+.f64 (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4))) (fma.f64 -1/720 (pow.f64 th 6) 1)))
(*.f64 a2 (+.f64 (fma.f64 -1/720 (pow.f64 th 6) 1) (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (cos.f64 th) (pow.f64 a2 2))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(pow.f64 a2 2)
(*.f64 a2 a2)
(+.f64 (pow.f64 a2 2) (*.f64 -1/2 (*.f64 (pow.f64 th 2) (pow.f64 a2 2))))
(+.f64 (*.f64 a2 a2) (*.f64 -1/2 (*.f64 (*.f64 a2 a2) (*.f64 th th))))
(*.f64 (+.f64 (*.f64 -1/2 (*.f64 th th)) 1) (*.f64 a2 a2))
(*.f64 (*.f64 a2 a2) (fma.f64 (*.f64 th -1/2) th 1))
(+.f64 (pow.f64 a2 2) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 th 2) (pow.f64 a2 2))) (*.f64 1/24 (*.f64 (pow.f64 th 4) (pow.f64 a2 2)))))
(+.f64 (*.f64 a2 a2) (fma.f64 -1/2 (*.f64 (*.f64 a2 a2) (*.f64 th th)) (*.f64 1/24 (*.f64 (*.f64 a2 a2) (pow.f64 th 4)))))
(fma.f64 a2 a2 (*.f64 (*.f64 a2 a2) (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (*.f64 a2 a2) (+.f64 (fma.f64 (*.f64 th -1/2) th 1) (*.f64 1/24 (pow.f64 th 4))))
(*.f64 a2 (fma.f64 a2 (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4))) a2))
(+.f64 (pow.f64 a2 2) (+.f64 (*.f64 -1/2 (*.f64 (pow.f64 th 2) (pow.f64 a2 2))) (+.f64 (*.f64 1/24 (*.f64 (pow.f64 th 4) (pow.f64 a2 2))) (*.f64 -1/720 (*.f64 (pow.f64 th 6) (pow.f64 a2 2))))))
(+.f64 (*.f64 a2 a2) (fma.f64 -1/2 (*.f64 (*.f64 a2 a2) (*.f64 th th)) (fma.f64 1/24 (*.f64 (*.f64 a2 a2) (pow.f64 th 4)) (*.f64 -1/720 (*.f64 (*.f64 a2 a2) (pow.f64 th 6))))))
(fma.f64 a2 a2 (fma.f64 -1/2 (*.f64 (*.f64 a2 a2) (*.f64 th th)) (*.f64 (*.f64 a2 a2) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/720 (pow.f64 th 6))))))
(fma.f64 a2 a2 (*.f64 (*.f64 a2 a2) (+.f64 (*.f64 th (*.f64 th -1/2)) (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6))))))
(*.f64 (*.f64 a2 a2) (+.f64 (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4))) (fma.f64 -1/720 (pow.f64 th 6) 1)))
(*.f64 (*.f64 a2 a2) (+.f64 (fma.f64 -1/720 (pow.f64 th 6) 1) (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 a2 (*.f64 a2 (cos.f64 th)))

eval118.0ms (0.7%)

Compiler

Compiled 5143 to 3567 computations (30.6% saved)

prune77.0ms (0.5%)

Pruning

42 alts after pruning (33 fresh and 9 done)

PrunedKeptTotal
New3247331
Fresh22628
Picked011
Done088
Total32642368
Error
0b
Counts
368 → 42
Alt Table
Click to see full alt table
StatusErrorProgram
43.8b
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
44.9b
(*.f64 a2 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th))))))
30.5b
(*.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (cos.f64 th))
44.0b
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
48.3b
(*.f64 a1 (-.f64 (+.f64 1 (/.f64 a1 (sqrt.f64 2))) 1))
25.2b
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
25.2b
(/.f64 (*.f64 (*.f64 a2 (cos.f64 th)) a2) (sqrt.f64 2))
48.6b
(-.f64 (+.f64 1 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) 1)
30.5b
(*.f64 (*.f64 (*.f64 a1 a1) (neg.f64 (cos.f64 th))) (/.f64 1 (neg.f64 (sqrt.f64 2))))
44.5b
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
45.4b
(*.f64 a2 (-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) a2)) 1))
41.2b
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
57.7b
(*.f64 (*.f64 a2 a2) (*.f64 th (*.f64 th (*.f64 -1/2 (sqrt.f64 1/2)))))
30.5b
(*.f64 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))
43.8b
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
41.2b
(*.f64 (*.f64 a2 (neg.f64 a2)) (/.f64 1 (neg.f64 (sqrt.f64 2))))
48.1b
(sqrt.f64 (/.f64 (pow.f64 a2 4) 2))
43.8b
(*.f64 a1 (*.f64 (pow.f64 2 -1/2) a1))
43.7b
(*.f64 a1 (*.f64 (neg.f64 a1) (/.f64 1 (neg.f64 (sqrt.f64 2)))))
44.5b
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
41.2b
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a2 a2)) -1)
54.4b
(*.f64 a1 (sqrt.f64 (/.f64 (*.f64 a1 a1) 2)))
45.1b
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
41.2b
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
30.5b
(*.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2)) 1)
41.2b
(pow.f64 (/.f64 a2 (pow.f64 2 1/4)) 2)
41.2b
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
58.1b
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a2) (*.f64 th a2))))
35.1b
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a2 a2)))) 1)
43.8b
(*.f64 a1 (pow.f64 (/.f64 (sqrt.f64 2) a1) -1))
30.5b
(*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2)))
41.1b
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1)
25.2b
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
41.2b
(*.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 1) 1)
43.7b
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
25.2b
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
29.4b
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
30.5b
(/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (cos.f64 th)))
41.2b
(*.f64 (*.f64 a2 (/.f64 1 (/.f64 (sqrt.f64 2) a2))) 1)
43.7b
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
29.4b
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
30.5b
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
Compiler

Compiled 515 to 402 computations (21.9% saved)

regimes351.0ms (2.1%)

Counts
64 → 1
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 a1 (*.f64 (pow.f64 2 -1/2) a1))
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(*.f64 a1 (sqrt.f64 (/.f64 (*.f64 a1 a1) 2)))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1)
(*.f64 a2 (-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) a2)) 1))
(*.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 1) 1)
(*.f64 (*.f64 a2 (/.f64 1 (/.f64 (sqrt.f64 2) a2))) 1)
(*.f64 a1 (-.f64 (+.f64 1 (/.f64 a1 (sqrt.f64 2))) 1))
(-.f64 (+.f64 1 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) 1)
(*.f64 (*.f64 a2 (neg.f64 a2)) (/.f64 1 (neg.f64 (sqrt.f64 2))))
(*.f64 a1 (*.f64 (neg.f64 a1) (/.f64 1 (neg.f64 (sqrt.f64 2)))))
(*.f64 (*.f64 a2 a2) (*.f64 th (*.f64 th (*.f64 -1/2 (sqrt.f64 1/2)))))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a2) (*.f64 th a2))))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th))))))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(sqrt.f64 (/.f64 (pow.f64 a2 4) 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(pow.f64 (/.f64 a2 (pow.f64 2 1/4)) 2)
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a2 a2)) -1)
(*.f64 a1 (pow.f64 (/.f64 (sqrt.f64 2) a1) -1))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
(*.f64 a2 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) a2)))
(/.f64 (*.f64 (*.f64 a2 (cos.f64 th)) a2) (sqrt.f64 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
(*.f64 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.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 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
(*.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (cos.f64 th))
(*.f64 a2 (*.f64 (*.f64 (pow.f64 2 -1/2) a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2)))
(*.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2)) 1)
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a2 a2)))) 1)
(*.f64 (*.f64 (*.f64 a1 a1) (neg.f64 (cos.f64 th))) (/.f64 1 (neg.f64 (sqrt.f64 2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a1 (*.f64 a1 (cos.f64 th)))) -1)
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.f64 (*.f64 (pow.f64 2 -1/2) (cos.f64 th)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(/.f64 (pow.f64 (hypot.f64 a1 a2) 2) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) 2)))
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2))))
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
(pow.f64 (*.f64 (sqrt.f64 (/.f64 (cos.f64 th) (sqrt.f64 2))) (hypot.f64 a1 a2)) 2)
(sqrt.f64 (*.f64 (*.f64 (pow.f64 (cos.f64 th) 2) 1/2) (pow.f64 (hypot.f64 a1 a2) 4)))
(*.f64 (-.f64 (exp.f64 (log1p.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)))) 1) (fma.f64 a1 a1 (*.f64 a2 a2)))
(/.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 (hypot.f64 a1 a2) 2)) (pow.f64 2 1/4)) (pow.f64 2 1/4))
Outputs
(*.f64 (*.f64 (pow.f64 2 -1/2) (cos.f64 th)) (fma.f64 a1 a1 (*.f64 a2 a2)))
Calls

10 calls:

41.0ms
th
40.0ms
(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
38.0ms
a2
37.0ms
a1
35.0ms
(cos.f64 th)
Results
ErrorSegmentsBranch
0.4b1a1
0.4b1a2
0.4b1th
0.4b1(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
0.4b1(/.f64 (cos.f64 th) (sqrt.f64 2))
0.4b1(/.f64 (cos.f64 th) (sqrt.f64 2))
0.4b1(cos.f64 th)
0.4b1(*.f64 a1 a1)
0.4b1(*.f64 a1 a1)
0.4b1(*.f64 a2 a2)
Compiler

Compiled 706 to 436 computations (38.2% saved)

regimes232.0ms (1.4%)

Counts
55 → 1
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 a1 (*.f64 (pow.f64 2 -1/2) a1))
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(*.f64 a1 (sqrt.f64 (/.f64 (*.f64 a1 a1) 2)))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1)
(*.f64 a2 (-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) a2)) 1))
(*.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 1) 1)
(*.f64 (*.f64 a2 (/.f64 1 (/.f64 (sqrt.f64 2) a2))) 1)
(*.f64 a1 (-.f64 (+.f64 1 (/.f64 a1 (sqrt.f64 2))) 1))
(-.f64 (+.f64 1 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) 1)
(*.f64 (*.f64 a2 (neg.f64 a2)) (/.f64 1 (neg.f64 (sqrt.f64 2))))
(*.f64 a1 (*.f64 (neg.f64 a1) (/.f64 1 (neg.f64 (sqrt.f64 2)))))
(*.f64 (*.f64 a2 a2) (*.f64 th (*.f64 th (*.f64 -1/2 (sqrt.f64 1/2)))))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a2) (*.f64 th a2))))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th))))))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(sqrt.f64 (/.f64 (pow.f64 a2 4) 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(pow.f64 (/.f64 a2 (pow.f64 2 1/4)) 2)
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a2 a2)) -1)
(*.f64 a1 (pow.f64 (/.f64 (sqrt.f64 2) a1) -1))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
(*.f64 a2 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) a2)))
(/.f64 (*.f64 (*.f64 a2 (cos.f64 th)) a2) (sqrt.f64 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
(*.f64 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.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 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
(*.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (cos.f64 th))
(*.f64 a2 (*.f64 (*.f64 (pow.f64 2 -1/2) a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2)))
(*.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2)) 1)
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a2 a2)))) 1)
(*.f64 (*.f64 (*.f64 a1 a1) (neg.f64 (cos.f64 th))) (/.f64 1 (neg.f64 (sqrt.f64 2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a1 (*.f64 a1 (cos.f64 th)))) -1)
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
Outputs
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
Calls

8 calls:

36.0ms
a1
33.0ms
th
31.0ms
a2
30.0ms
(cos.f64 th)
26.0ms
(/.f64 (cos.f64 th) (sqrt.f64 2))
Results
ErrorSegmentsBranch
0.5b1a1
0.5b1a2
0.5b1th
0.5b1(/.f64 (cos.f64 th) (sqrt.f64 2))
0.5b1(cos.f64 th)
0.5b1(*.f64 a1 a1)
0.5b1(*.f64 a1 a1)
0.5b1(*.f64 a2 a2)
Compiler

Compiled 552 to 345 computations (37.5% saved)

regimes712.0ms (4.2%)

Counts
54 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 a1 (*.f64 (pow.f64 2 -1/2) a1))
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(*.f64 a1 (sqrt.f64 (/.f64 (*.f64 a1 a1) 2)))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1)
(*.f64 a2 (-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) a2)) 1))
(*.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 1) 1)
(*.f64 (*.f64 a2 (/.f64 1 (/.f64 (sqrt.f64 2) a2))) 1)
(*.f64 a1 (-.f64 (+.f64 1 (/.f64 a1 (sqrt.f64 2))) 1))
(-.f64 (+.f64 1 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) 1)
(*.f64 (*.f64 a2 (neg.f64 a2)) (/.f64 1 (neg.f64 (sqrt.f64 2))))
(*.f64 a1 (*.f64 (neg.f64 a1) (/.f64 1 (neg.f64 (sqrt.f64 2)))))
(*.f64 (*.f64 a2 a2) (*.f64 th (*.f64 th (*.f64 -1/2 (sqrt.f64 1/2)))))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a2) (*.f64 th a2))))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th))))))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(sqrt.f64 (/.f64 (pow.f64 a2 4) 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(pow.f64 (/.f64 a2 (pow.f64 2 1/4)) 2)
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a2 a2)) -1)
(*.f64 a1 (pow.f64 (/.f64 (sqrt.f64 2) a1) -1))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
(*.f64 a2 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) a2)))
(/.f64 (*.f64 (*.f64 a2 (cos.f64 th)) a2) (sqrt.f64 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
(*.f64 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.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 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
(*.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (cos.f64 th))
(*.f64 a2 (*.f64 (*.f64 (pow.f64 2 -1/2) a2) (cos.f64 th)))
(*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2)))
(*.f64 (/.f64 (*.f64 a1 (*.f64 a1 (cos.f64 th))) (sqrt.f64 2)) 1)
(-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a2 a2)))) 1)
(*.f64 (*.f64 (*.f64 a1 a1) (neg.f64 (cos.f64 th))) (/.f64 1 (neg.f64 (sqrt.f64 2))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a2 2) (cos.f64 th)))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2))
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a1 (*.f64 a1 (cos.f64 th)))) -1)
Outputs
(*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2)))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
Calls

7 calls:

241.0ms
th
116.0ms
(*.f64 a1 a1)
81.0ms
(cos.f64 th)
69.0ms
(*.f64 a2 a2)
69.0ms
(*.f64 a2 a2)
Results
ErrorSegmentsBranch
6.3b2a1
7.2b2a2
12.9b5th
14.7b2(cos.f64 th)
9.5b6(*.f64 a1 a1)
9.6b4(*.f64 a2 a2)
9.6b4(*.f64 a2 a2)
Compiler

Compiled 532 to 333 computations (37.4% saved)

bsearch64.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
63.0ms
-6.895388867423736e-118
-5.466196423826453e-131
Compiler

Compiled 28 to 20 computations (28.6% saved)

regimes544.0ms (3.2%)

Counts
46 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 a1 (*.f64 (pow.f64 2 -1/2) a1))
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(*.f64 a1 (sqrt.f64 (/.f64 (*.f64 a1 a1) 2)))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1)
(*.f64 a2 (-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) a2)) 1))
(*.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 1) 1)
(*.f64 (*.f64 a2 (/.f64 1 (/.f64 (sqrt.f64 2) a2))) 1)
(*.f64 a1 (-.f64 (+.f64 1 (/.f64 a1 (sqrt.f64 2))) 1))
(-.f64 (+.f64 1 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) 1)
(*.f64 (*.f64 a2 (neg.f64 a2)) (/.f64 1 (neg.f64 (sqrt.f64 2))))
(*.f64 a1 (*.f64 (neg.f64 a1) (/.f64 1 (neg.f64 (sqrt.f64 2)))))
(*.f64 (*.f64 a2 a2) (*.f64 th (*.f64 th (*.f64 -1/2 (sqrt.f64 1/2)))))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a2) (*.f64 th a2))))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th))))))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(sqrt.f64 (/.f64 (pow.f64 a2 4) 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(pow.f64 (/.f64 a2 (pow.f64 2 1/4)) 2)
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a2 a2)) -1)
(*.f64 a1 (pow.f64 (/.f64 (sqrt.f64 2) a1) -1))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
(*.f64 a2 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) a2)))
(/.f64 (*.f64 (*.f64 a2 (cos.f64 th)) a2) (sqrt.f64 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
(*.f64 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.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 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
(*.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (cos.f64 th))
(*.f64 a2 (*.f64 (*.f64 (pow.f64 2 -1/2) a2) (cos.f64 th)))
Outputs
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
Calls

8 calls:

146.0ms
th
65.0ms
(*.f64 a1 a1)
59.0ms
(*.f64 a1 a1)
53.0ms
a2
52.0ms
a1
Results
ErrorSegmentsBranch
6.3b2a1
7.2b2a2
12.9b5th
14.7b2(cos.f64 th)
9.5b6(*.f64 a1 a1)
9.5b6(*.f64 a1 a1)
9.6b4(*.f64 a2 a2)
9.6b4(*.f64 a2 a2)
Compiler

Compiled 453 to 288 computations (36.4% saved)

bsearch62.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
62.0ms
-6.895388867423736e-118
-5.466196423826453e-131
Compiler

Compiled 28 to 20 computations (28.6% saved)

regimes589.0ms (3.5%)

Counts
41 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 a1 (*.f64 (pow.f64 2 -1/2) a1))
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(*.f64 a1 (sqrt.f64 (/.f64 (*.f64 a1 a1) 2)))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1)
(*.f64 a2 (-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) a2)) 1))
(*.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 1) 1)
(*.f64 (*.f64 a2 (/.f64 1 (/.f64 (sqrt.f64 2) a2))) 1)
(*.f64 a1 (-.f64 (+.f64 1 (/.f64 a1 (sqrt.f64 2))) 1))
(-.f64 (+.f64 1 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) 1)
(*.f64 (*.f64 a2 (neg.f64 a2)) (/.f64 1 (neg.f64 (sqrt.f64 2))))
(*.f64 a1 (*.f64 (neg.f64 a1) (/.f64 1 (neg.f64 (sqrt.f64 2)))))
(*.f64 (*.f64 a2 a2) (*.f64 th (*.f64 th (*.f64 -1/2 (sqrt.f64 1/2)))))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a2) (*.f64 th a2))))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th))))))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(sqrt.f64 (/.f64 (pow.f64 a2 4) 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(pow.f64 (/.f64 a2 (pow.f64 2 1/4)) 2)
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a2 a2)) -1)
(*.f64 a1 (pow.f64 (/.f64 (sqrt.f64 2) a1) -1))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
(*.f64 a2 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) a2)))
(/.f64 (*.f64 (*.f64 a2 (cos.f64 th)) a2) (sqrt.f64 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
(*.f64 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.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 a2 a2) (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
Outputs
(*.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (cos.f64 th))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
Calls

8 calls:

167.0ms
a2
120.0ms
th
57.0ms
(*.f64 a1 a1)
54.0ms
(*.f64 a1 a1)
50.0ms
(*.f64 a2 a2)
Results
ErrorSegmentsBranch
6.3b2a1
7.2b2a2
12.9b5th
14.7b2(cos.f64 th)
9.5b6(*.f64 a1 a1)
9.5b6(*.f64 a1 a1)
9.6b4(*.f64 a2 a2)
9.6b4(*.f64 a2 a2)
Compiler

Compiled 407 to 264 computations (35.1% saved)

bsearch63.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
62.0ms
-6.895388867423736e-118
-5.466196423826453e-131
Compiler

Compiled 28 to 20 computations (28.6% saved)

regimes633.0ms (3.7%)

Counts
39 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 a1 (*.f64 (pow.f64 2 -1/2) a1))
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(*.f64 a1 (sqrt.f64 (/.f64 (*.f64 a1 a1) 2)))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1)
(*.f64 a2 (-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) a2)) 1))
(*.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 1) 1)
(*.f64 (*.f64 a2 (/.f64 1 (/.f64 (sqrt.f64 2) a2))) 1)
(*.f64 a1 (-.f64 (+.f64 1 (/.f64 a1 (sqrt.f64 2))) 1))
(-.f64 (+.f64 1 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) 1)
(*.f64 (*.f64 a2 (neg.f64 a2)) (/.f64 1 (neg.f64 (sqrt.f64 2))))
(*.f64 a1 (*.f64 (neg.f64 a1) (/.f64 1 (neg.f64 (sqrt.f64 2)))))
(*.f64 (*.f64 a2 a2) (*.f64 th (*.f64 th (*.f64 -1/2 (sqrt.f64 1/2)))))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a2) (*.f64 th a2))))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th))))))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(sqrt.f64 (/.f64 (pow.f64 a2 4) 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(pow.f64 (/.f64 a2 (pow.f64 2 1/4)) 2)
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a2 a2)) -1)
(*.f64 a1 (pow.f64 (/.f64 (sqrt.f64 2) a1) -1))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
(*.f64 a2 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) a2)))
(/.f64 (*.f64 (*.f64 a2 (cos.f64 th)) a2) (sqrt.f64 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
(*.f64 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
(/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (cos.f64 th)))
Outputs
(/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
Calls

8 calls:

193.0ms
th
88.0ms
(cos.f64 th)
80.0ms
a1
67.0ms
a2
53.0ms
(*.f64 a1 a1)
Results
ErrorSegmentsBranch
6.3b2a1
7.3b2a2
12.9b5th
14.7b2(cos.f64 th)
9.5b6(*.f64 a1 a1)
9.5b6(*.f64 a1 a1)
9.6b4(*.f64 a2 a2)
9.6b4(*.f64 a2 a2)
Compiler

Compiled 389 to 255 computations (34.4% saved)

bsearch133.0ms (0.8%)

Algorithm
binary-search
Steps
TimeLeftRight
133.0ms
-6.895388867423736e-118
-5.466196423826453e-131
Compiler

Compiled 28 to 20 computations (28.6% saved)

regimes748.0ms (4.4%)

Counts
38 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 a1 (*.f64 (pow.f64 2 -1/2) a1))
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(*.f64 a1 (sqrt.f64 (/.f64 (*.f64 a1 a1) 2)))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1)
(*.f64 a2 (-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) a2)) 1))
(*.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 1) 1)
(*.f64 (*.f64 a2 (/.f64 1 (/.f64 (sqrt.f64 2) a2))) 1)
(*.f64 a1 (-.f64 (+.f64 1 (/.f64 a1 (sqrt.f64 2))) 1))
(-.f64 (+.f64 1 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) 1)
(*.f64 (*.f64 a2 (neg.f64 a2)) (/.f64 1 (neg.f64 (sqrt.f64 2))))
(*.f64 a1 (*.f64 (neg.f64 a1) (/.f64 1 (neg.f64 (sqrt.f64 2)))))
(*.f64 (*.f64 a2 a2) (*.f64 th (*.f64 th (*.f64 -1/2 (sqrt.f64 1/2)))))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a2) (*.f64 th a2))))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th))))))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(sqrt.f64 (/.f64 (pow.f64 a2 4) 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(pow.f64 (/.f64 a2 (pow.f64 2 1/4)) 2)
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a2 a2)) -1)
(*.f64 a1 (pow.f64 (/.f64 (sqrt.f64 2) a1) -1))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
(*.f64 a2 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) a2)))
(/.f64 (*.f64 (*.f64 a2 (cos.f64 th)) a2) (sqrt.f64 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
(*.f64 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (fma.f64 a2 a2 (*.f64 a1 a1)))
Outputs
(*.f64 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th))))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
Calls

8 calls:

186.0ms
th
108.0ms
(*.f64 a2 a2)
80.0ms
(*.f64 a1 a1)
71.0ms
(*.f64 a1 a1)
69.0ms
(*.f64 a2 a2)
Results
ErrorSegmentsBranch
6.3b2a1
7.3b2a2
12.9b5th
14.7b2(cos.f64 th)
9.5b6(*.f64 a1 a1)
9.5b6(*.f64 a1 a1)
9.6b4(*.f64 a2 a2)
9.6b4(*.f64 a2 a2)
Compiler

Compiled 380 to 251 computations (33.9% saved)

bsearch78.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
78.0ms
-6.895388867423736e-118
-5.466196423826453e-131
Compiler

Compiled 28 to 20 computations (28.6% saved)

regimes299.0ms (1.7%)

Counts
36 → 3
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 a1 (*.f64 (pow.f64 2 -1/2) a1))
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(*.f64 a1 (sqrt.f64 (/.f64 (*.f64 a1 a1) 2)))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1)
(*.f64 a2 (-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) a2)) 1))
(*.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 1) 1)
(*.f64 (*.f64 a2 (/.f64 1 (/.f64 (sqrt.f64 2) a2))) 1)
(*.f64 a1 (-.f64 (+.f64 1 (/.f64 a1 (sqrt.f64 2))) 1))
(-.f64 (+.f64 1 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) 1)
(*.f64 (*.f64 a2 (neg.f64 a2)) (/.f64 1 (neg.f64 (sqrt.f64 2))))
(*.f64 a1 (*.f64 (neg.f64 a1) (/.f64 1 (neg.f64 (sqrt.f64 2)))))
(*.f64 (*.f64 a2 a2) (*.f64 th (*.f64 th (*.f64 -1/2 (sqrt.f64 1/2)))))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a2) (*.f64 th a2))))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th))))))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(sqrt.f64 (/.f64 (pow.f64 a2 4) 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(pow.f64 (/.f64 a2 (pow.f64 2 1/4)) 2)
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a2 a2)) -1)
(*.f64 a1 (pow.f64 (/.f64 (sqrt.f64 2) a1) -1))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
(*.f64 a2 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) a2)))
(/.f64 (*.f64 (*.f64 a2 (cos.f64 th)) a2) (sqrt.f64 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
Outputs
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
(/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2))
(*.f64 a2 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) a2)))
Calls

7 calls:

75.0ms
th
50.0ms
(*.f64 a1 a1)
37.0ms
a2
36.0ms
a1
29.0ms
(cos.f64 th)
Results
ErrorSegmentsBranch
17.1b2a1
16.6b2a2
14.7b3th
14.7b2(cos.f64 th)
19.7b2(*.f64 a1 a1)
18.5b2(*.f64 a2 a2)
18.5b2(*.f64 a2 a2)
Compiler

Compiled 356 to 239 computations (32.9% saved)

bsearch74.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
37.0ms
1.4566389604854082e-16
1.7120722258190529e-9
37.0ms
-0.007453308212503148
-1.6985407511627086e-12
Compiler

Compiled 28 to 20 computations (28.6% saved)

regimes477.0ms (2.8%)

Counts
35 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 a1 (*.f64 (pow.f64 2 -1/2) a1))
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(*.f64 a1 (sqrt.f64 (/.f64 (*.f64 a1 a1) 2)))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1)
(*.f64 a2 (-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) a2)) 1))
(*.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 1) 1)
(*.f64 (*.f64 a2 (/.f64 1 (/.f64 (sqrt.f64 2) a2))) 1)
(*.f64 a1 (-.f64 (+.f64 1 (/.f64 a1 (sqrt.f64 2))) 1))
(-.f64 (+.f64 1 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) 1)
(*.f64 (*.f64 a2 (neg.f64 a2)) (/.f64 1 (neg.f64 (sqrt.f64 2))))
(*.f64 a1 (*.f64 (neg.f64 a1) (/.f64 1 (neg.f64 (sqrt.f64 2)))))
(*.f64 (*.f64 a2 a2) (*.f64 th (*.f64 th (*.f64 -1/2 (sqrt.f64 1/2)))))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a2) (*.f64 th a2))))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th))))))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(sqrt.f64 (/.f64 (pow.f64 a2 4) 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(pow.f64 (/.f64 a2 (pow.f64 2 1/4)) 2)
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a2 a2)) -1)
(*.f64 a1 (pow.f64 (/.f64 (sqrt.f64 2) a1) -1))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
(*.f64 a2 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) a2)))
(/.f64 (*.f64 (*.f64 a2 (cos.f64 th)) a2) (sqrt.f64 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
Outputs
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th)))
Calls

8 calls:

183.0ms
th
118.0ms
a2
55.0ms
a1
29.0ms
(*.f64 a2 a2)
28.0ms
(*.f64 a2 a2)
Results
ErrorSegmentsBranch
18.8b2a1
16.7b2a2
22.5b5th
25.2b1(cos.f64 th)
20.9b2(*.f64 a1 a1)
20.9b2(*.f64 a1 a1)
19.4b2(*.f64 a2 a2)
19.4b2(*.f64 a2 a2)
Compiler

Compiled 353 to 239 computations (32.3% saved)

bsearch59.0ms (0.3%)

Algorithm
binary-search
Steps
TimeLeftRight
59.0ms
2.0915784599899e-166
2.283291334674652e-161
Compiler

Compiled 28 to 20 computations (28.6% saved)

regimes358.0ms (2.1%)

Counts
31 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 a1 (*.f64 (pow.f64 2 -1/2) a1))
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(*.f64 a1 (sqrt.f64 (/.f64 (*.f64 a1 a1) 2)))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1)
(*.f64 a2 (-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) a2)) 1))
(*.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 1) 1)
(*.f64 (*.f64 a2 (/.f64 1 (/.f64 (sqrt.f64 2) a2))) 1)
(*.f64 a1 (-.f64 (+.f64 1 (/.f64 a1 (sqrt.f64 2))) 1))
(-.f64 (+.f64 1 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) 1)
(*.f64 (*.f64 a2 (neg.f64 a2)) (/.f64 1 (neg.f64 (sqrt.f64 2))))
(*.f64 a1 (*.f64 (neg.f64 a1) (/.f64 1 (neg.f64 (sqrt.f64 2)))))
(*.f64 (*.f64 a2 a2) (*.f64 th (*.f64 th (*.f64 -1/2 (sqrt.f64 1/2)))))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a2) (*.f64 th a2))))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th))))))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(sqrt.f64 (/.f64 (pow.f64 a2 4) 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(pow.f64 (/.f64 a2 (pow.f64 2 1/4)) 2)
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a2 a2)) -1)
(*.f64 a1 (pow.f64 (/.f64 (sqrt.f64 2) a1) -1))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
Outputs
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th))))
Calls

8 calls:

136.0ms
th
52.0ms
a1
51.0ms
a2
28.0ms
(*.f64 a2 a2)
27.0ms
(*.f64 a2 a2)
Results
ErrorSegmentsBranch
18.8b2a1
16.7b2a2
22.5b5th
25.2b1(cos.f64 th)
20.9b2(*.f64 a1 a1)
20.9b2(*.f64 a1 a1)
19.5b2(*.f64 a2 a2)
19.5b2(*.f64 a2 a2)
Compiler

Compiled 317 to 222 computations (30% saved)

bsearch89.0ms (0.5%)

Algorithm
binary-search
Steps
TimeLeftRight
89.0ms
2.0915784599899e-166
2.283291334674652e-161
Compiler

Compiled 28 to 20 computations (28.6% saved)

regimes266.0ms (1.6%)

Counts
30 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 a1 (*.f64 (pow.f64 2 -1/2) a1))
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(*.f64 a1 (sqrt.f64 (/.f64 (*.f64 a1 a1) 2)))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1)
(*.f64 a2 (-.f64 (+.f64 1 (*.f64 (sqrt.f64 1/2) a2)) 1))
(*.f64 (*.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) 1) 1)
(*.f64 (*.f64 a2 (/.f64 1 (/.f64 (sqrt.f64 2) a2))) 1)
(*.f64 a1 (-.f64 (+.f64 1 (/.f64 a1 (sqrt.f64 2))) 1))
(-.f64 (+.f64 1 (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) 1)
(*.f64 (*.f64 a2 (neg.f64 a2)) (/.f64 1 (neg.f64 (sqrt.f64 2))))
(*.f64 a1 (*.f64 (neg.f64 a1) (/.f64 1 (neg.f64 (sqrt.f64 2)))))
(*.f64 (*.f64 a2 a2) (*.f64 th (*.f64 th (*.f64 -1/2 (sqrt.f64 1/2)))))
(*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a2) (*.f64 th a2))))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) (+.f64 a2 (*.f64 th (*.f64 -1/2 (*.f64 a2 th))))))
(*.f64 (*.f64 a2 a2) (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (+.f64 1 (*.f64 th (*.f64 th -1/2))))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (+.f64 1 (*.f64 th (*.f64 th -1/2)))))
(sqrt.f64 (/.f64 (pow.f64 a2 4) 2))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(pow.f64 (/.f64 a2 (pow.f64 2 1/4)) 2)
(pow.f64 (/.f64 (sqrt.f64 2) (*.f64 a2 a2)) -1)
(*.f64 a1 (pow.f64 (/.f64 (sqrt.f64 2) a1) -1))
Outputs
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1)
Calls

6 calls:

80.0ms
th
41.0ms
(*.f64 a2 a2)
36.0ms
(*.f64 a1 a1)
34.0ms
a1
30.0ms
(*.f64 a1 a1)
Results
ErrorSegmentsBranch
31.4b2a1
32.6b2a2
38.5b5th
34.8b2(*.f64 a1 a1)
34.8b2(*.f64 a1 a1)
34.6b2(*.f64 a2 a2)
Compiler

Compiled 297 to 208 computations (30% saved)

bsearch64.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
64.0ms
-3.0393027398314696e-136
-8.990438045660026e-137
Compiler

Compiled 28 to 20 computations (28.6% saved)

regimes128.0ms (0.8%)

Counts
11 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 a1 (*.f64 (pow.f64 2 -1/2) a1))
(/.f64 1 (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(*.f64 a1 (sqrt.f64 (/.f64 (*.f64 a1 a1) 2)))
Outputs
(*.f64 a1 (/.f64 a1 (sqrt.f64 2)))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
Calls

7 calls:

43.0ms
th
16.0ms
(*.f64 a2 a2)
16.0ms
a2
14.0ms
(*.f64 a2 a2)
13.0ms
(*.f64 a1 a1)
Results
ErrorSegmentsBranch
31.4b2a1
32.7b2a2
38.5b5th
34.8b2(*.f64 a1 a1)
34.8b2(*.f64 a1 a1)
34.7b2(*.f64 a2 a2)
34.7b2(*.f64 a2 a2)
Compiler

Compiled 110 to 72 computations (34.5% saved)

bsearch76.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
76.0ms
-3.0393027398314696e-136
-8.990438045660026e-137
Compiler

Compiled 28 to 20 computations (28.6% saved)

regimes95.0ms (0.6%)

Counts
7 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 a2 (/.f64 a2 (sqrt.f64 2)))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
Outputs
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
Calls

6 calls:

31.0ms
th
15.0ms
a2
14.0ms
(*.f64 a2 a2)
13.0ms
(*.f64 a1 a1)
11.0ms
a1
Results
ErrorSegmentsBranch
31.4b2a1
32.7b2a2
38.5b5th
34.8b2(*.f64 a1 a1)
34.7b2(*.f64 a2 a2)
34.7b2(*.f64 a2 a2)
Compiler

Compiled 75 to 50 computations (33.3% saved)

bsearch70.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
70.0ms
-3.0393027398314696e-136
-8.990438045660026e-137
Compiler

Compiled 28 to 20 computations (28.6% saved)

regimes75.0ms (0.4%)

Counts
4 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
(*.f64 (sqrt.f64 1/2) (*.f64 a2 a2))
Outputs
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a2 (*.f64 (sqrt.f64 1/2) a2))
Calls

6 calls:

23.0ms
th
13.0ms
(*.f64 a2 a2)
11.0ms
(*.f64 a1 a1)
10.0ms
a1
8.0ms
(*.f64 a2 a2)
Results
ErrorSegmentsBranch
31.4b2a1
32.7b2a2
38.5b5th
34.8b2(*.f64 a1 a1)
34.7b2(*.f64 a2 a2)
34.7b2(*.f64 a2 a2)
Compiler

Compiled 57 to 39 computations (31.6% saved)

bsearch67.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
67.0ms
-3.0393027398314696e-136
-8.990438045660026e-137
Compiler

Compiled 28 to 20 computations (28.6% saved)

regimes54.0ms (0.3%)

Accuracy

Total -24.1b remaining (-76.5%)

Threshold costs -24.1b (-76.5%)

Counts
2 → 2
Calls
Call 1
Inputs
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
Outputs
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
Calls

5 calls:

19.0ms
th
12.0ms
a1
9.0ms
(*.f64 a2 a2)
6.0ms
(*.f64 a1 a1)
6.0ms
a2
Results
ErrorSegmentsBranch
31.4b2a1
32.7b2a2
38.5b5th
34.8b2(*.f64 a1 a1)
34.7b2(*.f64 a2 a2)
Compiler

Compiled 39 to 28 computations (28.2% saved)

bsearch66.0ms (0.4%)

Algorithm
binary-search
Steps
TimeLeftRight
65.0ms
-3.0393027398314696e-136
-8.990438045660026e-137
Compiler

Compiled 28 to 20 computations (28.6% saved)

simplify20.0ms (0.1%)

Algorithm
egg-herbie
Rules
24×*-commutative_binary64
*-rgt-identity_binary64
1-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
076448
1103448
Stop Event
fuel
saturated
Calls
Call 1
Inputs
(*.f64 (*.f64 (pow.f64 2 -1/2) (cos.f64 th)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(if (<=.f64 a1 -501183564792039808/726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656) (*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))) (*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))))
(if (<=.f64 a1 -501183564792039808/726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656) (*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th)))) (*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))))
(if (<=.f64 a1 -501183564792039808/726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656) (*.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (cos.f64 th)) (*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))))
(if (<=.f64 a1 -501183564792039808/726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656) (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (cos.f64 th))) (*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))))
(if (<=.f64 a1 -501183564792039808/726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656) (*.f64 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) (*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))))
(if (<=.f64 th -137489269098523184/18446744073709551616) (*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))) (if (<=.f64 th 2954414804120243/20282409603651670423947251286016) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 a2 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) a2)))))
(if (<=.f64 a2 222183357011564064/1062275985633534197379176413104937254659186235454063846398888276400807119721704485478325004530458571337778658972493002030693158675305414478819039957533174703887662541670786438063456256) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))))
(if (<=.f64 a2 222183357011564064/1062275985633534197379176413104937254659186235454063846398888276400807119721704485478325004530458571337778658972493002030693158675305414478819039957533174703887662541670786438063456256) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th)))))
(if (<=.f64 a1 -4075038737660864000/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1))
(if (<=.f64 a1 -4075038737660864000/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(if (<=.f64 a1 -4075038737660864000/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(if (<=.f64 a1 -4075038737660864000/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(if (<=.f64 a1 -4075038737660864000/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (*.f64 a2 a2) (sqrt.f64 1/2)))
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
Outputs
(*.f64 (*.f64 (pow.f64 2 -1/2) (cos.f64 th)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (fma.f64 a1 a1 (*.f64 a2 a2)))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(if (<=.f64 a1 -501183564792039808/726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656) (*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))) (*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))))
(if (<=.f64 a1 -3915496599937811/5678427533559428832416592249125035424637823130369672345949142181098744438385921275985867583701277855943457200048954515105739075223552) (*.f64 (cos.f64 th) (*.f64 (pow.f64 2 -1/2) (*.f64 a1 a1))) (*.f64 a2 (*.f64 (cos.f64 th) (*.f64 a2 (sqrt.f64 1/2)))))
(if (<=.f64 a1 -501183564792039808/726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656) (*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th)))) (*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))))
(if (<=.f64 a1 -3915496599937811/5678427533559428832416592249125035424637823130369672345949142181098744438385921275985867583701277855943457200048954515105739075223552) (*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 (cos.f64 th) a1))) (*.f64 a2 (*.f64 (cos.f64 th) (*.f64 a2 (sqrt.f64 1/2)))))
(if (<=.f64 a1 -501183564792039808/726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656) (*.f64 (*.f64 (/.f64 a1 (sqrt.f64 2)) a1) (cos.f64 th)) (*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))))
(if (<=.f64 a1 -3915496599937811/5678427533559428832416592249125035424637823130369672345949142181098744438385921275985867583701277855943457200048954515105739075223552) (*.f64 (cos.f64 th) (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))) (*.f64 a2 (*.f64 (cos.f64 th) (*.f64 a2 (sqrt.f64 1/2)))))
(if (<=.f64 a1 -501183564792039808/726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656) (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (cos.f64 th))) (*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))))
(if (<=.f64 a1 -3915496599937811/5678427533559428832416592249125035424637823130369672345949142181098744438385921275985867583701277855943457200048954515105739075223552) (/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (cos.f64 th))) (*.f64 a2 (*.f64 (cos.f64 th) (*.f64 a2 (sqrt.f64 1/2)))))
(if (<=.f64 a1 -501183564792039808/726838724295606890549323807888004534353641360687318060281490199180639288113397923326191050713763565560762521606266177933534601628614656) (*.f64 a1 (*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))) (*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))))
(if (<=.f64 a1 -3915496599937811/5678427533559428832416592249125035424637823130369672345949142181098744438385921275985867583701277855943457200048954515105739075223552) (*.f64 a1 (*.f64 a1 (*.f64 (cos.f64 th) (sqrt.f64 1/2)))) (*.f64 a2 (*.f64 (cos.f64 th) (*.f64 a2 (sqrt.f64 1/2)))))
(if (<=.f64 th -137489269098523184/18446744073709551616) (*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))) (if (<=.f64 th 2954414804120243/20282409603651670423947251286016) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 a2 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) a2)))))
(if (<=.f64 th -8593079318657699/1152921504606846976) (*.f64 a2 (*.f64 (cos.f64 th) (*.f64 a2 (sqrt.f64 1/2)))) (if (<=.f64 th 2954414804120243/20282409603651670423947251286016) (/.f64 (fma.f64 a2 a2 (*.f64 a1 a1)) (sqrt.f64 2)) (*.f64 a2 (/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) a2)))))
(if (<=.f64 a2 222183357011564064/1062275985633534197379176413104937254659186235454063846398888276400807119721704485478325004530458571337778658972493002030693158675305414478819039957533174703887662541670786438063456256) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (*.f64 a2 (*.f64 (*.f64 (sqrt.f64 1/2) a2) (cos.f64 th))))
(if (<=.f64 a2 6943229906611377/33196124551047943668099262909529289208099569857939495199965258637525222491303265171197656391576830354305583092890406313459161208603294202463094998672911709496489454427212076189483008) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (*.f64 a2 (*.f64 (cos.f64 th) (*.f64 a2 (sqrt.f64 1/2)))))
(if (<=.f64 a2 222183357011564064/1062275985633534197379176413104937254659186235454063846398888276400807119721704485478325004530458571337778658972493002030693158675305414478819039957533174703887662541670786438063456256) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 a2 (cos.f64 th)))))
(if (<=.f64 a2 6943229906611377/33196124551047943668099262909529289208099569857939495199965258637525222491303265171197656391576830354305583092890406313459161208603294202463094998672911709496489454427212076189483008) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (*.f64 (sqrt.f64 1/2) (*.f64 a2 (*.f64 (cos.f64 th) a2))))
(if (<=.f64 a1 -4075038737660864000/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) 1))
(if (<=.f64 a1 -7959060034493875/26187124863169134960105517574620793217733136368344518315866330944769070371237396439066160738607233257207093473020480568073738052367083144426628220715008) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (/.f64 (*.f64 a2 a2) (sqrt.f64 2)))
(if (<=.f64 a1 -4075038737660864000/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(if (<=.f64 a1 -7959060034493875/26187124863169134960105517574620793217733136368344518315866330944769070371237396439066160738607233257207093473020480568073738052367083144426628220715008) (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))))
(if (<=.f64 a1 -4075038737660864000/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(if (<=.f64 a1 -7959060034493875/26187124863169134960105517574620793217733136368344518315866330944769070371237396439066160738607233257207093473020480568073738052367083144426628220715008) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))))
(if (<=.f64 a1 -4075038737660864000/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 a2 (*.f64 (sqrt.f64 1/2) a2)))
(if (<=.f64 a1 -7959060034493875/26187124863169134960105517574620793217733136368344518315866330944769070371237396439066160738607233257207093473020480568073738052367083144426628220715008) (*.f64 (*.f64 a1 a1) (sqrt.f64 1/2)) (*.f64 a2 (*.f64 a2 (sqrt.f64 1/2))))
(if (<=.f64 a1 -4075038737660864000/13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (*.f64 a2 a2) (sqrt.f64 1/2)))
(if (<=.f64 a1 -7959060034493875/26187124863169134960105517574620793217733136368344518315866330944769070371237396439066160738607233257207093473020480568073738052367083144426628220715008) (*.f64 (*.f64 a1 a1) (sqrt.f64 1/2)) (*.f64 (*.f64 a2 a2) (sqrt.f64 1/2)))
(*.f64 (*.f64 a2 a2) (sqrt.f64 1/2))
Compiler

Compiled 343 to 241 computations (29.7% saved)

soundness13.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
Compiler

Compiled 53 to 36 computations (32.1% saved)

end158.0ms (0.9%)

Remove

(sort a1 a2)

Compiler

Compiled 330 to 200 computations (39.4% saved)

Profiling

Loading profile data...