Details

Time bar (total: 18.2s)

analyze2.8s (15.3%)

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
9.4%90.4%0.2%9
9.4%90.4%0.2%10
10.9%88.9%0.2%11
10.9%88.9%0.2%12
10.9%88.9%0.2%13
10.9%88.9%0.2%14
Compiler

Compiled 25 to 15 computations (40% saved)

sample8.4s (46.3%)

Results
6.0s4643×body1024valid
1.4s1756×body512valid
384.0ms745×body256valid
307.0ms118×body2048valid
250.0ms994×body128valid
Compiler

Compiled 74 to 44 computations (40.5% saved)

simplify37.0ms (0.2%)

Algorithm
egg-herbie
Rules
284×fma-def_binary64
141×fma-neg_binary64
44×distribute-rgt-in_binary64
38×cancel-sign-sub-inv_binary64
37×sub-neg_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01532
12130
22830
33530
44230
56830
69830
713230
817630
922030
1028830
1131030
1234630
1339330
1440330
1542130
1644230
1744930
1847030
1947830
2048030
2145330

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.5b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
Compiler

Compiled 137 to 71 computations (48.2% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2)))
0.5b
(+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))
3.9b
(sin.f64 (-.f64 lambda1 lambda2))
4.0b
(cos.f64 (-.f64 lambda1 lambda2))

series55.0ms (0.3%)

Counts
4 → 76
Calls

4 calls:

30.0ms
(+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))
16.0ms
(*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2)))
4.0ms
(cos.f64 (-.f64 lambda1 lambda2))
4.0ms
(sin.f64 (-.f64 lambda1 lambda2))

rewrite218.0ms (1.2%)

Algorithm
egg-rewrite
Rules
52×egg
50×egg
30×egg
26×egg
Counts
4 → 158
Calls

4 calls:

65.0ms
(+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))
53.0ms
(*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2)))
49.0ms
(cos.f64 (-.f64 lambda1 lambda2))
47.0ms
(sin.f64 (-.f64 lambda1 lambda2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
056
11166
215766
350536
056
11166
215666
350036
01116
124914
2343314
3500214
0811
117411
2224911
3649911

simplify85.0ms (0.5%)

Algorithm
egg-herbie
Rules
857×cancel-sign-sub-inv_binary64
740×fma-def_binary64
563×sub-neg_binary64
293×distribute-rgt-neg-in_binary64
269×distribute-lft-neg-in_binary64
Counts
234 → 239
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01601717
15121606
216581470
342181466
450881466

prune363.0ms (2%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New22811239
Fresh101
Picked101
Done000
Total23011241
Error
0.4b
Counts
241 → 11
Alt Table
StatusErrorProgram
0.9b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (pow.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) 3)) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))))
1.5b
(+.f64 lambda1 (atan2.f64 (+.f64 (*.f64 (cos.f64 phi2) (sin.f64 (neg.f64 lambda2))) (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 (neg.f64 lambda2)) lambda1))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (log1p.f64 (expm1.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (pow.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) 3))))
0.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (log.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
3.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (-.f64 (pow.f64 (cos.f64 phi1) 2) (pow.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) 2)) (/.f64 1 (-.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))))
6.5b
(+.f64 lambda1 (atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) 3)) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (+.f64 (pow.f64 (cos.f64 phi1) 3) (pow.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) 3)) (/.f64 1 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) (-.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) (cos.f64 phi1)) (pow.f64 (cos.f64 phi1) 2))))))
0.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (pow.f64 (cbrt.f64 (cos.f64 phi2)) 2)) (cbrt.f64 (cos.f64 phi2))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
30.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (+.f64 (sin.f64 (-.f64 lambda1 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))))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
Compiler

Compiled 8225 to 2112 computations (74.3% saved)

localize26.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
0.2b
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
0.6b
(+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))
3.9b
(sin.f64 (-.f64 lambda1 lambda2))

series78.0ms (0.4%)

Counts
3 → 104
Calls

3 calls:

57.0ms
(+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))
11.0ms
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
9.0ms
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))

rewrite225.0ms (1.2%)

Algorithm
egg-rewrite
Rules
40×egg
35×egg
19×egg
Counts
3 → 94
Calls

3 calls:

78.0ms
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
78.0ms
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
66.0ms
(+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01526
130914
2387614
3501114
068
11238
215448
348898
450618
01939
139927
2486227
3676227

simplify139.0ms (0.8%)

Algorithm
egg-herbie
Rules
761×fma-neg_binary64
733×cancel-sign-sub-inv_binary64
638×associate-*r*_binary64
614×associate-*l*_binary64
207×distribute-rgt-neg-in_binary64
Counts
198 → 144
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01493693
14833419
215733344
342263342
449923342
549763342

prune379.0ms (2.1%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New2043207
Fresh3710
Picked101
Done000
Total20810218
Error
0.1b
Counts
218 → 10
Alt Table
StatusErrorProgram
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))
0.9b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (pow.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) 3)) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
0.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (log.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
3.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (-.f64 (pow.f64 (cos.f64 phi1) 2) (pow.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) 2)) (/.f64 1 (-.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (cos.f64 lambda2) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))))
30.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (+.f64 (sin.f64 (-.f64 lambda1 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))))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
10.9b
(+.f64 lambda1 (log.f64 (exp.f64 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (pow.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) 3))))
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (+.f64 (pow.f64 (cos.f64 phi1) 3) (pow.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) 3)) (/.f64 1 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) (-.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) (cos.f64 phi1)) (pow.f64 (cos.f64 phi1) 2))))))
0.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (pow.f64 (cbrt.f64 (cos.f64 phi2)) 2)) (cbrt.f64 (cos.f64 phi2))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
Compiler

Compiled 8079 to 2029 computations (74.9% saved)

localize24.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (cos.f64 lambda2) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))))
0.2b
(atan2.f64 (*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (cos.f64 lambda2) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
0.2b
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
0.6b
(+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))

series51.0ms (0.3%)

Counts
2 → 84
Calls

2 calls:

37.0ms
(*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (cos.f64 lambda2) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))))
15.0ms
(atan2.f64 (*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (cos.f64 lambda2) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))

rewrite170.0ms (0.9%)

Algorithm
egg-rewrite
Rules
35×egg
19×egg
Counts
2 → 54
Calls

2 calls:

89.0ms
(*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (cos.f64 lambda2) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))))
79.0ms
(atan2.f64 (*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (cos.f64 lambda2) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda1) (cos.f64 lambda2) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02051
141637
2476637
3641637
01323
126021
2289611
3482811
4562711

simplify109.0ms (0.6%)

Algorithm
egg-herbie
Rules
562×fma-def_binary64
537×distribute-rgt-neg-in_binary64
503×distribute-lft-neg-in_binary64
484×associate-*l*_binary64
474×associate-*r*_binary64
Counts
138 → 81
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01033417
13023413
29743372
337303372
451383372

prune424.0ms (2.3%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New2032205
Fresh279
Picked101
Done000
Total2069215
Error
0.1b
Counts
215 → 9
Alt Table
StatusErrorProgram
0.9b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (pow.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) 3)) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
10.9b
(+.f64 lambda1 (log.f64 (exp.f64 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (cos.f64 lambda2) (neg.f64 (*.f64 (sin.f64 lambda2) (cos.f64 lambda1))))) (fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (pow.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) 3))))
3.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (-.f64 (pow.f64 (cos.f64 phi1) 2) (pow.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) 2)) (/.f64 1 (-.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))))
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (+.f64 (pow.f64 (cos.f64 phi1) 3) (pow.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) 3)) (/.f64 1 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) (-.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) (cos.f64 phi1)) (pow.f64 (cos.f64 phi1) 2))))))
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (cos.f64 lambda2) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))) (log.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
0.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (pow.f64 (cbrt.f64 (cos.f64 phi2)) 2)) (cbrt.f64 (cos.f64 phi2))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
30.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (+.f64 (sin.f64 (-.f64 lambda1 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))))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
Compiler

Compiled 8471 to 2053 computations (75.8% saved)

localize23.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series108.0ms (0.6%)

Counts
3 → 84
Calls

3 calls:

58.0ms
(fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))
37.0ms
(*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (cos.f64 lambda2) (neg.f64 (*.f64 (sin.f64 lambda2) (cos.f64 lambda1)))))
13.0ms
(atan2.f64 (*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (cos.f64 lambda2) (neg.f64 (*.f64 (sin.f64 lambda2) (cos.f64 lambda1))))) (fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1)))

rewrite189.0ms (1%)

Algorithm
egg-rewrite
Rules
39×egg
25×egg
19×egg
Counts
3 → 83
Calls

3 calls:

73.0ms
(atan2.f64 (*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (cos.f64 lambda2) (neg.f64 (*.f64 (sin.f64 lambda2) (cos.f64 lambda1))))) (fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1)))
57.0ms
(*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (cos.f64 lambda2) (neg.f64 (*.f64 (sin.f64 lambda2) (cos.f64 lambda1)))))
57.0ms
(fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01424
127914
2333914
3523514
01949
139247
2473347
3528547
01323
126711
2307111
3572911

simplify76.0ms (0.4%)

Algorithm
egg-herbie
Rules
532×associate--l+_binary64
329×associate-+r+_binary64
316×associate--r+_binary64
273×fma-neg_binary64
242×distribute-rgt-neg-in_binary64
Counts
167 → 138
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01762778
15772679
219902488
350212488

prune482.0ms (2.7%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New1890189
Fresh088
Picked011
Done000
Total1899198
Error
0.1b
Counts
198 → 9
Alt Table
StatusErrorProgram
0.9b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (pow.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) 3)) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
10.9b
(+.f64 lambda1 (log.f64 (exp.f64 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (cos.f64 lambda2) (neg.f64 (*.f64 (sin.f64 lambda2) (cos.f64 lambda1))))) (fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (pow.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) 3))))
3.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (-.f64 (pow.f64 (cos.f64 phi1) 2) (pow.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) 2)) (/.f64 1 (-.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))))
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (+.f64 (pow.f64 (cos.f64 phi1) 3) (pow.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) 3)) (/.f64 1 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) (-.f64 (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))) (cos.f64 phi1)) (pow.f64 (cos.f64 phi1) 2))))))
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (cos.f64 lambda2) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))) (log.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
0.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (pow.f64 (cbrt.f64 (cos.f64 phi2)) 2)) (cbrt.f64 (cos.f64 phi2))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
30.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (+.f64 (sin.f64 (-.f64 lambda1 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))))) (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2))))))
Compiler

Compiled 7542 to 1693 computations (77.6% saved)

regimes3.5s (19.1%)

Accuracy

Total 0.1b remaining (49.3%)

Threshold costs 0.1b (49.3%)

Counts
299 → 1
Compiler

Compiled 67452 to 39826 computations (41% saved)

simplify3.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02354
13854
24654
35154
45354
55254

end216.0ms (1.2%)

Compiler

Compiled 389 to 214 computations (45% saved)

Profiling

Loading profile data...