Details

Time bar (total: 1.0min)

analyze8.5s (13.6%)

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

Compiled 71 to 47 computations (33.8% saved)

sample29.1s (46.4%)

Symmetry

(sort lambda1 lambda2)

(sort phi1 phi2)

Results
21.6s5356×body1024valid
3.2s427×body2048valid
2.9s1343×body512valid
744.0ms414×body256valid
484.0ms716×body128valid
2.0msbody1024invalid
0.0msbody128invalid
Compiler

Compiled 212 to 140 computations (34% saved)

simplify160.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

prune9.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
21.5b
Counts
3 → 2
Alt Table
StatusErrorProgram
21.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (fma.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))
21.5b
(*.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)))))))))
Compiler

Compiled 409 to 260 computations (36.4% saved)

localize26.0ms (0%)

Local error

Found 4 expressions with local error:

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

series143.0ms (0.2%)

Counts
4 → 120
Calls

4 calls:

119.0ms
(-.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)))))
13.0ms
(pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)
6.0ms
(sin.f64 (/.f64 (-.f64 phi1 phi2) 2))
5.0ms
(sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))

rewrite84.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
261×prod-diff_binary64
242×add-sqr-sqrt_binary64
233×log1p-expm1-u_binary64
233×expm1-log1p-u_binary64
225×add-log-exp_binary64
Counts
4 → 83
Calls

4 calls:

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02177
147867
2486667
3527067
000
100

simplify116.0ms (0.2%)

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

Useful iterations: 2 (0.0ms)

IterNodesCost
02433880
17963828
228373714
349163714
451023714

prune2.1s (3.3%)

Pruning

38 alts after pruning (38 fresh and 0 done)

PrunedKeptTotal
New28938327
Fresh101
Picked101
Done000
Total29138329
Error
20.0b
Counts
329 → 38
Alt Table
StatusErrorProgram
37.6b
(*.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 (+.f64 (*.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (*.f64 (cos.f64 phi1) (pow.f64 lambda1 2))))) 1) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1))) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) (*.f64 (cos.f64 phi1) lambda1)))) (+.f64 (*.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (cos.f64 (*.f64 -1/2 lambda2)) 2) (*.f64 (cos.f64 phi1) (pow.f64 lambda1 2))))) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))))))))
32.0b
(*.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 (pow.f64 (cos.f64 (*.f64 -1/2 phi2)) 2) (*.f64 (cos.f64 phi2) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
34.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (*.f64 -1/2 phi2)) 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)))))))))
35.6b
(*.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))) (fma.f64 1/2 (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) lambda1) (sin.f64 (*.f64 -1/2 lambda2)))))) (sqrt.f64 (-.f64 1 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.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))) (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 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)))))))))
21.7b
(*.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 (pow.f64 (cbrt.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) 2) (cbrt.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))))
21.7b
(*.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))) (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 lambda2 2)))))))))))
21.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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)))))))))
21.5b
(*.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))) (log1p.f64 (expm1.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))))
31.5b
(*.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 (*.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)))))))
21.5b
(*.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 (expm1.f64 (log1p.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))))
21.0b
(*.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 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 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)))))))))
31.9b
(*.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 (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)))))))
37.7b
(*.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 (+.f64 1 (*.f64 (cos.f64 phi2) (+.f64 (*.f64 1/4 (*.f64 (*.f64 lambda2 lambda2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)))) (*.f64 (*.f64 lambda2 (cos.f64 (*.f64 1/2 lambda1))) (*.f64 (sin.f64 (*.f64 1/2 lambda1)) (cos.f64 phi1)))))) (+.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2) (*.f64 1/4 (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 lambda1)) 2)))))))))))
21.6b
(*.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 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 3)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
21.6b
(*.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 (fma.f64 (sqrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (neg.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2)))) (fma.f64 (neg.f64 (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))))))))
34.1b
(*.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 (fma.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 phi2 (sin.f64 (*.f64 1/2 phi1))) 1) (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
21.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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)))))))))
21.7b
(*.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 (fma.f64 (*.f64 (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (neg.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) (pow.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) 2)))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2)))) (pow.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) 2) (*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) (pow.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) 2))))))))
35.5b
(*.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 (+.f64 1 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 (*.f64 lambda2 (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))))))
33.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 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)))))))))
21.6b
(*.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 (log.f64 (+.f64 1 (expm1.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)))))))))
21.0b
(*.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 (+.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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
35.1b
(*.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)) (-.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 1/2 (*.f64 lambda2 (cos.f64 (*.f64 1/2 lambda1)))))) (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)))))))))
21.6b
(*.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 (fma.f64 (*.f64 (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (neg.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2)))) (fma.f64 (neg.f64 (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))))))))
30.7b
(*.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 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (cos.f64 phi1)))))))
31.0b
(*.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 1/2 phi1)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
21.7b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2))) 3) 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)))))))))
23.0b
(*.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))) (log.f64 (exp.f64 (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)))))))))
31.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 -1/2 lambda2)))))))))
37.9b
(*.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 (+.f64 1 (+.f64 (*.f64 1/4 (*.f64 (pow.f64 phi1 2) (pow.f64 (sin.f64 (*.f64 -1/2 phi2)) 2))) (*.f64 1/2 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 phi1 2) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))) (+.f64 (pow.f64 (sin.f64 (*.f64 -1/2 phi2)) 2) (+.f64 (*.f64 1/4 (*.f64 (pow.f64 (cos.f64 (*.f64 -1/2 phi2)) 2) (pow.f64 phi1 2))) (+.f64 (*.f64 (cos.f64 phi2) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)) (*.f64 (cos.f64 (*.f64 -1/2 phi2)) (*.f64 phi1 (sin.f64 (*.f64 -1/2 phi2))))))))))))
38.4b
(*.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 (fma.f64 1/2 (*.f64 phi1 (cos.f64 (*.f64 -1/2 phi2))) (sin.f64 (*.f64 -1/2 phi2))) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
21.5b
(*.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 (log.f64 (exp.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))))))))
32.0b
(*.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 1/2 lambda1)))))))))
49.5b
(*.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))) (pow.f64 (sqrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 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)))))))))
21.5b
(*.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 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 6)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
33.6b
(*.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 -1/2 lambda2))))) (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)))))))))
32.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (fma.f64 1/2 (*.f64 phi1 (cos.f64 (*.f64 -1/2 phi2))) (sin.f64 (*.f64 -1/2 phi2))) 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)))))))))
Compiler

Compiled 31941 to 19592 computations (38.7% saved)

localize72.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.8b
(-.f64 1 (+.f64 (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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))
3.1b
(sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))
3.1b
(sin.f64 (/.f64 (-.f64 phi1 phi2) 2))
29.4b
(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))))

series535.0ms (0.9%)

Counts
2 → 72
Calls

2 calls:

465.0ms
(-.f64 1 (+.f64 (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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))
69.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))))

rewrite56.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
323×log1p-expm1-u_binary64
323×expm1-log1p-u_binary64
315×add-log-exp_binary64
314×add-cbrt-cube_binary64
314×add-exp-log_binary64
Counts
2 → 33
Calls

2 calls:

54.0ms
(-.f64 1 (+.f64 (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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))
54.0ms
(fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
030130
1670120
25212120
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
105 → 71
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01955102
16595011
224915010
348245010
450145010

prune1.8s (2.8%)

Pruning

35 alts after pruning (35 fresh and 0 done)

PrunedKeptTotal
New22210232
Fresh122537
Picked101
Done000
Total23535270
Error
11.7b
Counts
270 → 35
Alt Table
StatusErrorProgram
31.4b
(*.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 (+.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 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2))) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))))))))
12.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (+.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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
21.5b
(*.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 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 6)) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
37.6b
(*.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 (+.f64 (*.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (*.f64 (cos.f64 phi1) (pow.f64 lambda1 2))))) 1) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1))) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) (*.f64 (cos.f64 phi1) lambda1)))) (+.f64 (*.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (cos.f64 (*.f64 -1/2 lambda2)) 2) (*.f64 (cos.f64 phi1) (pow.f64 lambda1 2))))) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))))))))
32.0b
(*.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 (pow.f64 (cos.f64 (*.f64 -1/2 phi2)) 2) (*.f64 (cos.f64 phi2) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
34.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (*.f64 -1/2 phi2)) 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)))))))))
35.6b
(*.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))) (fma.f64 1/2 (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) lambda1) (sin.f64 (*.f64 -1/2 lambda2)))))) (sqrt.f64 (-.f64 1 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
22.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.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))) (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 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)))))))))
12.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (+.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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
21.7b
(*.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))) (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 lambda2 2)))))))))))
31.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) (sqrt.f64 (-.f64 (+.f64 1 (*.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2))))))) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1))) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))))))))
21.5b
(*.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))) (log1p.f64 (expm1.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))))
37.7b
(*.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 (+.f64 1 (*.f64 (cos.f64 phi2) (+.f64 (*.f64 1/4 (*.f64 (*.f64 lambda2 lambda2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2)))) (*.f64 (*.f64 lambda2 (cos.f64 (*.f64 1/2 lambda1))) (*.f64 (sin.f64 (*.f64 1/2 lambda1)) (cos.f64 phi1)))))) (+.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2) (*.f64 1/4 (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 lambda1)) 2)))))))))))
21.6b
(*.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 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 3)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
21.6b
(*.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 (fma.f64 (sqrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (neg.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2)))) (fma.f64 (neg.f64 (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))))))))
34.1b
(*.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 (fma.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 phi2 (sin.f64 (*.f64 1/2 phi1))) 1) (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
21.7b
(*.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 (fma.f64 (*.f64 (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (neg.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) (pow.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) 2)))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2)))) (pow.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) 2) (*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) (pow.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) 2))))))))
35.5b
(*.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 (+.f64 1 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 (*.f64 lambda2 (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.3b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (*.f64 -1/2 phi2)) 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 (+.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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
21.6b
(*.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 (log.f64 (+.f64 1 (expm1.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)))))))))
35.1b
(*.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)) (-.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 1/2 (*.f64 lambda2 (cos.f64 (*.f64 1/2 lambda1)))))) (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)))))))))
21.6b
(*.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 (fma.f64 (*.f64 (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (neg.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2)))) (fma.f64 (neg.f64 (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))))))))
30.7b
(*.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 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (cos.f64 phi1)))))))
31.0b
(*.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 1/2 phi1)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
21.1b
(*.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 (pow.f64 (cbrt.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))) 2) (cbrt.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
21.7b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2))) 3) 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)))))))))
23.0b
(*.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))) (log.f64 (exp.f64 (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)))))))))
31.6b
(*.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 (+.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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 1/2 lambda1)))))))))
21.0b
(*.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 (expm1.f64 (log1p.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
21.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) (sqrt.f64 (-.f64 1 (+.f64 (pow.f64 (+.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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 lambda2 2)))))))))))
49.5b
(*.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))) (pow.f64 (sqrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 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)))))))))
21.0b
(*.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 (-.f64 (*.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2))) (*.f64 (cos.f64 (/.f64 phi1 2)) (sin.f64 (/.f64 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)))))))))
21.0b
(*.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 (-.f64 1 (pow.f64 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)) 3)) (+.f64 1 (+.f64 (pow.f64 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)) 2) (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
33.6b
(*.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 -1/2 lambda2))))) (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)))))))))
31.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 -1/2 lambda2)))))))))
Compiler

Compiled 31631 to 21476 computations (32.1% saved)

localize36.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(pow.f64 (+.f64 (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (neg.f64 (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) (fma.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2)) (*.f64 (sin.f64 (/.f64 phi2 2)) (cos.f64 (/.f64 phi1 2))))) 2)
0.8b
(-.f64 1 (+.f64 (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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))
3.1b
(sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))
29.4b
(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))))

series49.0ms (0.1%)

Counts
1 → 24
Calls

1 calls:

49.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))))) (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)

rewrite132.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
303×expm1-udef_binary64
303×log1p-udef_binary64
189×add-sqr-sqrt_binary64
178×log1p-expm1-u_binary64
178×expm1-log1p-u_binary64
Counts
1 → 30
Calls

1 calls:

130.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))))) (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)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01765
137431
2427931
3502531
000
100

simplify49.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
54 → 46
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
056910
1179900
2564866
32226840
45060840

prune2.9s (4.6%)

Pruning

37 alts after pruning (37 fresh and 0 done)

PrunedKeptTotal
New28820308
Fresh171734
Picked101
Done000
Total30637343
Error
11.5b
Counts
343 → 37
Alt Table
StatusErrorProgram
37.6b
(*.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 (+.f64 (*.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (*.f64 (cos.f64 phi1) (pow.f64 lambda1 2))))) 1) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1))) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 (*.f64 -1/2 lambda2)) (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) (*.f64 (cos.f64 phi1) lambda1)))) (+.f64 (*.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (cos.f64 (*.f64 -1/2 lambda2)) 2) (*.f64 (cos.f64 phi1) (pow.f64 lambda1 2))))) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 phi1 phi2))) 2)))))))))
34.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (*.f64 -1/2 phi2)) 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)))))))))
31.9b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (+.f64 (*.f64 lambda2 (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 (*.f64 1/2 lambda1)) (*.f64 (cos.f64 phi1) (sin.f64 (*.f64 1/2 lambda1)))))) (+.f64 1 (+.f64 (*.f64 1/4 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 lambda2 2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2))))) (*.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2))))))))) (+.f64 (*.f64 1/4 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 lambda1)) 2) (*.f64 (pow.f64 lambda2 2) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2))) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2))))))))))
12.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (+.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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
35.6b
(*.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))) (fma.f64 1/2 (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) lambda1) (sin.f64 (*.f64 -1/2 lambda2)))))) (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)))))))))
21.7b
(*.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))) (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 lambda2 2)))))))))))
31.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) (sqrt.f64 (-.f64 (+.f64 1 (*.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2))))))) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1))) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))))))))
21.5b
(*.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))) (log1p.f64 (expm1.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))))
21.6b
(*.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 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 3)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
21.6b
(*.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 (fma.f64 (sqrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (neg.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2)))) (fma.f64 (neg.f64 (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))))))))
34.1b
(*.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 (fma.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 phi2 (sin.f64 (*.f64 1/2 phi1))) 1) (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
12.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (pow.f64 (cbrt.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))) 3)))))
13.0b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 lambda2 2))))))) (sqrt.f64 (-.f64 1 (+.f64 (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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
21.7b
(*.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 (fma.f64 (*.f64 (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (neg.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) (pow.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) 2)))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2)))) (pow.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) 2) (*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) (pow.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) 2))))))))
35.5b
(*.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 (+.f64 1 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 (*.f64 lambda2 (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))))))
31.9b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 1/2 phi2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
21.6b
(*.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 (log.f64 (+.f64 1 (expm1.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)))))))))
12.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (+.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) (*.f64 (*.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))))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
35.1b
(*.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)) (-.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 1/2 (*.f64 lambda2 (cos.f64 (*.f64 1/2 lambda1)))))) (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)))))))))
12.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (-.f64 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (cos.f64 (*.f64 1/2 phi2))) (*.f64 (cos.f64 (*.f64 1/2 phi1)) (sin.f64 (*.f64 1/2 phi2)))) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
21.6b
(*.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 (fma.f64 (*.f64 (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (neg.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2)))) (fma.f64 (neg.f64 (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))))))))
12.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (log.f64 (exp.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
30.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 1/2 phi1)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
12.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (cbrt.f64 (pow.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2))) 3))))))
21.1b
(*.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 (pow.f64 (cbrt.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))) 2) (cbrt.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
12.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (expm1.f64 (log1p.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
21.7b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2))) 3) 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)))))))))
31.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 (cos.f64 phi2) (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2)))))))
13.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (log.f64 (exp.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))))) (sqrt.f64 (-.f64 1 (+.f64 (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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
25.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (fma.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (*.f64 (sin.f64 (*.f64 1/2 phi2)) (cos.f64 (*.f64 1/2 phi2))) (sin.f64 (*.f64 1/2 phi1)))) 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 phi2)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))))
27.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 -1/2 lambda2))))) (sqrt.f64 (-.f64 1 (+.f64 (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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
25.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (+.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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 -1/2 lambda2)))))))))
49.5b
(*.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))) (pow.f64 (sqrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 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)))))))))
29.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (fma.f64 (cos.f64 (*.f64 1/2 lambda1)) (*.f64 lambda2 (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (sin.f64 (*.f64 1/2 lambda1))))) (fma.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (*.f64 (sin.f64 (*.f64 1/2 phi2)) (cos.f64 (*.f64 1/2 phi2))) (sin.f64 (*.f64 1/2 phi1)))) 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 phi2)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))))
26.0b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (+.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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 1/2 lambda1)))))))))
12.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (+.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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (*.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 2) (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))))
30.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (cos.f64 phi1)))))))
Compiler

Compiled 51038 to 36256 computations (29% saved)

localize52.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)
0.8b
(-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))
3.1b
(sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))
29.4b
(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))))

series291.0ms (0.5%)

Counts
2 → 72
Calls

2 calls:

239.0ms
(-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))
52.0ms
(pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)

rewrite79.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
304×log1p-expm1-u_binary64
304×expm1-log1p-u_binary64
297×add-log-exp_binary64
296×add-cbrt-cube_binary64
296×add-exp-log_binary64
Counts
2 → 30
Calls

2 calls:

77.0ms
(pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)
77.0ms
(-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
029155
1634155
24919155
35127155
000
100

simplify182.0ms (0.3%)

Algorithm
egg-herbie
Rules
602×fma-neg_binary64
375×sub-neg_binary64
271×fma-def_binary64
269×associate-*r*_binary64
202×distribute-rgt-neg-in_binary64
Counts
102 → 83
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02095988
17245887
227385775
349935775
449905775
549925775

prune2.1s (3.4%)

Pruning

35 alts after pruning (35 fresh and 0 done)

PrunedKeptTotal
New19914213
Fresh152136
Picked101
Done000
Total21535250
Error
11.4b
Counts
250 → 35
Alt Table
StatusErrorProgram
31.3b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (expm1.f64 (log1p.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (fma.f64 1/2 (*.f64 (cos.f64 (*.f64 -1/2 lambda2)) lambda1) (sin.f64 (*.f64 -1/2 lambda2))) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
34.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (*.f64 -1/2 phi2)) 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)))))))))
12.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (log1p.f64 (expm1.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))))) (sqrt.f64 (expm1.f64 (log1p.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
25.8b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (expm1.f64 (log1p.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (*.f64 1/2 lambda1)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
31.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) (sqrt.f64 (-.f64 (+.f64 1 (*.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2))))))) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (pow.f64 (sin.f64 (*.f64 -1/2 lambda2)) 2) (cos.f64 phi1))) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))))))))
21.5b
(*.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))) (log1p.f64 (expm1.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))))
21.6b
(*.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 (cbrt.f64 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 3)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
21.6b
(*.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 (fma.f64 (sqrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (sqrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (neg.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2)))) (fma.f64 (neg.f64 (*.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))))))))
34.1b
(*.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 (fma.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 phi2 (sin.f64 (*.f64 1/2 phi1))) 1) (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (cos.f64 phi1) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2)))))))
13.0b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 lambda2 2))))))) (sqrt.f64 (expm1.f64 (log1p.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
29.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (expm1.f64 (log1p.f64 (-.f64 (+.f64 (fma.f64 2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (*.f64 (sin.f64 (*.f64 1/2 phi2)) (cos.f64 (*.f64 1/2 phi2))) (sin.f64 (*.f64 1/2 phi1)))) 1) (*.f64 (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (sin.f64 (*.f64 1/2 lambda1)))) (-.f64 (*.f64 lambda2 (cos.f64 (*.f64 1/2 lambda1))) (sin.f64 (*.f64 1/2 lambda1))))) (fma.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2))))))))))
12.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (pow.f64 (cbrt.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))) 3)))))
21.7b
(*.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 (fma.f64 (*.f64 (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2)))) (cbrt.f64 (-.f64 1 (pow.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2)) 2))) (neg.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) (pow.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) 2)))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2)))) (pow.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) 2) (*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) (pow.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2))) 2))))))))
12.0b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (expm1.f64 (log1p.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (-.f64 (*.f64 (sin.f64 (/.f64 lambda1 2)) (cos.f64 (/.f64 lambda2 2))) (*.f64 (cos.f64 (/.f64 lambda1 2)) (sin.f64 (/.f64 lambda2 2)))) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
12.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (+.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) (*.f64 (*.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))))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
21.6b
(*.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 (log.f64 (+.f64 1 (expm1.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)))))))))
12.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (log.f64 (exp.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
12.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (expm1.f64 (log1p.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
35.1b
(*.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)) (-.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 1/2 (*.f64 lambda2 (cos.f64 (*.f64 1/2 lambda1)))))) (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)))))))))
30.2b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (expm1.f64 (log1p.f64 (-.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 (-.f64 lambda1 lambda2))) 2) (cos.f64 phi1)))))))))
30.6b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 1/2 phi1)) 2) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
12.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (cbrt.f64 (pow.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2))) 3))))))
21.1b
(*.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 (pow.f64 (cbrt.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))) 2) (cbrt.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
21.7b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (pow.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 phi1 phi2) 2))) 3) 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)))))))))
12.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (expm1.f64 (log1p.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (*.f64 (pow.f64 (cbrt.f64 (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)) 2) (cbrt.f64 (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))))
27.1b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 -1/2 lambda2))))) (sqrt.f64 (-.f64 1 (+.f64 (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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))
12.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (expm1.f64 (log1p.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (log.f64 (+.f64 1 (expm1.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))))) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
31.9b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (expm1.f64 (log1p.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2)))))))))
25.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (+.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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 -1/2 lambda2)))))))))
49.5b
(*.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))) (pow.f64 (sqrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 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)))))))))
12.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (expm1.f64 (log1p.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)) 2) (pow.f64 (-.f64 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (cos.f64 (*.f64 1/2 phi2))) (*.f64 (cos.f64 (*.f64 1/2 phi1)) (sin.f64 (*.f64 1/2 phi2)))) 2)))))))))
26.0b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (+.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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (sin.f64 (*.f64 1/2 lambda1)))))))))
31.7b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (expm1.f64 (log1p.f64 (-.f64 1 (fma.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (-.f64 (sin.f64 (*.f64 1/2 lambda1)) (*.f64 1/2 (*.f64 lambda2 (cos.f64 (*.f64 1/2 lambda1))))) 2) (pow.f64 (+.f64 (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)))) (fma.f64 (sin.f64 (/.f64 phi1 2)) (cos.f64 (/.f64 phi2 2)) (*.f64 (neg.f64 (sin.f64 (/.f64 phi2 2))) (cos.f64 (/.f64 phi1 2))))) 2)))))))))
12.4b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (+.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) (*.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) (*.f64 (pow.f64 (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2))) 2) (cbrt.f64 (sin.f64 (/.f64 (-.f64 lambda1 lambda2) 2)))))))))))
31.5b
(*.f64 R (*.f64 2 (atan2.f64 (sqrt.f64 (+.f64 (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) (*.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 (expm1.f64 (log1p.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)))))))))
Compiler

Compiled 33186 to 24109 computations (27.4% saved)

regimes11.3s (18.1%)

Accuracy

Total 0.5b remaining (3.7%)

Threshold costs 0.5b (3.7%)

Counts
272 → 1
Compiler

Compiled 401509 to 290028 computations (27.8% saved)

simplify8.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
053224
179224
2100224
3114224
4121224
5122224
6121224

end2.7s (4.3%)

Remove

(sort lambda1 lambda2)

Compiler

Compiled 5291 to 3949 computations (25.4% saved)

Profiling

Loading profile data...