Details

Time bar (total: 23.2s)

analyze3.7s (15.8%)

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
0%99.8%0.2%9
0%99.8%0.2%10
0.8%99%0.2%11
1.2%98.6%0.2%12
1.8%98%0.2%13
2%97.7%0.2%14
Compiler

Compiled 25 to 18 computations (28% saved)

sample617.0ms (2.7%)

Algorithm
intervals
Symmetry

(sort lambda1 lambda2)

(sort phi1 phi2)

Results
215.0ms174×body1024valid
28.0ms44×body512valid
15.0msbody2048valid
9.0ms23×body256valid
2.0msbody128valid
Compiler

Compiled 54 to 40 computations (25.9% saved)

simplify13.0ms (0.1%)

Algorithm
egg-herbie
Rules
47×fma-def_binary64
32×fma-neg_binary64
14×cancel-sign-sub-inv_binary64
12×sub-neg_binary64
10×*-commutative_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01829
12829
24329
35329
46029
57829
610429
712529
814229
915229
1015629
1115829
1214429

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 136 to 86 computations (36.8% saved)

localize19.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
0.2b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) R)
1.3b
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
1.9b
(cos.f64 (-.f64 lambda1 lambda2))

series86.0ms (0.4%)

Counts
4 → 164
Calls

4 calls:

39.0ms
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
31.0ms
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) R)
9.0ms
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
6.0ms
(cos.f64 (-.f64 lambda1 lambda2))

rewrite19.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
16×add-sqr-sqrt_binary64
14×*-un-lft-identity_binary64
14×add-cube-cbrt_binary64
13×cos-sum_binary64
11×add-cbrt-cube_binary64
Counts
4 → 76
Calls

4 calls:

6.0ms
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
4.0ms
(cos.f64 (-.f64 lambda1 lambda2))
3.0ms
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) R)
0.0ms
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))

simplify243.0ms (1%)

Algorithm
egg-herbie
Rules
628×fma-def_binary64
594×cancel-sign-sub-inv_binary64
339×associate-*r*_binary64
327×associate-*l*_binary64
325×neg-mul-1_binary64
Counts
240 → 161
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03196712
16326151
220545962
341055897
448755897
549915897
649055897

prune208.0ms (0.9%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New14417161
Fresh101
Picked101
Done000
Total14617163
Error
3.2b
Counts
163 → 17
Alt Table
StatusErrorProgram
3.4b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))))) R)
3.5b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)
14.0b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (cbrt.f64 (pow.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (cos.f64 phi1))) 3)))) R)
14.6b
(*.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) (*.f64 (cbrt.f64 R) (cbrt.f64 R))) (cbrt.f64 R))
14.0b
(*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))))) R)
33.7b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (-.f64 (fma.f64 (pow.f64 lambda1 3) (*.f64 -1/6 (sin.f64 lambda2)) (cos.f64 lambda2)) (*.f64 lambda1 (-.f64 (*.f64 (*.f64 (cos.f64 lambda2) 1/2) lambda1) (sin.f64 lambda2))))))) R)
14.0b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (log.f64 (pow.f64 (exp.f64 (cos.f64 (-.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))) R)
14.1b
(*.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (*.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) R))
39.9b
(exp.f64 (log.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))) R)))
3.4b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)
14.6b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))))) (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))))) R)
14.0b
(*.f64 (-.f64 (/.f64 (PI.f64) 2) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) R)
14.6b
(*.f64 (*.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))))) (*.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) R))
38.6b
(*.f64 (*.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (sqrt.f64 R)) (*.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (sqrt.f64 R)))
45.3b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (*.f64 (*.f64 R R) R)))
14.6b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) R)) (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) R))) (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) R)))
45.2b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) R) (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) R)) (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) R)))
Compiler

Compiled 6362 to 1804 computations (71.6% saved)

localize25.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
0.2b
(*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
0.2b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)
1.3b
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))

series147.0ms (0.6%)

Counts
4 → 164
Calls

4 calls:

66.0ms
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)
52.0ms
(*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
18.0ms
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
11.0ms
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))

rewrite19.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
20×add-cbrt-cube_binary64
20×add-exp-log_binary64
20×pow1_binary64
12×add-sqr-sqrt_binary64
10×cbrt-unprod_binary64
Counts
4 → 78
Calls

4 calls:

7.0ms
(*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
4.0ms
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
3.0ms
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)
0.0ms
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))

simplify211.0ms (0.9%)

Algorithm
egg-herbie
Rules
987×fma-neg_binary64
636×cancel-sign-sub-inv_binary64
529×associate-*r*_binary64
462×associate-*l*_binary64
326×distribute-rgt-neg-in_binary64
Counts
242 → 162
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02779603
17617949
225387777
342917775
449557775

prune279.0ms (1.2%)

Pruning

16 alts after pruning (16 fresh and 0 done)

PrunedKeptTotal
New15111162
Fresh11516
Picked101
Done000
Total16316179
Error
3.1b
Counts
179 → 16
Alt Table
StatusErrorProgram
14.6b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))))) (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))))) R)
4.4b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)) (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R))) (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)))
14.0b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (cbrt.f64 (pow.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (cos.f64 phi1))) 3)))) R)
42.6b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R) (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)) (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)))
14.6b
(*.f64 (*.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))))) (*.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) R))
3.5b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (cos.f64 phi2) (cos.f64 phi1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))) (*.f64 (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda1)) (sin.f64 lambda1)) (*.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda2)) (sin.f64 lambda2)))))))) R)
45.3b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (*.f64 (*.f64 R R) R)))
4.4b
(*.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) (*.f64 (cbrt.f64 R) (cbrt.f64 R))) (cbrt.f64 R))
3.7b
(*.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))) (*.f64 R (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))))))
3.5b
(*.f64 (-.f64 (/.f64 (PI.f64) 2) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))) R)
39.9b
(exp.f64 (log.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))) R)))
32.6b
(*.f64 (*.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))) (sqrt.f64 R)) (*.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))) (sqrt.f64 R)))
4.4b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)) (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R))) (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)))
3.4b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1)))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda2) (cos.f64 phi1))))))) R)
3.7b
(*.f64 (cbrt.f64 (pow.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) 3)) R)
3.5b
(*.f64 (exp.f64 (log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))))) R)
Compiler

Compiled 8685 to 2047 computations (76.4% saved)

localize26.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda2) (cos.f64 phi1)))
0.2b
(*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda2) (cos.f64 phi1))))
0.2b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1)))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda2) (cos.f64 phi1))))))) R)
1.3b
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1)))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda2) (cos.f64 phi1)))))))

series165.0ms (0.7%)

Counts
4 → 88
Calls

4 calls:

67.0ms
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1)))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda2) (cos.f64 phi1))))))) R)
53.0ms
(*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda2) (cos.f64 phi1))))
26.0ms
(*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda2) (cos.f64 phi1)))
18.0ms
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1)))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda2) (cos.f64 phi1)))))))

rewrite20.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
20×add-cbrt-cube_binary64
20×add-exp-log_binary64
20×pow1_binary64
10×cbrt-unprod_binary64
10×prod-exp_binary64
Counts
4 → 75
Calls

4 calls:

7.0ms
(*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda2) (cos.f64 phi1))))
4.0ms
(*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda2) (cos.f64 phi1)))
3.0ms
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1)))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda2) (cos.f64 phi1))))))) R)
0.0ms
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1)))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda2) (cos.f64 phi1)))))))

simplify171.0ms (0.7%)

Algorithm
egg-herbie
Rules
831×cancel-sign-sub-inv_binary64
521×associate-*r*_binary64
388×associate-*l*_binary64
388×fma-neg_binary64
361×distribute-rgt-neg-in_binary64
Counts
163 → 168
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02687066
17636470
225206021
344666021
450036021

prune281.0ms (1.2%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New1653168
Fresh41115
Picked101
Done000
Total17014184
Error
3.1b
Counts
184 → 14
Alt Table
StatusErrorProgram
3.5b
(*.f64 (exp.f64 (log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2))))))))) R)
14.6b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))))) (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))))) R)
4.4b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)) (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R))) (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)))
14.0b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (cbrt.f64 (pow.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (cos.f64 phi1))) 3)))) R)
42.6b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R) (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)) (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)))
14.6b
(*.f64 (*.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))))) (*.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) R))
3.5b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (cos.f64 phi2) (cos.f64 phi1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))) (*.f64 (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda1)) (sin.f64 lambda1)) (*.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda2)) (sin.f64 lambda2)))))))) R)
45.3b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (*.f64 (*.f64 R R) R)))
4.4b
(*.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) (*.f64 (cbrt.f64 R) (cbrt.f64 R))) (cbrt.f64 R))
39.9b
(exp.f64 (log.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))) R)))
32.6b
(*.f64 (*.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))) (sqrt.f64 R)) (*.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))) (sqrt.f64 R)))
3.5b
(*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2))))))))) R)
3.5b
(*.f64 (-.f64 (/.f64 (PI.f64) 2) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1)))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda2) (cos.f64 phi1)))))))) R)
3.7b
(*.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))) (*.f64 R (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))))))
Compiler

Compiled 8871 to 2050 computations (76.9% saved)

localize29.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(exp.f64 (log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2)))))))))
0.2b
(*.f64 (exp.f64 (log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2))))))))) R)
0.7b
(log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2))))))))
1.3b
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2)))))))

series3.6s (15.5%)

Counts
4 → 204
Calls

4 calls:

3.5s
(log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2))))))))
57.0ms
(*.f64 (exp.f64 (log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2))))))))) R)
16.0ms
(exp.f64 (log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2)))))))))
16.0ms
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2)))))))

rewrite13.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
14×add-sqr-sqrt_binary64
10×log-prod_binary64
10×*-un-lft-identity_binary64
10×add-cube-cbrt_binary64
pow1_binary64
Counts
4 → 65
Calls

4 calls:

4.0ms
(*.f64 (exp.f64 (log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2))))))))) R)
2.0ms
(exp.f64 (log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2)))))))))
1.0ms
(log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2))))))))
0.0ms
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2)))))))

simplify494.0ms (2.1%)

Algorithm
egg-herbie
Rules
522×fma-def_binary64
435×unswap-sqr_binary64
278×*-commutative_binary64
269×log-div_binary64
251×associate-*l*_binary64
Counts
269 → 109
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
010712350
113711763
229110944
345810386
467110386
5101310386
6132510386
7278410386
8367010386
9479310386
10492610386

prune166.0ms (0.7%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New1045109
Fresh31013
Picked101
Done000
Total10815123
Error
3.1b
Counts
123 → 15
Alt Table
StatusErrorProgram
3.5b
(*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2))))))))) R)
4.4b
(*.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))))))) (*.f64 (cbrt.f64 R) (cbrt.f64 R))) (cbrt.f64 R))
3.9b
(*.f64 (exp.f64 (*.f64 (*.f64 (cbrt.f64 (log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2))))))))) (cbrt.f64 (log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2)))))))))) (cbrt.f64 (log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2))))))))))) R)
14.0b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (cbrt.f64 (pow.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (cos.f64 phi1))) 3)))) R)
42.6b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R) (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)) (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)))
3.5b
(*.f64 (-.f64 (/.f64 (PI.f64) 2) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1)))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (*.f64 (sin.f64 lambda2) (cos.f64 phi1)))))))) R)
3.7b
(*.f64 (sqrt.f64 (exp.f64 (log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2)))))))))) (*.f64 (sqrt.f64 (exp.f64 (log.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2)))))))))) R))
3.7b
(*.f64 (exp.f64 (+.f64 (log.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2))))))))) (log.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 phi1) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi1) (sin.f64 lambda2))))))))))) R)
14.6b
(*.f64 (*.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))))) (*.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) R))
3.5b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))) (cbrt.f64 (*.f64 (*.f64 (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (*.f64 (cos.f64 phi2) (cos.f64 phi1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))) (*.f64 (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda1)) (sin.f64 lambda1)) (*.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda2)) (sin.f64 lambda2)))))))) R)
39.9b
(exp.f64 (log.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))) R)))
32.6b
(*.f64 (*.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))) (sqrt.f64 R)) (*.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))) (sqrt.f64 R)))
4.4b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)) (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R))) (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))) R)))
4.3b
(*.f64 (exp.f64 (+.f64 (log.f64 (pow.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)))))))) 2)) (log.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))))))))))) R)
45.3b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (*.f64 (*.f64 R R) R)))
Compiler

Compiled 5822 to 751 computations (87.1% saved)

regimes3.0s (13%)

Accuracy

Total 0.3b remaining (8.5%)

Threshold costs 0.3b (8.5%)

Counts
212 → 1
Compiler

Compiled 84790 to 49380 computations (41.8% saved)

simplify3.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02346
13046
23046

end30.0ms (0.1%)

Compiler

Compiled 165 to 110 computations (33.3% saved)

sample9.6s (41.6%)

Algorithm
intervals
Results
6.6s5535×body1024valid
917.0ms1394×body512valid
798.0ms295×body2048valid
212.0ms494×body256valid
63.0ms282×body128valid
2.0msbody1024invalid
1.0msbody512invalid
Compiler

Compiled 938 to 404 computations (56.9% saved)

Profiling

Loading profile data...