Details

Time bar (total: 17.9s)

analyze2.7s (15.2%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%99.8%0.2%8
0%99.8%0.2%9
0%99.8%0.2%10
0.8%99%0.2%11
4.7%95.1%0.2%12
5.9%93.2%0.8%13
8.5%90.2%1.3%14
Compiler

Compiled 38 to 22 computations (42.1% saved)

sample4.3s (23.9%)

Results
1.4s6174×body128valid
821.0ms819×body1024valid
542.0ms2450×body128invalid
509.0ms825×body512valid
468.0ms490×body1024invalid
212.0ms380×body512invalid
183.0ms433×body256valid
67.0ms165×body256invalid
8.0msbody2048valid
Compiler

Compiled 76 to 44 computations (42.1% saved)

preprocess66.0ms (0.4%)

Algorithm
egg-herbie
Rules
1000×distribute-rgt-in_binary64
877×fma-def_binary64
324×distribute-lft-in_binary64
228×distribute-lft-neg-out_binary64
228×distribute-rgt-neg-out_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0108264
1261264
2662264
32716264
055
155
Stop Event
unsound
node limit
Symmetry

(sort lambda1 lambda2)

(sort phi1 phi2)

Compiler

Compiled 37 to 21 computations (43.2% saved)

simplify42.0ms (0.2%)

Algorithm
egg-herbie
Rules
1013×unsub-neg_binary64
719×distribute-neg-out_binary64
703×fma-def_binary64
272×distribute-rgt-in_binary64
229×associate-*l*_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01824
13524
28324
331224
4107024
5354924
Stop Event
node limit
Counts
1 → 2

prune5.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
4.2b
Counts
3 → 2
Alt Table
StatusErrorProgram
39.0b
(*.f64 R (sqrt.f64 (+.f64 (*.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (*.f64 (-.f64 phi1 phi2) (-.f64 phi1 phi2)))))
4.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
Compiler

Compiled 169 to 97 computations (42.6% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))
0.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
0.2b
(*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
2.4b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series1.3s (7.5%)

Counts
4 → 180
Calls

45 calls:

328.0ms
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
phi2
0
313.0ms
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
phi1
0
190.0ms
(hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))
phi1
0
188.0ms
(hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))
phi2
0
36.0ms
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
R
-inf

rewrite75.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
307×log1p-udef_binary64
175×add-sqr-sqrt_binary64
170×pow1_binary64
169×*-un-lft-identity_binary64
162×add-exp-log_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01569
133169
2450269
Stop Event
node limit
Counts
4 → 73

simplify313.0ms (1.7%)

Algorithm
egg-herbie
Rules
509×+-commutative_binary64
461×fma-def_binary64
405×associate-+r+_binary64
141×associate-*l*_binary64
85×sub-neg_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0219644761
Stop Event
node limit
Counts
253 → 281

prune1.2s (6.8%)

Pruning

17 alts after pruning (17 fresh and 0 done)

PrunedKeptTotal
New26417281
Fresh101
Picked101
Done000
Total26617283
Error
3.8b
Counts
283 → 17
Alt Table
StatusErrorProgram
5.3b
(pow.f64 (cbrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 3)
15.6b
(*.f64 R (hypot.f64 (-.f64 (fma.f64 1/2 (*.f64 lambda2 (*.f64 (sin.f64 (*.f64 1/2 phi1)) phi2)) (*.f64 (cos.f64 (*.f64 1/2 phi1)) lambda1)) (fma.f64 1/2 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 phi2 lambda1)) (*.f64 (cos.f64 (*.f64 1/2 phi1)) lambda2))) (-.f64 phi1 phi2)))
4.6b
(*.f64 R (hypot.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) (-.f64 lambda1 lambda2))) 3) (-.f64 phi1 phi2)))
38.0b
(-.f64 (*.f64 lambda2 (*.f64 R (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (*.f64 R (*.f64 lambda1 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))))
26.2b
(*.f64 R (hypot.f64 (/.f64 (*.f64 (-.f64 (*.f64 lambda1 lambda1) (*.f64 lambda2 lambda2)) (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2))) (+.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))
9.5b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi1))) (-.f64 phi1 phi2)))
9.4b
(*.f64 R (exp.f64 (log.f64 (hypot.f64 (*.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
33.1b
(-.f64 (*.f64 R phi2) (*.f64 phi1 R))
56.2b
(-.f64 (*.f64 R (*.f64 lambda1 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (*.f64 lambda2 (*.f64 R (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))))
10.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
37.0b
(exp.f64 (log.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
39.0b
(*.f64 R (sqrt.f64 (+.f64 (*.f64 phi2 phi2) (-.f64 (+.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) (*.f64 lambda1 lambda1) (*.f64 phi1 phi1)) (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2))) (*.f64 2 (+.f64 (*.f64 lambda2 (*.f64 lambda1 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2))) (*.f64 phi1 phi2)))))))
24.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (pow.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) 3) 1/3)) (-.f64 phi1 phi2)))
25.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (+.f64 (cos.f64 (*.f64 1/2 phi1)) (-.f64 (*.f64 1/48 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (pow.f64 phi2 3))) (fma.f64 1/2 (*.f64 (sin.f64 (*.f64 1/2 phi1)) phi2) (*.f64 1/8 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 phi2 phi2))))))) (-.f64 phi1 phi2)))
17.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (cos.f64 (*.f64 1/2 phi2)) (*.f64 1/2 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2)))))) (-.f64 phi1 phi2)))
4.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (exp.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2))))) (-.f64 phi1 phi2)))
4.4b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (cbrt.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2))) 3)) (-.f64 phi1 phi2)))
Compiler

Compiled 60298 to 41397 computations (31.3% saved)

localize23.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(exp.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)))
0.2b
(*.f64 (-.f64 lambda1 lambda2) (log.f64 (exp.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)))))
0.4b
(log.f64 (exp.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2))))
2.4b
(cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2))

series42.0ms (0.2%)

Counts
4 → 120
Calls

30 calls:

6.0ms
(exp.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)))
phi1
0
3.0ms
(exp.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)))
phi2
0
3.0ms
(*.f64 (-.f64 lambda1 lambda2) (log.f64 (exp.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)))))
phi2
0
2.0ms
(*.f64 (-.f64 lambda1 lambda2) (log.f64 (exp.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)))))
phi1
0
2.0ms
(*.f64 (-.f64 lambda1 lambda2) (log.f64 (exp.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)))))
lambda1
-inf

rewrite54.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
935×prod-diff_binary64
135×add-sqr-sqrt_binary64
133×pow1_binary64
132×*-un-lft-identity_binary64
127×add-log-exp_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01344
126144
2343644
Stop Event
node limit
Counts
4 → 81

simplify66.0ms (0.4%)

Algorithm
egg-herbie
Rules
450×associate--l+_binary64
415×associate--r+_binary64
342×fma-neg_binary64
273×associate-*r*_binary64
229×distribute-rgt-neg-in_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01792642
15912608
222182406
Stop Event
node limit
Counts
201 → 117

prune249.0ms (1.4%)

Pruning

16 alts after pruning (16 fresh and 0 done)

PrunedKeptTotal
New1143117
Fresh31316
Picked101
Done000
Total11816134
Error
3.8b
Counts
134 → 16
Alt Table
StatusErrorProgram
26.2b
(*.f64 R (hypot.f64 (/.f64 (*.f64 (-.f64 (*.f64 lambda1 lambda1) (*.f64 lambda2 lambda2)) (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2))) (+.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))
9.5b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi1))) (-.f64 phi1 phi2)))
17.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (cos.f64 (*.f64 1/2 phi2)) (*.f64 1/2 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2)))))) (-.f64 phi1 phi2)))
15.2b
(*.f64 R (hypot.f64 (+.f64 (*.f64 (cos.f64 (*.f64 1/2 phi1)) lambda1) (-.f64 (*.f64 (*.f64 1/2 (*.f64 phi2 (sin.f64 (*.f64 1/2 phi1)))) (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 (*.f64 1/2 phi1)) lambda2))) (-.f64 phi1 phi2)))
9.4b
(*.f64 R (exp.f64 (log.f64 (hypot.f64 (*.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
33.1b
(-.f64 (*.f64 R phi2) (*.f64 phi1 R))
56.2b
(-.f64 (*.f64 R (*.f64 lambda1 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))) (*.f64 lambda2 (*.f64 R (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))))))
10.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
37.0b
(exp.f64 (log.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))))
39.0b
(*.f64 R (sqrt.f64 (+.f64 (*.f64 phi2 phi2) (-.f64 (+.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) (*.f64 lambda1 lambda1) (*.f64 phi1 phi1)) (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2))) (*.f64 2 (+.f64 (*.f64 lambda2 (*.f64 lambda1 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2))) (*.f64 phi1 phi2)))))))
24.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (pow.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) 3) 1/3)) (-.f64 phi1 phi2)))
5.3b
(pow.f64 (cbrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 3)
25.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (+.f64 (cos.f64 (*.f64 1/2 phi1)) (-.f64 (*.f64 1/48 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (pow.f64 phi2 3))) (fma.f64 1/2 (*.f64 (sin.f64 (*.f64 1/2 phi1)) phi2) (*.f64 1/8 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 phi2 phi2))))))) (-.f64 phi1 phi2)))
4.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (exp.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) 3))))) (-.f64 phi1 phi2)))
4.6b
(*.f64 R (hypot.f64 (pow.f64 (cbrt.f64 (*.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) (-.f64 lambda1 lambda2))) 3) (-.f64 phi1 phi2)))
5.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (pow.f64 (cbrt.f64 (exp.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)))) 3))) (-.f64 phi1 phi2)))
Compiler

Compiled 4532 to 2800 computations (38.2% saved)

localize16.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(cbrt.f64 (pow.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) 3))
0.4b
(log.f64 (exp.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) 3))))
0.5b
(pow.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) 3)
2.4b
(cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2))

series30.0ms (0.2%)

Counts
3 → 72
Calls

18 calls:

4.0ms
(log.f64 (exp.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) 3))))
phi1
0
4.0ms
(pow.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) 3)
phi1
0
4.0ms
(pow.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) 3)
phi2
0
3.0ms
(pow.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) 3)
phi2
-inf
3.0ms
(pow.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) 3)
phi2
inf

rewrite49.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
576×prod-diff_binary64
444×log-prod_binary64
199×fma-def_binary64
180×expm1-udef_binary64
180×log1p-udef_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01230
124130
2261430
Stop Event
node limit
Counts
3 → 95

simplify53.0ms (0.3%)

Algorithm
egg-herbie
Rules
597×fma-def_binary64
496×cancel-sign-sub-inv_binary64
471×unswap-sqr_binary64
358×sub-neg_binary64
344×*-commutative_binary64
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0951418
13261410
212271369
342301369
Stop Event
node limit
Counts
167 → 93

prune245.0ms (1.4%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New1273130
Fresh9615
Picked101
Done000
Total1379146
Error
0.0b
Counts
146 → 9
Alt Table
StatusErrorProgram
24.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (pow.f64 (pow.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) 3) 1/3)) (-.f64 phi1 phi2)))
4.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (exp.f64 (cbrt.f64 (pow.f64 (log.f64 (exp.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)))) 3))))) (-.f64 phi1 phi2)))
5.3b
(pow.f64 (cbrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 3)
4.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (log.f64 (exp.f64 (cbrt.f64 (pow.f64 (expm1.f64 (log1p.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)))) 3))))) (-.f64 phi1 phi2)))
0.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (*.f64 (cos.f64 (*.f64 phi1 1/2)) (cos.f64 (*.f64 phi2 1/2))) (*.f64 (sin.f64 (*.f64 phi1 1/2)) (sin.f64 (*.f64 phi2 1/2))))) (-.f64 phi1 phi2)))
26.2b
(*.f64 R (hypot.f64 (/.f64 (*.f64 (-.f64 (*.f64 lambda1 lambda1) (*.f64 lambda2 lambda2)) (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2))) (+.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))
15.2b
(*.f64 R (hypot.f64 (+.f64 (*.f64 (cos.f64 (*.f64 1/2 phi1)) lambda1) (-.f64 (*.f64 (*.f64 1/2 (*.f64 phi2 (sin.f64 (*.f64 1/2 phi1)))) (-.f64 lambda2 lambda1)) (*.f64 (cos.f64 (*.f64 1/2 phi1)) lambda2))) (-.f64 phi1 phi2)))
33.1b
(-.f64 (*.f64 R phi2) (*.f64 phi1 R))
39.0b
(*.f64 R (sqrt.f64 (+.f64 (*.f64 phi2 phi2) (-.f64 (+.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) (*.f64 lambda1 lambda1) (*.f64 phi1 phi1)) (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2))) (*.f64 2 (+.f64 (*.f64 lambda2 (*.f64 lambda1 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2))) (*.f64 phi1 phi2)))))))
Compiler

Compiled 4472 to 2789 computations (37.6% saved)

localize21.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (cos.f64 (*.f64 phi1 1/2)) (cos.f64 (*.f64 phi2 1/2)))
0.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (*.f64 (cos.f64 (*.f64 phi1 1/2)) (cos.f64 (*.f64 phi2 1/2))) (*.f64 (sin.f64 (*.f64 phi1 1/2)) (sin.f64 (*.f64 phi2 1/2))))) (-.f64 phi1 phi2)))
0.2b
(*.f64 (-.f64 lambda1 lambda2) (-.f64 (*.f64 (cos.f64 (*.f64 phi1 1/2)) (cos.f64 (*.f64 phi2 1/2))) (*.f64 (sin.f64 (*.f64 phi1 1/2)) (sin.f64 (*.f64 phi2 1/2)))))
0.2b
(*.f64 (sin.f64 (*.f64 phi1 1/2)) (sin.f64 (*.f64 phi2 1/2)))

series2.2s (12.4%)

Counts
4 → 156
Calls

39 calls:

328.0ms
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (*.f64 (cos.f64 (*.f64 phi1 1/2)) (cos.f64 (*.f64 phi2 1/2))) (*.f64 (sin.f64 (*.f64 phi1 1/2)) (sin.f64 (*.f64 phi2 1/2))))) (-.f64 phi1 phi2)))
phi2
0
303.0ms
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (*.f64 (cos.f64 (*.f64 phi1 1/2)) (cos.f64 (*.f64 phi2 1/2))) (*.f64 (sin.f64 (*.f64 phi1 1/2)) (sin.f64 (*.f64 phi2 1/2))))) (-.f64 phi1 phi2)))
phi1
0
169.0ms
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (*.f64 (cos.f64 (*.f64 phi1 1/2)) (cos.f64 (*.f64 phi2 1/2))) (*.f64 (sin.f64 (*.f64 phi1 1/2)) (sin.f64 (*.f64 phi2 1/2))))) (-.f64 phi1 phi2)))
lambda1
-inf
169.0ms
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (*.f64 (cos.f64 (*.f64 phi1 1/2)) (cos.f64 (*.f64 phi2 1/2))) (*.f64 (sin.f64 (*.f64 phi1 1/2)) (sin.f64 (*.f64 phi2 1/2))))) (-.f64 phi1 phi2)))
lambda2
inf
169.0ms
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (*.f64 (cos.f64 (*.f64 phi1 1/2)) (cos.f64 (*.f64 phi2 1/2))) (*.f64 (sin.f64 (*.f64 phi1 1/2)) (sin.f64 (*.f64 phi2 1/2))))) (-.f64 phi1 phi2)))
lambda2
-inf

rewrite35.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
249×add-sqr-sqrt_binary64
245×pow1_binary64
244×*-un-lft-identity_binary64
230×add-exp-log_binary64
230×add-log-exp_binary64
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
021109
146769
Stop Event
node limit
Counts
4 → 52

simplify440.0ms (2.5%)

Algorithm
egg-herbie
Rules
533×fma-def_binary64
497×associate-+r+_binary64
139×associate-/l*_binary64
123×associate-*l*_binary64
84×associate-*l/_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0238767673
Stop Event
node limit
Counts
208 → 196

prune1.7s (9.5%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1924196
Fresh448
Picked101
Done000
Total1978205
Error
0.0b
Counts
205 → 8
Alt Table
StatusErrorProgram
5.3b
(pow.f64 (cbrt.f64 (*.f64 R (hypot.f64 (*.f64 (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2)) (-.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))) 3)
0.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (-.f64 (exp.f64 (log1p.f64 (*.f64 (cos.f64 (*.f64 phi1 1/2)) (cos.f64 (*.f64 1/2 phi2))))) 1) (*.f64 (sin.f64 (*.f64 phi1 1/2)) (sin.f64 (*.f64 phi2 1/2))))) (-.f64 phi1 phi2)))
0.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (*.f64 (cos.f64 (*.f64 phi1 1/2)) (cos.f64 (*.f64 phi2 1/2))) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 (*.f64 phi1 1/2)) (sin.f64 (*.f64 1/2 phi2)))) 3))) (-.f64 phi1 phi2)))
26.2b
(*.f64 R (hypot.f64 (/.f64 (*.f64 (-.f64 (*.f64 lambda1 lambda1) (*.f64 lambda2 lambda2)) (cos.f64 (*.f64 (+.f64 phi1 phi2) 1/2))) (+.f64 lambda1 lambda2)) (-.f64 phi1 phi2)))
0.1b
(*.f64 R (hypot.f64 (-.f64 (fma.f64 lambda2 (*.f64 (sin.f64 (*.f64 1/2 phi1)) (sin.f64 (*.f64 1/2 phi2))) (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) lambda1))) (fma.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi2)) lambda1) (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 lambda2 (cos.f64 (*.f64 1/2 phi2)))))) (-.f64 phi1 phi2)))
33.1b
(-.f64 (*.f64 R phi2) (*.f64 phi1 R))
39.0b
(*.f64 R (sqrt.f64 (+.f64 (*.f64 phi2 phi2) (-.f64 (+.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2) (*.f64 lambda1 lambda1) (*.f64 phi1 phi1)) (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2))) (*.f64 2 (+.f64 (*.f64 lambda2 (*.f64 lambda1 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi2 phi1))) 2))) (*.f64 phi1 phi2)))))))
28.0b
(-.f64 (fma.f64 2 (*.f64 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 R (*.f64 (cos.f64 (*.f64 1/2 phi2)) (*.f64 (sin.f64 (*.f64 1/2 phi2)) lambda1))))) (sqrt.f64 (/.f64 1 (+.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2))) (*.f64 -2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2)))))))))) (*.f64 (*.f64 lambda2 R) (sqrt.f64 (+.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2))) (*.f64 -2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2)))))))))) (*.f64 (sqrt.f64 (/.f64 1 (+.f64 (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2))) (*.f64 -2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) (*.f64 (sin.f64 (*.f64 1/2 phi1)) (*.f64 (cos.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi2))))))))) (+.f64 (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi1)) 2) (*.f64 R (*.f64 (pow.f64 (sin.f64 (*.f64 1/2 phi2)) 2) lambda1))) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 R lambda1))))))
Compiler

Compiled 84887 to 64383 computations (24.2% saved)

regimes2.3s (12.7%)

Accuracy

Total 0.1b remaining (42.5%)

Threshold costs 0.1b (42.5%)

Counts
194 → 1
Compiler

Compiled 58734 to 43661 computations (25.7% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Rules
11×*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02445
14245
25945
36945
47545
57645
Stop Event
saturated

end310.0ms (1.7%)

Stop Event
fuel
Remove

(sort phi1 phi2)

(sort lambda1 lambda2)

Compiler

Compiled 682 to 512 computations (24.9% saved)

Profiling

Loading profile data...