Details

Time bar (total: 56.1s)

analyze9.3s (16.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%99.8%0.2%8
0%99.8%0.2%9
0%99.8%0.2%10
0%99.8%0.2%11
0%99.8%0.2%12
0.6%99.2%0.2%13
1.8%98%0.2%14
Compiler

Compiled 71 to 47 computations (33.8% saved)

sample23.1s (41.1%)

Symmetry

(sort lambda1 lambda2)

(sort phi1 phi2)

Results
17.5s5455×body1024valid
2.3s1281×body512valid
2.3s413×body2048valid
442.0ms397×body256valid
374.0ms710×body128valid
3.0msbody1024invalid
Compiler

Compiled 212 to 140 computations (34% saved)

simplify166.0ms (0.3%)

Algorithm
egg-herbie
Rules
698×fma-def_binary64
571×fma-neg_binary64
563×sub-neg_binary64
520×distribute-rgt-neg-in_binary64
460×sqr-pow_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
027103
15999
212399
324799
455299
5101899
6169899
7258999
8356099
9389399
10441499
11460799
12442699
13441399
14477899
15476199

prune8.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
22.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) (sqrt.f64 (-.f64 1 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
Compiler

Compiled 409 to 260 computations (36.4% saved)

localize29.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))
0.9b
(-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))
2.7b
(sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))
4.6b
(sin.f64 (/.f64 (-.f64 phi1 phi2) 2))

series263.0ms (0.5%)

Counts
4 → 144
Calls

4 calls:

154.0ms
(sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))
97.0ms
(-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))
8.0ms
(sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))
4.0ms
(sin.f64 (/.f64 (-.f64 phi1 phi2) 2))

rewrite76.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
233×add-sqr-sqrt_binary64
223×log1p-expm1-u_binary64
223×expm1-log1p-u_binary64
217×add-log-exp_binary64
216×add-cbrt-cube_binary64
Counts
4 → 84
Calls

4 calls:

73.0ms
(sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))
73.0ms
(-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))
73.0ms
(sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))
73.0ms
(sin.f64 (/.f64 (-.f64 phi1 phi2) 2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
021107
1464107
24815107
35129107
000
100

simplify173.0ms (0.3%)

Algorithm
egg-herbie
Rules
589×*-commutative_binary64
495×fma-def_binary64
478×sub-neg_binary64
268×fma-neg_binary64
241×+-commutative_binary64
Counts
228 → 191
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04938802
116618507
242458506
351498506

prune1.5s (2.7%)

Pruning

36 alts after pruning (36 fresh and 0 done)

PrunedKeptTotal
New29536331
Fresh101
Picked101
Done000
Total29736333
Error
20.4b
Counts
333 → 36
Alt Table
StatusErrorProgram
30.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 1/2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) phi2))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
23.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (log.f64 (exp.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
39.4b
(*.f64 R (*.f64 2 (atan2.f64 (-.f64 (fma.f64 1/8 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))) (*.f64 (cos.f64 phi2) (*.f64 (*.f64 lambda2 lambda2) (*.f64 (cos.f64 phi1) (pow.f64 (cos.f64 (*.f64 1/2 lambda1)) 2))))) (sqrt.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))) (fma.f64 1/2 (*.f64 (*.f64 lambda2 (*.f64 (cos.f64 (*.f64 1/2 lambda1)) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 (*.f64 1/2 lambda1)) (cos.f64 phi1))))) (sqrt.f64 (/.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2))))) (*.f64 1/8 (fma.f64 (*.f64 (*.f64 lambda2 lambda2) (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)))) (sqrt.f64 (/.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)) 3))) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 lambda1)) 2) (*.f64 (*.f64 lambda2 lambda2) (*.f64 (pow.f64 (cos.f64 phi2) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2) (pow.f64 (cos.f64 phi1) 2)))))))))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
30.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
36.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sqrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
31.9b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 (pow.f64 (cos.f64 (*.f64 -1/2 phi2)) 2) (*.f64 (cos.f64 phi2) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
35.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (-.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 1/2 (*.f64 lambda2 (cos.f64 (*.f64 1/2 lambda1)))))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
21.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
32.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
22.5b
(*.f64 R (*.f64 2 (atan2.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) 3) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
31.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))))))
31.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (*.f64 1/2 lambda1))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (exp.f64 (log1p.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)))) 1) 2)))))))
22.3b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) 2) (cbrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))))
33.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
21.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
21.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2)))))))
35.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (*.f64 -1/2 phi2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (/.f64 (-.f64 1 (pow.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)) 2)) (+.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))))
36.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 (fma.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (*.f64 lambda1 lambda1) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)))) 1) (+.f64 (fma.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (*.f64 (*.f64 lambda1 lambda1) (cos.f64 phi1)) (pow.f64 (cos.f64 (*.f64 -1/2 lambda2)) 2))) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)) (*.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) (*.f64 lambda1 (cos.f64 phi1))))))))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (log.f64 (exp.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)))) 2)))))))
33.2b
(*.f64 R (*.f64 2 (atan2.f64 (-.f64 (sqrt.f64 (fma.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2))) (*.f64 1/2 (*.f64 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 phi2 (sin.f64 (*.f64 1/2 phi1)))) (sqrt.f64 (/.f64 1 (fma.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2))))))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
32.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (log.f64 (+.f64 1 (expm1.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))))))
31.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
34.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 (fma.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 phi2 (sin.f64 (*.f64 1/2 phi1))) 1) (fma.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
22.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2))) 3) 2)))))))
31.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (*.f64 -1/2 lambda2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
30.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
32.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (*.f64 -1/2 phi2)) 2)))))))
22.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 lambda2 2)))) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
31.0b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))))))
22.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 lambda2 2))))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
34.0b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cos.f64 phi2) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (pow.f64 (sin.f64 (*.f64 -1/2 phi2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
23.3b
(*.f64 R (*.f64 2 (atan2.f64 (cbrt.f64 (pow.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)) 3/2)) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
23.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 4))) (sqrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2))) 2))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
Compiler

Compiled 34279 to 21186 computations (38.2% saved)

localize46.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.9b
(-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))
2.7b
(sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))
4.6b
(sin.f64 (/.f64 (-.f64 phi1 phi2) 2))
31.6b
(fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))

series31.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

31.0ms
(fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))

rewrite52.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
518×log-prod_binary64
275×fma-def_binary64
202×expm1-udef_binary64
202×log1p-udef_binary64
181×fma-neg_binary64
Counts
1 → 33
Calls

1 calls:

51.0ms
(fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01130
123922
2278122
3526122
000
100

simplify7.0ms (0%)

Algorithm
egg-herbie
Counts
57 → 34
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0124
1124

prune1.7s (3%)

Pruning

32 alts after pruning (32 fresh and 0 done)

PrunedKeptTotal
New25512267
Fresh152035
Picked101
Done000
Total27132303
Error
9.1b
Counts
303 → 32
Alt Table
StatusErrorProgram
23.3b
(*.f64 R (*.f64 2 (atan2.f64 (cbrt.f64 (pow.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)) 3/2)) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
30.3b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))))))
30.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 1/2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) phi2))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
23.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (log.f64 (exp.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
39.4b
(*.f64 R (*.f64 2 (atan2.f64 (-.f64 (fma.f64 1/8 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))) (*.f64 (cos.f64 phi2) (*.f64 (*.f64 lambda2 lambda2) (*.f64 (cos.f64 phi1) (pow.f64 (cos.f64 (*.f64 1/2 lambda1)) 2))))) (sqrt.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))) (fma.f64 1/2 (*.f64 (*.f64 lambda2 (*.f64 (cos.f64 (*.f64 1/2 lambda1)) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 (*.f64 1/2 lambda1)) (cos.f64 phi1))))) (sqrt.f64 (/.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2))))) (*.f64 1/8 (fma.f64 (*.f64 (*.f64 lambda2 lambda2) (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)))) (sqrt.f64 (/.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)) 3))) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 lambda1)) 2) (*.f64 (*.f64 lambda2 lambda2) (*.f64 (pow.f64 (cos.f64 phi2) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2) (pow.f64 (cos.f64 phi1) 2)))))))))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
31.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))))))
36.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sqrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
31.9b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 (pow.f64 (cos.f64 (*.f64 -1/2 phi2)) 2) (*.f64 (cos.f64 phi2) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
35.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (-.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 1/2 (*.f64 lambda2 (cos.f64 (*.f64 1/2 lambda1)))))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
32.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
29.7b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (cos.f64 phi1)) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
22.5b
(*.f64 R (*.f64 2 (atan2.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) 3) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
29.7b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
9.7b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2)))))))
32.3b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
9.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
21.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (log.f64 (exp.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)))) 2)))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (exp.f64 (log1p.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)))) 1) 2)))))))
22.3b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) 2) (cbrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))))
33.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
21.7b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (*.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2))) 2) (cbrt.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)))) 2)))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (/.f64 (-.f64 1 (pow.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)) 2)) (+.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))))
36.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 (fma.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (*.f64 lambda1 lambda1) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)))) 1) (+.f64 (fma.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (*.f64 (*.f64 lambda1 lambda1) (cos.f64 phi1)) (pow.f64 (cos.f64 (*.f64 -1/2 lambda2)) 2))) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)) (*.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) (*.f64 lambda1 (cos.f64 phi1))))))))))))
32.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (log.f64 (+.f64 1 (expm1.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))))))
29.9b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
22.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 lambda2 2)))) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
22.0b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (cbrt.f64 (pow.f64 (*.f64 (cos.f64 (/.f64 phi1 2)) (+.f64 (sin.f64 (/.f64 phi2 2)) (sin.f64 (/.f64 phi2 2)))) 3))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
31.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (*.f64 1/2 lambda1))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
31.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (*.f64 -1/2 lambda2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
23.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 4))) (sqrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2))) 2))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
22.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 lambda2 2))))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
Compiler

Compiled 34284 to 22997 computations (32.9% saved)

localize49.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2)))
0.8b
(-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))
2.7b
(sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))
31.6b
(fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))

series482.0ms (0.9%)

Counts
2 → 96
Calls

2 calls:

318.0ms
(sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2)))
163.0ms
(-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))

rewrite46.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
330×log1p-expm1-u_binary64
330×expm1-log1p-u_binary64
319×add-log-exp_binary64
318×add-cbrt-cube_binary64
318×add-exp-log_binary64
Counts
2 → 38
Calls

2 calls:

44.0ms
(sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2)))
44.0ms
(-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
035131
168295
2527195
000
100

simplify391.0ms (0.7%)

Algorithm
egg-herbie
Rules
544×*-commutative_binary64
520×sub-neg_binary64
501×fma-def_binary64
307×fma-neg_binary64
264×+-commutative_binary64
Counts
134 → 112
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
045114742
1159914164
2430814163
3527014163

prune2.6s (4.6%)

Pruning

37 alts after pruning (37 fresh and 0 done)

PrunedKeptTotal
New27012282
Fresh62531
Picked101
Done000
Total27737314
Error
8.9b
Counts
314 → 37
Alt Table
StatusErrorProgram
23.3b
(*.f64 R (*.f64 2 (atan2.f64 (cbrt.f64 (pow.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)) 3/2)) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
30.3b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))))))
23.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2))))) 1) (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))))))))
23.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (log.f64 (exp.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
39.4b
(*.f64 R (*.f64 2 (atan2.f64 (-.f64 (fma.f64 1/8 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))) (*.f64 (cos.f64 phi2) (*.f64 (*.f64 lambda2 lambda2) (*.f64 (cos.f64 phi1) (pow.f64 (cos.f64 (*.f64 1/2 lambda1)) 2))))) (sqrt.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))) (fma.f64 1/2 (*.f64 (*.f64 lambda2 (*.f64 (cos.f64 (*.f64 1/2 lambda1)) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 (*.f64 1/2 lambda1)) (cos.f64 phi1))))) (sqrt.f64 (/.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2))))) (*.f64 1/8 (fma.f64 (*.f64 (*.f64 lambda2 lambda2) (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)))) (sqrt.f64 (/.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)) 3))) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 lambda1)) 2) (*.f64 (*.f64 lambda2 lambda2) (*.f64 (pow.f64 (cos.f64 phi2) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2) (pow.f64 (cos.f64 phi1) 2)))))))))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
22.3b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 (+.f64 1 (*.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2))))))) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1))) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))))))))
31.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))))))
26.0b
(*.f64 R (*.f64 2 (atan2.f64 (-.f64 (sqrt.f64 (-.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2)))))))) (*.f64 1/2 (*.f64 (*.f64 (cos.f64 phi2) (*.f64 lambda2 (*.f64 (cos.f64 (*.f64 1/2 lambda1)) (*.f64 (cos.f64 phi1) (sin.f64 (*.f64 1/2 lambda1)))))) (sqrt.f64 (/.f64 1 (-.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2)))))))))))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
36.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sqrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
31.9b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 (pow.f64 (cos.f64 (*.f64 -1/2 phi2)) 2) (*.f64 (cos.f64 phi2) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
35.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (-.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 1/2 (*.f64 lambda2 (cos.f64 (*.f64 1/2 lambda1)))))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
22.5b
(*.f64 R (*.f64 2 (atan2.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) 3) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
24.0b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (-.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2)))))))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
22.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (*.f64 -1/2 lambda2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
9.7b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 3)) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
29.7b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
9.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 3)) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
32.3b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
9.7b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (-.f64 (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 -1/2 (-.f64 lambda2 lambda1))) 2)) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2)))))))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
21.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (log.f64 (exp.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)))) 2)))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (exp.f64 (log1p.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)))) 1) 2)))))))
22.3b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) 2) (cbrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))))
33.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
21.7b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (*.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2))) 2) (cbrt.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)))) 2)))))))
9.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
31.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (*.f64 1/2 lambda1))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
32.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
21.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (*.f64 (cos.f64 (/.f64 phi1 2)) (+.f64 (sin.f64 (/.f64 phi2 2)) (sin.f64 (/.f64 phi2 2)))))) (cbrt.f64 (exp.f64 (*.f64 (cos.f64 (/.f64 phi1 2)) (+.f64 (sin.f64 (/.f64 phi2 2)) (sin.f64 (/.f64 phi2 2)))))))) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (cos.f64 (/.f64 phi1 2)) (+.f64 (sin.f64 (/.f64 phi2 2)) (sin.f64 (/.f64 phi2 2))))))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (/.f64 (-.f64 1 (pow.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)) 2)) (+.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))))
36.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 (fma.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (*.f64 lambda1 lambda1) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)))) 1) (+.f64 (fma.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (*.f64 (*.f64 lambda1 lambda1) (cos.f64 phi1)) (pow.f64 (cos.f64 (*.f64 -1/2 lambda2)) 2))) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)) (*.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) (*.f64 lambda1 (cos.f64 phi1))))))))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (log.f64 (+.f64 1 (expm1.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))))))
29.9b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
22.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 lambda2 2)))) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
22.0b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (cbrt.f64 (pow.f64 (*.f64 (cos.f64 (/.f64 phi1 2)) (+.f64 (sin.f64 (/.f64 phi2 2)) (sin.f64 (/.f64 phi2 2)))) 3))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
9.9b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 lambda2 2))))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
23.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (-.f64 (fma.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)) (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2)))))))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
23.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 4))) (sqrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2))) 2))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
Compiler

Compiled 46639 to 33006 computations (29.2% saved)

localize43.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)
0.6b
(sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2)))
0.8b
(-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))
2.7b
(sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))

series309.0ms (0.6%)

Counts
2 → 72
Calls

2 calls:

278.0ms
(sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2)))
30.0ms
(pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)

rewrite39.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
299×log1p-expm1-u_binary64
299×expm1-log1p-u_binary64
287×add-cbrt-cube_binary64
287×add-exp-log_binary64
287×add-log-exp_binary64
Counts
2 → 34
Calls

2 calls:

38.0ms
(pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)
38.0ms
(sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03198
161662
2546762
000
100

simplify181.0ms (0.3%)

Algorithm
egg-herbie
Rules
514×*-commutative_binary64
439×cancel-sign-sub-inv_binary64
371×fma-def_binary64
307×unswap-sqr_binary64
245×sub-neg_binary64
Counts
106 → 89
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
039610574
1136710077
2323010077
3501510077

prune2.4s (4.4%)

Pruning

39 alts after pruning (39 fresh and 0 done)

PrunedKeptTotal
New26614280
Fresh112536
Picked101
Done000
Total27839317
Error
8.9b
Counts
317 → 39
Alt Table
StatusErrorProgram
23.3b
(*.f64 R (*.f64 2 (atan2.f64 (cbrt.f64 (pow.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)) 3/2)) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
23.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (*.f64 1/2 lambda1))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
9.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 3)) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
30.3b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))))))
23.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (log.f64 (exp.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
39.4b
(*.f64 R (*.f64 2 (atan2.f64 (-.f64 (fma.f64 1/8 (*.f64 (sqrt.f64 (/.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))) (*.f64 (cos.f64 phi2) (*.f64 (*.f64 lambda2 lambda2) (*.f64 (cos.f64 phi1) (pow.f64 (cos.f64 (*.f64 1/2 lambda1)) 2))))) (sqrt.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))) (fma.f64 1/2 (*.f64 (*.f64 lambda2 (*.f64 (cos.f64 (*.f64 1/2 lambda1)) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 (*.f64 1/2 lambda1)) (cos.f64 phi1))))) (sqrt.f64 (/.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2))))) (*.f64 1/8 (fma.f64 (*.f64 (*.f64 lambda2 lambda2) (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)))) (sqrt.f64 (/.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))) (*.f64 (sqrt.f64 (/.f64 1 (pow.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)) 3))) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 lambda1)) 2) (*.f64 (*.f64 lambda2 lambda2) (*.f64 (pow.f64 (cos.f64 phi2) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2) (pow.f64 (cos.f64 phi1) 2)))))))))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
31.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))))))
26.0b
(*.f64 R (*.f64 2 (atan2.f64 (-.f64 (sqrt.f64 (-.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2)))))))) (*.f64 1/2 (*.f64 (*.f64 (cos.f64 phi2) (*.f64 lambda2 (*.f64 (cos.f64 (*.f64 1/2 lambda1)) (*.f64 (cos.f64 phi1) (sin.f64 (*.f64 1/2 lambda1)))))) (sqrt.f64 (/.f64 1 (-.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2)))))))))))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
36.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sqrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
31.9b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 (pow.f64 (cos.f64 (*.f64 -1/2 phi2)) 2) (*.f64 (cos.f64 phi2) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
35.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (-.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 1/2 (*.f64 lambda2 (cos.f64 (*.f64 1/2 lambda1)))))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
9.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 3)) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
21.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (expm1.f64 (log1p.f64 (pow.f64 (sin.f64 (-.f64 (/.f64 phi1 2) (/.f64 phi2 2))) 2)))))))))
32.3b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
22.3b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2))) (sqrt.f64 (-.f64 (+.f64 1 (*.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2))))))) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1))) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (exp.f64 (log1p.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)))) 1) 2)))))))
9.7b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (-.f64 (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 -1/2 (-.f64 lambda2 lambda1))) 2)) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2)))))))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
21.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (log.f64 (exp.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)))) 2)))))))
21.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (cbrt.f64 (pow.f64 (pow.f64 (sin.f64 (-.f64 (/.f64 phi1 2) (/.f64 phi2 2))) 2) 3))))))))
22.3b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (*.f64 (pow.f64 (cbrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) 2) (cbrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))))
29.9b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
9.9b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 lambda2 2))))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
21.7b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (*.f64 (pow.f64 (pow.f64 (cbrt.f64 (sin.f64 (-.f64 (/.f64 phi1 2) (/.f64 phi2 2)))) 2) 2) (pow.f64 (cbrt.f64 (sin.f64 (-.f64 (/.f64 phi1 2) (/.f64 phi2 2)))) 2))))))))
32.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
21.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (*.f64 (cos.f64 (/.f64 phi1 2)) (+.f64 (sin.f64 (/.f64 phi2 2)) (sin.f64 (/.f64 phi2 2)))))) (cbrt.f64 (exp.f64 (*.f64 (cos.f64 (/.f64 phi1 2)) (+.f64 (sin.f64 (/.f64 phi2 2)) (sin.f64 (/.f64 phi2 2)))))))) (log.f64 (cbrt.f64 (exp.f64 (*.f64 (cos.f64 (/.f64 phi1 2)) (+.f64 (sin.f64 (/.f64 phi2 2)) (sin.f64 (/.f64 phi2 2))))))))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (/.f64 (-.f64 1 (pow.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)) 2)) (+.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))))
36.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 (fma.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (*.f64 lambda1 lambda1) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)))) 1) (+.f64 (fma.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (*.f64 (*.f64 lambda1 lambda1) (cos.f64 phi1)) (pow.f64 (cos.f64 (*.f64 -1/2 lambda2)) 2))) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)) (*.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) (*.f64 lambda1 (cos.f64 phi1))))))))))))
10.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (-.f64 (exp.f64 (log1p.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))) 1)) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
21.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (sin.f64 (-.f64 (/.f64 phi1 2) (/.f64 phi2 2))) 2)) 2) (cbrt.f64 (pow.f64 (sin.f64 (-.f64 (/.f64 phi1 2) (/.f64 phi2 2))) 2)))))))))
23.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (-.f64 (fma.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1)) (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2)))))))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
9.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2))) (sqrt.f64 (-.f64 (fma.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2))))) 1) (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 -1/2 (-.f64 lambda2 lambda1))) 2)) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (log.f64 (+.f64 1 (expm1.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))))))))))
24.0b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (-.f64 (fma.f64 (pow.f64 (sin.f64 (*.f64 phi1 1/2)) 2) (pow.f64 (cos.f64 (*.f64 phi2 1/2)) 2) (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (*.f64 (pow.f64 (cos.f64 (*.f64 phi1 1/2)) 2) (pow.f64 (sin.f64 (*.f64 phi2 1/2)) 2)))) (*.f64 2 (*.f64 (cos.f64 (*.f64 phi1 1/2)) (*.f64 (sin.f64 (*.f64 phi1 1/2)) (*.f64 (cos.f64 (*.f64 phi2 1/2)) (sin.f64 (*.f64 phi2 1/2)))))))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
22.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 lambda2 2)))) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
22.0b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (cbrt.f64 (pow.f64 (*.f64 (cos.f64 (/.f64 phi1 2)) (+.f64 (sin.f64 (/.f64 phi2 2)) (sin.f64 (/.f64 phi2 2)))) 3))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
22.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 0) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (*.f64 -1/2 lambda2))) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
22.5b
(*.f64 R (*.f64 2 (atan2.f64 (pow.f64 (cbrt.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) 3) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
33.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
23.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (*.f64 (sqrt.f64 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 4))) (sqrt.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2))) 2))) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
Compiler

Compiled 38591 to 26947 computations (30.2% saved)

regimes10.8s (19.3%)

Accuracy

Total 0.7b remaining (5.4%)

Threshold costs 0.7b (5.4%)

Counts
301 → 1
Compiler

Compiled 351712 to 253024 computations (28.1% saved)

simplify6.0ms (0%)

Algorithm
egg-herbie
Rules
11×*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
040173
163173
276173
384173
487173
586173

end2.3s (4.2%)

Remove

(sort phi1 phi2)

(sort lambda1 lambda2)

Compiler

Compiled 4554 to 3272 computations (28.2% saved)

Profiling

Loading profile data...