Details

Time bar (total: 56.5s)

analyze9.3s (16.4%)

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)

sample22.7s (40.2%)

Symmetry

(sort lambda1 lambda2)

(sort phi1 phi2)

Results
16.5s5452×body1024valid
2.8s451×body2048valid
2.4s1243×body512valid
457.0ms735×body128valid
429.0ms375×body256valid
5.0msbody1024invalid
2.0msbody512invalid
Compiler

Compiled 212 to 140 computations (34% saved)

simplify162.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
24.8b
Counts
3 → 2
Alt Table
StatusErrorProgram
24.8b
(*.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)))))))))
24.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 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
Compiler

Compiled 409 to 260 computations (36.4% saved)

localize27.0ms (0%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)
0.7b
(-.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.4b
(sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))
4.9b
(sin.f64 (/.f64 (-.f64 phi1 phi2) 2))

series140.0ms (0.2%)

Counts
4 → 120
Calls

4 calls:

118.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)))
12.0ms
(pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)
5.0ms
(sin.f64 (/.f64 (-.f64 phi1 phi2) 2))
4.0ms
(sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))

rewrite77.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
75×egg-rr
Counts
4 → 75
Calls

2 calls:

75.0ms
((sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (-.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))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))
0.0ms
()
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02075
144675
2488875
3550075
000
100

simplify119.0ms (0.2%)

Algorithm
egg-herbie
Rules
498×fma-neg_binary64
333×sub-neg_binary64
321×distribute-rgt-neg-in_binary64
318×associate-*r*_binary64
299×neg-mul-1_binary64
Counts
195 → 160
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02433880
17953828
228353714
349033714
450893714

prune1.5s (2.6%)

Pruning

39 alts after pruning (39 fresh and 0 done)

PrunedKeptTotal
New28839327
Fresh101
Picked101
Done000
Total29039329
Error
22.9b
Counts
329 → 39
Alt Table
StatusErrorProgram
35.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))) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (-.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 phi2 (cos.f64 (*.f64 1/2 phi1)))))))))))
31.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 (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)))))))
25.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 (+.f64 (fma.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 lambda2 2))) (cos.f64 (/.f64 lambda1 2)) (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 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.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 (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)))))))
26.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))) (cbrt.f64 (pow.f64 (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)))))))
36.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 (+.f64 (+.f64 1 (*.f64 phi2 (+.f64 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (cos.f64 (*.f64 1/2 phi1))) (*.f64 (*.f64 1/4 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)) phi2)))) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (-.f64 (*.f64 1/2 (*.f64 (*.f64 phi2 phi2) (cos.f64 phi1))) (cos.f64 phi1)))) (fma.f64 1/4 (*.f64 (*.f64 phi2 phi2) (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
24.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 (-.f64 lambda1 lambda2) 2))) (cbrt.f64 (pow.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) 3))))))))
31.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 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
38.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)) (+.f64 (+.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 (cos.f64 (*.f64 1/2 lambda1)) (-.f64 (*.f64 1/48 (pow.f64 lambda2 3)) (*.f64 1/2 lambda2)))) (*.f64 (*.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 lambda2 lambda2)) -1/8))) (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)))))))
24.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)) (*.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 2) (cbrt.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)))))))
24.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 (sqrt.f64 (pow.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))))))
25.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)) (+.f64 (fma.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 lambda2 2))) (cos.f64 (/.f64 lambda1 2)) (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 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)))))))
25.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 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 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)))))))
24.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)) (-.f64 (exp.f64 (log1p.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))) 1)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
33.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 (fma.f64 1/2 (*.f64 phi1 (cos.f64 (*.f64 -1/2 phi2))) (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)))))))
24.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 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)))))))
35.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)) (fma.f64 1/2 (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) lambda1) (sin.f64 (*.f64 -1/2 lambda2)))) (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)))))))
24.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 (-.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))))))))
24.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 (*.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)))))))
33.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 (pow.f64 (cos.f64 (*.f64 -1/2 phi2)) 2) (*.f64 (cos.f64 phi2) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
39.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)) (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)))))))
34.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)) (sqrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
37.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 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)))))))
24.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 (-.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)))))))
33.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 (+.f64 (pow.f64 (sin.f64 (*.f64 -1/2 phi2)) 2) (*.f64 (cos.f64 phi2) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 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 -1/2 lambda2))) (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)))))))
36.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 -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)))))))
38.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 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 lambda2 (*.f64 (cos.f64 (*.f64 1/2 lambda1)) (*.f64 (sin.f64 (*.f64 1/2 lambda1)) (cos.f64 phi1)))) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2))))) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2))))))
34.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 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 (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)))))))
33.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 phi2)) 2)))))))
24.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))))) (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)))))))
34.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 (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)))))))
24.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 (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)))) 3)))))
24.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 (-.f64 lambda1 lambda2) 2))) (pow.f64 (log.f64 (+.f64 1 (expm1.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2))))) 2)))))))
30.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 phi1)) 2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
24.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 (log.f64 (exp.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)))))))))
35.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))) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (-.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 phi2 (cos.f64 (*.f64 1/2 phi1))))))) (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 30283 to 18324 computations (39.5% saved)

localize41.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)
0.7b
(-.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.4b
(sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))
4.9b
(sin.f64 (/.f64 (-.f64 phi1 phi2) 2))

series212.0ms (0.4%)

Counts
1 → 48
Calls

1 calls:

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

rewrite36.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
17×egg-rr
Counts
1 → 17
Calls

2 calls:

35.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))))
0.0ms
()
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02666
157948
2520548
000
100

simplify133.0ms (0.2%)

Algorithm
egg-herbie
Rules
972×cancel-sign-sub-inv_binary64
724×fma-neg_binary64
327×sub-neg_binary64
265×associate-*r*_binary64
234×fma-def_binary64
Counts
65 → 54
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01945078
16594987
224934986
348344986
450244986

prune1.5s (2.7%)

Pruning

33 alts after pruning (33 fresh and 0 done)

PrunedKeptTotal
New2459254
Fresh142438
Picked101
Done000
Total26033293
Error
10.6b
Counts
293 → 33
Alt Table
StatusErrorProgram
38.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))) (*.f64 (sin.f64 (*.f64 -1/2 phi2)) (+.f64 (sin.f64 (*.f64 -1/2 phi2)) (*.f64 phi1 (cos.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)))))))
25.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 (+.f64 (fma.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 lambda2 2))) (cos.f64 (/.f64 lambda1 2)) (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 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)))))))
26.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))) (cbrt.f64 (pow.f64 (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)))))))
36.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 (+.f64 (+.f64 1 (*.f64 phi2 (+.f64 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (cos.f64 (*.f64 1/2 phi1))) (*.f64 (*.f64 1/4 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)) phi2)))) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (-.f64 (*.f64 1/2 (*.f64 (*.f64 phi2 phi2) (cos.f64 phi1))) (cos.f64 phi1)))) (fma.f64 1/4 (*.f64 (*.f64 phi2 phi2) (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
31.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 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
24.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))) (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 4)) (pow.f64 (cbrt.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 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
38.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)) (+.f64 (+.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 (cos.f64 (*.f64 1/2 lambda1)) (-.f64 (*.f64 1/48 (pow.f64 lambda2 3)) (*.f64 1/2 lambda2)))) (*.f64 (*.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 lambda2 lambda2)) -1/8))) (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)))))))
24.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)) (*.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 2) (cbrt.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)))))))
25.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)) (+.f64 (fma.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 lambda2 2))) (cos.f64 (/.f64 lambda1 2)) (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 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)))))))
25.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 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 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)))))))
24.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)) (-.f64 (exp.f64 (log1p.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))) 1)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
36.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 -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 (-.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.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 phi1)) 2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 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 (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 (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)))))))))
24.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 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)))))))
35.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)) (fma.f64 1/2 (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) lambda1) (sin.f64 (*.f64 -1/2 lambda2)))) (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)))))))
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)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (+.f64 (sin.f64 (*.f64 -1/2 phi2)) (+.f64 (*.f64 (cos.f64 (*.f64 -1/2 phi2)) (-.f64 (*.f64 1/2 phi1) (*.f64 1/48 (pow.f64 phi1 3)))) (*.f64 (sin.f64 (*.f64 -1/2 phi2)) (*.f64 (*.f64 phi1 phi1) -1/8)))) 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)))))))
24.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 (-.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))))))))
33.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 (pow.f64 (cos.f64 (*.f64 -1/2 phi2)) 2) (*.f64 (cos.f64 phi2) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
39.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)) (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)))))))
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 -1/2 lambda2))) (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)))))))
36.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 -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)))))))
38.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 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 lambda2 (*.f64 (cos.f64 (*.f64 1/2 lambda1)) (*.f64 (sin.f64 (*.f64 1/2 lambda1)) (cos.f64 phi1)))) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2))))) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2))))))
34.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 1/2 lambda1))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
33.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 phi2)) 2)))))))
34.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)) (sqrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 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)))))))
11.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 (-.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)))))))
11.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 (*.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 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 phi2 2)))) 2)))))))
24.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 (log.f64 (exp.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.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 (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)))) 3)))))
24.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 (-.f64 lambda1 lambda2) 2))) (pow.f64 (log.f64 (+.f64 1 (expm1.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2))))) 2)))))))
34.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 (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)))))))))
Compiler

Compiled 27816 to 18062 computations (35.1% saved)

localize46.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(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.7b
(-.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.4b
(sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))
32.2b
(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))))

series67.0ms (0.1%)

Counts
2 → 48
Calls

2 calls:

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

rewrite76.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
58×egg-rr
Counts
2 → 58
Calls

2 calls:

74.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)))) (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.0ms
()
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01763
136434
2434134
3509234
000
100

simplify55.0ms (0.1%)

Algorithm
egg-herbie
Rules
798×fma-neg_binary64
488×unswap-sqr_binary64
318×associate-*r*_binary64
315×associate-*l*_binary64
281×fma-def_binary64
Counts
106 → 75
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
057934
1180924
2564890
32226864
45060864

prune2.2s (3.9%)

Pruning

39 alts after pruning (39 fresh and 0 done)

PrunedKeptTotal
New23922261
Fresh151732
Picked101
Done000
Total25539294
Error
10.4b
Counts
294 → 39
Alt Table
StatusErrorProgram
11.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)) (-.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 (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)))))))
24.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))))) (log1p.f64 (expm1.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)))))))
11.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 (+.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 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (cos.f64 phi1))) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))))))))
12.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)) (log.f64 (exp.f64 (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)))))))
26.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))) (cbrt.f64 (pow.f64 (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 (+.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))) (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) 3) (pow.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))) 3)) (sin.f64 (*.f64 1/2 (+.f64 phi2 phi1)))) (+.f64 (pow.f64 (sin.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) (*.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))) (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))))))))))))
32.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 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 (cos.f64 phi2) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
27.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))))) (sqrt.f64 (pow.f64 (*.f64 (cos.f64 (/.f64 phi1 2)) (+.f64 (sin.f64 (/.f64 phi2 2)) (sin.f64 (/.f64 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 (-.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.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 (+.f64 (+.f64 1 (*.f64 phi2 (+.f64 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (cos.f64 (*.f64 1/2 phi1))) (*.f64 (*.f64 1/4 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)) phi2)))) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (-.f64 (*.f64 1/2 (*.f64 (*.f64 phi2 phi2) (cos.f64 phi1))) (cos.f64 phi1)))) (fma.f64 1/4 (*.f64 (*.f64 phi2 phi2) (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
11.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)) (log.f64 (+.f64 1 (expm1.f64 (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)))))))
24.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))))) (pow.f64 (cbrt.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 (-.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.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)) (+.f64 (+.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 (cos.f64 (*.f64 1/2 lambda1)) (-.f64 (*.f64 1/48 (pow.f64 lambda2 3)) (*.f64 1/2 lambda2)))) (*.f64 (*.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 lambda2 lambda2)) -1/8))) (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)))))))
23.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))))) (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)))))))
25.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 (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)))))))))
25.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)) (+.f64 (fma.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 lambda2 2))) (cos.f64 (/.f64 lambda1 2)) (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 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)))))))
33.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))))) (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 phi2)) 2)))))))
25.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 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 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)))))))
11.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)) (log1p.f64 (expm1.f64 (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)))))))
24.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)) (-.f64 (exp.f64 (log1p.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))) 1)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
11.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)) (expm1.f64 (log1p.f64 (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)))))))
23.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)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (+.f64 (pow.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) 2) (pow.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))) 2))))))))
22.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 (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 (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)))))))))
35.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)) (fma.f64 1/2 (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) lambda1) (sin.f64 (*.f64 -1/2 lambda2)))) (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)))))))
24.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 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)))))))
24.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 (-.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))))))))
11.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 3) (*.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)))))))
39.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)) (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)))))))
29.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 (+.f64 1 (fma.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (*.f64 (cos.f64 phi1) (*.f64 lambda1 lambda1)))) (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))))) (*.f64 1/6 (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) (*.f64 (cos.f64 phi1) (pow.f64 lambda1 3))))))))) (+.f64 (fma.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (*.f64 lambda1 lambda1)) (pow.f64 (cos.f64 (*.f64 -1/2 lambda2)) 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 (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 (cos.f64 phi1) lambda1)))))))))))
30.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)))))))
36.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 -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)))))))
34.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 1/2 lambda1))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
34.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)) (sqrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 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)))))))
24.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 -1/2 lambda2))) (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)))))))
11.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))))) 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)))))))
24.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 (log.f64 (exp.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)))))))))
25.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 (+.f64 (fma.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 lambda2 2))) (cos.f64 (/.f64 lambda1 2)) (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 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.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 phi1)) 2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
24.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 (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)))) 3)))))
32.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 (+.f64 (fma.f64 (cos.f64 phi2) (*.f64 lambda2 (*.f64 (cos.f64 (*.f64 1/2 lambda1)) (*.f64 (cos.f64 phi1) (sin.f64 (*.f64 1/2 lambda1))))) (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)) (*.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (*.f64 lambda2 lambda2))))) (fma.f64 1/4 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 lambda1)) 2) (*.f64 (*.f64 lambda2 lambda2) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (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))))))))))
Compiler

Compiled 39508 to 27559 computations (30.2% saved)

localize41.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(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.3b
(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.7b
(-.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.4b
(sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))

series34.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

34.0ms
(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)

rewrite60.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
42×egg-rr
Counts
1 → 42
Calls

2 calls:

58.0ms
((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.0ms
()
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01633
133112
2362112
3491712
000
100

simplify48.0ms (0.1%)

Algorithm
egg-herbie
Rules
798×fma-neg_binary64
488×unswap-sqr_binary64
318×associate-*r*_binary64
315×associate-*l*_binary64
281×fma-def_binary64
Counts
66 → 58
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
056910
1179900
2564866
32226840
45060840

prune2.3s (4.2%)

Pruning

38 alts after pruning (38 fresh and 0 done)

PrunedKeptTotal
New27818296
Fresh182038
Picked101
Done000
Total29738335
Error
10.4b
Counts
335 → 38
Alt Table
StatusErrorProgram
11.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))))) 0) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (log1p.f64 (expm1.f64 (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)))))))
25.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 (+.f64 (fma.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 lambda2 2))) (cos.f64 (/.f64 lambda1 2)) (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 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.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))))) (log1p.f64 (expm1.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)))))))
11.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)) (expm1.f64 (log1p.f64 (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)))))))
26.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))) (cbrt.f64 (pow.f64 (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)))))))
11.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 3) (*.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)))))))
27.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))))) (sqrt.f64 (pow.f64 (*.f64 (cos.f64 (/.f64 phi1 2)) (+.f64 (sin.f64 (/.f64 phi2 2)) (sin.f64 (/.f64 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 (-.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.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 (+.f64 (+.f64 1 (*.f64 phi2 (+.f64 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (cos.f64 (*.f64 1/2 phi1))) (*.f64 (*.f64 1/4 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)) phi2)))) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (-.f64 (*.f64 1/2 (*.f64 (*.f64 phi2 phi2) (cos.f64 phi1))) (cos.f64 phi1)))) (fma.f64 1/4 (*.f64 (*.f64 phi2 phi2) (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2)) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
25.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 (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)))))))))
24.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))))) (pow.f64 (cbrt.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 (-.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.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)) (+.f64 (+.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 (cos.f64 (*.f64 1/2 lambda1)) (-.f64 (*.f64 1/48 (pow.f64 lambda2 3)) (*.f64 1/2 lambda2)))) (*.f64 (*.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 lambda2 lambda2)) -1/8))) (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)))))))
25.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)) (+.f64 (fma.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 lambda2 2))) (cos.f64 (/.f64 lambda1 2)) (*.f64 (sin.f64 (/.f64 lambda2 2)) (cos.f64 (/.f64 lambda1 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)))))))
33.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))))) 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 phi2)) 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 (+.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 (*.f64 (sin.f64 (*.f64 1/2 (+.f64 phi2 phi1))) (-.f64 (pow.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) 3) (pow.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))) 3))) (+.f64 (pow.f64 (sin.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) (*.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))) (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))))))))))))
25.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 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 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)))))))
24.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)) (-.f64 (exp.f64 (log1p.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))) 1)) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
32.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 (+.f64 (fma.f64 (cos.f64 phi2) (*.f64 lambda2 (*.f64 (cos.f64 (*.f64 1/2 lambda1)) (*.f64 (cos.f64 phi1) (sin.f64 (*.f64 1/2 lambda1))))) (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)) (*.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)) (*.f64 lambda2 lambda2))))) (fma.f64 1/4 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 lambda1)) 2) (*.f64 (*.f64 lambda2 lambda2) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (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))))))))))
12.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)) (log.f64 (exp.f64 (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)))))))
30.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 phi1)) 2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
11.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))))) 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 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (cos.f64 phi1))) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))))))))
24.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 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)))))))
35.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)) (fma.f64 1/2 (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) lambda1) (sin.f64 (*.f64 -1/2 lambda2)))) (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.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 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 (cos.f64 phi2) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
24.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 (-.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))))))))
39.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)) (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)))))))
22.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 (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 (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)))))))))
34.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 1/2 lambda1))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
34.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)) (sqrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 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)))))))
24.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 (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)))) 3)))))
23.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)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (+.f64 (pow.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) 2) (pow.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))) 2))))))))
29.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))))) 0) 2))) (sqrt.f64 (-.f64 (+.f64 1 (fma.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (*.f64 (cos.f64 phi1) (*.f64 lambda1 lambda1)))) (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))))) (*.f64 1/6 (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) (*.f64 (cos.f64 phi1) (pow.f64 lambda1 3))))))))) (+.f64 (fma.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (*.f64 lambda1 lambda1)) (pow.f64 (cos.f64 (*.f64 -1/2 lambda2)) 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 (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 (cos.f64 phi1) lambda1)))))))))))
24.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 -1/2 lambda2))) (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)))))))
11.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)) (-.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 (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)))))))
23.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))))) 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)))))))
11.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)) (log1p.f64 (expm1.f64 (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)))))))
36.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 -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)))))))
24.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 (log.f64 (exp.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)))))))))
30.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)))))))
Compiler

Compiled 33392 to 22514 computations (32.6% saved)

regimes13.4s (23.7%)

Accuracy

Total 0.7b remaining (5.3%)

Threshold costs 0.7b (5.3%)

Counts
323 → 1
Compiler

Compiled 426232 to 303172 computations (28.9% saved)

simplify8.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
058173
186173
2103173
3114173
4119173
5118173

end2.2s (3.9%)

Remove

(sort phi1 phi2)

(sort lambda1 lambda2)

Compiler

Compiled 4336 to 3138 computations (27.6% saved)

Profiling

Loading profile data...