Details

Time bar (total: 24.9s)

analyze3.5s (14.1%)

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
7.8%92%0.2%9
7.8%92%0.2%10
10.1%89.7%0.2%11
10.1%89.7%0.2%12
13.9%85.9%0.2%13
13.9%85.9%0.2%14
Compiler

Compiled 29 to 18 computations (37.9% saved)

sample11.6s (46.6%)

Alt Table
StatusErrorProgram
11.4b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
Results
9.0s5466×body1024valid
1.2s1340×body512valid
718.0ms179×body2048valid
257.0ms838×body128valid
250.0ms433×body256valid
Compiler

Compiled 142 to 87 computations (38.7% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))
0.2b
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
4.2b
(cos.f64 (-.f64 lambda1 lambda2))
4.4b
(sin.f64 (-.f64 lambda1 lambda2))

series58.0ms (0.2%)

Counts
4 → 100
Calls

4 calls:

35.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
16.0ms
(*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))
4.0ms
(sin.f64 (-.f64 lambda1 lambda2))
4.0ms
(cos.f64 (-.f64 lambda1 lambda2))

rewrite70.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
289×expm1-udef_binary64
289×log1p-udef_binary64
281×fma-neg_binary64
158×add-sqr-sqrt_binary64
148×log1p-expm1-u_binary64
Counts
4 → 93
Calls

4 calls:

67.0ms
(*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))
67.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
67.0ms
(cos.f64 (-.f64 lambda1 lambda2))
67.0ms
(sin.f64 (-.f64 lambda1 lambda2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01339
128939
2391239
3509139
000
100

prune343.0ms (1.4%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New17815193
Fresh000
Picked101
Done000
Total17915194
Error
5.5b
Counts
194 → 15
Alt Table
StatusErrorProgram
32.6b
(atan2.f64 (*.f64 (sin.f64 lambda1) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
24.5b
(atan2.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 phi2)) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (pow.f64 lambda2 2)))) (*.f64 (cos.f64 phi2) (*.f64 lambda2 (cos.f64 lambda1))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
31.9b
(atan2.f64 (*.f64 (sin.f64 (neg.f64 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
11.5b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2)))) 3)))
11.4b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (pow.f64 (cbrt.f64 (cos.f64 (-.f64 lambda1 lambda2))) 3))))
12.9b
(atan2.f64 (*.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) 3) (pow.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
11.3b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (/.f64 (+.f64 (pow.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) 3) (pow.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (cos.f64 lambda1) (cos.f64 lambda2))) (-.f64 (*.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))))))))
11.7b
(atan2.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (pow.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) 2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
5.9b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
25.0b
(atan2.f64 (*.f64 (-.f64 (+.f64 (*.f64 (cos.f64 (neg.f64 lambda2)) lambda1) (sin.f64 (neg.f64 lambda2))) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 (neg.f64 lambda2)) (pow.f64 lambda1 2))) (*.f64 1/6 (*.f64 (cos.f64 (neg.f64 lambda2)) (pow.f64 lambda1 3))))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
23.7b
(atan2.f64 (*.f64 (log.f64 (+.f64 1 (expm1.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
17.8b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (sin.f64 phi1) (cos.f64 (-.f64 lambda1 lambda2)))))
11.4b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (log.f64 (exp.f64 (cos.f64 (-.f64 lambda1 lambda2)))))))
15.4b
(atan2.f64 (cbrt.f64 (*.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 3) (pow.f64 (cos.f64 phi2) 3))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
15.4b
(atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) 3)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
Compiler

Compiled 7070 to 1607 computations (77.3% saved)

localize29.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))
0.4b
(*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))
0.6b
(cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))
4.2b
(cos.f64 (-.f64 lambda1 lambda2))

series1.9s (7.7%)

Counts
4 → 80
Calls

4 calls:

960.0ms
(fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))
622.0ms
(*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))
337.0ms
(cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))
6.0ms
(cos.f64 (-.f64 lambda1 lambda2))

rewrite78.0ms (0.3%)

Algorithm
batch-egg-rewrite
Rules
364×fma-def_binary64
268×expm1-udef_binary64
268×log1p-udef_binary64
196×fma-neg_binary64
160×add-sqr-sqrt_binary64
Counts
4 → 110
Calls

4 calls:

75.0ms
(fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))))
75.0ms
(*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))
75.0ms
(cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))
75.0ms
(cos.f64 (-.f64 lambda1 lambda2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01549
131443
2366643
3494143
000
100

prune491.0ms (2%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2835288
Fresh6814
Picked101
Done000
Total29013303
Error
0.1b
Counts
303 → 13
Alt Table
StatusErrorProgram
0.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (fma.f64 (*.f64 (cbrt.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (cbrt.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))) (cbrt.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))))))
11.4b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (log.f64 (exp.f64 (cos.f64 (-.f64 lambda1 lambda2)))))))
0.4b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
12.9b
(atan2.f64 (*.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) 3) (pow.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
7.8b
(atan2.f64 (*.f64 (fma.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 lambda1) 2) (pow.f64 (cos.f64 lambda2) 2)) 1/3) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
11.7b
(atan2.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (pow.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) 2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
24.5b
(atan2.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 phi2)) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (pow.f64 lambda2 2)))) (*.f64 (cos.f64 phi2) (*.f64 lambda2 (cos.f64 lambda1))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
23.7b
(atan2.f64 (*.f64 (log.f64 (+.f64 1 (expm1.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
11.5b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2)))) 3)))
0.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (fma.f64 (*.f64 (cos.f64 lambda1) (pow.f64 (cbrt.f64 (cos.f64 lambda2)) 2)) (cbrt.f64 (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
0.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 lambda1)) 2) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))))))
15.4b
(atan2.f64 (cbrt.f64 (*.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 3) (pow.f64 (cos.f64 phi2) 3))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
15.4b
(atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) 3)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
Compiler

Compiled 15656 to 3100 computations (80.2% saved)

localize34.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))
0.4b
(pow.f64 (cbrt.f64 (sin.f64 lambda1)) 2)
0.6b
(cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))
0.7b
(cbrt.f64 (sin.f64 lambda1))

series1.2s (4.9%)

Counts
4 → 72
Calls

4 calls:

623.0ms
(*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))
330.0ms
(cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))
133.0ms
(pow.f64 (cbrt.f64 (sin.f64 lambda1)) 2)
127.0ms
(cbrt.f64 (sin.f64 lambda1))

rewrite89.0ms (0.4%)

Algorithm
batch-egg-rewrite
Rules
811×log1p-expm1-u_binary64
811×expm1-log1p-u_binary64
99×add-sqr-sqrt_binary64
94×add-cube-cbrt_binary64
94×add-cbrt-cube_binary64
Counts
4 → 84
Calls

4 calls:

86.0ms
(*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))
86.0ms
(pow.f64 (cbrt.f64 (sin.f64 lambda1)) 2)
86.0ms
(cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))
86.0ms
(cbrt.f64 (sin.f64 lambda1))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01136
121332
2214832
3502432
000
100

prune761.0ms (3.1%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2923295
Fresh21012
Picked101
Done000
Total29513308
Error
0.0b
Counts
308 → 13
Alt Table
StatusErrorProgram
0.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (cos.f64 lambda2))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 lambda1)) 2) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))))))
2.3b
(atan2.f64 (*.f64 (fma.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 lambda1) 2) (pow.f64 (cos.f64 lambda2) 2)) 1/3) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 lambda1)) 2) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))))))
0.4b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
12.9b
(atan2.f64 (*.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) 3) (pow.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
24.5b
(atan2.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 phi2)) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (pow.f64 lambda2 2)))) (*.f64 (cos.f64 phi2) (*.f64 lambda2 (cos.f64 lambda1))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
23.7b
(atan2.f64 (*.f64 (log.f64 (+.f64 1 (expm1.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
11.5b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2)))) 3)))
0.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (fma.f64 (*.f64 (cos.f64 lambda1) (pow.f64 (cbrt.f64 (cos.f64 lambda2)) 2)) (cbrt.f64 (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
11.4b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (log.f64 (exp.f64 (cos.f64 (-.f64 lambda1 lambda2)))))))
30.8b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (pow.f64 (*.f64 (sin.f64 lambda1) (cos.f64 lambda2)) 1/3) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 lambda1)) 2) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))))))
11.7b
(atan2.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (pow.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) 2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
15.4b
(atan2.f64 (cbrt.f64 (*.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 3) (pow.f64 (cos.f64 phi2) 3))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
15.4b
(atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) 3)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
Compiler

Compiled 20072 to 4482 computations (77.7% saved)

localize39.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))
0.4b
(pow.f64 (cbrt.f64 (sin.f64 lambda1)) 2)
0.6b
(cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))
0.7b
(cbrt.f64 (sin.f64 lambda1))

series1.4s (5.6%)

Counts
4 → 72
Calls

4 calls:

712.0ms
(*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))
408.0ms
(cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))
144.0ms
(pow.f64 (cbrt.f64 (sin.f64 lambda1)) 2)
132.0ms
(cbrt.f64 (sin.f64 lambda1))

rewrite61.0ms (0.2%)

Algorithm
batch-egg-rewrite
Rules
811×log1p-expm1-u_binary64
811×expm1-log1p-u_binary64
99×add-sqr-sqrt_binary64
94×add-cube-cbrt_binary64
94×add-cbrt-cube_binary64
Counts
4 → 84
Calls

4 calls:

59.0ms
(*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))))
59.0ms
(pow.f64 (cbrt.f64 (sin.f64 lambda1)) 2)
59.0ms
(cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))
59.0ms
(cbrt.f64 (sin.f64 lambda1))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01136
121332
2214832
3502432
000
100

prune612.0ms (2.5%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New2771278
Fresh11112
Picked101
Done000
Total27912291
Error
0.0b
Counts
291 → 12
Alt Table
StatusErrorProgram
0.4b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
12.9b
(atan2.f64 (*.f64 (/.f64 (-.f64 (pow.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) 3) (pow.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) 3)) (+.f64 (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (+.f64 (*.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2))) (*.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
2.3b
(atan2.f64 (*.f64 (fma.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 lambda1) 2) (pow.f64 (cos.f64 lambda2) 2)) 1/3) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 lambda1)) 2) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))))))
24.5b
(atan2.f64 (-.f64 (*.f64 (sin.f64 lambda1) (cos.f64 phi2)) (+.f64 (*.f64 1/2 (*.f64 (sin.f64 lambda1) (*.f64 (cos.f64 phi2) (pow.f64 lambda2 2)))) (*.f64 (cos.f64 phi2) (*.f64 lambda2 (cos.f64 lambda1))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
23.7b
(atan2.f64 (*.f64 (log.f64 (+.f64 1 (expm1.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
11.5b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (pow.f64 (cbrt.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2)))) 3)))
2.3b
(atan2.f64 (*.f64 (fma.f64 (pow.f64 (*.f64 (pow.f64 (sin.f64 lambda1) 2) (pow.f64 (cos.f64 lambda2) 2)) 1/3) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (cbrt.f64 (cos.f64 lambda2))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (fma.f64 (pow.f64 (cbrt.f64 (sin.f64 lambda1)) 2) (*.f64 (cbrt.f64 (sin.f64 lambda1)) (sin.f64 lambda2)) (*.f64 (cos.f64 lambda2) (cos.f64 lambda1))))))
0.3b
(atan2.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)))) (cbrt.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1))) (neg.f64 (*.f64 (cos.f64 lambda1) (sin.f64 lambda2)))) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (fma.f64 (*.f64 (cos.f64 lambda1) (pow.f64 (cbrt.f64 (cos.f64 lambda2)) 2)) (cbrt.f64 (cos.f64 lambda2)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
11.4b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (log.f64 (exp.f64 (cos.f64 (-.f64 lambda1 lambda2)))))))
11.7b
(atan2.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (pow.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) 2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
15.4b
(atan2.f64 (cbrt.f64 (*.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 3) (pow.f64 (cos.f64 phi2) 3))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
15.4b
(atan2.f64 (cbrt.f64 (pow.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) 3)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
Compiler

Compiled 18482 to 3906 computations (78.9% saved)

regimes2.2s (8.9%)

Accuracy

Total 0.3b remaining (73.5%)

Threshold costs 0.3b (73.5%)

Counts
223 → 1
Compiler

Compiled 65616 to 37394 computations (43% saved)

simplify5.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
03392
15592
27792
39292
410292
510592
610592

end343.0ms (1.4%)

Compiler

Compiled 690 to 381 computations (44.8% saved)

Profiling

Loading profile data...