Details

Time bar (total: 22.4s)

analyze3.7s (16.5%)

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)

sample10.8s (48.5%)

Symmetry

(sort lambda1 lambda2)

(sort phi1 phi2)

Results
8.0s5647×body1024valid
1.2s1460×body512valid
872.0ms288×body2048valid
326.0ms592×body256valid
81.0ms269×body128valid
3.0msbody1024invalid
1.0msbody512invalid
0.0msbody128invalid
Compiler

Compiled 74 to 53 computations (28.4% saved)

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

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
16.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
16.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)
16.2b
(*.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)

localize20.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 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) R)
0.6b
(acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
3.8b
(cos.f64 (-.f64 lambda1 lambda2))

series93.0ms (0.4%)

Counts
4 → 164
Calls

4 calls:

40.0ms
(*.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)
37.0ms
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
11.0ms
(acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
5.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:

7.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 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2))))) R)
1.0ms
(acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))

simplify237.0ms (1.1%)

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

Useful iterations: 3 (0.0ms)

IterNodesCost
03196712
16346151
220595962
341055897
448755897
549915897
649055897

prune201.0ms (0.9%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New14715162
Fresh101
Picked101
Done000
Total14915164
Error
3.7b
Counts
164 → 15
Alt Table
StatusErrorProgram
16.9b
(*.f64 (*.f64 (cbrt.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)) (cbrt.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))) (cbrt.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)))
16.2b
(*.f64 (-.f64 (/.f64 (PI.f64) 2) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))) R)
40.5b
(*.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))))) (sqrt.f64 R)) (sqrt.f64 R))
47.9b
(cbrt.f64 (*.f64 (*.f64 (*.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) (*.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)) (*.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)))
29.5b
(expm1.f64 (log1p.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)))
16.4b
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (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))))))) R)
16.8b
(*.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))))) (*.f64 (cbrt.f64 R) (cbrt.f64 R))) (cbrt.f64 R))
4.0b
(*.f64 (acos.f64 (+.f64 (*.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)
16.4b
(*.f64 (sqrt.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (*.f64 R (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))))))
4.0b
(*.f64 (acos.f64 (+.f64 (*.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)
16.3b
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cbrt.f64 (*.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 (-.f64 lambda1 lambda2))) (cos.f64 (-.f64 lambda1 lambda2))))))) R)
16.2b
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (log1p.f64 (expm1.f64 (cos.f64 (-.f64 lambda1 lambda2))))))) R)
16.8b
(*.f64 (*.f64 (cbrt.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (cbrt.f64 (acos.f64 (+.f64 (*.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 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) R))
40.6b
(*.f64 (*.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))) (sqrt.f64 R)) (*.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))) (sqrt.f64 R)))
16.2b
(*.f64 (log.f64 (exp.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)
Compiler

Compiled 6305 to 1729 computations (72.6% saved)

localize26.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (sin.f64 phi1) (sin.f64 phi2))
0.2b
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
0.2b
(*.f64 (acos.f64 (+.f64 (*.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.6b
(acos.f64 (+.f64 (*.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))))))

series116.0ms (0.5%)

Counts
4 → 124
Calls

4 calls:

75.0ms
(*.f64 (acos.f64 (+.f64 (*.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)
22.0ms
(acos.f64 (+.f64 (*.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))))))
10.0ms
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
10.0ms
(*.f64 (sin.f64 phi1) (sin.f64 phi2))

rewrite16.0ms (0.1%)

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

4 calls:

4.0ms
(*.f64 (acos.f64 (+.f64 (*.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)
4.0ms
(*.f64 (sin.f64 phi1) (sin.f64 phi2))
4.0ms
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
1.0ms
(acos.f64 (+.f64 (*.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))))))

simplify198.0ms (0.9%)

Algorithm
egg-herbie
Rules
647×fma-neg_binary64
585×sub-neg_binary64
523×fma-def_binary64
420×*-commutative_binary64
312×cancel-sign-sub-inv_binary64
Counts
196 → 136
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02087980
15126473
214396143
328126107
447836107
552446107

prune245.0ms (1.1%)

Pruning

20 alts after pruning (20 fresh and 0 done)

PrunedKeptTotal
New12214136
Fresh8614
Picked101
Done000
Total13120151
Error
3.6b
Counts
151 → 20
Alt Table
StatusErrorProgram
4.2b
(*.f64 (sqrt.f64 (acos.f64 (+.f64 (*.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 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))))))
4.8b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (acos.f64 (+.f64 (*.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))))))) (cbrt.f64 (acos.f64 (+.f64 (*.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)))))))) (cbrt.f64 (acos.f64 (+.f64 (*.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)
29.5b
(expm1.f64 (log1p.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)))
16.4b
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (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))))))) R)
16.4b
(*.f64 (sqrt.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (*.f64 R (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))))))
4.0b
(*.f64 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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)
16.2b
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (log1p.f64 (expm1.f64 (cos.f64 (-.f64 lambda1 lambda2))))))) R)
4.0b
(*.f64 (-.f64 (/.f64 (PI.f64) 2) (asin.f64 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2))))) R)
4.1b
(*.f64 (acos.f64 (+.f64 (*.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 (*.f64 (sin.f64 lambda1) (*.f64 (cbrt.f64 (sin.f64 lambda2)) (cbrt.f64 (sin.f64 lambda2)))) (cbrt.f64 (sin.f64 lambda2))))))) R)
4.8b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (acos.f64 (+.f64 (*.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 (+.f64 (*.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 (+.f64 (*.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)))
16.8b
(*.f64 (*.f64 (cbrt.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (cbrt.f64 (acos.f64 (+.f64 (*.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 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) R))
4.0b
(*.f64 (acos.f64 (+.f64 (*.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 (*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (sin.f64 lambda1))) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (sin.f64 lambda2))))))) R)
4.1b
(*.f64 (acos.f64 (+.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2))) (cbrt.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)))) (cbrt.f64 (*.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)
59.9b
(log.f64 (pow.f64 (exp.f64 (acos.f64 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2))))) R))
4.8b
(*.f64 (*.f64 (acos.f64 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))) (*.f64 (cbrt.f64 R) (cbrt.f64 R))) (cbrt.f64 R))
33.6b
(*.f64 (*.f64 (sqrt.f64 (acos.f64 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2))))) (sqrt.f64 R)) (*.f64 (sqrt.f64 (acos.f64 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2))))) (sqrt.f64 R)))
16.3b
(*.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cbrt.f64 (*.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (cos.f64 (-.f64 lambda1 lambda2))) (cos.f64 (-.f64 lambda1 lambda2))))))) R)
33.2b
(*.f64 (sqrt.f64 (*.f64 (acos.f64 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))) R)) (sqrt.f64 (*.f64 (acos.f64 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))) R)))
43.5b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (acos.f64 (+.f64 (*.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 (+.f64 (*.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 (+.f64 (*.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)))
33.5b
(*.f64 (*.f64 (acos.f64 (+.f64 (*.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)))))) (sqrt.f64 R)) (sqrt.f64 R))
Compiler

Compiled 7732 to 1843 computations (76.2% saved)

localize28.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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.4b
(exp.f64 (acos.f64 (+.f64 (*.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)))))))
0.4b
(log.f64 (exp.f64 (acos.f64 (+.f64 (*.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))))))))
0.6b
(acos.f64 (+.f64 (*.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))))))

series158.0ms (0.7%)

Counts
3 → 156
Calls

3 calls:

77.0ms
(*.f64 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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)
59.0ms
(exp.f64 (acos.f64 (+.f64 (*.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)))))))
22.0ms
(log.f64 (exp.f64 (acos.f64 (+.f64 (*.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))))))))

rewrite14.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
11×add-sqr-sqrt_binary64
*-un-lft-identity_binary64
exp-prod_binary64
add-cube-cbrt_binary64
log-pow_binary64
Counts
3 → 56
Calls

3 calls:

4.0ms
(*.f64 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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)
2.0ms
(log.f64 (exp.f64 (acos.f64 (+.f64 (*.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))))))))
2.0ms
(exp.f64 (acos.f64 (+.f64 (*.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)))))))

simplify341.0ms (1.5%)

Algorithm
egg-herbie
Rules
858×fma-def_binary64
666×times-frac_binary64
336×unswap-sqr_binary64
322×log-prod_binary64
283×associate-*l*_binary64
Counts
212 → 102
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
010710857
11888699
23688269
35468269
47438263
512268263
629998263
747988263
850658263

prune211.0ms (0.9%)

Pruning

20 alts after pruning (20 fresh and 0 done)

PrunedKeptTotal
New10815123
Fresh14519
Picked101
Done000
Total12320143
Error
3.5b
Counts
143 → 20
Alt Table
StatusErrorProgram
4.1b
(*.f64 (log.f64 (exp.f64 (-.f64 (/.f64 (PI.f64) 2) (asin.f64 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2))))))) R)
4.1b
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2))))) 3))) R)
33.2b
(*.f64 (sqrt.f64 (*.f64 (acos.f64 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))) R)) (sqrt.f64 (*.f64 (acos.f64 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))) R)))
4.8b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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)))
16.8b
(*.f64 (*.f64 (cbrt.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (cbrt.f64 (acos.f64 (+.f64 (*.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 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) R))
4.0b
(*.f64 (acos.f64 (+.f64 (*.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 (*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (sin.f64 lambda1))) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (sin.f64 lambda2))))))) R)
4.1b
(*.f64 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (acos.f64 (+.f64 (*.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))))))))) (log.f64 (sqrt.f64 (exp.f64 (acos.f64 (+.f64 (*.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)
43.5b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (acos.f64 (+.f64 (*.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 (+.f64 (*.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 (+.f64 (*.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)))
4.6b
(*.f64 (+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))))))) (log.f64 (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))))))) R)
59.9b
(log.f64 (pow.f64 (exp.f64 (acos.f64 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2))))) R))
33.5b
(*.f64 (*.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))) (sqrt.f64 R)) (sqrt.f64 R))
19.9b
(expm1.f64 (log1p.f64 (*.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))) R)))
4.6b
(*.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (acos.f64 (+.f64 (*.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)))))))) (cbrt.f64 (exp.f64 (acos.f64 (+.f64 (*.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)))))))))) (log.f64 (cbrt.f64 (exp.f64 (acos.f64 (+.f64 (*.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)
4.8b
(*.f64 (*.f64 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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 (cbrt.f64 R) (cbrt.f64 R))) (cbrt.f64 R))
4.1b
(*.f64 (-.f64 (log.f64 (exp.f64 (/.f64 (PI.f64) 2))) (log.f64 (exp.f64 (asin.f64 (+.f64 (*.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)
4.5b
(*.f64 (log.f64 (*.f64 (*.f64 (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))))) (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2))))))) (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))))))) R)
4.2b
(*.f64 (sqrt.f64 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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 (sqrt.f64 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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))
4.8b
(*.f64 (*.f64 (cbrt.f64 (acos.f64 (+.f64 (*.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))))))) (log.f64 (exp.f64 (*.f64 (cbrt.f64 (acos.f64 (+.f64 (*.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))))))) (cbrt.f64 (acos.f64 (+.f64 (*.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)
4.1b
(*.f64 (log.f64 (/.f64 (sqrt.f64 (exp.f64 (PI.f64))) (exp.f64 (asin.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2))))))) R)
4.1b
(*.f64 (log.f64 (*.f64 (sqrt.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))))) (sqrt.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))))))) R)
Compiler

Compiled 8379 to 1462 computations (82.6% saved)

localize30.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (sin.f64 lambda1))) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (sin.f64 lambda2)))
0.5b
(*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (sin.f64 lambda1)))
0.6b
(cbrt.f64 (sin.f64 lambda1))
0.6b
(acos.f64 (+.f64 (*.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 (*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (sin.f64 lambda1))) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (sin.f64 lambda2)))))))

series441.0ms (2%)

Counts
4 → 96
Calls

4 calls:

233.0ms
(*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (sin.f64 lambda1)))
176.0ms
(cbrt.f64 (sin.f64 lambda1))
21.0ms
(acos.f64 (+.f64 (*.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 (*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (sin.f64 lambda1))) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (sin.f64 lambda2)))))))
12.0ms
(*.f64 (*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (sin.f64 lambda1))) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (sin.f64 lambda2)))

rewrite20.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
23×pow1_binary64
21×add-sqr-sqrt_binary64
19×cbrt-prod_binary64
18×add-exp-log_binary64
13×*-un-lft-identity_binary64
Counts
4 → 89
Calls

4 calls:

8.0ms
(*.f64 (*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (sin.f64 lambda1))) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (sin.f64 lambda2)))
5.0ms
(*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (sin.f64 lambda1)))
1.0ms
(cbrt.f64 (sin.f64 lambda1))
1.0ms
(acos.f64 (+.f64 (*.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 (*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (sin.f64 lambda1))) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (sin.f64 lambda2)))))))

simplify169.0ms (0.8%)

Algorithm
egg-herbie
Rules
608×fma-neg_binary64
531×*-commutative_binary64
518×cancel-sign-sub-inv_binary64
450×fma-def_binary64
283×unswap-sqr_binary64
Counts
185 → 154
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
02014369
14923623
214803441
330863413
445833291
548813291
648703291

prune398.0ms (1.8%)

Pruning

20 alts after pruning (19 fresh and 1 done)

PrunedKeptTotal
New2020202
Fresh01919
Picked011
Done000
Total20220222
Error
3.5b
Counts
222 → 20
Alt Table
StatusErrorProgram
4.1b
(*.f64 (log.f64 (exp.f64 (-.f64 (/.f64 (PI.f64) 2) (asin.f64 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2))))))) R)
4.1b
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2))))) 3))) R)
33.2b
(*.f64 (sqrt.f64 (*.f64 (acos.f64 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))) R)) (sqrt.f64 (*.f64 (acos.f64 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))) R)))
4.8b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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)))
16.8b
(*.f64 (*.f64 (cbrt.f64 (acos.f64 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) (cbrt.f64 (acos.f64 (+.f64 (*.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 (+.f64 (*.f64 (sin.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))) R))
4.0b
(*.f64 (acos.f64 (+.f64 (*.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 (*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (sin.f64 lambda1))) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (sin.f64 lambda2))))))) R)
4.1b
(*.f64 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (acos.f64 (+.f64 (*.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))))))))) (log.f64 (sqrt.f64 (exp.f64 (acos.f64 (+.f64 (*.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)
43.5b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (acos.f64 (+.f64 (*.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 (+.f64 (*.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 (+.f64 (*.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)))
4.6b
(*.f64 (+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))))))) (log.f64 (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))))))) R)
59.9b
(log.f64 (pow.f64 (exp.f64 (acos.f64 (fma.f64 (*.f64 (cos.f64 phi2) (cos.f64 phi1)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (sin.f64 phi1) (sin.f64 phi2))))) R))
33.5b
(*.f64 (*.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))) (sqrt.f64 R)) (sqrt.f64 R))
19.9b
(expm1.f64 (log1p.f64 (*.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))) R)))
4.6b
(*.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (acos.f64 (+.f64 (*.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)))))))) (cbrt.f64 (exp.f64 (acos.f64 (+.f64 (*.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)))))))))) (log.f64 (cbrt.f64 (exp.f64 (acos.f64 (+.f64 (*.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)
4.8b
(*.f64 (*.f64 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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 (cbrt.f64 R) (cbrt.f64 R))) (cbrt.f64 R))
4.1b
(*.f64 (-.f64 (log.f64 (exp.f64 (/.f64 (PI.f64) 2))) (log.f64 (exp.f64 (asin.f64 (+.f64 (*.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)
4.5b
(*.f64 (log.f64 (*.f64 (*.f64 (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))))) (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2))))))) (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))))))) R)
4.2b
(*.f64 (sqrt.f64 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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 (sqrt.f64 (log.f64 (exp.f64 (acos.f64 (+.f64 (*.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))
4.8b
(*.f64 (*.f64 (cbrt.f64 (acos.f64 (+.f64 (*.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))))))) (log.f64 (exp.f64 (*.f64 (cbrt.f64 (acos.f64 (+.f64 (*.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))))))) (cbrt.f64 (acos.f64 (+.f64 (*.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)
4.1b
(*.f64 (log.f64 (/.f64 (sqrt.f64 (exp.f64 (PI.f64))) (exp.f64 (asin.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2))))))) R)
4.1b
(*.f64 (log.f64 (*.f64 (sqrt.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))))) (sqrt.f64 (exp.f64 (acos.f64 (fma.f64 (cos.f64 phi2) (*.f64 (cos.f64 phi1) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (*.f64 (sin.f64 phi1) (sin.f64 phi2)))))))) R)
Compiler

Compiled 10583 to 2467 computations (76.7% saved)

regimes4.2s (18.7%)

Accuracy

Total 0.4b remaining (10.4%)

Threshold costs 0.4b (10.4%)

Counts
277 → 1
Compiler

Compiled 128574 to 70070 computations (45.5% saved)

simplify3.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02657
13557
23557

end636.0ms (2.8%)

Remove

(sort phi1 phi2)

Compiler

Compiled 1541 to 710 computations (53.9% saved)

Profiling

Loading profile data...