Details

Time bar (total: 21.0s)

analyze3.6s (17%)

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)

sample11.2s (53.4%)

Results
8.8s5527×body1024valid
1.2s1341×body512valid
666.0ms187×body2048valid
243.0ms796×body128valid
235.0ms405×body256valid
Compiler

Compiled 86 to 53 computations (38.4% saved)

simplify23.0ms (0.1%)

Algorithm
egg-herbie
Rules
543×fma-def_binary64
194×fma-neg_binary64
85×cancel-sign-sub-inv_binary64
59×distribute-rgt-neg-in_binary64
47×distribute-rgt-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01839
13239
26739
313239
420939
532239
650139
766639
890339
9136139
10152239
11154839
Stop Event
saturated
Counts
1 → 2

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
15.3b
Counts
3 → 2
Alt Table
StatusErrorProgram
15.3b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
15.3b
(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 164 to 89 computations (45.7% saved)

localize21.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1)))
0.2b
(fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2)))
3.8b
(cos.f64 (-.f64 lambda1 lambda2))
3.8b
(sin.f64 (-.f64 lambda1 lambda2))

series69.0ms (0.3%)

Counts
4 → 88
Calls

4 calls:

51.0ms
(fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2)))
11.0ms
(*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1)))
4.0ms
(sin.f64 (-.f64 lambda1 lambda2))
3.0ms
(cos.f64 (-.f64 lambda1 lambda2))

rewrite72.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
758×prod-diff_binary64
180×add-sqr-sqrt_binary64
167×log1p-expm1-u_binary64
167×expm1-log1p-u_binary64
166×add-cbrt-cube_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01648
133844
2447344
Stop Event
node limit
Counts
4 → 116
Calls

4 calls:

69.0ms
(*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1)))
69.0ms
(fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2)))
69.0ms
(cos.f64 (-.f64 lambda1 lambda2))
69.0ms
(sin.f64 (-.f64 lambda1 lambda2))

simplify47.0ms (0.2%)

Algorithm
egg-herbie
Rules
683×cancel-sign-sub-inv_binary64
458×*-commutative_binary64
352×fma-neg_binary64
245×distribute-rgt-neg-in_binary64
221×associate-*r*_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01792152
15932122
219611995
Stop Event
node limit
Counts
204 → 197

prune342.0ms (1.6%)

Pruning

18 alts after pruning (18 fresh and 0 done)

PrunedKeptTotal
New17918197
Fresh101
Picked101
Done000
Total18118199
Error
7.1b
Counts
199 → 18
Alt Table
StatusErrorProgram
15.3b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (fma.f64 (/.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)))))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
7.3b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
39.7b
(atan2.f64 (*.f64 (pow.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) 2) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
39.8b
(atan2.f64 (*.f64 (+.f64 (fma.f64 1 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (fma.f64 (neg.f64 (sqrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (sqrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
34.4b
(atan2.f64 (*.f64 (sin.f64 lambda1) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
29.9b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (fma.f64 (pow.f64 (sqrt.f64 (cos.f64 (-.f64 lambda1 lambda2))) 2) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
27.7b
(atan2.f64 (*.f64 (-.f64 (fma.f64 (cos.f64 lambda2) lambda1 (*.f64 (*.f64 lambda1 lambda1) (-.f64 (*.f64 1/2 (sin.f64 lambda2)) (*.f64 lambda1 (*.f64 (cos.f64 lambda2) 1/6))))) (sin.f64 lambda2)) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
12.8b
(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)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
26.0b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) lambda1) (sin.f64 lambda2)) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
18.9b
(atan2.f64 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 3)) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
34.9b
(atan2.f64 (*.f64 (sin.f64 (neg.f64 lambda2)) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
21.8b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (fma.f64 (sin.f64 phi2) (cos.f64 phi1) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))))))
15.3b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (fma.f64 (-.f64 (exp.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) 1) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
7.4b
(atan2.f64 (*.f64 (+.f64 (fma.f64 (cos.f64 lambda2) (sin.f64 lambda1) (neg.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
7.6b
(atan2.f64 (*.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 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
7.5b
(atan2.f64 (*.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)))) (fma.f64 (neg.f64 (sin.f64 lambda2)) (cos.f64 lambda1) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
37.4b
(atan2.f64 (*.f64 (sqrt.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 2)) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
29.0b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (fma.f64 (-.f64 (fma.f64 lambda2 (sin.f64 lambda1) (cos.f64 lambda1)) (*.f64 (*.f64 lambda2 lambda2) (+.f64 (*.f64 lambda2 (*.f64 1/6 (sin.f64 lambda1))) (*.f64 1/2 (cos.f64 lambda1))))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
Compiler

Compiled 8623 to 2122 computations (75.4% saved)

localize27.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1)))
0.2b
(*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))
0.2b
(fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2)))
3.8b
(cos.f64 (-.f64 lambda1 lambda2))

series35.0ms (0.2%)

Counts
1 → 36
Calls

1 calls:

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

rewrite55.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
461×fma-def_binary64
256×expm1-udef_binary64
256×log1p-udef_binary64
222×fma-neg_binary64
142×add-sqr-sqrt_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01323
127523
2361023
Stop Event
node limit
Counts
1 → 55
Calls

1 calls:

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

simplify44.0ms (0.2%)

Algorithm
egg-herbie
Rules
546×fma-def_binary64
466×associate-*l*_binary64
463×associate-*r*_binary64
409×sub-neg_binary64
329×cancel-sign-sub-inv_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0931065
12981061
210221020
347651020
Stop Event
node limit
Counts
91 → 81

prune498.0ms (2.4%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2059214
Fresh13417
Picked101
Done000
Total21913232
Error
0.1b
Counts
232 → 13
Alt Table
StatusErrorProgram
7.4b
(atan2.f64 (*.f64 (+.f64 (fma.f64 (cos.f64 lambda2) (sin.f64 lambda1) (neg.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
7.3b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (-.f64 (exp.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) 1) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
13.8b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (sin.f64 phi2) (cos.f64 phi1) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (/.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)))))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
30.0b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (expm1.f64 (log1p.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (/.f64 (-.f64 (*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) (*.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)))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
7.5b
(atan2.f64 (fma.f64 (pow.f64 (cbrt.f64 (cos.f64 phi2)) 2) (*.f64 (cbrt.f64 (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (fma.f64 (cos.f64 lambda1) (neg.f64 (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
29.9b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (fma.f64 (pow.f64 (sqrt.f64 (cos.f64 (-.f64 lambda1 lambda2))) 2) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
30.0b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (cbrt.f64 (pow.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (cos.f64 phi1) (sin.f64 phi2))) 3)))
7.6b
(atan2.f64 (*.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 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
7.6b
(atan2.f64 (fma.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))) (pow.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))) 2) (*.f64 (fma.f64 (cos.f64 lambda1) (neg.f64 (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
18.9b
(atan2.f64 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 3)) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (+.f64 (fma.f64 (cos.f64 lambda1) (cos.f64 (neg.f64 lambda2)) (neg.f64 (*.f64 (sin.f64 (neg.f64 lambda2)) (sin.f64 lambda1)))) (fma.f64 (neg.f64 (sin.f64 (neg.f64 lambda2))) (sin.f64 lambda1) (*.f64 (sin.f64 (neg.f64 lambda2)) (sin.f64 lambda1)))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
Compiler

Compiled 10288 to 2087 computations (79.7% saved)

localize39.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
0.3b
(pow.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) 3)
0.4b
(*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)))
0.5b
(pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 3)

series87.0ms (0.4%)

Counts
4 → 96
Calls

4 calls:

24.0ms
(pow.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) 3)
24.0ms
(pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 3)
20.0ms
(*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)))
19.0ms
(*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))

rewrite58.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
638×prod-diff_binary64
244×log1p-udef_binary64
149×associate-*r*_binary64
141×add-sqr-sqrt_binary64
139×log1p-expm1-u_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01444
130244
2374944
Stop Event
node limit
Counts
4 → 104
Calls

4 calls:

56.0ms
(*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
56.0ms
(pow.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) 3)
56.0ms
(*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)))
56.0ms
(pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 3)

simplify46.0ms (0.2%)

Algorithm
egg-herbie
Rules
597×cancel-sign-sub-inv_binary64
352×unswap-sqr_binary64
350×fma-neg_binary64
337×distribute-rgt-neg-in_binary64
319×distribute-lft-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01421934
14651891
219521730
Stop Event
node limit
Counts
200 → 165

prune710.0ms (3.4%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New1596165
Fresh4812
Picked101
Done000
Total16414178
Error
0.1b
Counts
178 → 14
Alt Table
StatusErrorProgram
13.8b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (sin.f64 phi2) (cos.f64 phi1) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 3) (log.f64 (exp.f64 (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)))))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (/.f64 (+.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 4)) (*.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) 2) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)))) (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)))))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
30.0b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (expm1.f64 (log1p.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))))
7.4b
(atan2.f64 (*.f64 (+.f64 (fma.f64 (cos.f64 lambda2) (sin.f64 lambda1) (neg.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
30.0b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (cbrt.f64 (pow.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (cos.f64 phi1) (sin.f64 phi2))) 3)))
7.6b
(atan2.f64 (*.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 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
26.6b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 3) (*.f64 (pow.f64 (sqrt.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) 3) (pow.f64 (sqrt.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)))))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
7.6b
(atan2.f64 (fma.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))) (pow.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))) 2) (*.f64 (fma.f64 (cos.f64 lambda1) (neg.f64 (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
7.5b
(atan2.f64 (fma.f64 (pow.f64 (cbrt.f64 (cos.f64 phi2)) 2) (*.f64 (cbrt.f64 (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (fma.f64 (cos.f64 lambda1) (neg.f64 (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 3) (pow.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) 3)) (+.f64 (log.f64 (exp.f64 (pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 2))) (-.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)))))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (/.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 (pow.f64 (sin.f64 lambda1) 2) (pow.f64 (sin.f64 lambda2) 2)) (*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
18.9b
(atan2.f64 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 3)) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (/.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 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) 2))) 1) (*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
Compiler

Compiled 16016 to 3447 computations (78.5% saved)

localize44.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (sin.f64 lambda2) 2)
0.3b
(pow.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) 3)
0.4b
(*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)))
0.5b
(pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 3)

series3.0ms (0%)

Counts
1 → 4
Calls

1 calls:

3.0ms
(pow.f64 (sin.f64 lambda2) 2)

rewrite30.0ms (0.1%)

Algorithm
batch-egg-rewrite
Rules
375×log1p-expm1-u_binary64
375×expm1-log1p-u_binary64
335×pow1_binary64
216×unpow-prod-down_binary64
188×log-prod_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056
11016
210806
Stop Event
node limit
Counts
1 → 34
Calls

1 calls:

29.0ms
(pow.f64 (sin.f64 lambda2) 2)

simplify28.0ms (0.1%)

Algorithm
egg-herbie
Rules
474×distribute-rgt-neg-in_binary64
428×associate-*l*_binary64
423×distribute-lft-neg-in_binary64
413×unswap-sqr_binary64
353×distribute-rgt-out--_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02168
15560
215458
352758
4299558
Stop Event
node limit
Counts
38 → 42

prune757.0ms (3.6%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New1684172
Fresh4913
Picked101
Done000
Total17313186
Error
0.1b
Counts
186 → 13
Alt Table
StatusErrorProgram
7.6b
(atan2.f64 (fma.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))) (pow.f64 (cbrt.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))) 2) (*.f64 (fma.f64 (cos.f64 lambda1) (neg.f64 (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 3) (log.f64 (exp.f64 (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 (pow.f64 (sin.f64 lambda1) 2) (pow.f64 (sin.f64 lambda2) 2)) (*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 3) (expm1.f64 (log1p.f64 (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 (pow.f64 (sin.f64 lambda1) 2) (pow.f64 (sin.f64 lambda2) 2)) (*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
18.9b
(atan2.f64 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 3)) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
7.4b
(atan2.f64 (*.f64 (+.f64 (fma.f64 (cos.f64 lambda2) (sin.f64 lambda1) (neg.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
30.0b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (cbrt.f64 (pow.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (cos.f64 phi1) (sin.f64 phi2))) 3)))
7.6b
(atan2.f64 (*.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 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))))) (cos.f64 phi2)) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
13.8b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (sin.f64 phi2) (cos.f64 phi1) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))))))
30.0b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (expm1.f64 (log1p.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (/.f64 (+.f64 (*.f64 (*.f64 (pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 2) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) 2)) (cbrt.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)))) (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 (pow.f64 (sin.f64 lambda1) 2) (pow.f64 (sin.f64 lambda2) 2)) (*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
7.5b
(atan2.f64 (fma.f64 (pow.f64 (cbrt.f64 (cos.f64 phi2)) 2) (*.f64 (cbrt.f64 (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (fma.f64 (cos.f64 lambda1) (neg.f64 (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2))) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 3) (pow.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) 3)) (+.f64 (log.f64 (exp.f64 (pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 2))) (-.f64 (*.f64 (pow.f64 (sin.f64 lambda1) 2) (pow.f64 (sin.f64 lambda2) 2)) (*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
0.2b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi2)) (fma.f64 (/.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 (exp.f64 (log1p.f64 (pow.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) 2))) 1) (*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) (*.f64 (cos.f64 phi2) (neg.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (sin.f64 phi2))))
Compiler

Compiled 15223 to 4016 computations (73.6% saved)

regimes2.7s (12.9%)

Accuracy

Total 0.1b remaining (54.8%)

Threshold costs 0.1b (54.8%)

Counts
257 → 1
Compiler

Compiled 82721 to 44386 computations (46.3% saved)

simplify5.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
039122
166122
299122
3124122
4139122
5145122
6146122
Stop Event
saturated

end459.0ms (2.2%)

Compiler

Compiled 1036 to 496 computations (52.1% saved)

Profiling

Loading profile data...