Details

Time bar (total: 14.9s)

analyze2.6s (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)

sample301.0ms (2%)

Algorithm
intervals
Results
142.0ms151×body1024valid
22.0ms48×body512valid
14.0msbody2048valid
8.0ms26×body256valid
4.0ms25×body128valid
Compiler

Compiled 53 to 33 computations (37.7% saved)

simplify30.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.9b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.9b
(+.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.9b
(+.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.7b
(fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))
3.0b
(sin.f64 (-.f64 lambda1 lambda2))
3.1b
(cos.f64 (-.f64 lambda1 lambda2))

series47.0ms (0.3%)

Counts
4 → 64
Calls

4 calls:

29.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)))
5.0ms
(sin.f64 (-.f64 lambda1 lambda2))
4.0ms
(cos.f64 (-.f64 lambda1 lambda2))

rewrite14.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)))

simplify127.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

prune243.0ms (1.6%)

Pruning

16 alts after pruning (16 fresh and 0 done)

PrunedKeptTotal
New13316149
Fresh101
Picked101
Done000
Total13516151
Error
0.7b
Counts
151 → 16
Alt Table
StatusErrorProgram
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
1.3b
(+.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.9b
(+.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))))))
34.5b
(+.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))))
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi2) (*.f64 (*.f64 (cbrt.f64 (cos.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cbrt.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))))
4.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (expm1.f64 (log1p.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
13.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi2) (cos.f64 lambda1) (cos.f64 phi1))))
32.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
14.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (*.f64 (*.f64 lambda2 lambda2) (*.f64 (cos.f64 lambda1) (cos.f64 phi2))) -1/2 (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 lambda2 (sin.f64 lambda1) (cos.f64 lambda1)))))))
1.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) lambda1 (sin.f64 (neg.f64 lambda2)))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
31.5b
(+.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))))))
5.7b
(+.f64 lambda1 (cbrt.f64 (pow.f64 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1))) 3)))
1.2b
(+.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))))
13.4b
(+.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))) (sqrt.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
1.2b
(+.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))))))
23.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 lambda1)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
Compiler

Compiled 5979 to 1713 computations (71.3% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.7b
(fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))
0.9b
(log.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
3.0b
(sin.f64 (-.f64 lambda1 lambda2))
3.1b
(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))))

rewrite2.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:

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

simplify60.0ms (0.4%)

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

prune472.0ms (3.2%)

Pruning

16 alts after pruning (16 fresh and 0 done)

PrunedKeptTotal
New1944198
Fresh31215
Picked101
Done000
Total19816214
Error
0.7b
Counts
214 → 16
Alt Table
StatusErrorProgram
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
1.3b
(+.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))))
4.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (expm1.f64 (log1p.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
13.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi2) (cos.f64 lambda1) (cos.f64 phi1))))
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (log.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (expm1.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))))))
1.2b
(+.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))))
1.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (log.f64 (exp.f64 (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (-.f64 (cos.f64 lambda2) (*.f64 lambda1 (-.f64 (*.f64 lambda1 (*.f64 (cos.f64 lambda2) 1/2)) (sin.f64 lambda2))))))))))
34.5b
(+.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))))
1.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) lambda1 (sin.f64 (neg.f64 lambda2)))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (log.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (*.f64 (*.f64 (cbrt.f64 (cos.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cbrt.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))))))
1.0b
(+.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))))))))
31.5b
(+.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))))))
5.7b
(+.f64 lambda1 (cbrt.f64 (pow.f64 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1))) 3)))
32.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
1.2b
(+.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))))))
23.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 lambda1)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
Compiler

Compiled 7688 to 2267 computations (70.5% saved)

localize18.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
0.7b
(fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))
3.0b
(sin.f64 (-.f64 lambda1 lambda2))
3.1b
(cos.f64 (-.f64 lambda1 lambda2))

series83.0ms (0.6%)

Counts
1 → 48
Calls

1 calls:

83.0ms
(cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))

rewrite4.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
rem-cbrt-cube_binary64
pow3_binary64
cbrt-prod_binary64
Counts
1 → 12
Calls

1 calls:

3.0ms
(cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))

simplify80.0ms (0.5%)

Algorithm
egg-herbie
Rules
878×fma-neg_binary64
493×distribute-rgt-neg-in_binary64
360×associate-*r*_binary64
360×cancel-sign-sub-inv_binary64
326×associate-*l*_binary64
Counts
60 → 53
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01011558
12811214
28601110
330611098
449981098
549711098

prune1.0s (6.8%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New3684372
Fresh21315
Picked101
Done000
Total37117388
Error
0.6b
Counts
388 → 17
Alt Table
StatusErrorProgram
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (*.f64 (*.f64 (cbrt.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1))) (cbrt.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1)))) (cbrt.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1))))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
1.3b
(+.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))))
1.2b
(+.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))))) (cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (log.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (*.f64 (*.f64 (cbrt.f64 (cos.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cbrt.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))))))
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (log.f64 (exp.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1))))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
31.5b
(+.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))))))
4.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (expm1.f64 (log1p.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (log.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (expm1.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))))))
1.2b
(+.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))))
1.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (log.f64 (exp.f64 (+.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (-.f64 (cos.f64 lambda2) (*.f64 lambda1 (-.f64 (*.f64 lambda1 (*.f64 (cos.f64 lambda2) 1/2)) (sin.f64 lambda2))))))))))
34.5b
(+.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))))
1.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) lambda1 (sin.f64 (neg.f64 lambda2)))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
1.0b
(+.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))))))))
5.7b
(+.f64 lambda1 (cbrt.f64 (pow.f64 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1))) 3)))
32.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
0.9b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (fma.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))))
1.2b
(+.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))))))
Compiler

Compiled 20246 to 4054 computations (80% saved)

localize29.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.7b
(fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))
0.7b
(fma.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))
3.0b
(sin.f64 (-.f64 lambda1 lambda2))
3.1b
(cos.f64 (-.f64 lambda1 lambda2))

series60.0ms (0.4%)

Counts
1 → 48
Calls

1 calls:

59.0ms
(fma.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))

rewrite1.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
add-exp-log_binary64
Counts
1 → 10
Calls

1 calls:

0.0ms
(fma.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))

simplify76.0ms (0.5%)

Algorithm
egg-herbie
Rules
917×fma-neg_binary64
787×fma-def_binary64
601×cancel-sign-sub-inv_binary64
536×associate-*r*_binary64
504×associate-*l*_binary64
Counts
58 → 52
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01242046
13881731
212901664
345681664
453531664

prune926.0ms (6.2%)

Pruning

17 alts after pruning (16 fresh and 1 done)

PrunedKeptTotal
New2744278
Fresh41216
Picked011
Done000
Total27817295
Error
0.6b
Counts
295 → 17
Alt Table
StatusErrorProgram
1.3b
(+.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))) (cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (fma.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))))
1.2b
(+.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))))) (cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (log.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (*.f64 (*.f64 (cbrt.f64 (cos.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cbrt.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))))))
23.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 lambda1)) (cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (fma.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))))
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (log.f64 (exp.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1))))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
31.5b
(+.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))))))
4.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (expm1.f64 (log1p.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (log.f64 (exp.f64 (fma.f64 (cos.f64 phi2) (expm1.f64 (log1p.f64 (cos.f64 (-.f64 lambda1 lambda2)))) (cos.f64 phi1))))))
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (*.f64 (*.f64 (cbrt.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1))) (cbrt.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1)))) (cbrt.f64 (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1))))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
1.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) lambda1 (sin.f64 (neg.f64 lambda2)))) (cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (fma.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))))
1.0b
(+.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))))))))
5.7b
(+.f64 lambda1 (cbrt.f64 (pow.f64 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2) (cos.f64 phi1))) 3)))
34.5b
(+.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)))))) (cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (fma.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))))
32.6b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
1.2b
(+.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.9b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (*.f64 (*.f64 (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))) (fma.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))))
1.2b
(+.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))))))
Compiler

Compiled 17485 to 3172 computations (81.9% saved)

regimes2.1s (13.8%)

Accuracy

Total 0.1b remaining (17.8%)

Threshold costs 0.1b (17.8%)

Counts
226 → 1
Compiler

Compiled 58919 to 29886 computations (49.3% saved)

simplify3.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02446
13446
23646
33746
43846
53646

end1.0ms (0%)

Compiler

Compiled 32 to 20 computations (37.5% saved)

sample6.6s (44.5%)

Algorithm
intervals
Results
4.5s4517×body1024valid
839.0ms1705×body512valid
252.0ms724×body256valid
247.0ms107×body2048valid
148.0ms947×body128valid
Compiler

Compiled 824 to 375 computations (54.5% saved)

Profiling

Loading profile data...