Details

Time bar (total: 23.1s)

analyze4.0s (17.4%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%99.8%0.2%8
7.8%92%0.2%9
7.8%92%0.2%10
10.1%89.7%0.2%11
10.1%89.7%0.2%12
13.9%85.9%0.2%13
13.9%85.9%0.2%14
Compiler

Compiled 29 to 18 computations (37.9% saved)

sample12.7s (54.9%)

Results
9.8s5499×body1024valid
1.5s1336×body512valid
680.0ms187×body2048valid
342.0ms417×body256valid
273.0ms817×body128valid
Compiler

Compiled 86 to 53 computations (38.4% saved)

simplify29.0ms (0.1%)

Algorithm
egg-herbie
Rules
543×fma-def_binary64
194×fma-neg_binary64
83×cancel-sign-sub-inv_binary64
59×distribute-rgt-neg-in_binary64
47×distribute-rgt-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01839
13239
26139
311539
415539
524639
634839
743739
857239
962239
1069439
1172039
1266939

prune3.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
12.1b
Counts
3 → 1
Alt Table
StatusErrorProgram
12.1b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
Compiler

Compiled 108 to 55 computations (49.1% saved)

localize21.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))
0.3b
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
1.6b
(cos.f64 (-.f64 lambda1 lambda2))
1.7b
(sin.f64 (-.f64 lambda1 lambda2))

series67.0ms (0.3%)

Counts
4 → 100
Calls

4 calls:

39.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
18.0ms
(*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))
6.0ms
(cos.f64 (-.f64 lambda1 lambda2))
4.0ms
(sin.f64 (-.f64 lambda1 lambda2))

rewrite28.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
23×add-sqr-sqrt_binary64
21×*-un-lft-identity_binary64
21×add-cube-cbrt_binary64
18×prod-diff_binary64
13×cos-sum_binary64
Counts
4 → 90
Calls

4 calls:

6.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
6.0ms
(*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))
5.0ms
(cos.f64 (-.f64 lambda1 lambda2))
4.0ms
(sin.f64 (-.f64 lambda1 lambda2))

simplify132.0ms (0.6%)

Algorithm
egg-herbie
Rules
980×fma-neg_binary64
457×associate-*r*_binary64
441×distribute-rgt-neg-in_binary64
422×associate-*l*_binary64
395×distribute-lft-neg-in_binary64
Counts
190 → 201
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03994414
18623679
229133547
346813537
450703537

prune436.0ms (1.9%)

Pruning

18 alts after pruning (18 fresh and 0 done)

PrunedKeptTotal
New18318201
Fresh000
Picked101
Done000
Total18418202
Error
6.7b
Counts
202 → 18
Alt Table
StatusErrorProgram
42.4b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 (fma.f64 (*.f64 (cbrt.f64 lambda1) (cbrt.f64 lambda1)) (cbrt.f64 lambda1) (neg.f64 (*.f64 (sqrt.f64 lambda2) (sqrt.f64 lambda2))))) (cos.f64 (fma.f64 (neg.f64 (sqrt.f64 lambda2)) (sqrt.f64 lambda2) (*.f64 (sqrt.f64 lambda2) (sqrt.f64 lambda2))))) (*.f64 (sin.f64 (fma.f64 (*.f64 (cbrt.f64 lambda1) (cbrt.f64 lambda1)) (cbrt.f64 lambda1) (neg.f64 (*.f64 (sqrt.f64 lambda2) (sqrt.f64 lambda2))))) (sin.f64 (fma.f64 (neg.f64 (sqrt.f64 lambda2)) (sqrt.f64 lambda2) (*.f64 (sqrt.f64 lambda2) (sqrt.f64 lambda2)))))))))
29.5b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (-.f64 (fma.f64 lambda2 (sin.f64 lambda1) (cos.f64 lambda1)) (*.f64 1/2 (*.f64 lambda2 (*.f64 lambda2 (cos.f64 lambda1))))))))
12.6b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2))) (*.f64 (sin.f64 phi1) (cos.f64 phi2))) (*.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 (-.f64 lambda1 lambda2))) (cos.f64 (-.f64 lambda1 lambda2)))))))
7.1b
(atan2.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
23.8b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (+.f64 (cos.f64 lambda2) (fma.f64 lambda1 (sin.f64 lambda2) (*.f64 (*.f64 (cos.f64 lambda2) (*.f64 lambda1 lambda1)) -1/2))))))
18.9b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 lambda1) (cos.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2))) (cbrt.f64 lambda2)))) (*.f64 (sin.f64 lambda1) (sin.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2))) (cbrt.f64 lambda2))))))))
12.3b
(atan2.f64 (*.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (*.f64 (cbrt.f64 (cos.f64 phi2)) (cbrt.f64 (cos.f64 phi2)))) (cbrt.f64 (cos.f64 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
19.8b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 (fma.f64 1 lambda1 (neg.f64 (*.f64 (cbrt.f64 lambda2) (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2)))))) (cos.f64 (fma.f64 (neg.f64 (cbrt.f64 lambda2)) (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2)) (*.f64 (cbrt.f64 lambda2) (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2)))))) (*.f64 (sin.f64 (fma.f64 1 lambda1 (neg.f64 (*.f64 (cbrt.f64 lambda2) (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2)))))) (sin.f64 (fma.f64 (neg.f64 (cbrt.f64 lambda2)) (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2)) (*.f64 (cbrt.f64 lambda2) (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2))))))))))
42.2b
(atan2.f64 (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (cos.f64 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
44.2b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 (fma.f64 (sqrt.f64 lambda1) (sqrt.f64 lambda1) (neg.f64 (*.f64 (cbrt.f64 lambda2) (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2)))))) (cos.f64 (fma.f64 (neg.f64 (cbrt.f64 lambda2)) (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2)) (*.f64 (cbrt.f64 lambda2) (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2)))))) (*.f64 (sin.f64 (fma.f64 (sqrt.f64 lambda1) (sqrt.f64 lambda1) (neg.f64 (*.f64 (cbrt.f64 lambda2) (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2)))))) (sin.f64 (fma.f64 (neg.f64 (cbrt.f64 lambda2)) (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2)) (*.f64 (cbrt.f64 lambda2) (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2))))))))))
43.1b
(atan2.f64 (*.f64 (+.f64 (*.f64 (sin.f64 (fma.f64 (sqrt.f64 lambda1) (sqrt.f64 lambda1) (neg.f64 (*.f64 lambda2 1)))) (cos.f64 (fma.f64 (neg.f64 lambda2) 1 (*.f64 lambda2 1)))) (*.f64 (cos.f64 (fma.f64 (sqrt.f64 lambda1) (sqrt.f64 lambda1) (neg.f64 (*.f64 lambda2 1)))) (sin.f64 (fma.f64 (neg.f64 lambda2) 1 (*.f64 lambda2 1))))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
23.7b
(atan2.f64 (fma.f64 (fma.f64 (cos.f64 lambda2) lambda1 (sin.f64 (neg.f64 lambda2))) (cos.f64 phi2) (*.f64 1/2 (*.f64 (cos.f64 phi2) (*.f64 lambda1 (*.f64 lambda1 (sin.f64 lambda2)))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
17.0b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 (fma.f64 (*.f64 (cbrt.f64 lambda1) (cbrt.f64 lambda1)) (cbrt.f64 lambda1) (neg.f64 (*.f64 lambda2 1)))) (cos.f64 (fma.f64 (neg.f64 lambda2) 1 (*.f64 lambda2 1)))) (*.f64 (sin.f64 (fma.f64 (*.f64 (cbrt.f64 lambda1) (cbrt.f64 lambda1)) (cbrt.f64 lambda1) (neg.f64 (*.f64 lambda2 1)))) (sin.f64 (fma.f64 (neg.f64 lambda2) 1 (*.f64 lambda2 1))))))))
11.9b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
15.9b
(atan2.f64 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 3)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
13.9b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (log.f64 (exp.f64 (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))))
12.4b
(atan2.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))) (cbrt.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)))) (cbrt.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
25.5b
(atan2.f64 (*.f64 (+.f64 (*.f64 (sin.f64 lambda1) (cos.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2))) (cbrt.f64 lambda2)))) (*.f64 (cos.f64 lambda1) (sin.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2))) (cbrt.f64 lambda2))))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
Compiler

Compiled 9455 to 2421 computations (74.4% saved)

localize29.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))
0.2b
(*.f64 (sin.f64 lambda1) (cos.f64 lambda2))
0.3b
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
1.6b
(cos.f64 (-.f64 lambda1 lambda2))

series54.0ms (0.2%)

Counts
2 → 44
Calls

2 calls:

44.0ms
(*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))
10.0ms
(*.f64 (sin.f64 lambda1) (cos.f64 lambda2))

rewrite12.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
10×add-sqr-sqrt_binary64
associate-*r*_binary64
associate-*l*_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
Counts
2 → 43
Calls

2 calls:

6.0ms
(*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))
3.0ms
(*.f64 (sin.f64 lambda1) (cos.f64 lambda2))

simplify90.0ms (0.4%)

Algorithm
egg-herbie
Rules
550×sub-neg_binary64
517×cancel-sign-sub-inv_binary64
287×fma-neg_binary64
223×associate-*r*_binary64
214×distribute-rgt-neg-in_binary64
Counts
87 → 109
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01942184
15432076
218052011
344022011
451912011

prune505.0ms (2.2%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New2107217
Fresh13417
Picked101
Done000
Total22411235
Error
0.1b
Counts
235 → 11
Alt Table
StatusErrorProgram
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
7.3b
(atan2.f64 (*.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cbrt.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))) (*.f64 (cbrt.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
7.4b
(atan2.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))) (cbrt.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)))) (cbrt.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
42.2b
(atan2.f64 (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (cos.f64 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
8.8b
(atan2.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (log.f64 (pow.f64 (exp.f64 (cos.f64 (-.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi2) (sin.f64 phi1))))))
12.6b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2))) (*.f64 (sin.f64 phi1) (cos.f64 phi2))) (*.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 (-.f64 lambda1 lambda2))) (cos.f64 (-.f64 lambda1 lambda2)))))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (+.f64 (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
13.3b
(atan2.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) 3) (pow.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) 3)) (cos.f64 phi2)) (+.f64 (*.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (cos.f64 lambda2))) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
25.5b
(atan2.f64 (*.f64 (+.f64 (*.f64 (sin.f64 lambda1) (cos.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2))) (cbrt.f64 lambda2)))) (*.f64 (cos.f64 lambda1) (sin.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2))) (cbrt.f64 lambda2))))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
12.3b
(atan2.f64 (*.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (*.f64 (cbrt.f64 (cos.f64 phi2)) (cbrt.f64 (cos.f64 phi2)))) (cbrt.f64 (cos.f64 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
10.9b
(atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (sin.f64 lambda2) (cos.f64 lambda1)))) 3)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
Compiler

Compiled 10496 to 2228 computations (78.8% saved)

localize30.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (sin.f64 lambda1) (cos.f64 lambda2))
0.2b
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
0.2b
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
0.2b
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)))

series115.0ms (0.5%)

Counts
3 → 104
Calls

3 calls:

52.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)))
52.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
11.0ms
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))

rewrite23.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
29×add-cbrt-cube_binary64
29×add-exp-log_binary64
29×pow1_binary64
17×cbrt-unprod_binary64
17×prod-exp_binary64
Counts
3 → 75
Calls

3 calls:

6.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
6.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)))
4.0ms
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))

simplify114.0ms (0.5%)

Algorithm
egg-herbie
Rules
835×associate-*r*_binary64
696×associate-*l*_binary64
609×fma-neg_binary64
551×distribute-rgt-neg-in_binary64
357×*-commutative_binary64
Counts
179 → 171
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03424644
110384148
238534140
354534140

prune562.0ms (2.4%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New2134217
Fresh2810
Picked101
Done000
Total21612228
Error
0.0b
Counts
228 → 12
Alt Table
StatusErrorProgram
7.4b
(atan2.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))) (cbrt.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)))) (cbrt.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
42.2b
(atan2.f64 (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (cos.f64 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
3.5b
(atan2.f64 (*.f64 (-.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda1)) (sin.f64 lambda1)) (*.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda2)) (cos.f64 lambda2)))) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (+.f64 (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (*.f64 (sin.f64 lambda1) (*.f64 (cbrt.f64 (cos.f64 lambda2)) (cbrt.f64 (cos.f64 lambda2)))) (cbrt.f64 (cos.f64 lambda2))) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (+.f64 (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
2.0b
(atan2.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (+.f64 (log.f64 (exp.f64 (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))))) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
12.6b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2))) (*.f64 (sin.f64 phi1) (cos.f64 phi2))) (*.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 (-.f64 lambda1 lambda2))) (cos.f64 (-.f64 lambda1 lambda2)))))))
7.3b
(atan2.f64 (*.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cbrt.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))) (*.f64 (cbrt.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (+.f64 (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cbrt.f64 (*.f64 (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda1)) (sin.f64 lambda1)) (*.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda2)) (sin.f64 lambda2))))))))
13.3b
(atan2.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) 3) (pow.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) 3)) (cos.f64 phi2)) (+.f64 (*.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (cos.f64 lambda2))) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
25.5b
(atan2.f64 (*.f64 (+.f64 (*.f64 (sin.f64 lambda1) (cos.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2))) (cbrt.f64 lambda2)))) (*.f64 (cos.f64 lambda1) (sin.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2))) (cbrt.f64 lambda2))))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
12.3b
(atan2.f64 (*.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (*.f64 (cbrt.f64 (cos.f64 phi2)) (cbrt.f64 (cos.f64 phi2)))) (cbrt.f64 (cos.f64 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
10.9b
(atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (sin.f64 lambda2) (cos.f64 lambda1)))) 3)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
Compiler

Compiled 13338 to 2660 computations (80.1% saved)

localize36.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda2)) (sin.f64 lambda2))
0.2b
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)))
0.3b
(*.f64 (sin.f64 lambda2) (sin.f64 lambda2))
29.6b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda1)) (sin.f64 lambda1)) (*.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda2)) (sin.f64 lambda2))))

series22.0ms (0.1%)

Counts
3 → 48
Calls

3 calls:

12.0ms
(cbrt.f64 (*.f64 (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda1)) (sin.f64 lambda1)) (*.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda2)) (sin.f64 lambda2))))
6.0ms
(*.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda2)) (sin.f64 lambda2))
4.0ms
(*.f64 (sin.f64 lambda2) (sin.f64 lambda2))

rewrite31.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
29×pow1_binary64
13×add-cbrt-cube_binary64
11×add-sqr-sqrt_binary64
10×add-exp-log_binary64
*-un-lft-identity_binary64
Counts
3 → 76
Calls

3 calls:

16.0ms
(cbrt.f64 (*.f64 (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda1)) (sin.f64 lambda1)) (*.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda2)) (sin.f64 lambda2))))
7.0ms
(*.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda2)) (sin.f64 lambda2))
4.0ms
(*.f64 (sin.f64 lambda2) (sin.f64 lambda2))

simplify119.0ms (0.5%)

Algorithm
egg-herbie
Rules
540×fma-neg_binary64
512×unswap-sqr_binary64
486×cancel-sign-sub-inv_binary64
331×*-commutative_binary64
316×fma-def_binary64
Counts
124 → 130
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01571461
13701233
211431194
325101139
442821109
547461109
649591109
749121109

prune594.0ms (2.6%)

Pruning

12 alts after pruning (11 fresh and 1 done)

PrunedKeptTotal
New1960196
Fresh01111
Picked011
Done000
Total19612208
Error
0.0b
Counts
208 → 12
Alt Table
StatusErrorProgram
7.4b
(atan2.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))) (cbrt.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)))) (cbrt.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
42.2b
(atan2.f64 (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (cos.f64 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
3.5b
(atan2.f64 (*.f64 (-.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda1)) (sin.f64 lambda1)) (*.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda2)) (cos.f64 lambda2)))) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (+.f64 (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (*.f64 (sin.f64 lambda1) (*.f64 (cbrt.f64 (cos.f64 lambda2)) (cbrt.f64 (cos.f64 lambda2)))) (cbrt.f64 (cos.f64 lambda2))) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (+.f64 (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
2.0b
(atan2.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (+.f64 (log.f64 (exp.f64 (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))))) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
12.6b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2))) (*.f64 (sin.f64 phi1) (cos.f64 phi2))) (*.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 (-.f64 lambda1 lambda2))) (cos.f64 (-.f64 lambda1 lambda2)))))))
7.3b
(atan2.f64 (*.f64 (*.f64 (cbrt.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cbrt.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))) (*.f64 (cbrt.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (+.f64 (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cbrt.f64 (*.f64 (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda1)) (sin.f64 lambda1)) (*.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda2)) (sin.f64 lambda2))))))))
13.3b
(atan2.f64 (/.f64 (*.f64 (-.f64 (pow.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) 3) (pow.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) 3)) (cos.f64 phi2)) (+.f64 (*.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (cos.f64 lambda2))) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
25.5b
(atan2.f64 (*.f64 (+.f64 (*.f64 (sin.f64 lambda1) (cos.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2))) (cbrt.f64 lambda2)))) (*.f64 (cos.f64 lambda1) (sin.f64 (*.f64 (neg.f64 (*.f64 (cbrt.f64 lambda2) (cbrt.f64 lambda2))) (cbrt.f64 lambda2))))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
12.3b
(atan2.f64 (*.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (*.f64 (cbrt.f64 (cos.f64 phi2)) (cbrt.f64 (cos.f64 phi2)))) (cbrt.f64 (cos.f64 phi2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
10.9b
(atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (sin.f64 lambda2) (cos.f64 lambda1)))) 3)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
Compiler

Compiled 13150 to 2376 computations (81.9% saved)

regimes3.0s (13%)

Accuracy

Total 0.1b remaining (60.2%)

Threshold costs 0.1b (60.2%)

Counts
266 → 1
Compiler

Compiled 71164 to 40567 computations (43% saved)

simplify6.0ms (0%)

Algorithm
egg-herbie
Rules
23×*-commutative_binary64
15×+-commutative_binary64
14×sub-neg_binary64
12×neg-sub0_binary64
12×neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03293
15193
26893
39393
411993
513493
614393
714693
814693

end312.0ms (1.4%)

Compiler

Compiled 766 to 376 computations (50.9% saved)

Profiling

Loading profile data...