Details

Time bar (total: 18.6s)

analyze4.2s (22.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.2s (54.7%)

Results
7.8s5668×body1024valid
1.2s1445×body512valid
807.0ms279×body2048valid
294.0ms556×body256valid
90.0ms308×body128valid
3.0msbody1024invalid
1.0msbody512invalid
Compiler

Compiled 50 to 36 computations (28% saved)

preprocess71.0ms (0.4%)

Algorithm
egg-herbie
Rules
1299×fma-def_binary64
458×fma-neg_binary64
236×cancel-sign-sub-inv_binary64
181×distribute-rgt-in_binary64
160×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
092319
1181319
2307319
3402319
4466319
5670319
6894319
71289319
82073319
93037319
103654319
114561319
055
155
Stop Event
unsound
node limit
Symmetry

(sort lambda1 lambda2)

(sort phi1 phi2)

Compiler

Compiled 24 to 17 computations (29.2% saved)

simplify12.0ms (0.1%)

Algorithm
egg-herbie
Rules
47×fma-def_binary64
32×fma-neg_binary64
15×cancel-sign-sub-inv_binary64
12×sub-neg_binary64
10×*-commutative_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01829
12829
24429
35729
46729
58529
612329
716029
820629
924329
1026929
1127129
Stop Event
saturated
Counts
1 → 2

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
14.5b
Counts
3 → 2
Alt Table
StatusErrorProgram
14.5b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda2 lambda1))))) R)
14.5b
(*.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 89 computations (34.6% saved)

localize16.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 lambda2 lambda1)))
0.3b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda2 lambda1))))) R)
0.5b
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda2 lambda1)))))
4.1b
(cos.f64 (-.f64 lambda2 lambda1))

series80.0ms (0.4%)

Counts
4 → 164
Calls

45 calls:

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

rewrite68.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
355×log1p-udef_binary64
197×add-sqr-sqrt_binary64
195×*-un-lft-identity_binary64
195×pow1_binary64
181×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01777
136277
2484477
Stop Event
node limit
Counts
4 → 81

simplify96.0ms (0.5%)

Algorithm
egg-herbie
Rules
573×cancel-sign-sub-inv_binary64
568×fma-def_binary64
442×*-commutative_binary64
334×sub-neg_binary64
248×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01364331
14344272
214514154
345774154
Stop Event
node limit
Counts
245 → 133

prune172.0ms (0.9%)

Pruning

18 alts after pruning (18 fresh and 0 done)

PrunedKeptTotal
New11518133
Fresh101
Picked101
Done000
Total11718135
Error
1.9b
Counts
135 → 18
Alt Table
StatusErrorProgram
46.4b
(cbrt.f64 (pow.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) R) 3))
14.7b
(*.f64 (-.f64 (exp.f64 (log1p.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))))) 1) R)
14.5b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (-.f64 (exp.f64 (log1p.f64 (cos.f64 (-.f64 lambda2 lambda1)))) 1)))) R)
38.7b
(pow.f64 (sqrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) R)) 2)
2.1b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))) R)
14.5b
(*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))))) R)
14.7b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (cbrt.f64 (cos.f64 (-.f64 lambda2 lambda1))) 3)))) R)
46.5b
(cbrt.f64 (*.f64 (pow.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) 3) (pow.f64 R 3)))
15.1b
(pow.f64 (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) R)) 3)
54.5b
(pow.f64 (pow.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) R) 3) 1/3)
2.2b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))) R)
14.5b
(*.f64 (log1p.f64 (expm1.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))))) R)
14.7b
(*.f64 (pow.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))))) 2) R)
15.2b
(*.f64 (pow.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))))) 3) R)
14.6b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (log.f64 (pow.f64 (pow.f64 (exp.f64 (cos.f64 phi2)) (cos.f64 phi1)) (cos.f64 (-.f64 lambda2 lambda1)))))) R)
14.6b
(*.f64 (/.f64 (-.f64 (*.f64 (*.f64 (PI.f64) 1/2) (*.f64 (PI.f64) 1/2)) (*.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))))) (+.f64 (*.f64 (PI.f64) 1/2) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))))) R)
14.7b
(*.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (PI.f64) 1/2) 3) (pow.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) 3)) (+.f64 (*.f64 (*.f64 (PI.f64) 1/2) (*.f64 (PI.f64) 1/2)) (+.f64 (*.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))))) (*.f64 (*.f64 (PI.f64) 1/2) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))))))) R)
2.2b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (+.f64 (*.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))) (*.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))))) R)
Compiler

Compiled 4748 to 1709 computations (64% saved)

localize22.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 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))
0.2b
(*.f64 (sin.f64 lambda2) (sin.f64 lambda1))
0.3b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))) R)
0.4b
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))))

series126.0ms (0.7%)

Counts
4 → 180
Calls

45 calls:

7.0ms
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))
phi1
0
7.0ms
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))
lambda1
inf
7.0ms
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))
phi2
-inf
6.0ms
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))
lambda2
inf
6.0ms
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))
phi1
-inf

rewrite37.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
250×add-sqr-sqrt_binary64
248×*-un-lft-identity_binary64
248×pow1_binary64
229×add-exp-log_binary64
229×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
022109
146679
Stop Event
node limit
Counts
4 → 58

simplify99.0ms (0.5%)

Algorithm
egg-herbie
Rules
383×fma-neg_binary64
345×associate-*r*_binary64
300×distribute-rgt-neg-in_binary64
284×distribute-lft-neg-in_binary64
283×associate--l+_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02006295
16666237
224516034
Stop Event
node limit
Counts
238 → 114

prune190.0ms (1%)

Pruning

19 alts after pruning (19 fresh and 0 done)

PrunedKeptTotal
New1086114
Fresh41317
Picked101
Done000
Total11319132
Error
1.9b
Counts
132 → 19
Alt Table
StatusErrorProgram
2.2b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (log.f64 (pow.f64 (exp.f64 (sin.f64 lambda2)) (sin.f64 lambda1))))))) R)
46.5b
(cbrt.f64 (*.f64 (pow.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) 3) (pow.f64 R 3)))
2.2b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))) 3))))) R)
46.4b
(cbrt.f64 (pow.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) R) 3))
14.5b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (-.f64 (exp.f64 (log1p.f64 (cos.f64 (-.f64 lambda2 lambda1)))) 1)))) R)
14.7b
(*.f64 (expm1.f64 (log1p.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda2 lambda1)))))))) R)
2.2b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))) R)
14.5b
(*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))))) R)
14.7b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (cbrt.f64 (cos.f64 (-.f64 lambda2 lambda1))) 3)))) R)
14.6b
(*.f64 (-.f64 (/.f64 (PI.f64) 2) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda2 lambda1))))))) R)
14.7b
(*.f64 (pow.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))))) 2) R)
14.6b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (log.f64 (pow.f64 (exp.f64 (cos.f64 phi1)) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda2 lambda1))))))) R)
15.2b
(*.f64 (pow.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))))) 3) R)
38.7b
(pow.f64 (sqrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) R)) 2)
15.1b
(pow.f64 (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) R)) 3)
54.5b
(pow.f64 (pow.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) R) 3) 1/3)
14.6b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (log.f64 (pow.f64 (pow.f64 (exp.f64 (cos.f64 phi2)) (cos.f64 phi1)) (cos.f64 (-.f64 lambda2 lambda1)))))) R)
14.7b
(*.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (PI.f64) 1/2) 3) (pow.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) 3)) (+.f64 (*.f64 (*.f64 (PI.f64) 1/2) (*.f64 (PI.f64) 1/2)) (+.f64 (*.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))))) (*.f64 (*.f64 (PI.f64) 1/2) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))))))) R)
2.2b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))))))) R)
Compiler

Compiled 4838 to 1836 computations (62.1% saved)

localize25.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series112.0ms (0.6%)

Counts
3 → 156
Calls

39 calls:

7.0ms
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))
phi1
inf
7.0ms
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))
lambda1
-inf
6.0ms
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))
phi2
inf
6.0ms
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))
phi2
-inf
6.0ms
(*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))
phi1
-inf

rewrite35.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
227×add-sqr-sqrt_binary64
226×*-un-lft-identity_binary64
226×pow1_binary64
207×add-exp-log_binary64
207×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
021101
142771
Stop Event
node limit
Counts
3 → 55

simplify94.0ms (0.5%)

Algorithm
egg-herbie
Rules
906×cancel-sign-sub-inv_binary64
343×fma-neg_binary64
317×associate-*r*_binary64
292×associate--l+_binary64
254×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01735964
15705916
221485759
Stop Event
node limit
Counts
211 → 95

prune191.0ms (1%)

Pruning

19 alts after pruning (18 fresh and 1 done)

PrunedKeptTotal
New1241125
Fresh11718
Picked011
Done000
Total12519144
Error
1.9b
Counts
144 → 19
Alt Table
StatusErrorProgram
2.2b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))) 3))))) R)
2.2b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (log.f64 (pow.f64 (exp.f64 (sin.f64 lambda2)) (sin.f64 lambda1))))))) R)
46.5b
(cbrt.f64 (*.f64 (pow.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) 3) (pow.f64 R 3)))
46.4b
(cbrt.f64 (pow.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) R) 3))
14.5b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (-.f64 (exp.f64 (log1p.f64 (cos.f64 (-.f64 lambda2 lambda1)))) 1)))) R)
14.7b
(*.f64 (expm1.f64 (log1p.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda2 lambda1)))))))) R)
2.2b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))) R)
14.5b
(*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))))) R)
14.7b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (cbrt.f64 (cos.f64 (-.f64 lambda2 lambda1))) 3)))) R)
14.6b
(*.f64 (-.f64 (/.f64 (PI.f64) 2) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 phi1) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda2 lambda1))))))) R)
14.7b
(*.f64 (pow.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))))) 2) R)
14.6b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (log.f64 (pow.f64 (exp.f64 (cos.f64 phi1)) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda2 lambda1))))))) R)
15.2b
(*.f64 (pow.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))))) 3) R)
38.7b
(pow.f64 (sqrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) R)) 2)
15.1b
(pow.f64 (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) R)) 3)
54.5b
(pow.f64 (pow.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) R) 3) 1/3)
14.6b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (log.f64 (pow.f64 (pow.f64 (exp.f64 (cos.f64 phi2)) (cos.f64 phi1)) (cos.f64 (-.f64 lambda2 lambda1)))))) R)
14.7b
(*.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (PI.f64) 1/2) 3) (pow.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) 3)) (+.f64 (*.f64 (*.f64 (PI.f64) 1/2) (*.f64 (PI.f64) 1/2)) (+.f64 (*.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))))) (*.f64 (*.f64 (PI.f64) 1/2) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))))))) R)
2.2b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))))))) R)
Compiler

Compiled 5147 to 1925 computations (62.6% saved)

localize27.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (sin.f64 lambda2) (sin.f64 lambda1))
0.3b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))))))) R)
0.4b
(acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))))))
3.5b
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))

series405.0ms (2.2%)

Counts
3 → 132
Calls

33 calls:

86.0ms
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))
lambda2
inf
81.0ms
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))
lambda1
inf
81.0ms
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))
lambda1
-inf
81.0ms
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))
lambda2
-inf
10.0ms
(log.f64 (+.f64 1 (expm1.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))
lambda2
0

rewrite34.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
277×add-sqr-sqrt_binary64
274×*-un-lft-identity_binary64
274×pow1_binary64
254×add-exp-log_binary64
254×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02683
154683
Stop Event
node limit
Counts
3 → 32

simplify115.0ms (0.6%)

Algorithm
egg-herbie
Rules
487×fma-neg_binary64
440×distribute-rgt-neg-in_binary64
383×distribute-lft-neg-in_binary64
322×*-commutative_binary64
240×sub-neg_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0624832
11714392
24904368
317714344
436044344
Stop Event
node limit
Counts
164 → 51

prune148.0ms (0.8%)

Pruning

18 alts after pruning (18 fresh and 0 done)

PrunedKeptTotal
New73881
Fresh71017
Picked101
Done101
Total8218100
Error
1.8b
Counts
100 → 18
Alt Table
StatusErrorProgram
2.2b
(*.f64 (log.f64 (exp.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))))) R)
2.2b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (log.f64 (pow.f64 (exp.f64 (sin.f64 lambda2)) (sin.f64 lambda1))))))) R)
46.5b
(cbrt.f64 (*.f64 (pow.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) 3) (pow.f64 R 3)))
2.4b
(*.f64 (*.f64 (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))))) (sqrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))))) R)
38.7b
(pow.f64 (sqrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) R)) 2)
3.0b
(*.f64 (*.f64 (*.f64 (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))))) (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))))) (cbrt.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))))) R)
15.1b
(pow.f64 (cbrt.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) R)) 3)
42.5b
(cbrt.f64 (*.f64 (*.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))) R) (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))) R)) (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))) R)))
14.6b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (log.f64 (pow.f64 (exp.f64 (cos.f64 phi1)) (*.f64 (cos.f64 phi2) (cos.f64 (-.f64 lambda2 lambda1))))))) R)
14.5b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (-.f64 (exp.f64 (log1p.f64 (cos.f64 (-.f64 lambda2 lambda1)))) 1)))) R)
54.5b
(pow.f64 (pow.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) R) 3) 1/3)
2.4b
(*.f64 (-.f64 (exp.f64 (log1p.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))))) 1) R)
2.2b
(*.f64 (-.f64 (/.f64 (PI.f64) 2) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))))) R)
14.7b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (pow.f64 (cbrt.f64 (cos.f64 (-.f64 lambda2 lambda1))) 3)))) R)
35.0b
(exp.f64 (log.f64 (*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))) R)))
14.6b
(*.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (log.f64 (pow.f64 (pow.f64 (exp.f64 (cos.f64 phi2)) (cos.f64 phi1)) (cos.f64 (-.f64 lambda2 lambda1)))))) R)
2.3b
(*.f64 (expm1.f64 (log1p.f64 (acos.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi2)) (fma.f64 (cos.f64 lambda2) (cos.f64 lambda1) (*.f64 (sin.f64 lambda2) (sin.f64 lambda1)))))))) R)
14.7b
(*.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (PI.f64) 1/2) 3) (pow.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) 3)) (+.f64 (*.f64 (*.f64 (PI.f64) 1/2) (*.f64 (PI.f64) 1/2)) (+.f64 (*.f64 (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2)))))) (*.f64 (*.f64 (PI.f64) 1/2) (asin.f64 (fma.f64 (sin.f64 phi1) (sin.f64 phi2) (*.f64 (cos.f64 (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 phi1) (cos.f64 phi2))))))))) R)
Compiler

Compiled 3496 to 1246 computations (64.4% saved)

regimes1.7s (9%)

Accuracy

Total 0.3b remaining (7.1%)

Threshold costs 0.3b (7.1%)

Counts
135 → 1
Compiler

Compiled 41918 to 27462 computations (34.5% saved)

simplify2.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02241
12841
Stop Event
saturated

end399.0ms (2.1%)

Stop Event
fuel
Remove

(sort phi1 phi2)

(sort lambda1 lambda2)

Compiler

Compiled 887 to 521 computations (41.3% saved)

Profiling

Loading profile data...