Details

Time bar (total: 24.6s)

analyze3.9s (15.9%)

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.4s (50.2%)

Results
9.6s5512×body1024valid
1.3s1325×body512valid
839.0ms216×body2048valid
248.0ms806×body128valid
228.0ms397×body256valid
Compiler

Compiled 86 to 53 computations (38.4% saved)

simplify32.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.8b
Counts
3 → 1
Alt Table
StatusErrorProgram
12.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)) (cos.f64 (-.f64 lambda1 lambda2)))))
Compiler

Compiled 108 to 55 computations (49.1% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))
0.3b
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
3.1b
(cos.f64 (-.f64 lambda1 lambda2))
3.1b
(sin.f64 (-.f64 lambda1 lambda2))

series62.0ms (0.2%)

Counts
4 → 100
Calls

4 calls:

36.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
17.0ms
(*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))
4.0ms
(sin.f64 (-.f64 lambda1 lambda2))
4.0ms
(cos.f64 (-.f64 lambda1 lambda2))

rewrite74.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
289×expm1-udef_binary64
289×log1p-udef_binary64
281×fma-neg_binary64
158×add-sqr-sqrt_binary64
148×log1p-expm1-u_binary64
Counts
4 → 93
Calls

4 calls:

73.0ms
(*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))
73.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
73.0ms
(cos.f64 (-.f64 lambda1 lambda2))
73.0ms
(sin.f64 (-.f64 lambda1 lambda2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01339
128939
2391239
3509139

simplify114.0ms (0.5%)

Algorithm
egg-herbie
Rules
767×sub-neg_binary64
395×distribute-rgt-neg-in_binary64
378×fma-neg_binary64
366×distribute-lft-neg-in_binary64
323×neg-sub0_binary64
Counts
193 → 177
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01952148
15922088
219781885
344261877
449831877
556691877

prune383.0ms (1.6%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New15819177
Fresh000
Picked101
Done000
Total15919178
Error
6.7b
Counts
178 → 19
Alt Table
StatusErrorProgram
13.0b
(atan2.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))) 3) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
13.8b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (log.f64 (pow.f64 (exp.f64 (cos.f64 (-.f64 lambda1 lambda2))) (*.f64 (sin.f64 phi1) (cos.f64 phi2))))))
13.7b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2))))) 1)))
27.3b
(atan2.f64 (*.f64 (-.f64 (sin.f64 lambda1) (*.f64 lambda2 (+.f64 (cos.f64 lambda1) (*.f64 (*.f64 1/2 (sin.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)))))
12.8b
(atan2.f64 (*.f64 (log1p.f64 (expm1.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)))))
27.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) (*.f64 (cos.f64 phi2) (cos.f64 (neg.f64 lambda2)))) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 (neg.f64 lambda2)) (pow.f64 lambda1 2))))) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 (neg.f64 lambda2)) lambda1)))))))
7.2b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.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)))))
22.8b
(atan2.f64 (*.f64 (log.f64 (exp.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)))))
12.6b
(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 (pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 3) (pow.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) (-.f64 (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))))))
35.7b
(atan2.f64 (*.f64 (sqrt.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
26.1b
(atan2.f64 (*.f64 (fma.f64 (cos.f64 lambda2) lambda1 (sin.f64 (neg.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)))))
32.6b
(atan2.f64 (*.f64 (sin.f64 (neg.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)))))
11.2b
(atan2.f64 (*.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) 3) (pow.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.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)))))
12.6b
(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)) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
13.1b
(atan2.f64 (*.f64 (pow.f64 (cbrt.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)))))
40.4b
(atan2.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) 3) 1/3) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
21.4b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (sin.f64 phi1) (cos.f64 (-.f64 lambda1 lambda2)))))
15.2b
(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)))))
19.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)) (cos.f64 lambda1))))
Compiler

Compiled 7314 to 2071 computations (71.7% saved)

localize32.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
0.5b
(*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))
0.6b
(cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))
3.1b
(cos.f64 (-.f64 lambda1 lambda2))

series1.0s (4.2%)

Counts
2 → 48
Calls

2 calls:

674.0ms
(*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))
363.0ms
(cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))

rewrite48.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
642×log1p-expm1-u_binary64
642×expm1-log1p-u_binary64
356×log-prod_binary64
133×expm1-udef_binary64
133×log1p-udef_binary64
Counts
2 → 46
Calls

2 calls:

47.0ms
(*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))
47.0ms
(cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0823
115523
2169523
3517123

simplify59.0ms (0.2%)

Algorithm
egg-herbie
Rules
844×distribute-rgt-neg-in_binary64
823×distribute-lft-neg-in_binary64
482×associate-*r*_binary64
416×associate-*l*_binary64
376×fma-def_binary64
Counts
94 → 82
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0911146
12781116
2840924
33323864
45279864

prune808.0ms (3.3%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New2598267
Fresh12618
Picked101
Done000
Total27214286
Error
0.1b
Counts
286 → 14
Alt Table
StatusErrorProgram
7.2b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.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)) (expm1.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))))))
11.2b
(atan2.f64 (*.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) 3) (pow.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.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)))))
12.6b
(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)) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
0.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.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))))))
8.1b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.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 (sin.f64 phi1) (cos.f64 phi2))))))
0.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.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)) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
8.1b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2))))) 1)))
15.2b
(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.0b
(atan2.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))) 3) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
13.1b
(atan2.f64 (*.f64 (pow.f64 (cbrt.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)))))
7.3b
(atan2.f64 (*.f64 (fma.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) 2) 3) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.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)))))
40.4b
(atan2.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) 3) 1/3) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
0.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.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 (pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 3) (pow.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) (-.f64 (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))))))
11.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))) (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))))) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))))) (neg.f64 (*.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)))))
Compiler

Compiled 16016 to 3276 computations (79.5% saved)

localize35.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)))
0.3b
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
0.5b
(*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))
0.6b
(cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))

series143.0ms (0.6%)

Counts
2 → 96
Calls

2 calls:

92.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
51.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)))

rewrite71.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
779×prod-diff_binary64
184×associate-*r*_binary64
176×add-sqr-sqrt_binary64
161×add-log-exp_binary64
161×log1p-expm1-u_binary64
Counts
2 → 42
Calls

2 calls:

70.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)))
70.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01636
133336
2432336
3579936

simplify224.0ms (0.9%)

Algorithm
egg-herbie
Rules
499×associate-*r*_binary64
488×fma-neg_binary64
453×distribute-rgt-neg-in_binary64
437×distribute-lft-neg-in_binary64
318×associate-*l*_binary64
Counts
138 → 103
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02102720
16852636
223932382
349872382
449902382
550002382
649702382

prune947.0ms (3.8%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2725277
Fresh5813
Picked101
Done000
Total27813291
Error
0.0b
Counts
291 → 13
Alt Table
StatusErrorProgram
0.4b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) 3) (neg.f64 (*.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.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (cos.f64 lambda2))) (neg.f64 (*.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.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (+.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)))) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
11.2b
(atan2.f64 (*.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) 3) (pow.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.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)))))
1.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (+.f64 (log.f64 (pow.f64 (pow.f64 (exp.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.1b
(atan2.f64 (*.f64 (pow.f64 (cbrt.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)))))
8.1b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2))))) 1)))
15.2b
(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)))))
0.4b
(atan2.f64 (*.f64 (fma.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) 2) 3) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.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.0b
(atan2.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))) 3) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
12.6b
(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)) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
40.4b
(atan2.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) 3) 1/3) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
11.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))) (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))))) (log.f64 (cbrt.f64 (exp.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))))) (neg.f64 (*.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)))))
Compiler

Compiled 20364 to 3658 computations (82% saved)

localize42.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(cbrt.f64 (cos.f64 lambda2))
0.5b
(*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))
0.6b
(cbrt.f64 (sin.f64 lambda1))
0.6b
(cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))

series267.0ms (1.1%)

Counts
2 → 24
Calls

2 calls:

134.0ms
(cbrt.f64 (sin.f64 lambda1))
132.0ms
(cbrt.f64 (cos.f64 lambda2))

rewrite44.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
537×log1p-expm1-u_binary64
537×expm1-log1p-u_binary64
372×unpow-prod-down_binary64
286×log-prod_binary64
163×pow2_binary64
Counts
2 → 58
Calls

2 calls:

43.0ms
(cbrt.f64 (cos.f64 lambda2))
43.0ms
(cbrt.f64 (sin.f64 lambda1))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
112910
2142210
3522210

simplify95.0ms (0.4%)

Algorithm
egg-herbie
Rules
633×distribute-rgt-neg-in_binary64
535×distribute-lft-neg-in_binary64
505×fma-def_binary64
394×unswap-sqr_binary64
383×associate-*l*_binary64
Counts
82 → 75
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
049204
1138204
2318200
3874196
42825196
54681196
64937196
74939196

prune619.0ms (2.5%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2003203
Fresh21012
Picked101
Done000
Total20313216
Error
0.0b
Counts
216 → 13
Alt Table
StatusErrorProgram
0.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (+.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)))) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
11.2b
(atan2.f64 (*.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) 3) (pow.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.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)))))
1.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (+.f64 (log.f64 (pow.f64 (pow.f64 (exp.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.1b
(atan2.f64 (*.f64 (pow.f64 (cbrt.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)))))
0.4b
(atan2.f64 (*.f64 (fma.f64 (pow.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) 2) 3) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (cos.f64 lambda2))) (neg.f64 (*.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))))))
40.4b
(atan2.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) 3) 1/3) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
8.1b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2))))) 1)))
15.2b
(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)))))
0.4b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (pow.f64 (cbrt.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) 3) (neg.f64 (*.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.0b
(atan2.f64 (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))) 3) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
12.6b
(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)) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
1.0b
(atan2.f64 (*.f64 (fma.f64 (cbrt.f64 (*.f64 (pow.f64 (sin.f64 lambda1) 2) (pow.f64 (cos.f64 lambda2) 2))) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (cos.f64 lambda2))) (neg.f64 (*.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))))))
32.2b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (*.f64 (*.f64 (pow.f64 (sqrt.f64 (cbrt.f64 (cbrt.f64 (sin.f64 lambda1)))) 3) (pow.f64 (sqrt.f64 (cbrt.f64 (cbrt.f64 (sin.f64 lambda1)))) 3)) (cbrt.f64 (cos.f64 lambda2))) (neg.f64 (*.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))))))
Compiler

Compiled 14301 to 2444 computations (82.9% saved)

regimes2.8s (11.4%)

Accuracy

Total 0.3b remaining (72.8%)

Threshold costs 0.3b (72.8%)

Counts
280 → 1
Compiler

Compiled 89257 to 48412 computations (45.8% saved)

simplify7.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
034105
156105
271105
395105
4124105
5140105
6151105
7155105
8155105

end377.0ms (1.5%)

Compiler

Compiled 813 to 430 computations (47.1% saved)

Profiling

Loading profile data...