Details

Time bar (total: 15.5s)

analyze2.7s (17.2%)

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)

sample310.0ms (2%)

Algorithm
intervals
Results
145.0ms149×body1024valid
34.0ms58×body512valid
5.0ms17×body256valid
5.0ms31×body128valid
2.0msbody2048valid
Compiler

Compiled 53 to 33 computations (37.7% saved)

simplify34.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.4b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.4b
(+.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.4b
(+.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)

localize14.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))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)))
0.6b
(fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))
3.7b
(sin.f64 (-.f64 lambda1 lambda2))
3.8b
(cos.f64 (-.f64 lambda1 lambda2))

series48.0ms (0.3%)

Counts
4 → 64
Calls

4 calls:

31.0ms
(fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))
9.0ms
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)))
4.0ms
(cos.f64 (-.f64 lambda1 lambda2))
4.0ms
(sin.f64 (-.f64 lambda1 lambda2))

rewrite13.0ms (0.1%)

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

4 calls:

4.0ms
(cos.f64 (-.f64 lambda1 lambda2))
4.0ms
(sin.f64 (-.f64 lambda1 lambda2))
0.0ms
(fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))
0.0ms
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)))

simplify125.0ms (0.8%)

Algorithm
egg-herbie
Rules
633×cancel-sign-sub-inv_binary64
596×fma-def_binary64
520×sub-neg_binary64
381×*-commutative_binary64
340×unsub-neg_binary64
Counts
129 → 149
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02823217
15222562
215342368
338552292
445872292
549282292

prune207.0ms (1.3%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New13910149
Fresh101
Picked101
Done000
Total14110151
Error
0.2b
Counts
151 → 10
Alt Table
StatusErrorProgram
4.8b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (cbrt.f64 (*.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (sin.f64 (-.f64 lambda1 lambda2))) (sin.f64 (-.f64 lambda1 lambda2))))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
0.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 lambda1 (+.f64 (cos.f64 lambda2) (*.f64 (*.f64 1/2 (sin.f64 lambda2)) lambda1))) (sin.f64 lambda2))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
0.4b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (pow.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1)) 3))))
36.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (sin.f64 lambda1) (cos.f64 (*.f64 (neg.f64 (sqrt.f64 lambda2)) (sqrt.f64 lambda2)))) (*.f64 (cos.f64 lambda1) (sin.f64 (*.f64 (neg.f64 (sqrt.f64 lambda2)) (sqrt.f64 lambda2)))))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
0.4b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi2) (expm1.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))))
32.3b
(+.f64 lambda1 (*.f64 (sqrt.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)))) (sqrt.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.8b
(+.f64 lambda1 (*.f64 (*.f64 (cbrt.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)))) (cbrt.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))))) (cbrt.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.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (*.f64 (*.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2)))) (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
0.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (*.f64 (cbrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (cbrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)))) (cbrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
0.4b
(+.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))))))
Compiler

Compiled 5671 to 1527 computations (73.1% saved)

localize19.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))
0.6b
(fma.f64 (cos.f64 phi2) (expm1.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))
3.7b
(sin.f64 (-.f64 lambda1 lambda2))
3.8b
(cos.f64 (-.f64 lambda1 lambda2))

series590.0ms (3.8%)

Counts
2 → 72
Calls

2 calls:

559.0ms
(log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))
31.0ms
(fma.f64 (cos.f64 phi2) (expm1.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))

rewrite1.0ms (0%)

Algorithm
rewrite-expression-head
Rules
expm1-log1p-u_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
2 → 21
Calls

2 calls:

0.0ms
(fma.f64 (cos.f64 phi2) (expm1.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))
0.0ms
(log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))

simplify59.0ms (0.4%)

Algorithm
egg-herbie
Rules
909×times-frac_binary64
531×fma-def_binary64
440×cancel-sign-sub-inv_binary64
137×sub-neg_binary64
125×associate-*r*_binary64
Counts
93 → 80
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01741927
15151850
218421754
350201754

prune310.0ms (2%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1593162
Fresh369
Picked101
Done000
Total1639172
Error
0.2b
Counts
172 → 9
Alt Table
StatusErrorProgram
0.8b
(+.f64 lambda1 (*.f64 (*.f64 (cbrt.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)))) (cbrt.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))))) (cbrt.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))))))
4.8b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (cbrt.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 3))) (fma.f64 (cos.f64 phi2) (expm1.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))))
26.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi2) (expm1.f64 (*.f64 (sqrt.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (sqrt.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))))) (cos.f64 phi1))))
32.3b
(+.f64 lambda1 (*.f64 (sqrt.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)))) (sqrt.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.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (*.f64 (*.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2)))) (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
0.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (*.f64 (cbrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (cbrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)))) (cbrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
0.4b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (pow.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1)) 3))))
0.4b
(+.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))))))
0.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 lambda1 (+.f64 (cos.f64 lambda2) (*.f64 (*.f64 1/2 (sin.f64 lambda2)) lambda1))) (sin.f64 lambda2))) (fma.f64 (cos.f64 phi2) (expm1.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))))
Compiler

Compiled 6546 to 1986 computations (69.7% saved)

localize38.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))
0.8b
(log.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
3.7b
(sin.f64 (-.f64 lambda1 lambda2))
3.8b
(cos.f64 (-.f64 lambda1 lambda2))

series30.0ms (0.2%)

Counts
1 → 48
Calls

1 calls:

30.0ms
(log.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))

rewrite3.0ms (0%)

Algorithm
rewrite-expression-head
Rules
log-prod_binary64
log-pow_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
exp-prod_binary64
Counts
1 → 18
Calls

1 calls:

2.0ms
(log.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))

simplify71.0ms (0.5%)

Algorithm
egg-herbie
Rules
884×fma-neg_binary64
493×distribute-rgt-neg-in_binary64
361×associate-*r*_binary64
360×cancel-sign-sub-inv_binary64
332×fma-def_binary64
Counts
66 → 65
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01201364
12991293
28921239
331201227
450531227

prune416.0ms (2.7%)

Pruning

10 alts after pruning (9 fresh and 1 done)

PrunedKeptTotal
New1935198
Fresh448
Picked011
Done000
Total19710207
Error
0.2b
Counts
207 → 10
Alt Table
StatusErrorProgram
0.8b
(+.f64 lambda1 (*.f64 (*.f64 (cbrt.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)))) (cbrt.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))))) (cbrt.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))))))
4.8b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (cbrt.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 3))) (fma.f64 (cos.f64 phi2) (expm1.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))))
26.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi2) (expm1.f64 (*.f64 (sqrt.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (sqrt.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))))) (cos.f64 phi1))))
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))))
0.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1)))))) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1))))))))
14.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (sqrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (log.f64 (exp.f64 (sqrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))))
0.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (cbrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (log.f64 (exp.f64 (*.f64 (cbrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (cbrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)))))))))
0.4b
(+.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))))))
0.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 lambda1 (+.f64 (cos.f64 lambda2) (*.f64 (*.f64 1/2 (sin.f64 lambda2)) lambda1))) (sin.f64 lambda2))) (fma.f64 (cos.f64 phi2) (expm1.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))))
14.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (exp.f64 (log.f64 (log.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))))
Compiler

Compiled 7351 to 2068 computations (71.9% saved)

localize21.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))
1.2b
(log.f64 (sqrt.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)))))
3.7b
(sin.f64 (-.f64 lambda1 lambda2))
3.8b
(cos.f64 (-.f64 lambda1 lambda2))

series1.5s (9.4%)

Counts
1 → 48
Calls

1 calls:

1.5s
(log.f64 (sqrt.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)))))

rewrite4.0ms (0%)

Algorithm
rewrite-expression-head
Rules
log-prod_binary64
log-pow_binary64
sqrt-prod_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
Counts
1 → 23
Calls

1 calls:

2.0ms
(log.f64 (sqrt.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)))))

simplify88.0ms (0.6%)

Algorithm
egg-herbie
Rules
391×fma-neg_binary64
360×times-frac_binary64
347×associate-/l*_binary64
347×cancel-sign-sub-inv_binary64
282×associate-/r*_binary64
Counts
71 → 71
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02072576
15212109
218722068
348132068
449962068

prune793.0ms (5.1%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New3671368
Fresh178
Picked011
Done011
Total36810378
Error
0.2b
Counts
378 → 10
Alt Table
StatusErrorProgram
0.8b
(+.f64 lambda1 (*.f64 (*.f64 (cbrt.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)))) (cbrt.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))))) (cbrt.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))))))
4.8b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (cbrt.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 3))) (fma.f64 (cos.f64 phi2) (expm1.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))))
26.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi2) (expm1.f64 (*.f64 (sqrt.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (sqrt.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))))) (cos.f64 phi1))))
0.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))) (log.f64 (sqrt.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))))
0.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1)))))) (log.f64 (cbrt.f64 (exp.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1))))))))
0.4b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (+.f64 (log.f64 (sqrt.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))) (*.f64 1/2 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1))))))
14.5b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (sqrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (log.f64 (exp.f64 (sqrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))))
0.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (cbrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (log.f64 (exp.f64 (*.f64 (cbrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (cbrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)))))))))
0.4b
(+.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))))))
0.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 lambda1 (+.f64 (cos.f64 lambda2) (*.f64 (*.f64 1/2 (sin.f64 lambda2)) lambda1))) (sin.f64 lambda2))) (fma.f64 (cos.f64 phi2) (expm1.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))))
Compiler

Compiled 19205 to 4089 computations (78.7% saved)

regimes1.6s (10%)

Accuracy

Total 0.1b remaining (15%)

Threshold costs 0.1b (15%)

Counts
180 → 1
Compiler

Compiled 41069 to 22683 computations (44.8% saved)

simplify4.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
02246
13346
24646
35446
45946
56046
66046

end1.0ms (0%)

Compiler

Compiled 32 to 21 computations (34.4% saved)

sample6.6s (42.7%)

Algorithm
intervals
Results
4.4s4438×body1024valid
934.0ms1774×body512valid
250.0ms112×body2048valid
238.0ms738×body256valid
147.0ms938×body128valid
Compiler

Compiled 447 to 219 computations (51% saved)

Profiling

Loading profile data...