Details

Time bar (total: 25.4s)

analyze3.7s (14.6%)

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.7s (42.1%)

Symmetry

(sort lambda1 lambda2)

(sort phi1 phi2)

Results
8.0s5678×body1024valid
1.2s1420×body512valid
764.0ms265×body2048valid
308.0ms556×body256valid
106.0ms337×body128valid
1.0msbody1024invalid
1.0msbody512invalid
Compiler

Compiled 74 to 53 computations (28.4% saved)

simplify12.0ms (0%)

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

prune6.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

localize17.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.3b
(*.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.5b
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
2.1b
(cos.f64 (-.f64 lambda1 lambda2))

series81.0ms (0.3%)

Counts
4 → 164
Calls

4 calls:

37.0ms
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
29.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)
10.0ms
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
4.0ms
(cos.f64 (-.f64 lambda1 lambda2))

rewrite18.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 (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)))))

simplify237.0ms (0.9%)

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

prune195.0ms (0.8%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New14318161
Fresh011
Picked101
Done000
Total14419163
Error
4.1b
Counts
163 → 19
Alt Table
StatusErrorProgram
15.9b
(*.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))
15.7b
(*.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)
15.7b
(*.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.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)
16.3b
(*.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))
15.7b
(*.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)
4.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)
38.7b
(*.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)))
15.8b
(*.f64 (expm1.f64 (log1p.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.3b
(*.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)))
15.9b
(*.f64 (acos.f64 (fma.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)
15.7b
(*.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)
46.9b
(cbrt.f64 (pow.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))
4.4b
(*.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)
28.0b
(expm1.f64 (log1p.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)))
15.9b
(*.f64 (cbrt.f64 (pow.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))) 3)) R)
15.9b
(*.f64 (cbrt.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))))))) R)
16.3b
(*.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))
15.8b
(*.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)
Compiler

Compiled 6302 to 1854 computations (70.6% saved)

localize24.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series136.0ms (0.5%)

Counts
4 → 164
Calls

4 calls:

71.0ms
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))
43.0ms
(*.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)
12.0ms
(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))))))
10.0ms
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))

rewrite20.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
13×add-sqr-sqrt_binary64
13×add-cbrt-cube_binary64
13×add-exp-log_binary64
13×pow1_binary64
associate-*r*_binary64
Counts
4 → 80
Calls

4 calls:

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

simplify179.0ms (0.7%)

Algorithm
egg-herbie
Rules
618×associate-*r*_binary64
569×associate-*l*_binary64
488×fma-neg_binary64
363×distribute-rgt-neg-in_binary64
314×*-commutative_binary64
Counts
244 → 175
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03449069
110098619
237668607
349888607

prune295.0ms (1.2%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New16213175
Fresh14418
Picked101
Done000
Total17717194
Error
4.0b
Counts
194 → 17
Alt Table
StatusErrorProgram
4.5b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (expm1.f64 (log1p.f64 (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R)
5.2b
(*.f64 (*.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)))))) (*.f64 (cbrt.f64 R) (cbrt.f64 R))) (cbrt.f64 R))
4.6b
(*.f64 (sqrt.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))))))) (*.f64 R (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))))
4.6b
(*.f64 (cbrt.f64 (pow.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))) 3)) R)
33.2b
(*.f64 (sqrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))) R)) (sqrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))) R)))
4.4b
(*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R)
4.4b
(*.f64 (-.f64 (/.f64 (PI.f64) 2) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1)))))) R)
15.9b
(*.f64 (cbrt.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))))))) R)
5.1b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))) R)) (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))) R))) (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))) R)))
15.8b
(*.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)
20.9b
(expm1.f64 (log1p.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))) R)))
4.5b
(*.f64 (expm1.f64 (log1p.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)
33.3b
(*.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))) (sqrt.f64 R)) (sqrt.f64 R))
15.7b
(*.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)
5.1b
(*.f64 (*.f64 (cbrt.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))))))) (cbrt.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)))))))) (*.f64 (cbrt.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))
43.2b
(cbrt.f64 (*.f64 (*.f64 (*.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) (*.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)) (*.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)))
15.9b
(*.f64 (acos.f64 (fma.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)
Compiler

Compiled 8466 to 2152 computations (74.6% saved)

localize27.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R)
0.3b
(exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))
1.1b
(log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1)))))))
1.5b
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1)))))

series87.0ms (0.3%)

Counts
4 → 144
Calls

4 calls:

38.0ms
(*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R)
28.0ms
(exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))
11.0ms
(log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1)))))))
10.0ms
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1)))))

rewrite12.0ms (0%)

Algorithm
rewrite-expression-head
Rules
12×add-sqr-sqrt_binary64
10×*-un-lft-identity_binary64
10×add-cube-cbrt_binary64
exp-prod_binary64
log-pow_binary64
Counts
4 → 66
Calls

4 calls:

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

simplify321.0ms (1.3%)

Algorithm
egg-herbie
Rules
823×fma-def_binary64
666×times-frac_binary64
336×unswap-sqr_binary64
322×log-prod_binary64
269×associate-*l*_binary64
Counts
210 → 109
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01018602
11438181
22688181
34458181
46998175
512268175
629998175
747988175
850658175

prune196.0ms (0.8%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New1009109
Fresh10616
Picked101
Done000
Total11115126
Error
3.9b
Counts
126 → 15
Alt Table
StatusErrorProgram
4.5b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (expm1.f64 (log1p.f64 (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R)
5.2b
(*.f64 (*.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)))))) (*.f64 (cbrt.f64 R) (cbrt.f64 R))) (cbrt.f64 R))
33.2b
(*.f64 (sqrt.f64 (*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R)) (sqrt.f64 (*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R)))
4.4b
(*.f64 (log.f64 (/.f64 (sqrt.f64 (exp.f64 (PI.f64))) (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))))) R)
5.1b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R)) (cbrt.f64 (*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R))) (cbrt.f64 (*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R)))
5.1b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))) R)) (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))) R))) (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))) R)))
43.2b
(cbrt.f64 (*.f64 (*.f64 (*.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) (*.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)) (*.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)))
4.6b
(*.f64 (sqrt.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1)))))))) (*.f64 R (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))))))
5.0b
(*.f64 (log.f64 (*.f64 (*.f64 (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1)))))))) (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))))) R)
4.5b
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))) 3))) R)
5.1b
(*.f64 (*.f64 (cbrt.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))))))) (cbrt.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)))))))) (*.f64 (cbrt.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))
4.5b
(*.f64 (expm1.f64 (log1p.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)
4.5b
(*.f64 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1)))))))) (log.f64 (sqrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))))) R)
5.0b
(*.f64 (+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))))))) (log.f64 (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))))))) R)
5.0b
(*.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))))) (log.f64 (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))))) R)
Compiler

Compiled 6342 to 1131 computations (82.2% saved)

localize30.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(/.f64 (sqrt.f64 (exp.f64 (PI.f64))) (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))))
0.5b
(asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))
1.0b
(exp.f64 (PI.f64))
1.1b
(log.f64 (/.f64 (sqrt.f64 (exp.f64 (PI.f64))) (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))))))

series3.9s (15.3%)

Counts
4 → 132
Calls

4 calls:

3.6s
(log.f64 (/.f64 (sqrt.f64 (exp.f64 (PI.f64))) (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))))))
221.0ms
(/.f64 (sqrt.f64 (exp.f64 (PI.f64))) (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))))
11.0ms
(asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))
0.0ms
(exp.f64 (PI.f64))

rewrite23.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
37×*-un-lft-identity_binary64
36×times-frac_binary64
33×add-sqr-sqrt_binary64
33×add-cube-cbrt_binary64
23×log-prod_binary64
Counts
4 → 103
Calls

4 calls:

5.0ms
(/.f64 (sqrt.f64 (exp.f64 (PI.f64))) (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))))
4.0ms
(log.f64 (/.f64 (sqrt.f64 (exp.f64 (PI.f64))) (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))))))
1.0ms
(exp.f64 (PI.f64))
0.0ms
(asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))

simplify365.0ms (1.4%)

Algorithm
egg-herbie
Rules
826×fma-def_binary64
611×fma-neg_binary64
347×div-exp_binary64
346×prod-exp_binary64
276×times-frac_binary64
Counts
235 → 165
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
016012616
126611615
247511365
3106111361
4247711355
5377211355
6489411355

prune276.0ms (1.1%)

Pruning

20 alts after pruning (20 fresh and 0 done)

PrunedKeptTotal
New1569165
Fresh31114
Picked101
Done000
Total16020180
Error
3.6b
Counts
180 → 20
Alt Table
StatusErrorProgram
4.5b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (expm1.f64 (log1p.f64 (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R)
5.2b
(*.f64 (*.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)))))) (*.f64 (cbrt.f64 R) (cbrt.f64 R))) (cbrt.f64 R))
5.0b
(*.f64 (log.f64 (*.f64 (*.f64 (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1)))))))) (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))))) R)
4.4b
(*.f64 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (PI.f64)))) (log.f64 (/.f64 1 (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))))))) R)
4.8b
(*.f64 (+.f64 (-.f64 (*.f64 2 (log.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (PI.f64)))))) (log.f64 (sqrt.f64 (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))))) (log.f64 (/.f64 (cbrt.f64 (sqrt.f64 (exp.f64 (PI.f64)))) (sqrt.f64 (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1)))))))))) R)
5.0b
(*.f64 (+.f64 (log.f64 (*.f64 (cbrt.f64 (/.f64 (sqrt.f64 (exp.f64 (PI.f64))) (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))))) (cbrt.f64 (/.f64 (sqrt.f64 (exp.f64 (PI.f64))) (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))))))) (log.f64 (cbrt.f64 (/.f64 (sqrt.f64 (exp.f64 (PI.f64))) (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))))))) R)
5.1b
(*.f64 (*.f64 (cbrt.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))))))) (cbrt.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)))))))) (*.f64 (cbrt.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))
6.0b
(*.f64 (log.f64 (/.f64 (sqrt.f64 (pow.f64 (exp.f64 (*.f64 (cbrt.f64 (PI.f64)) (cbrt.f64 (PI.f64)))) (cbrt.f64 (PI.f64)))) (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))))) R)
33.2b
(*.f64 (sqrt.f64 (*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R)) (sqrt.f64 (*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R)))
4.6b
(*.f64 (+.f64 (log.f64 (/.f64 1 (sqrt.f64 (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))))))) (log.f64 (/.f64 (sqrt.f64 (exp.f64 (PI.f64))) (sqrt.f64 (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))))))) R)
43.2b
(cbrt.f64 (*.f64 (*.f64 (*.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) (*.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)) (*.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)))
4.6b
(*.f64 (sqrt.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1)))))))) (*.f64 R (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))))))
4.5b
(*.f64 (+.f64 (log.f64 (sqrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1)))))))) (log.f64 (sqrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))))) R)
4.8b
(*.f64 (+.f64 (log.f64 (/.f64 (sqrt.f64 (sqrt.f64 (exp.f64 (PI.f64)))) (sqrt.f64 (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))))))) (log.f64 (/.f64 (sqrt.f64 (sqrt.f64 (exp.f64 (PI.f64)))) (sqrt.f64 (exp.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))))))) R)
5.0b
(*.f64 (+.f64 (*.f64 2 (log.f64 (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))))))) (log.f64 (cbrt.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))))))) R)
4.3b
(*.f64 (+.f64 0 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1)))))) R)
4.5b
(*.f64 (log.f64 (cbrt.f64 (pow.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))) 3))) R)
5.1b
(*.f64 (*.f64 (cbrt.f64 (*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R)) (cbrt.f64 (*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R))) (cbrt.f64 (*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R)))
5.3b
(*.f64 (+.f64 (log.f64 (sqrt.f64 (sqrt.f64 (exp.f64 (PI.f64))))) (-.f64 (log.f64 (sqrt.f64 (sqrt.f64 (exp.f64 (PI.f64))))) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cos.f64 phi1))))))) R)
4.8b
(*.f64 (log.f64 (/.f64 (sqrt.f64 (exp.f64 (PI.f64))) (exp.f64 (*.f64 (*.f64 (cbrt.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))) (cbrt.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1))))))) (cbrt.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (fma.f64 (sin.f64 lambda1) (sin.f64 lambda2) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (cos.f64 phi2) (cos.f64 phi1)))))))))) R)
Compiler

Compiled 9062 to 1489 computations (83.6% saved)

regimes4.1s (16.1%)

Accuracy

Total 0.5b remaining (14.2%)

Threshold costs 0.5b (14.2%)

Counts
280 → 1
Compiler

Compiled 118954 to 69422 computations (41.6% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02139
12539
22539

end495.0ms (2%)

Remove

(sort phi1 phi2)

(sort lambda1 lambda2)

Compiler

Compiled 1378 to 652 computations (52.7% saved)

Profiling

Loading profile data...