Details

Time bar (total: 7.8s)

analyze388.0ms (4.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.3s (67.8%)

Results
1.4s1865×body1024valid
1.2s1613×body1024invalid
905.0ms4752×body64valid
540.0ms932×body512valid
490.0ms776×body512invalid
195.0ms450×body256valid
170.0ms951×body64invalid
157.0ms371×body256invalid
102.0ms197×body128invalid
75.0ms252×body128valid
5.0msbody2048valid

preprocess25.0ms (0.3%)

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

Useful iterations: 0 (0.0ms)

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

(sort a1 a2)

Compiler

Compiled 22 to 15 computations (31.8% saved)

simplify8.0ms (0.1%)

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

Useful iterations: 1 (0.0ms)

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

prune4.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 108 to 70 computations (35.2% saved)

localize8.0ms (0.1%)

Local error

Found 3 expressions with local error:

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

series17.0ms (0.2%)

Counts
3 → 84
Calls

21 calls:

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

rewrite58.0ms (0.7%)

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

Useful iterations: 1 (0.0ms)

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

simplify58.0ms (0.7%)

Algorithm
egg-herbie
Rules
821×unswap-sqr_binary64
731×associate-/r/_binary64
650×associate-*l*_binary64
529×associate-/l/_binary64
456×distribute-rgt-in_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0471447
11071343
22861339
310231271
438161258
Stop Event
node limit
Counts
201 → 145
Calls
Call 1
Inputs
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(/.f64 (pow.f64 a2 2) (sqrt.f64 2))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(+.f64 (/.f64 (pow.f64 a2 2) (sqrt.f64 2)) (/.f64 (pow.f64 a1 2) (sqrt.f64 2)))
(/.f64 (+.f64 (pow.f64 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)))
(pow.f64 a2 2)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(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) (pow.f64 a1 2))
(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) (pow.f64 a1 2))
(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) (pow.f64 a1 2))
(pow.f64 a2 2)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(pow.f64 a2 2)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 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 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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.f64 a2 (/.f64 a2 (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 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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.f64 a2 (/.f64 a2 (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 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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.f64 a2 (/.f64 a2 (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 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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.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 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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.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 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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.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 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))
(+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))))
(/.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 a1 a1 (*.f64 a2 a2)) (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 (*.f64 a2 a2) (sqrt.f64 2)) (/.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 th th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2)))) (/.f64 a1 (/.f64 (sqrt.f64 2) a1))))
(fma.f64 -1/2 (*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (*.f64 th th)) (+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2))))
(fma.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (*.f64 -1/2 (*.f64 th th)) (fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (/.f64 a2 (/.f64 (sqrt.f64 2) a2))))
(fma.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (*.f64 th (*.f64 -1/2 th)) (fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.f64 a2 (/.f64 a2 (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 (+.f64 (/.f64 a2 (/.f64 (sqrt.f64 2) a2)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1))) (fma.f64 -1/2 (/.f64 (*.f64 th th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2)))) (*.f64 1/24 (/.f64 (pow.f64 th 4) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2)))))))
(+.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (fma.f64 -1/2 (*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (*.f64 th th)) (fma.f64 1/24 (*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (pow.f64 th 4)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/2 (*.f64 th th))))))
(fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (+.f64 (*.f64 th (*.f64 -1/2 th)) (*.f64 1/24 (pow.f64 th 4))))))
(+.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 a1 (/.f64 (sqrt.f64 2) a1)) (fma.f64 -1/2 (/.f64 (*.f64 th th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2)))) (*.f64 1/24 (/.f64 (pow.f64 th 4) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))))) (fma.f64 -1/720 (/.f64 (pow.f64 th 6) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2)))) (/.f64 a2 (/.f64 (sqrt.f64 2) a2))))
(+.f64 (fma.f64 -1/2 (*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (*.f64 th th)) (fma.f64 1/24 (*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (pow.f64 th 4)) (/.f64 (*.f64 a1 a1) (sqrt.f64 2)))) (fma.f64 -1/720 (*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (pow.f64 th 6)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2))))
(fma.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (*.f64 -1/720 (pow.f64 th 6)) (fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/2 (*.f64 th th)))))))
(fma.f64 (/.f64 a2 (sqrt.f64 2)) a2 (fma.f64 (/.f64 a1 (sqrt.f64 2)) a1 (*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (+.f64 (*.f64 th (*.f64 -1/2 th)) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/720 (pow.f64 th 6)))))))
(/.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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (+.f64 (pow.f64 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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (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 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(*.f64 a2 (/.f64 (*.f64 a2 (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 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.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 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.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 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)) (/.f64 (*.f64 (pow.f64 a2 2) (cos.f64 th)) (sqrt.f64 2)))
(/.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (*.f64 a1 a1)))
(*.f64 (/.f64 (*.f64 a1 a1) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.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 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (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 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(*.f64 a2 (/.f64 (*.f64 a2 (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 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(/.f64 (*.f64 (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 a2 a2) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(*.f64 a2 (/.f64 (*.f64 a2 (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 a2 a2) (*.f64 a1 a1)) (/.f64 (sqrt.f64 2) (cos.f64 th)))
(/.f64 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (/.f64 (*.f64 (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 (cos.f64 th) (/.f64 (sqrt.f64 2) (fma.f64 a1 a1 (*.f64 a2 a2))))
(*.f64 (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(pow.f64 a2 2)
(*.f64 a2 a2)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(pow.f64 a1 2)
(*.f64 a1 a1)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(pow.f64 a1 2)
(*.f64 a1 a1)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(pow.f64 a1 2)
(*.f64 a1 a1)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(pow.f64 a2 2)
(*.f64 a2 a2)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(pow.f64 a2 2)
(*.f64 a2 a2)
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))
(+.f64 (pow.f64 a2 2) (pow.f64 a1 2))
(+.f64 (*.f64 a2 a2) (*.f64 a1 a1))
(fma.f64 a1 a1 (*.f64 a2 a2))

prune228.0ms (2.9%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1396145
Fresh101
Picked011
Done000
Total1407147
Error
0.0b
Counts
147 → 7
Alt Table
StatusErrorProgram
0.5b
(*.f64 (cos.f64 th) (pow.f64 (/.f64 (hypot.f64 a1 a2) (pow.f64 2 1/4)) 2))
0.4b
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))))
0.4b
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
0.5b
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
0.4b
(*.f64 (cos.f64 th) (*.f64 (pow.f64 2 -1/2) (pow.f64 (hypot.f64 a1 a2) 2)))
0.8b
(/.f64 (cos.f64 th) (*.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) -2)))
0.4b
(+.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)))
Compiler

Compiled 2562 to 1640 computations (36% saved)

localize12.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series13.0ms (0.2%)

Counts
4 → 36
Calls

24 calls:

TimeVariablePointExpression
1.0ms
th
@-inf
(/.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
a2
@0
(/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2))
1.0ms
a1
@0
(/.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))

rewrite70.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
715×log-prod_binary64
337×pow2_binary64
258×pow-unpow_binary64
239×pow1/3_binary64
231×expm1-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

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

simplify87.0ms (1.1%)

Algorithm
egg-herbie
Rules
756×associate-/r*_binary64
539×associate-*l/_binary64
473×associate-*r/_binary64
439×*-commutative_binary64
399×associate-/r/_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
069752
1193729
2588700
32341659
46006627
56492627
67407627
77966627
Stop Event
node limit
Counts
176 → 176
Calls
Call 1
Inputs
(/.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 (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 (*.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 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))))))
(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))
Outputs
(/.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 -1/2 (*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (*.f64 th th))) (*.f64 a2 (/.f64 a2 (sqrt.f64 2))))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 a2 (/.f64 a2 (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)))))
(fma.f64 1/24 (/.f64 (*.f64 a2 a2) (/.f64 (sqrt.f64 2) (pow.f64 th 4))) (+.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)))
(+.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (fma.f64 -1/2 (*.f64 th th) (*.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 a2 a2) (/.f64 (sqrt.f64 2) (pow.f64 th 4))) (+.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 (*.f64 a2 a2) (pow.f64 th 6)) (sqrt.f64 2))))))
(+.f64 (fma.f64 -1/2 (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (*.f64 th th)) (*.f64 -1/720 (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (pow.f64 th 6)))) (fma.f64 1/24 (*.f64 (/.f64 (*.f64 a2 a2) (sqrt.f64 2)) (pow.f64 th 4)) (/.f64 (*.f64 a2 a2) (sqrt.f64 2))))
(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))))
(+.f64 (*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4)))) (fma.f64 -1/720 (*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (pow.f64 th 6)) (*.f64 a2 (/.f64 a2 (sqrt.f64 2)))))
(+.f64 (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 a2 (/.f64 a2 (sqrt.f64 2)))) (*.f64 (*.f64 a2 (/.f64 a2 (sqrt.f64 2))) (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6)))))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.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 (*.f64 a2 a2) (sqrt.f64 2)) (cos.f64 th))
(*.f64 (*.f64 (/.f64 a2 (sqrt.f64 2)) a2) (cos.f64 th))
(*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th)))
(/.f64 (pow.f64 a1 2) (sqrt.f64 2))
(/.f64 (*.f64 a1 a1) (sqrt.f64 2))
(/.f64 a1 (/.f64 (sqrt.f64 2) a1))
(*.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 a1 (/.f64 (sqrt.f64 2) a1)) (*.f64 th th)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (/.f64 a1 (/.f64 (sqrt.f64 2) a1))) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))
(fma.f64 -1/2 (*.f64 th (*.f64 th (*.f64 a1 (/.f64 a1 (sqrt.f64 2))))) (*.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 a1 (/.f64 (sqrt.f64 2) a1)) (*.f64 th th)) (fma.f64 1/24 (*.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (pow.f64 th 4)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1))))
(fma.f64 1/24 (*.f64 (pow.f64 th 4) (/.f64 a1 (/.f64 (sqrt.f64 2) a1))) (fma.f64 -1/2 (*.f64 (*.f64 th th) (/.f64 a1 (/.f64 (sqrt.f64 2) a1))) (/.f64 a1 (/.f64 (sqrt.f64 2) a1))))
(+.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (*.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (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 (pow.f64 th 6) (*.f64 a1 a1)) (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 a1 (/.f64 (sqrt.f64 2) a1)) (*.f64 th th)) (fma.f64 -1/720 (*.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (pow.f64 th 6)) (fma.f64 1/24 (*.f64 (/.f64 a1 (/.f64 (sqrt.f64 2) a1)) (pow.f64 th 4)) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (/.f64 a1 (/.f64 (sqrt.f64 2) a1))) (fma.f64 -1/720 (*.f64 (pow.f64 th 6) (/.f64 a1 (/.f64 (sqrt.f64 2) a1))) (fma.f64 1/24 (*.f64 (pow.f64 th 4) (/.f64 a1 (/.f64 (sqrt.f64 2) a1))) (/.f64 a1 (/.f64 (sqrt.f64 2) a1)))))
(+.f64 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (fma.f64 -1/2 (*.f64 th (*.f64 th (*.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 (*.f64 a1 (/.f64 a1 (sqrt.f64 2))) (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6)))) (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 a1 (/.f64 a1 (sqrt.f64 2)))))
(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 th th) (*.f64 a1 a1)) (*.f64 a1 a1))
(*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 a1 a1))
(*.f64 (*.f64 a1 a1) (fma.f64 -1/2 (*.f64 th th) 1))
(*.f64 a1 (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) a1))
(+.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 th th) (*.f64 a1 a1)) (*.f64 a1 a1)) (*.f64 (*.f64 1/24 (*.f64 a1 a1)) (pow.f64 th 4)))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (*.f64 a1 a1)) (fma.f64 1/24 (*.f64 (pow.f64 th 4) (*.f64 a1 a1)) (*.f64 a1 a1)))
(fma.f64 a1 a1 (*.f64 (*.f64 a1 a1) (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (*.f64 a1 a1) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (fma.f64 -1/2 (*.f64 th th) 1)))
(+.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 th th) (*.f64 a1 a1)) (fma.f64 -1/720 (*.f64 (pow.f64 th 6) (*.f64 a1 a1)) (+.f64 (*.f64 a1 a1) (*.f64 (*.f64 1/24 (*.f64 a1 a1)) (pow.f64 th 4)))))
(fma.f64 -1/2 (*.f64 (*.f64 th th) (*.f64 a1 a1)) (fma.f64 -1/720 (*.f64 (pow.f64 th 6) (*.f64 a1 a1)) (fma.f64 1/24 (*.f64 (pow.f64 th 4) (*.f64 a1 a1)) (*.f64 a1 a1))))
(+.f64 (*.f64 (fma.f64 -1/2 (*.f64 th th) 1) (*.f64 a1 a1)) (*.f64 (*.f64 a1 a1) (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6)))))
(+.f64 (*.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))))))
(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 -1/2 (*.f64 th 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 (*.f64 1/24 (pow.f64 th 4)) (fma.f64 -1/2 (*.f64 th th) 1)))
(+.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 -1/2 (*.f64 th th)) (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6))))))
(*.f64 (*.f64 a2 a2) (+.f64 (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6))) (fma.f64 -1/2 (*.f64 th th) 1)))
(*.f64 (*.f64 a2 a2) (+.f64 (fma.f64 -1/2 (*.f64 th th) 1) (fma.f64 1/24 (pow.f64 th 4) (*.f64 -1/720 (pow.f64 th 6)))))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (*.f64 a2 a2) (cos.f64 th))
(*.f64 (pow.f64 a2 2) (cos.f64 th))
(*.f64 (*.f64 a2 a2) (cos.f64 th))

prune506.0ms (6.5%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1733176
Fresh235
Picked101
Done011
Total1767183
Error
0b
Counts
183 → 7
Alt Table
StatusErrorProgram
0.5b
(*.f64 (cos.f64 th) (pow.f64 (/.f64 (hypot.f64 a1 a2) (pow.f64 2 1/4)) 2))
0.4b
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))))
0.4b
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
0.4b
(+.f64 (*.f64 (*.f64 (cos.f64 th) (*.f64 a2 a2)) (pow.f64 2 -1/2)) (/.f64 (*.f64 (pow.f64 a1 2) (cos.f64 th)) (sqrt.f64 2)))
0.4b
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))))
0.8b
(/.f64 (cos.f64 th) (*.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) -2)))
0.4b
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (*.f64 (/.f64 (*.f64 a1 a1) 1) (/.f64 (cos.f64 th) (sqrt.f64 2))))
Compiler

Compiled 4592 to 2965 computations (35.4% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series6.0ms (0.1%)

Counts
2 → 36
Calls

9 calls:

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

rewrite48.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
909×pow1_binary64
839×add-log-exp_binary64
838×log1p-expm1-u_binary64
838×expm1-log1p-u_binary64
818×add-exp-log_binary64
Iterations

Useful iterations: 1 (0.0ms)

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

simplify108.0ms (1.4%)

Algorithm
egg-herbie
Rules
972×fma-def_binary64
839×unswap-sqr_binary64
810×distribute-lft-out_binary64
519×distribute-rgt-in_binary64
375×*-commutative_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
033532
184532
2260508
31285490
43491483
55028483
65246483
75558483
85837483
96151483
107544483
Stop Event
node limit
Counts
62 → 36
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))))
(+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (+.f64 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 6)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
Outputs
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)))
(fma.f64 (sqrt.f64 1/2) (*.f64 a1 a1) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (*.f64 th th) -1/2)))
(*.f64 (*.f64 a1 a1) (+.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (*.f64 -1/2 (*.f64 th th)))))
(*.f64 (*.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 (pow.f64 a1 2) (pow.f64 th 4)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))))
(fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (pow.f64 th 4))) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (*.f64 th th))) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))))
(fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (pow.f64 th 4)))) (fma.f64 (sqrt.f64 1/2) (*.f64 a1 a1) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (*.f64 th th) -1/2))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a1 a1) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/2 (*.f64 th th)))))
(*.f64 (*.f64 a1 a1) (+.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4))))))
(*.f64 (+.f64 (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4))) 1) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (+.f64 1 (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4))))))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (+.f64 1 (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4)))))
(+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (+.f64 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 6)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))))
(fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (pow.f64 th 4))) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (*.f64 th th))) (fma.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (pow.f64 th 6))) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)))))
(fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (pow.f64 th 4)))) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (*.f64 th th)))) (fma.f64 (sqrt.f64 1/2) (*.f64 a1 a1) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (*.f64 (pow.f64 th 6) -1/720)))))
(+.f64 (*.f64 (*.f64 a1 a1) (+.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (*.f64 -1/720 (pow.f64 th 6))))) (*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/2 (*.f64 th th)))))
(*.f64 (*.f64 a1 a1) (+.f64 (fma.f64 (sqrt.f64 1/2) (*.f64 -1/720 (pow.f64 th 6)) (sqrt.f64 1/2)) (*.f64 (sqrt.f64 1/2) (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4))))))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (+.f64 (+.f64 1 (*.f64 -1/720 (pow.f64 th 6))) (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (+.f64 1 (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (+.f64 1 (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (fma.f64 -1/2 (*.f64 th th) (*.f64 1/24 (pow.f64 th 4)))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)) (cos.f64 th))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (*.f64 a1 (cos.f64 th)) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (cos.f64 th)))

prune272.0ms (3.5%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1224126
Fresh325
Picked101
Done011
Total1267133
Error
0b
Counts
133 → 7
Alt Table
StatusErrorProgram
0.5b
(*.f64 (cos.f64 th) (pow.f64 (/.f64 (hypot.f64 a1 a2) (pow.f64 2 1/4)) 2))
0.4b
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
0.6b
(+.f64 (*.f64 (cos.f64 th) (/.f64 1 (*.f64 (sqrt.f64 2) (pow.f64 a2 -2)))) (*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))))
0.4b
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (pow.f64 (*.f64 a1 (*.f64 (*.f64 a1 (sqrt.f64 1/2)) (cos.f64 th))) 1))
0.4b
(+.f64 (*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))) (*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))))
0.4b
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (*.f64 (/.f64 (*.f64 a1 a1) 1) (/.f64 (cos.f64 th) (sqrt.f64 2))))
0.4b
(+.f64 (*.f64 (pow.f64 2 -1/2) (*.f64 (cos.f64 th) (*.f64 a2 a2))) (*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))))
Compiler

Compiled 3445 to 2118 computations (38.5% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series12.0ms (0.2%)

Counts
3 → 60
Calls

15 calls:

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

rewrite53.0ms (0.7%)

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

Useful iterations: 0 (0.0ms)

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

simplify168.0ms (2.1%)

Algorithm
egg-herbie
Rules
873×distribute-lft-out_binary64
713×*-commutative_binary64
705×sqr-pow_binary64
536×distribute-rgt-in_binary64
376×pow-sqr_binary64
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
050830
1135830
2406790
31768769
43245758
53871758
64532758
75518758
85675758
95858758
106135758
116421758
126764758
137176758
147659758
Stop Event
node limit
Counts
99 → 58
Calls
Call 1
Inputs
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) a1)
(+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 2)))))
(+.f64 (*.f64 (sqrt.f64 1/2) a1) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 2)))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 4))))))
(+.f64 (*.f64 (sqrt.f64 1/2) a1) (+.f64 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 6)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 2)))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 4)))))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))))
(+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (+.f64 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 6)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
Outputs
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) a1)
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) a1)
(+.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 2)))))
(fma.f64 (sqrt.f64 1/2) a1 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 th th)))))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 th (*.f64 th a1))) (*.f64 (sqrt.f64 1/2) a1))
(*.f64 (sqrt.f64 1/2) (+.f64 a1 (*.f64 (*.f64 -1/2 a1) (*.f64 th th))))
(*.f64 (sqrt.f64 1/2) (+.f64 a1 (*.f64 (*.f64 th th) (*.f64 a1 -1/2))))
(+.f64 (*.f64 (sqrt.f64 1/2) a1) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 2)))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 4))))))
(fma.f64 (sqrt.f64 1/2) a1 (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 th th))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 4))))))
(fma.f64 (sqrt.f64 1/2) a1 (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 th (*.f64 th a1))) (*.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 (pow.f64 th 4) 1/24))))
(fma.f64 (sqrt.f64 1/2) a1 (*.f64 (*.f64 (sqrt.f64 1/2) a1) (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (sqrt.f64 1/2) (+.f64 a1 (*.f64 a1 (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4))))))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (+.f64 1 (*.f64 th (+.f64 (*.f64 th -1/2) (*.f64 1/24 (pow.f64 th 3)))))))
(+.f64 (*.f64 (sqrt.f64 1/2) a1) (+.f64 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 6)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 2)))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 4)))))))
(fma.f64 (sqrt.f64 1/2) a1 (fma.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 6))) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 th th))) (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 4)))))))
(fma.f64 (sqrt.f64 1/2) a1 (fma.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (pow.f64 th 6))) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 th (*.f64 th a1))) (*.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 (pow.f64 th 4) 1/24)))))
(+.f64 (*.f64 (*.f64 (sqrt.f64 1/2) a1) (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4)))) (*.f64 (sqrt.f64 1/2) (+.f64 a1 (*.f64 a1 (*.f64 -1/720 (pow.f64 th 6))))))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4)))) (+.f64 a1 (*.f64 a1 (*.f64 -1/720 (pow.f64 th 6))))))
(*.f64 (*.f64 (sqrt.f64 1/2) a1) (+.f64 (+.f64 1 (*.f64 -1/720 (pow.f64 th 6))) (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4)))))
(*.f64 (*.f64 (sqrt.f64 1/2) a1) (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4))))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (+.f64 1 (*.f64 th (+.f64 (*.f64 th -1/2) (*.f64 1/24 (pow.f64 th 3))))))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) a1))
(+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th th) (*.f64 a1 a1))) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)))
(fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a1) (*.f64 th a1))) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 (*.f64 a1 a1) (+.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (*.f64 -1/2 (*.f64 th th)))))
(*.f64 (*.f64 (sqrt.f64 1/2) a1) (+.f64 a1 (*.f64 (*.f64 th th) (*.f64 a1 -1/2))))
(+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2))))
(fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 4) (*.f64 a1 a1))) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th th) (*.f64 a1 a1))) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1))))
(fma.f64 1/24 (*.f64 (pow.f64 th 4) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1))) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a1) (*.f64 th a1))) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1))))
(fma.f64 (sqrt.f64 1/2) (*.f64 a1 a1) (*.f64 (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/2 (*.f64 th th)))))
(*.f64 (*.f64 a1 a1) (+.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 a1 a1) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (+.f64 1 (*.f64 -1/2 (*.f64 th th))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 a1 a1) (+.f64 1 (*.f64 th (+.f64 (*.f64 th -1/2) (*.f64 1/24 (pow.f64 th 3)))))))
(+.f64 (*.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 4)))) (+.f64 (*.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 2)))) (+.f64 (*.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (pow.f64 th 6)))) (*.f64 (sqrt.f64 1/2) (pow.f64 a1 2)))))
(fma.f64 1/24 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 4) (*.f64 a1 a1))) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th th) (*.f64 a1 a1))) (fma.f64 -1/720 (*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 th 6) (*.f64 a1 a1))) (*.f64 (sqrt.f64 1/2) (*.f64 a1 a1)))))
(fma.f64 1/24 (*.f64 (pow.f64 th 4) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1))) (fma.f64 -1/2 (*.f64 (sqrt.f64 1/2) (*.f64 (*.f64 th a1) (*.f64 th a1))) (fma.f64 (sqrt.f64 1/2) (*.f64 a1 a1) (*.f64 (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)) (*.f64 (pow.f64 th 6) -1/720)))))
(+.f64 (*.f64 (*.f64 a1 a1) (+.f64 (sqrt.f64 1/2) (*.f64 (sqrt.f64 1/2) (*.f64 -1/720 (pow.f64 th 6))))) (*.f64 (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)) (+.f64 (*.f64 1/24 (pow.f64 th 4)) (*.f64 -1/2 (*.f64 th th)))))
(*.f64 (sqrt.f64 1/2) (+.f64 (*.f64 a1 (+.f64 a1 (*.f64 a1 (*.f64 -1/720 (pow.f64 th 6))))) (*.f64 a1 (*.f64 a1 (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4)))))))
(*.f64 a1 (*.f64 (*.f64 (sqrt.f64 1/2) a1) (+.f64 (+.f64 1 (*.f64 -1/720 (pow.f64 th 6))) (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4))))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (+.f64 1 (+.f64 (*.f64 -1/2 (*.f64 th th)) (*.f64 1/24 (pow.f64 th 4))))))))
(*.f64 (*.f64 (sqrt.f64 1/2) a1) (*.f64 a1 (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (+.f64 1 (*.f64 th (+.f64 (*.f64 th -1/2) (*.f64 1/24 (pow.f64 th 3))))))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (+.f64 (*.f64 -1/720 (pow.f64 th 6)) (+.f64 1 (*.f64 th (+.f64 (*.f64 th -1/2) (*.f64 1/24 (pow.f64 th 3)))))))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 (pow.f64 a1 2) (cos.f64 th)))
(*.f64 (sqrt.f64 1/2) (*.f64 (cos.f64 th) (*.f64 a1 a1)))
(*.f64 (cos.f64 th) (*.f64 a1 (*.f64 (sqrt.f64 1/2) a1)))
(*.f64 a1 (*.f64 (sqrt.f64 1/2) (*.f64 a1 (cos.f64 th))))
(*.f64 (sqrt.f64 1/2) (*.f64 a1 (*.f64 a1 (cos.f64 th))))

prune231.0ms (2.9%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New1170117
Fresh055
Picked011
Done011
Total1177124
Error
0b
Counts
124 → 7
Alt Table
StatusErrorProgram
0.5b
(*.f64 (cos.f64 th) (pow.f64 (/.f64 (hypot.f64 a1 a2) (pow.f64 2 1/4)) 2))
0.4b
(*.f64 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
0.6b
(+.f64 (*.f64 (cos.f64 th) (/.f64 1 (*.f64 (sqrt.f64 2) (pow.f64 a2 -2)))) (*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))))
0.4b
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (pow.f64 (*.f64 a1 (*.f64 (*.f64 a1 (sqrt.f64 1/2)) (cos.f64 th))) 1))
0.4b
(+.f64 (*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))) (*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))))
0.4b
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (*.f64 (/.f64 (*.f64 a1 a1) 1) (/.f64 (cos.f64 th) (sqrt.f64 2))))
0.4b
(+.f64 (*.f64 (pow.f64 2 -1/2) (*.f64 (cos.f64 th) (*.f64 a2 a2))) (*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))))
Compiler

Compiled 3261 to 2211 computations (32.2% saved)

regimes81.0ms (1%)

Accuracy

Total -1.0b remaining (-261.4%)

Threshold costs -1.0b (-261.4%)

Counts
15 → 1
Calls
Call 1
Inputs
(+.f64 (*.f64 (cos.f64 th) (/.f64 1 (*.f64 (sqrt.f64 2) (pow.f64 a2 -2)))) (*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (pow.f64 (*.f64 a1 (*.f64 (*.f64 a1 (sqrt.f64 1/2)) (cos.f64 th))) 1))
(+.f64 (*.f64 a2 (*.f64 (/.f64 a2 (sqrt.f64 2)) (cos.f64 th))) (*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))))
(+.f64 (*.f64 (pow.f64 2 -1/2) (*.f64 (cos.f64 th) (*.f64 a2 a2))) (*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))))
(+.f64 (*.f64 (*.f64 (cos.f64 th) (*.f64 a2 a2)) (pow.f64 2 -1/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 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))))
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (*.f64 (/.f64 (*.f64 a1 a1) 1) (/.f64 (cos.f64 th) (sqrt.f64 2))))
(*.f64 (cos.f64 th) (pow.f64 (/.f64 (hypot.f64 a1 a2) (pow.f64 2 1/4)) 2))
(*.f64 (cos.f64 th) (*.f64 (hypot.f64 a1 a2) (*.f64 (hypot.f64 a1 a2) (pow.f64 2 -1/2))))
(*.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (/.f64 (cos.f64 th) (sqrt.f64 2)))
(*.f64 (cos.f64 th) (*.f64 (pow.f64 2 -1/2) (pow.f64 (hypot.f64 a1 a2) 2)))
(/.f64 (cos.f64 th) (*.f64 (sqrt.f64 2) (pow.f64 (hypot.f64 a1 a2) -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 (cos.f64 th) (/.f64 (fma.f64 a1 a1 (*.f64 a2 a2)) (sqrt.f64 2)))
(+.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) (pow.f64 a2 2)) (sqrt.f64 2)) (*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))))
Results
8.0ms0.4ba1
8.0ms0.4ba2
9.0ms0.4bth
7.0ms0.4b(+.f64 (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a1 a1)) (*.f64 (/.f64 (cos.f64 th) (sqrt.f64 2)) (*.f64 a2 a2)))
6.0ms0.4b(/.f64 (cos.f64 th) (sqrt.f64 2))
13.0ms0.4b(/.f64 (cos.f64 th) (sqrt.f64 2))
7.0ms0.4b(cos.f64 th)
5.0ms0.4b(*.f64 a1 a1)
6.0ms0.4b(*.f64 a2 a2)
5.0ms0.4b(*.f64 a2 a2)
Compiler

Compiled 332 to 204 computations (38.6% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01631
12031
Stop Event
saturated
Calls
Call 1
Inputs
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))))
Outputs
(+.f64 (/.f64 (*.f64 (cos.f64 th) (pow.f64 a2 2)) (sqrt.f64 2)) (*.f64 (cos.f64 th) (*.f64 (*.f64 a1 a1) (pow.f64 2 -1/2))))

end35.0ms (0.4%)

Stop Event
fuel
Compiler

Compiled 92 to 68 computations (26.1% saved)

Profiling

Loading profile data...