Details

Time bar (total: 48.5s)

analyze8.4s (17.3%)

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%99.8%0.2%11
0%99.8%0.2%12
0%99.8%0.2%13
0%99.8%0.2%14
Compiler

Compiled 39 to 24 computations (38.5% saved)

sample19.5s (40.1%)

Results
15.1s4034×body1024valid
2.3s1344×body512valid
1.2s2282×body128valid
639.0ms584×body256valid
69.0ms12×body2048valid
Compiler

Compiled 77 to 47 computations (39% saved)

simplify1.6s (3.4%)

Algorithm
egg-herbie
Rules
523×fma-def_binary64
515×associate-*r*_binary64
503×associate-+r+_binary64
452×distribute-rgt-in_binary64
429×distribute-lft-in_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02353
14153
27153
39653
412053
518653
633053
749153
879353
9139053
10153053
11175053
12191353
13232553
14443453

prune9.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (fma.f64 (sin.f64 phi1) (neg.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (cos.f64 delta))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
Compiler

Compiled 220 to 124 computations (43.6% saved)

localize49.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.2b
(sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))
0.3b
(*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))
0.4b
(asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))
0.6b
(fma.f64 (sin.f64 phi1) (neg.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (cos.f64 delta))

series415.0ms (0.9%)

Counts
4 → 144
Calls

4 calls:

250.0ms
(fma.f64 (sin.f64 phi1) (neg.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (cos.f64 delta))
86.0ms
(sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))
62.0ms
(*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))
16.0ms
(asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))

rewrite29.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
add-cbrt-cube_binary64
add-exp-log_binary64
pow1_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
Counts
4 → 52
Calls

4 calls:

18.0ms
(*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))
2.0ms
(fma.f64 (sin.f64 phi1) (neg.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (cos.f64 delta))
2.0ms
(sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))
1.0ms
(asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1))))

simplify2.2s (4.5%)

Algorithm
egg-herbie
Rules
389×associate-*r*_binary64
384×fma-neg_binary64
330×distribute-lft-neg-in_binary64
330×distribute-rgt-neg-in_binary64
275×associate-*l*_binary64
Counts
196 → 161
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02805350
18185028
228894833

prune570.0ms (1.2%)

Pruning

6 alts after pruning (6 fresh and 0 done)

PrunedKeptTotal
New1556161
Fresh101
Picked101
Done000
Total1576163
Error
0.0b
Counts
163 → 6
Alt Table
StatusErrorProgram
3.9b
(+.f64 lambda1 (atan2.f64 (cbrt.f64 (*.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 theta)) (sin.f64 theta)) (*.f64 (*.f64 (*.f64 (sin.f64 delta) (sin.f64 delta)) (sin.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi1)) (cos.f64 phi1))))) (fma.f64 (sin.f64 phi1) (neg.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (cos.f64 delta))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))
16.4b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (*.f64 (sqrt.f64 (fma.f64 (sin.f64 phi1) (neg.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (cos.f64 delta))) (sqrt.f64 (fma.f64 (sin.f64 phi1) (neg.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (cos.f64 delta))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (*.f64 (*.f64 (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))))))))) (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))))))) (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))))))))))))
0.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 theta)) (cbrt.f64 (sin.f64 theta))) (*.f64 (cbrt.f64 (sin.f64 theta)) (*.f64 (sin.f64 delta) (cos.f64 phi1)))) (fma.f64 (sin.f64 phi1) (neg.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (cos.f64 delta))))
11.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (*.f64 (cos.f64 phi1) (-.f64 (cos.f64 phi1) (*.f64 (*.f64 delta (cos.f64 theta)) (sin.f64 phi1))))))
Compiler

Compiled 7120 to 1665 computations (76.6% saved)

localize39.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))
0.3b
(*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))
0.3b
(pow.f64 (sin.f64 phi1) 2)
0.5b
(-.f64 (cos.f64 delta) (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))

series202.0ms (0.4%)

Counts
4 → 36
Calls

4 calls:

115.0ms
(-.f64 (cos.f64 delta) (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))
55.0ms
(*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))
25.0ms
(*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))
6.0ms
(pow.f64 (sin.f64 phi1) 2)

rewrite39.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
19×add-exp-log_binary64
19×pow1_binary64
18×add-cbrt-cube_binary64
18×*-un-lft-identity_binary64
18×add-sqr-sqrt_binary64
Counts
4 → 97
Calls

4 calls:

11.0ms
(-.f64 (cos.f64 delta) (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))
10.0ms
(*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))
7.0ms
(*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))
2.0ms
(pow.f64 (sin.f64 phi1) 2)

simplify2.1s (4.4%)

Algorithm
egg-herbie
Rules
547×fma-neg_binary64
482×associate-*r*_binary64
384×associate-*l*_binary64
256×*-commutative_binary64
236×sub-neg_binary64
Counts
133 → 195
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03094632
19333768
237723486

prune921.0ms (1.9%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1914195
Fresh415
Picked011
Done000
Total1956201
Error
0.0b
Counts
201 → 6
Alt Table
StatusErrorProgram
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (*.f64 (cbrt.f64 (sin.f64 phi1)) (cbrt.f64 (sin.f64 phi1))) (*.f64 (cbrt.f64 (sin.f64 phi1)) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi1)) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (/.f64 (-.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))) (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) (+.f64 (cos.f64 delta) (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))
16.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (*.f64 (sqrt.f64 (-.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi1)) (cos.f64 delta)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi1)) (*.f64 (cos.f64 theta) (sin.f64 delta))))) (sqrt.f64 (-.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi1)) (cos.f64 delta)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi1)) (*.f64 (cos.f64 theta) (sin.f64 delta))))))))
0.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 theta)) (cbrt.f64 (sin.f64 theta))) (*.f64 (cbrt.f64 (sin.f64 theta)) (*.f64 (sin.f64 delta) (cos.f64 phi1)))) (fma.f64 (sin.f64 phi1) (neg.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (cos.f64 delta))))
Compiler

Compiled 9891 to 2911 computations (70.6% saved)

localize42.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))
0.3b
(*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))
0.3b
(*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))
0.3b
(*.f64 (cos.f64 phi1) (cos.f64 phi1))

series8.0ms (0%)

Counts
1 → 12
Calls

1 calls:

7.0ms
(*.f64 (cos.f64 phi1) (cos.f64 phi1))

rewrite11.0ms (0%)

Algorithm
rewrite-expression-head
Rules
pow1_binary64
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
associate-*r*_binary64
Counts
1 → 29
Calls

1 calls:

9.0ms
(*.f64 (cos.f64 phi1) (cos.f64 phi1))

simplify604.0ms (1.2%)

Algorithm
egg-herbie
Rules
788×fma-def_binary64
415×cancel-sign-sub-inv_binary64
328×fma-neg_binary64
216×associate-*l*_binary64
211×*-commutative_binary64
Counts
41 → 46
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
056361
1118313
2358305
31196294
42772264

prune916.0ms (1.9%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New1922194
Fresh134
Picked101
Done011
Total1946200
Error
0.0b
Counts
200 → 6
Alt Table
StatusErrorProgram
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 theta)) (cbrt.f64 (sin.f64 theta))) (*.f64 (cbrt.f64 (sin.f64 theta)) (*.f64 (sin.f64 delta) (cos.f64 phi1)))) (-.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi1)) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi1)) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (*.f64 (cbrt.f64 (sin.f64 phi1)) (cbrt.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (*.f64 (cos.f64 theta) (cbrt.f64 (sin.f64 phi1)))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (/.f64 (-.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))) (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) (+.f64 (cos.f64 delta) (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))
16.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (*.f64 (sqrt.f64 (-.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi1)) (cos.f64 delta)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi1)) (*.f64 (cos.f64 theta) (sin.f64 delta))))) (sqrt.f64 (-.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi1)) (cos.f64 delta)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi1)) (*.f64 (cos.f64 theta) (sin.f64 delta))))))))
0.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 theta)) (cbrt.f64 (sin.f64 theta))) (*.f64 (cbrt.f64 (sin.f64 theta)) (*.f64 (sin.f64 delta) (cos.f64 phi1)))) (fma.f64 (sin.f64 phi1) (neg.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (cos.f64 delta))))
Compiler

Compiled 8365 to 1959 computations (76.6% saved)

localize55.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(*.f64 (cos.f64 phi1) (cos.f64 phi1))
0.4b
(*.f64 (*.f64 (cbrt.f64 (sin.f64 phi1)) (cbrt.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (*.f64 (cos.f64 theta) (cbrt.f64 (sin.f64 phi1)))))
0.5b
(*.f64 (cbrt.f64 (sin.f64 phi1)) (cbrt.f64 (sin.f64 phi1)))
0.6b
(cbrt.f64 (sin.f64 phi1))

series826.0ms (1.7%)

Counts
3 → 48
Calls

3 calls:

426.0ms
(*.f64 (cbrt.f64 (sin.f64 phi1)) (cbrt.f64 (sin.f64 phi1)))
368.0ms
(cbrt.f64 (sin.f64 phi1))
31.0ms
(*.f64 (*.f64 (cbrt.f64 (sin.f64 phi1)) (cbrt.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (*.f64 (cos.f64 theta) (cbrt.f64 (sin.f64 phi1)))))

rewrite46.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
31×pow1_binary64
26×add-exp-log_binary64
20×add-sqr-sqrt_binary64
19×cbrt-prod_binary64
17×pow-prod-down_binary64
Counts
3 → 85
Calls

3 calls:

22.0ms
(*.f64 (*.f64 (cbrt.f64 (sin.f64 phi1)) (cbrt.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (*.f64 (cos.f64 theta) (cbrt.f64 (sin.f64 phi1)))))
11.0ms
(*.f64 (cbrt.f64 (sin.f64 phi1)) (cbrt.f64 (sin.f64 phi1)))
2.0ms
(cbrt.f64 (sin.f64 phi1))

simplify1.9s (4%)

Algorithm
egg-herbie
Rules
577×fma-neg_binary64
386×fma-def_binary64
317×associate-*r*_binary64
285×associate-*l*_binary64
278×cancel-sign-sub-inv_binary64
Counts
133 → 140
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01882521
15261714
219851632
347021632

prune1.1s (2.2%)

Pruning

6 alts after pruning (5 fresh and 1 done)

PrunedKeptTotal
New2322234
Fresh134
Picked101
Done011
Total2346240
Error
0b
Counts
240 → 6
Alt Table
StatusErrorProgram
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (cos.f64 delta) (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi1)) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cbrt.f64 (pow.f64 (sin.f64 phi1) 2)) (*.f64 (cos.f64 phi1) (*.f64 (cos.f64 theta) (cbrt.f64 (sin.f64 phi1)))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 theta)) (cbrt.f64 (sin.f64 theta))) (*.f64 (cbrt.f64 (sin.f64 theta)) (*.f64 (sin.f64 delta) (cos.f64 phi1)))) (-.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi1)) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (-.f64 (*.f64 (+.f64 1/2 (*.f64 (cos.f64 (+.f64 phi1 phi1)) 1/2)) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (*.f64 (cbrt.f64 (sin.f64 phi1)) (cbrt.f64 (sin.f64 phi1))) (*.f64 (cos.f64 phi1) (*.f64 (cos.f64 theta) (cbrt.f64 (sin.f64 phi1)))))))))
16.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (sin.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))) (*.f64 (sqrt.f64 (-.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi1)) (cos.f64 delta)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi1)) (*.f64 (cos.f64 theta) (sin.f64 delta))))) (sqrt.f64 (-.f64 (*.f64 (*.f64 (cos.f64 phi1) (cos.f64 phi1)) (cos.f64 delta)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi1)) (*.f64 (cos.f64 theta) (sin.f64 delta))))))))
0.3b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 theta)) (cbrt.f64 (sin.f64 theta))) (*.f64 (cbrt.f64 (sin.f64 theta)) (*.f64 (sin.f64 delta) (cos.f64 phi1)))) (fma.f64 (sin.f64 phi1) (neg.f64 (sin.f64 (asin.f64 (fma.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)) (*.f64 (cos.f64 delta) (sin.f64 phi1)))))) (cos.f64 delta))))
Compiler

Compiled 10956 to 2318 computations (78.8% saved)

regimes6.1s (12.7%)

Accuracy

Total 0.0b remaining (49.4%)

Threshold costs 0.0b (49.4%)

Counts
213 → 1
Compiler

Compiled 61220 to 35364 computations (42.2% saved)

simplify11.0ms (0%)

Algorithm
egg-herbie
Rules
17×*-commutative_binary64
12×+-commutative_binary64
10×cancel-sign-sub-inv_binary64
10×sub-neg_binary64
neg-sub0_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02764
14064
25364
36564
47964
59464
610464
711064
811264

soundness422.0ms (0.9%)

Compiler

Compiled 11167 to 7095 computations (36.5% saved)

end328.0ms (0.7%)

Compiler

Compiled 367 to 204 computations (44.4% saved)

Profiling

Loading profile data...