Details

Time bar (total: 20.4s)

analyze2.8s (13.9%)

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

Symmetry

(sort lambda1 lambda2)

(sort phi1 phi2)

Results
1.7s6201×body128valid
786.0ms827×body1024valid
624.0ms787×body512valid
530.0ms2411×body128invalid
441.0ms429×body1024invalid
246.0ms398×body512invalid
182.0ms430×body256valid
79.0ms197×body256invalid
20.0ms11×body2048valid
Compiler

Compiled 113 to 65 computations (42.5% saved)

simplify119.0ms (0.6%)

Algorithm
egg-herbie
Rules
1413×unsub-neg_binary64
897×distribute-neg-out_binary64
703×fma-def_binary64
583×neg-sub0_binary64
478×sub-neg_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01824
13524
28324
322424
465824
5203824
6312824
7359324
8439924
9436424
10443024
11446824
12503524

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
3.8b
Counts
3 → 1
Alt Table
StatusErrorProgram
3.8b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
Compiler

Compiled 95 to 55 computations (42.1% 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)))
3.9b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series3.1s (15.4%)

Counts
4 → 180
Calls

4 calls:

2.1s
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
1.0s
(hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))
24.0ms
(*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
5.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

rewrite16.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
14×add-sqr-sqrt_binary64
10×*-un-lft-identity_binary64
associate-*l*_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
4 → 63
Calls

4 calls:

7.0ms
(*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
3.0ms
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
3.0ms
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))
0.0ms
(hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))

simplify424.0ms (2.1%)

Algorithm
egg-herbie
Rules
1141×associate-*r*_binary64
462×fma-def_binary64
151×associate-*l*_binary64
88×sub-neg_binary64
65×associate-/l*_binary64
Counts
243 → 263
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0227546358
1516046358

prune1.2s (5.7%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New25013263
Fresh000
Picked101
Done000
Total25113264
Error
3.3b
Counts
264 → 13
Alt Table
StatusErrorProgram
30.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (-.f64 (+.f64 (cos.f64 (*.f64 1/2 phi1)) (*.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.9b
(*.f64 (*.f64 (cbrt.f64 R) (cbrt.f64 R)) (*.f64 (cbrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
8.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
40.6b
(*.f64 R (hypot.f64 (*.f64 (sqrt.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (sqrt.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
27.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (sqrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (sqrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
4.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
9.0b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
4.2b
(*.f64 (*.f64 R (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
35.5b
(*.f64 (sqrt.f64 R) (*.f64 (sqrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
47.9b
(*.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 phi2 phi2) (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 lambda1 lambda1) (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 lambda2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) lambda1))))) R)
38.2b
(exp.f64 (+.f64 (log.f64 R) (log.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
11.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi1))) (-.f64 phi1 phi2)))
16.3b
(*.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)))
Compiler

Compiled 60267 to 41262 computations (31.5% saved)

localize15.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
0.4b
(*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
0.5b
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
3.9b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series1.1s (5.5%)

Counts
3 → 72
Calls

3 calls:

622.0ms
(*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
494.0ms
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
6.0ms
(*.f64 (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))

rewrite20.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
29×pow1_binary64
24×add-sqr-sqrt_binary64
23×cbrt-prod_binary64
16×pow1/3_binary64
14×*-un-lft-identity_binary64
Counts
3 → 93
Calls

3 calls:

7.0ms
(*.f64 (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
6.0ms
(*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
1.0ms
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))

simplify118.0ms (0.6%)

Algorithm
egg-herbie
Rules
593×cancel-sign-sub-inv_binary64
348×fma-neg_binary64
345×neg-mul-1_binary64
308×distribute-rgt-neg-in_binary64
298×unswap-sqr_binary64
Counts
165 → 183
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02383909
16553651
222393332
344443263
449933263

prune762.0ms (3.7%)

Pruning

16 alts after pruning (16 fresh and 0 done)

PrunedKeptTotal
New3286334
Fresh21012
Picked101
Done000
Total33116347
Error
3.3b
Counts
347 → 16
Alt Table
StatusErrorProgram
9.0b
(*.f64 R (expm1.f64 (log1p.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
4.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (*.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))) 6) (cbrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))) 6))) (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))) (-.f64 phi1 phi2)))
30.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (+.f64 (cos.f64 (*.f64 1/2 phi1)) (fma.f64 (sin.f64 (*.f64 1/2 phi1)) (-.f64 (*.f64 1/48 (pow.f64 phi2 3)) (*.f64 1/2 phi2)) (*.f64 (*.f64 phi2 phi2) (*.f64 (cos.f64 (*.f64 1/2 phi1)) -1/8))))) (-.f64 phi1 phi2)))
38.2b
(exp.f64 (+.f64 (log.f64 R) (log.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))))
3.8b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (pow.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2) 1/3) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
11.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi1))) (-.f64 phi1 phi2)))
8.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
8.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
40.6b
(*.f64 R (hypot.f64 (*.f64 (sqrt.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (sqrt.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
11.0b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (cbrt.f64 (cos.f64 (*.f64 1/2 phi1))))) (-.f64 phi1 phi2)))
4.2b
(*.f64 (*.f64 R (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
35.5b
(*.f64 (sqrt.f64 R) (*.f64 (sqrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
4.9b
(*.f64 (*.f64 (cbrt.f64 R) (cbrt.f64 R)) (*.f64 (cbrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
11.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (pow.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) 1/3) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
47.9b
(*.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 phi2 phi2) (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 lambda1 lambda1) (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 lambda2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) lambda1))))) R)
16.3b
(*.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)))
Compiler

Compiled 16099 to 9954 computations (38.2% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2)
0.5b
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
3.9b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))
3.9b
(cos.f64 (*.f64 1/2 (+.f64 phi1 phi2)))

series20.0ms (0.1%)

Counts
2 → 16
Calls

2 calls:

15.0ms
(pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2)
5.0ms
(cos.f64 (*.f64 1/2 (+.f64 phi1 phi2)))

rewrite5.0ms (0%)

Algorithm
rewrite-expression-head
Rules
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
add-cube-cbrt_binary64
pow-unpow_binary64
unpow-prod-down_binary64
Counts
2 → 31
Calls

2 calls:

2.0ms
(pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2)
2.0ms
(cos.f64 (*.f64 1/2 (+.f64 phi1 phi2)))

simplify60.0ms (0.3%)

Algorithm
egg-herbie
Rules
441×associate-*r*_binary64
436×associate-*l*_binary64
368×fma-def_binary64
322×distribute-rgt-neg-in_binary64
320×cancel-sign-sub-inv_binary64
Counts
47 → 79
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01191102
13051033
2894990
33277952
45026952

prune344.0ms (1.7%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New1412143
Fresh41115
Picked101
Done000
Total14613159
Error
3.3b
Counts
159 → 13
Alt Table
StatusErrorProgram
11.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi1))) (-.f64 phi1 phi2)))
10.9b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (pow.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2) 1/3) (cbrt.f64 (cos.f64 (*.f64 1/2 phi1))))) (-.f64 phi1 phi2)))
8.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
8.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (*.f64 1/2 phi2))) (-.f64 phi1 phi2)))
40.6b
(*.f64 R (hypot.f64 (*.f64 (sqrt.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (sqrt.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
3.7b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (pow.f64 (pow.f64 (-.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)))) 2) 1/3) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
30.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (+.f64 (cos.f64 (*.f64 1/2 phi1)) (fma.f64 (sin.f64 (*.f64 1/2 phi1)) (-.f64 (*.f64 1/48 (pow.f64 phi2 3)) (*.f64 1/2 phi2)) (*.f64 (*.f64 phi2 phi2) (*.f64 (cos.f64 (*.f64 1/2 phi1)) -1/8))))) (-.f64 phi1 phi2)))
4.2b
(*.f64 (*.f64 R (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
35.5b
(*.f64 (sqrt.f64 R) (*.f64 (sqrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
4.9b
(*.f64 (*.f64 (cbrt.f64 R) (cbrt.f64 R)) (*.f64 (cbrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
11.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (pow.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 2) 1/3) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
47.9b
(*.f64 (sqrt.f64 (-.f64 (+.f64 (*.f64 phi2 phi2) (fma.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) (*.f64 lambda1 lambda1) (*.f64 (*.f64 lambda2 lambda2) (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)))) (*.f64 2 (*.f64 lambda2 (*.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2) lambda1))))) R)
16.3b
(*.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)))
Compiler

Compiled 6732 to 4323 computations (35.8% saved)

localize28.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (pow.f64 (pow.f64 (-.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)))) 2) 1/3) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
0.4b
(pow.f64 (-.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)))) 2)
0.5b
(cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))
3.9b
(cos.f64 (/.f64 (+.f64 phi1 phi2) 2))

series1.5s (7.2%)

Counts
2 → 48
Calls

2 calls:

1.4s
(*.f64 (pow.f64 (pow.f64 (-.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)))) 2) 1/3) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
34.0ms
(pow.f64 (-.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)))) 2)

rewrite31.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
27×add-sqr-sqrt_binary64
24×unpow-prod-down_binary64
12×associate-*l*_binary64
12×unswap-sqr_binary64
11×add-exp-log_binary64
Counts
2 → 68
Calls

2 calls:

12.0ms
(*.f64 (pow.f64 (pow.f64 (-.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)))) 2) 1/3) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))
6.0ms
(pow.f64 (-.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)))) 2)

simplify139.0ms (0.7%)

Algorithm
egg-herbie
Rules
583×fma-neg_binary64
390×fma-def_binary64
384×*-commutative_binary64
324×cancel-sign-sub-inv_binary64
321×distribute-rgt-in_binary64
Counts
116 → 137
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01895661
14435466
212585414
329585369
449485369

prune639.0ms (3.1%)

Pruning

14 alts after pruning (14 fresh and 0 done)

PrunedKeptTotal
New1938201
Fresh6612
Picked101
Done000
Total20014214
Error
3.2b
Counts
214 → 14
Alt Table
StatusErrorProgram
8.1b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (pow.f64 (pow.f64 (-.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)))) 2) 1/3) (cbrt.f64 (cos.f64 (*.f64 1/2 phi2))))) (-.f64 phi1 phi2)))
3.9b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (pow.f64 (-.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)))) 2) 1/3)) (cbrt.f64 (pow.f64 (pow.f64 (-.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)))) 2) 1/3))) (*.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2))) (cbrt.f64 (cbrt.f64 (pow.f64 (-.f64 (*.f64 (cos.f64 (*.f64 1/2 phi2)) (cos.f64 (*.f64 1/2 phi1))) (*.f64 (sin.f64 (*.f64 1/2 phi2)) (sin.f64 (*.f64 1/2 phi1)))) 2)))))) (-.f64 phi1 phi2)))
16.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (fma.f64 (*.f64 phi1 (sin.f64 (*.f64 1/2 phi2))) -1/2 (cos.f64 (*.f64 1/2 phi2)))) (-.f64 phi1 phi2)))
10.8b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (pow.f64 (pow.f64 (-.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)))) 2) 1/3) (cbrt.f64 (cos.f64 (*.f64 1/2 phi1))))) (-.f64 phi1 phi2)))
4.2b
(*.f64 (*.f64 R (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2)))) (sqrt.f64 (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
10.9b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (pow.f64 (pow.f64 (cos.f64 (*.f64 1/2 (+.f64 phi1 phi2))) 2) 1/3) (cbrt.f64 (cos.f64 (*.f64 1/2 phi1))))) (-.f64 phi1 phi2)))
8.3b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (cbrt.f64 (pow.f64 (cos.f64 (*.f64 1/2 phi2)) 2)) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
3.9b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (pow.f64 (pow.f64 (-.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)))) 2) 1/3) (*.f64 (cbrt.f64 (pow.f64 (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2)))) 6)) (cbrt.f64 (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi2 phi1) 2))))))) (-.f64 phi1 phi2)))
3.9b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (*.f64 (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (-.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)))) 2) 1/3) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (-.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)))) 2) 1/3) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))))) (cbrt.f64 (*.f64 (pow.f64 (pow.f64 (-.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)))) 2) 1/3) (cbrt.f64 (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))))) (-.f64 phi1 phi2)))
35.5b
(*.f64 (sqrt.f64 R) (*.f64 (sqrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
4.9b
(*.f64 (*.f64 (cbrt.f64 R) (cbrt.f64 R)) (*.f64 (cbrt.f64 R) (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))) (-.f64 phi1 phi2))))
40.6b
(*.f64 R (hypot.f64 (*.f64 (sqrt.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2)))) (sqrt.f64 (*.f64 (-.f64 lambda1 lambda2) (cos.f64 (/.f64 (+.f64 phi1 phi2) 2))))) (-.f64 phi1 phi2)))
30.2b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (+.f64 (cos.f64 (*.f64 1/2 phi1)) (fma.f64 (sin.f64 (*.f64 1/2 phi1)) (fma.f64 (pow.f64 phi2 3) 1/48 (*.f64 phi2 -1/2)) (*.f64 phi2 (*.f64 phi2 (*.f64 (cos.f64 (*.f64 1/2 phi1)) -1/8)))))) (-.f64 phi1 phi2)))
23.6b
(*.f64 R (hypot.f64 (*.f64 (-.f64 lambda1 lambda2) (*.f64 (pow.f64 (pow.f64 (-.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)))) 2) 1/3) (pow.f64 (cos.f64 (*.f64 1/2 phi1)) 1/3))) (-.f64 phi1 phi2)))
Compiler

Compiled 11882 to 8379 computations (29.5% saved)

regimes2.7s (13.1%)

Accuracy

Total 0.3b remaining (9%)

Threshold costs 0.3b (9%)

Counts
207 → 1
Compiler

Compiled 73143 to 53642 computations (26.7% saved)

simplify4.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
03064
14764
26364
37364
47964
58064
68064

end460.0ms (2.3%)

Remove

(sort phi1 phi2)

(sort lambda1 lambda2)

Compiler

Compiled 933 to 694 computations (25.6% saved)

Profiling

Loading profile data...