Details

Time bar (total: 37.6s)

analyze10.4s (27.7%)

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
1.2%98.6%0.2%11
1.4%98.4%0.2%12
10.8%88.9%0.2%13
10.8%88.9%0.2%14
Compiler

Compiled 39 to 24 computations (38.5% saved)

sample564.0ms (1.5%)

Algorithm
intervals
Results
421.0ms133×body1024valid
61.0ms35×body512valid
35.0ms71×body128valid
19.0ms17×body256valid
Compiler

Compiled 82 to 52 computations (36.6% saved)

simplify76.0ms (0.2%)

Algorithm
egg-herbie
Rules
103×unsub-neg_binary64
90×associate-*l*_binary64
88×distribute-rgt-in_binary64
82×cancel-sign-sub-inv_binary64
80×associate-*r*_binary64
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02355
13955
26155
37255
48355
510755
613455
716455
821755
921655
1024055
1127555
1231755
1343155
1448655
1553455
1656755
1752155
1852355
1952555
2052655
2146355

prune6.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New101
Fresh011
Picked000
Done000
Total112
Error
0.1b
Counts
2 → 1
Alt Table
StatusErrorProgram
0.1b
(+.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 114 to 69 computations (39.5% saved)

localize58.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.2b
(*.f64 (sin.f64 theta) (sin.f64 delta))
0.3b
(*.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))))))
0.3b
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))
0.4b
(-.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)))))))

rewrite277.0ms (0.7%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
12×add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
add-exp-log_binary64
Counts
4 → 58
Calls

4 calls:

8.0ms
(*.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))))))
7.0ms
(*.f64 (sin.f64 theta) (sin.f64 delta))
5.0ms
(-.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)))))))
2.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))
Compiler

Compiled 2518 to 351 computations (86.1% saved)

series357.0ms (0.9%)

Error
0.1b
Counts
4 → 39
Calls

4 calls:

124.0ms
(-.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)))))))
119.0ms
(*.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))))))
45.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))
43.0ms
(*.f64 (sin.f64 theta) (sin.f64 delta))
Compiler

Compiled 3353 to 1830 computations (45.4% saved)

simplify264.0ms (0.7%)

Algorithm
egg-herbie
Rules
460×distribute-rgt-neg-in_binary64
439×cancel-sign-sub-inv_binary64
438×neg-mul-1_binary64
433×associate-*l*_binary64
424×neg-sub0_binary64
Counts
97 → 51
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01483100
13182911
28042872
316942872
431972872
543692872
650002872

prune179.0ms (0.5%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New44751
Fresh000
Picked101
Done000
Total45752
Error
0.0b
Counts
52 → 7
Alt Table
StatusErrorProgram
28.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sqrt.f64 (*.f64 (sin.f64 delta) (sin.f64 theta))) (sqrt.f64 (*.f64 (sin.f64 delta) (sin.f64 theta)))) (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)))))))))
17.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (sqrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))) (sqrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (cbrt.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 3)))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (*.f64 (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))) (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))) (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (-.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (-.f64 (pow.f64 (cos.f64 delta) 3) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 3)) (+.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (sin.f64 phi1) (*.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (log.f64 (exp.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))
Compiler

Compiled 2874 to 684 computations (76.2% saved)

localize83.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.3b
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))
0.3b
(-.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))
0.3b
(/.f64 (-.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))
0.4b
(*.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))

rewrite973.0ms (2.6%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
43×pow1_binary64
18×add-cbrt-cube_binary64
18×add-exp-log_binary64
17×pow-prod-down_binary64
16×sin-mult_binary64
Counts
4 → 105
Calls

4 calls:

30.0ms
(/.f64 (-.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))
18.0ms
(*.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))
15.0ms
(-.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))
2.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))
Compiler

Compiled 10602 to 651 computations (93.9% saved)

series892.0ms (2.4%)

Error
0.0b
Counts
4 → 42
Calls

4 calls:

425.0ms
(/.f64 (-.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))
192.0ms
(-.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))
161.0ms
(*.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))
50.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))
Compiler

Compiled 6932 to 2709 computations (60.9% saved)

simplify543.0ms (1.4%)

Algorithm
egg-herbie
Rules
316×distribute-rgt-in_binary64
310×cancel-sign-sub-inv_binary64
297×distribute-lft-in_binary64
249×times-frac_binary64
210×distribute-rgt-neg-in_binary64
Counts
147 → 114
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
021710049
15549393
219128511
347518304
449778304

prune448.0ms (1.2%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New1095114
Fresh336
Picked101
Done000
Total1138121
Error
0.0b
Counts
121 → 8
Alt Table
StatusErrorProgram
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (/.f64 (-.f64 (pow.f64 (cos.f64 delta) 4) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 4)) (+.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2) (pow.f64 (cos.f64 delta) 2))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (-.f64 (pow.f64 (cos.f64 delta) 3) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 3)) (+.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (sin.f64 phi1) (*.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) 3) (pow.f64 (*.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))) 3)) (*.f64 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))) (+.f64 (pow.f64 (cos.f64 delta) 4) (+.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 4) (*.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2) (pow.f64 (cos.f64 delta) 2))))))))
17.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (sqrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))) (sqrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (*.f64 (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))) (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))) (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)) 3)) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (-.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)) (cbrt.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2))) (cbrt.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (*.f64 (cbrt.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2))) (cbrt.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)))) (/.f64 (cbrt.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))
Compiler

Compiled 7294 to 1329 computations (81.8% saved)

localize74.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.3b
(/.f64 (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)) 3)) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))
0.4b
(pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)
0.5b
(pow.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)) 3)
0.5b
(cbrt.f64 (pow.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)) 3))

rewrite2.2s (5.9%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
190×cbrt-prod_binary64
189×add-sqr-sqrt_binary64
144×difference-of-squares_binary64
133×unpow-prod-down_binary64
123×times-frac_binary64
Counts
4 → 301
Calls

4 calls:

36.0ms
(/.f64 (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)) 3)) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))
19.0ms
(cbrt.f64 (pow.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)) 3))
15.0ms
(pow.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)) 3)
8.0ms
(pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)
Compiler

Compiled 19972 to 4042 computations (79.8% saved)

series944.0ms (2.5%)

Error
0.0b
Counts
4 → 44
Calls

4 calls:

379.0ms
(pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)
224.0ms
(/.f64 (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)) 3)) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))
198.0ms
(pow.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)) 3)
101.0ms
(cbrt.f64 (pow.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)) 3))
Compiler

Compiled 7460 to 3220 computations (56.8% saved)

simplify830.0ms (2.2%)

Algorithm
egg-herbie
Rules
587×times-frac_binary64
435×unswap-sqr_binary64
249×exp-prod_binary64
222×log-prod_binary64
217×cube-prod_binary64
Counts
345 → 319
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
042336919
174333920
2245432701
3430332701
4503732701

prune331.0ms (0.9%)

Pruning

8 alts after pruning (7 fresh and 1 done)

PrunedKeptTotal
New3181319
Fresh167
Picked011
Done000
Total3198327
Error
0.0b
Counts
327 → 8
Alt Table
StatusErrorProgram
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (/.f64 (-.f64 (pow.f64 (cos.f64 delta) 4) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 4)) (+.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2) (pow.f64 (cos.f64 delta) 2))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (-.f64 (pow.f64 (cos.f64 delta) 3) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 3)) (+.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (sin.f64 phi1) (*.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (cbrt.f64 (/.f64 (pow.f64 (-.f64 (pow.f64 (cos.f64 delta) 6) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 6)) 3) (pow.f64 (+.f64 (pow.f64 (cos.f64 delta) 4) (+.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 4) (*.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2) (pow.f64 (cos.f64 delta) 2)))) 3))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))))
17.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (sqrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))) (sqrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (*.f64 (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))) (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))) (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)) 3)) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (-.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)) (cbrt.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2))) (cbrt.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (*.f64 (cbrt.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2))) (cbrt.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)))) (/.f64 (cbrt.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))
Compiler

Compiled 8827 to 1758 computations (80.1% saved)

localize44.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.3b
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))
0.3b
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))
0.4b
(pow.f64 (cos.f64 delta) 3)
0.5b
(pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 3)

rewrite278.0ms (0.7%)

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

4 calls:

4.0ms
(pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 3)
2.0ms
(pow.f64 (cos.f64 delta) 3)
1.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))
1.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))
Compiler

Compiled 5162 to 655 computations (87.3% saved)

series243.0ms (0.6%)

Error
0.0b
Counts
4 → 32
Calls

4 calls:

106.0ms
(pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 3)
69.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))
28.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))
13.0ms
(pow.f64 (cos.f64 delta) 3)
Compiler

Compiled 6311 to 2232 computations (64.6% saved)

simplify151.0ms (0.4%)

Algorithm
egg-herbie
Rules
553×sqr-pow_binary64
410×log-prod_binary64
402×exp-prod_binary64
333×*-commutative_binary64
277×unswap-sqr_binary64
Counts
94 → 43
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0982550
12122274
26772250
316522250
432222244
547042244
649942244
749062244

prune109.0ms (0.3%)

Pruning

8 alts after pruning (6 fresh and 2 done)

PrunedKeptTotal
New43043
Fresh066
Picked011
Done011
Total43851
Error
0.0b
Counts
51 → 8
Alt Table
StatusErrorProgram
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (/.f64 (-.f64 (pow.f64 (cos.f64 delta) 4) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 4)) (+.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2) (pow.f64 (cos.f64 delta) 2))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (-.f64 (pow.f64 (cos.f64 delta) 3) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 3)) (+.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (sin.f64 phi1) (*.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (cbrt.f64 (/.f64 (pow.f64 (-.f64 (pow.f64 (cos.f64 delta) 6) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 6)) 3) (pow.f64 (+.f64 (pow.f64 (cos.f64 delta) 4) (+.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 4) (*.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2) (pow.f64 (cos.f64 delta) 2)))) 3))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))))
17.7b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (sqrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))) (sqrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (*.f64 (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))) (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))) (cbrt.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (cbrt.f64 (pow.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)) 3)) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (/.f64 (-.f64 (*.f64 (cos.f64 delta) (cos.f64 delta)) (*.f64 (*.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)) (cbrt.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2))) (cbrt.f64 (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta)))))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (*.f64 (cbrt.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2))) (cbrt.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2)))) (/.f64 (cbrt.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))) 2))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (sin.f64 delta) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))))
Compiler

Compiled 2344 to 487 computations (79.2% saved)

regimes3.2s (8.5%)

Accuracy

Total 0.1b remaining (46.1%)

Threshold costs 0.1b (46.1%)

Compiler

Compiled 127048 to 50470 computations (60.3% saved)

simplify8.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
029136
145136
257136
365136
471136
573136
672136

end1.0ms (0%)

Compiler

Compiled 86 to 29 computations (66.3% saved)

sample14.0s (37.3%)

Algorithm
intervals
Results
9.8s3940×body1024valid
1.7s1335×body512valid
788.0ms2174×body128valid
733.0ms535×body256valid
100.0ms16×body2048valid
Compiler

Compiled 890 to 336 computations (62.2% saved)

Profiling

Loading profile data...