Details

Time bar (total: 22.6s)

analyze4.9s (21.5%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%99.8%0.2%8
0%99.8%0.2%9
0%99.8%0.2%10
0.8%99%0.2%11
1.2%98.6%0.2%12
9.9%89.8%0.2%13
9.9%89.8%0.2%14
Compiler

Compiled 39 to 24 computations (38.5% saved)

sample10.7s (47.2%)

Results
7.6s3998×body1024valid
1.6s1407×body512valid
812.0ms2263×body128valid
410.0ms572×body256valid
71.0ms16×body2048valid
Compiler

Compiled 116 to 71 computations (38.8% saved)

prune3.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
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)

localize27.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series124.0ms (0.5%)

Counts
4 → 132
Calls

4 calls:

60.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)))))))
48.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))))))
9.0ms
(*.f64 (sin.f64 theta) (sin.f64 delta))
7.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))

rewrite107.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
464×prod-diff_binary64
216×add-sqr-sqrt_binary64
204×log1p-expm1-u_binary64
204×expm1-log1p-u_binary64
199×add-log-exp_binary64
Counts
4 → 115
Calls

4 calls:

102.0ms
(*.f64 (sin.f64 theta) (sin.f64 delta))
102.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))
102.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))))))
102.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)))))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01988
140288
2487088
3574788

prune456.0ms (2%)

Pruning

8 alts after pruning (8 fresh and 0 done)

PrunedKeptTotal
New2398247
Fresh000
Picked101
Done000
Total2408248
Error
0.0b
Counts
248 → 8
Alt Table
StatusErrorProgram
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 (+.f64 (fma.f64 (sqrt.f64 (/.f64 (PI.f64) 2)) (sqrt.f64 (/.f64 (PI.f64) 2)) (neg.f64 (*.f64 (acos.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 1))) (fma.f64 (neg.f64 (acos.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 1 (*.f64 (acos.f64 (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 1))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2)) (/.f64 1 (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (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) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 delta) 2) (+.f64 (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2) (*.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))))
18.0b
(+.f64 lambda1 (atan2.f64 (*.f64 (pow.f64 (pow.f64 (*.f64 (sin.f64 delta) (sin.f64 theta)) 3) 1/3) (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)))))))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (+.f64 (fma.f64 (pow.f64 (cbrt.f64 (cos.f64 delta)) 2) (cbrt.f64 (cos.f64 delta)) (neg.f64 (*.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 2)))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 2) (*.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 2))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (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 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (log.f64 (exp.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
15.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (pow.f64 (pow.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 3) 1/3)))
Compiler

Compiled 11948 to 2081 computations (82.6% saved)

localize22.0ms (0.1%)

Local error

Found 4 expressions with local error:

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

series123.0ms (0.5%)

Counts
4 → 36
Calls

4 calls:

71.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))))))
35.0ms
(*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))
14.0ms
(*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))
3.0ms
(pow.f64 (sin.f64 phi1) 2)

rewrite90.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
341×log1p-udef_binary64
189×add-sqr-sqrt_binary64
180×log1p-expm1-u_binary64
180×expm1-log1p-u_binary64
175×add-log-exp_binary64
Counts
4 → 97
Calls

4 calls:

87.0ms
(*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))
87.0ms
(*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))
87.0ms
(pow.f64 (sin.f64 phi1) 2)
87.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))))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01771
137071
2485771
3538271

prune384.0ms (1.7%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New1312133
Fresh347
Picked011
Done000
Total1347141
Error
0.0b
Counts
141 → 7
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 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))) 3))))))
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) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 delta) 2) (+.f64 (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2) (*.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (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) 2) (pow.f64 (fma.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))) 2)) (/.f64 1 (+.f64 (cos.f64 delta) (fma.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.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 (fma.f64 (pow.f64 (cbrt.f64 (cos.f64 delta)) 2) (cbrt.f64 (cos.f64 delta)) (neg.f64 (*.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 2)))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 2) (*.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 2))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (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 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (log.f64 (exp.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
15.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (pow.f64 (pow.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 3) 1/3)))
Compiler

Compiled 6792 to 2156 computations (68.3% saved)

localize34.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
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) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))) 3))))
0.6b
(cbrt.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))
0.8b
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))) 3)

series937.0ms (4.1%)

Counts
4 → 88
Calls

4 calls:

452.0ms
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))) 3)
420.0ms
(cbrt.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))
61.0ms
(-.f64 (cos.f64 delta) (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))) 3))))
3.0ms
(pow.f64 (sin.f64 phi1) 2)

rewrite87.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
365×log1p-udef_binary64
204×add-sqr-sqrt_binary64
198×log1p-expm1-u_binary64
198×expm1-log1p-u_binary64
191×add-log-exp_binary64
Counts
4 → 118
Calls

4 calls:

83.0ms
(pow.f64 (sin.f64 phi1) 2)
83.0ms
(-.f64 (cos.f64 delta) (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))) 3))))
83.0ms
(cbrt.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))
83.0ms
(pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))) 3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02068
141568
2488068
3538868

prune462.0ms (2%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New2042206
Fresh145
Picked011
Done101
Total2067213
Error
0.0b
Counts
213 → 7
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 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))) 3))))))
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) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 delta) 2) (+.f64 (pow.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))) 2) (*.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (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) 2) (pow.f64 (fma.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))) 2)) (/.f64 1 (+.f64 (cos.f64 delta) (fma.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))))))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (cbrt.f64 (pow.f64 (-.f64 (cos.f64 delta) (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2)))) 3))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (+.f64 (fma.f64 (pow.f64 (cbrt.f64 (cos.f64 delta)) 2) (cbrt.f64 (cos.f64 delta)) (neg.f64 (*.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 2)))) (fma.f64 (neg.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 2) (*.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))) 2))))))
15.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (pow.f64 (pow.f64 (-.f64 (cos.f64 delta) (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2)))) 3) 1/3)))
0.1b
(+.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) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))))
Compiler

Compiled 9691 to 3120 computations (67.8% saved)

localize23.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (sin.f64 phi1) 2)
0.4b
(cbrt.f64 (pow.f64 (-.f64 (cos.f64 delta) (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2)))) 3))
0.5b
(-.f64 (cos.f64 delta) (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2))))
0.5b
(pow.f64 (-.f64 (cos.f64 delta) (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2)))) 3)

series288.0ms (1.3%)

Counts
4 → 112
Calls

4 calls:

170.0ms
(pow.f64 (-.f64 (cos.f64 delta) (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2)))) 3)
57.0ms
(-.f64 (cos.f64 delta) (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2))))
57.0ms
(cbrt.f64 (pow.f64 (-.f64 (cos.f64 delta) (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2)))) 3))
3.0ms
(pow.f64 (sin.f64 phi1) 2)

rewrite122.0ms (0.5%)

Algorithm
batch-egg-rewrite
Rules
941×prod-diff_binary64
188×add-sqr-sqrt_binary64
181×log1p-expm1-u_binary64
181×expm1-log1p-u_binary64
176×add-log-exp_binary64
Counts
4 → 161
Calls

4 calls:

114.0ms
(pow.f64 (sin.f64 phi1) 2)
114.0ms
(cbrt.f64 (pow.f64 (-.f64 (cos.f64 delta) (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2)))) 3))
114.0ms
(-.f64 (cos.f64 delta) (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2))))
114.0ms
(pow.f64 (-.f64 (cos.f64 delta) (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2)))) 3)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
019111
1381111
24499111
36275111

prune740.0ms (3.3%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New2703273
Fresh235
Picked101
Done011
Total2737280
Error
0.0b
Counts
280 → 7
Alt Table
StatusErrorProgram
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (cbrt.f64 (pow.f64 (*.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2))) 2)) (/.f64 1 (+.f64 (cos.f64 delta) (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2)))))) 3))))
0.2b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (cbrt.f64 (pow.f64 (+.f64 (fma.f64 (cbrt.f64 (cos.f64 delta)) (pow.f64 (cbrt.f64 (cos.f64 delta)) 2) (neg.f64 (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2))))) (fma.f64 (neg.f64 (cbrt.f64 (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2))))) (pow.f64 (cbrt.f64 (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2)))) 2) (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2))))) 3))))
0.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (*.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (pow.f64 (fma.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))))) 2)) (/.f64 1 (+.f64 (cos.f64 delta) (fma.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2) (*.f64 (sin.f64 delta) (*.f64 (sin.f64 phi1) (*.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 (cos.f64 delta) (+.f64 (*.f64 (pow.f64 (sin.f64 phi1) 2) (cos.f64 delta)) (*.f64 (sin.f64 delta) (pow.f64 (cbrt.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta)))) 3))))))
15.1b
(+.f64 lambda1 (atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (pow.f64 (pow.f64 (-.f64 (cos.f64 delta) (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2)))) 3) 1/3)))
0.1b
(+.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) (fma.f64 (cos.f64 delta) (sin.f64 phi1) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (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 (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2))) 3)) (/.f64 1 (+.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2))) (+.f64 (cos.f64 delta) (fma.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi1) (cos.f64 theta))) (sin.f64 delta) (*.f64 (cos.f64 delta) (pow.f64 (sin.f64 phi1) 2))))))))))
Compiler

Compiled 15563 to 5377 computations (65.5% saved)

regimes2.7s (12.1%)

Accuracy

Total 0.1b remaining (48.7%)

Threshold costs 0.1b (48.7%)

Counts
245 → 1
Compiler

Compiled 83914 to 47005 computations (44% saved)

simplify6.0ms (0%)

Algorithm
egg-herbie
Rules
21×*-commutative_binary64
20×+-commutative_binary64
18×sub-neg_binary64
16×neg-sub0_binary64
16×neg-mul-1_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02865
14265
25765
38165
410465
513065
615865
717165
817465
917065

end308.0ms (1.4%)

Compiler

Compiled 539 to 290 computations (46.2% saved)

Profiling

Loading profile data...