Details

Time bar (total: 13.7s)

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

sample298.0ms (2.2%)

Algorithm
intervals
Results
127.0ms132×body1024valid
29.0ms61×body512valid
8.0msbody2048valid
8.0ms23×body256valid
6.0ms36×body128valid
Compiler

Compiled 53 to 33 computations (37.7% saved)

simplify33.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
(*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2)))
0.5b
(fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))
2.8b
(cos.f64 (-.f64 lambda1 lambda2))
2.9b
(sin.f64 (-.f64 lambda1 lambda2))

series56.0ms (0.4%)

Counts
4 → 76
Calls

4 calls:

30.0ms
(fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))
17.0ms
(*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2)))
5.0ms
(sin.f64 (-.f64 lambda1 lambda2))
4.0ms
(cos.f64 (-.f64 lambda1 lambda2))

rewrite25.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
39×sin-sum_binary64
36×add-sqr-sqrt_binary64
36×prod-diff_binary64
34×*-un-lft-identity_binary64
34×add-cube-cbrt_binary64
Counts
4 → 102
Calls

4 calls:

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

simplify151.0ms (1.1%)

Algorithm
egg-herbie
Rules
394×fma-neg_binary64
343×distribute-rgt-neg-in_binary64
318×associate-*r*_binary64
302×distribute-lft-neg-in_binary64
294×associate-*l*_binary64
Counts
178 → 207
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
03844373
17473586
222483335
346143218
449503210
550313210

prune288.0ms (2.1%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New19611207
Fresh101
Picked101
Done000
Total19811209
Error
0.7b
Counts
209 → 11
Alt Table
StatusErrorProgram
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (cbrt.f64 (cos.f64 phi2)) (cbrt.f64 (cos.f64 phi2))) (*.f64 (cbrt.f64 (cos.f64 phi2)) (sin.f64 (-.f64 lambda1 lambda2)))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
1.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (fma.f64 (cos.f64 phi2) (+.f64 (cos.f64 lambda2) (*.f64 lambda1 (sin.f64 lambda2))) (cos.f64 phi1))))
5.6b
(+.f64 lambda1 (atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) 3)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
0.9b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 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) (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))))))
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.0b
(+.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))))
1.2b
(+.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))))
14.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) (exp.f64 (log.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) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))))
6.0b
(+.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))))))
Compiler

Compiled 8060 to 2125 computations (73.6% saved)

localize22.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series50.0ms (0.4%)

Counts
2 → 60
Calls

2 calls:

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

rewrite13.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
10×add-sqr-sqrt_binary64
associate-*r*_binary64
associate-*l*_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
Counts
2 → 48
Calls

2 calls:

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

simplify88.0ms (0.6%)

Algorithm
egg-herbie
Rules
608×sub-neg_binary64
540×cancel-sign-sub-inv_binary64
295×fma-neg_binary64
280×associate-*r*_binary64
251×distribute-rgt-neg-in_binary64
Counts
108 → 113
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02062498
15552368
219512293
343392293
452462293

prune402.0ms (2.9%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New2042206
Fresh3710
Picked101
Done000
Total2089217
Error
0.1b
Counts
217 → 9
Alt Table
StatusErrorProgram
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (fma.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))
5.6b
(+.f64 lambda1 (atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) 3)) (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))))))
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.0b
(+.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))))
1.0b
(+.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))))))
6.0b
(+.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 (*.f64 (cbrt.f64 (cos.f64 phi2)) (cbrt.f64 (cos.f64 phi2))) (*.f64 (cbrt.f64 (cos.f64 phi2)) (sin.f64 (-.f64 lambda1 lambda2)))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
6.2b
(+.f64 lambda1 (atan2.f64 (/.f64 (*.f64 (cos.f64 phi2) (-.f64 (pow.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) 3) (pow.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) 3))) (+.f64 (*.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (cos.f64 lambda2))) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
Compiler

Compiled 8370 to 2018 computations (75.9% saved)

localize24.0ms (0.2%)

Local error

Found 4 expressions with local error:

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

series74.0ms (0.5%)

Counts
2 → 56
Calls

2 calls:

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

rewrite5.0ms (0%)

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

2 calls:

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

simplify85.0ms (0.6%)

Algorithm
egg-herbie
Rules
754×cancel-sign-sub-inv_binary64
595×sub-neg_binary64
440×associate-+l+_binary64
421×associate--l+_binary64
218×distribute-rgt-neg-in_binary64
Counts
87 → 92
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01872512
15522155
218422075
345702075
452482075

prune409.0ms (3%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New2032205
Fresh178
Picked101
Done000
Total2059214
Error
0.1b
Counts
214 → 9
Alt Table
StatusErrorProgram
4.8b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (expm1.f64 (log1p.f64 (fma.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))))
6.2b
(+.f64 lambda1 (atan2.f64 (/.f64 (*.f64 (cos.f64 phi2) (-.f64 (pow.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) 3) (pow.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) 3))) (+.f64 (*.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (cos.f64 lambda2))) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 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) (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))))))
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.0b
(+.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))))
1.0b
(+.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))))))
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (cbrt.f64 (cos.f64 phi2)) (cbrt.f64 (cos.f64 phi2))) (*.f64 (cbrt.f64 (cos.f64 phi2)) (sin.f64 (-.f64 lambda1 lambda2)))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
5.6b
(+.f64 lambda1 (atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) 3)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (log1p.f64 (expm1.f64 (fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))))
Compiler

Compiled 9461 to 2064 computations (78.2% saved)

localize28.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (cos.f64 phi2) (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))
0.2b
(log1p.f64 (expm1.f64 (fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))
0.3b
(expm1.f64 (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
(fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))

series256.0ms (1.9%)

Counts
3 → 144
Calls

3 calls:

131.0ms
(expm1.f64 (fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1)))
62.0ms
(log1p.f64 (expm1.f64 (fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))
61.0ms
(fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))

rewrite2.0ms (0%)

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

3 calls:

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

simplify148.0ms (1.1%)

Algorithm
egg-herbie
Rules
753×associate-*r*_binary64
501×associate-*l*_binary64
410×fma-def_binary64
396×fma-neg_binary64
335×*-commutative_binary64
Counts
176 → 116
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03458051
111436938
246876930
350506930

prune368.0ms (2.7%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1823185
Fresh268
Picked101
Done000
Total1859194
Error
0.1b
Counts
194 → 9
Alt Table
StatusErrorProgram
0.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (log1p.f64 (*.f64 (*.f64 (cbrt.f64 (expm1.f64 (fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1)))) (cbrt.f64 (expm1.f64 (fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))) (cbrt.f64 (expm1.f64 (fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))))))
5.6b
(+.f64 lambda1 (atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 phi2) (sin.f64 (-.f64 lambda1 lambda2))) 3)) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
4.8b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (expm1.f64 (log1p.f64 (fma.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1))))))
6.2b
(+.f64 lambda1 (atan2.f64 (/.f64 (*.f64 (cos.f64 phi2) (-.f64 (pow.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) 3) (pow.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) 3))) (+.f64 (*.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (cos.f64 lambda2))) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 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) (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))))))
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.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (log.f64 (+.f64 1 (expm1.f64 (fma.f64 (cos.f64 phi2) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cos.f64 phi1)))))))
0.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (cos.f64 phi2) (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (log1p.f64 (expm1.f64 (cbrt.f64 (pow.f64 (fma.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1)) 3))))))
1.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (cbrt.f64 (cos.f64 phi2)) (cbrt.f64 (cos.f64 phi2))) (*.f64 (cbrt.f64 (cos.f64 phi2)) (sin.f64 (-.f64 lambda1 lambda2)))) (fma.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi1))))
Compiler

Compiled 11096 to 2440 computations (78% saved)

regimes1.6s (11.8%)

Accuracy

Total 0.1b remaining (50.2%)

Threshold costs 0.1b (50.2%)

Counts
166 → 1
Compiler

Compiled 40572 to 22795 computations (43.8% saved)

simplify5.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
02154
13354
24354
34954
45354
55454
65454

end1.0ms (0%)

Compiler

Compiled 37 to 20 computations (45.9% saved)

sample6.6s (48.2%)

Algorithm
intervals
Results
4.4s4441×body1024valid
962.0ms1792×body512valid
237.0ms726×body256valid
225.0ms96×body2048valid
154.0ms945×body128valid
Compiler

Compiled 471 to 225 computations (52.2% saved)

Profiling

Loading profile data...