Details

Time bar (total: 21.6s)

analyze3.9s (18.2%)

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)

sample319.0ms (1.5%)

Algorithm
intervals
Results
244.0ms174×body1024valid
33.0ms40×body512valid
14.0msbody2048valid
8.0ms17×body256valid
4.0ms20×body128valid
Compiler

Compiled 61 to 39 computations (36.1% saved)

simplify33.0ms (0.2%)

Algorithm
egg-herbie
Rules
543×fma-def_binary64
194×fma-neg_binary64
83×cancel-sign-sub-inv_binary64
59×distribute-rgt-neg-in_binary64
47×distribute-rgt-in_binary64
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01839
13239
26139
311539
415539
524639
634839
743739
857239
962239
1069439
1172039
1266939

prune3.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New101
Fresh011
Picked000
Done000
Total112
Error
13.0b
Counts
2 → 1
Alt Table
StatusErrorProgram
13.0b
(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)))))
Compiler

Compiled 84 to 51 computations (39.3% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

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.6b
(sin.f64 (-.f64 lambda1 lambda2))
4.9b
(cos.f64 (-.f64 lambda1 lambda2))

rewrite187.0ms (0.9%)

Algorithm
rewrite-expression-head
Error
6.8b
Rules
23×add-sqr-sqrt_binary64
21×*-un-lft-identity_binary64
21×add-cube-cbrt_binary64
18×prod-diff_binary64
13×sin-sum_binary64
Counts
4 → 90
Calls

4 calls:

6.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
6.0ms
(*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))
6.0ms
(cos.f64 (-.f64 lambda1 lambda2))
4.0ms
(sin.f64 (-.f64 lambda1 lambda2))
Compiler

Compiled 3500 to 635 computations (81.9% saved)

series217.0ms (1%)

Error
9.8b
Counts
4 → 66
Calls

4 calls:

62.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
42.0ms
(*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2))
18.0ms
(sin.f64 (-.f64 lambda1 lambda2))
18.0ms
(cos.f64 (-.f64 lambda1 lambda2))
Compiler

Compiled 4850 to 2306 computations (52.5% saved)

simplify179.0ms (0.8%)

Algorithm
egg-herbie
Rules
889×fma-neg_binary64
494×associate-*r*_binary64
450×associate-*l*_binary64
314×*-commutative_binary64
260×sub-neg_binary64
Counts
156 → 121
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
04915705
110864959
236414839
348194835
449754835

prune134.0ms (0.6%)

Pruning

20 alts after pruning (20 fresh and 0 done)

PrunedKeptTotal
New10120121
Fresh000
Picked101
Done000
Total10220122
Error
6.8b
Counts
122 → 20
Alt Table
StatusErrorProgram
36.5b
(atan2.f64 (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi2) (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
21.1b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (fma.f64 lambda2 (sin.f64 lambda1) (cos.f64 lambda1)))))
13.2b
(atan2.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2)))) (*.f64 (cos.f64 phi2) (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
27.7b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (fma.f64 (cos.f64 phi2) (*.f64 (sin.f64 phi1) (fma.f64 lambda2 (sin.f64 lambda1) (cos.f64 lambda1))) (*.f64 (*.f64 (sin.f64 phi1) (*.f64 (cos.f64 phi2) (*.f64 (cos.f64 lambda1) (*.f64 lambda2 lambda2)))) -1/2))))
18.4b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 lambda1))))
15.9b
(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)))))
31.1b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (+.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 1/6 (*.f64 (sin.f64 (neg.f64 lambda2)) (pow.f64 lambda1 3)))) (-.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (+.f64 (cos.f64 lambda2) (*.f64 lambda1 (sin.f64 lambda2)))) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 1/2 (*.f64 (cos.f64 lambda2) (*.f64 lambda1 lambda1))))))))
13.1b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))) (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2))))) (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))))
20.9b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 lambda2))))
13.0b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (cbrt.f64 (pow.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2))) 3))))
27.4b
(atan2.f64 (*.f64 (cos.f64 phi2) (-.f64 (fma.f64 1/6 (*.f64 (cos.f64 lambda1) (pow.f64 lambda2 3)) (sin.f64 lambda1)) (fma.f64 lambda2 (cos.f64 lambda1) (*.f64 1/2 (*.f64 lambda2 (*.f64 lambda2 (sin.f64 lambda1))))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))
7.1b
(atan2.f64 (*.f64 (-.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)))))
27.6b
(atan2.f64 (*.f64 (cos.f64 phi2) (fma.f64 lambda1 (cos.f64 lambda2) (sin.f64 (neg.f64 lambda2)))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))
12.8b
(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 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
31.0b
(atan2.f64 (*.f64 (cos.f64 phi2) (sin.f64 (neg.f64 lambda2))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))
22.0b
(atan2.f64 (log.f64 (pow.f64 (exp.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)))))
32.1b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (fma.f64 (cos.f64 phi2) (*.f64 phi1 (cos.f64 (-.f64 lambda1 lambda2))) (*.f64 (*.f64 (cos.f64 (-.f64 lambda1 lambda2)) (*.f64 (cos.f64 phi2) (pow.f64 phi1 3))) -1/6))))
27.0b
(atan2.f64 (*.f64 (cos.f64 phi2) (-.f64 (sin.f64 lambda1) (fma.f64 lambda2 (cos.f64 lambda1) (*.f64 1/2 (*.f64 lambda2 (*.f64 lambda2 (sin.f64 lambda1))))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))
29.5b
(atan2.f64 (*.f64 (cos.f64 phi2) (+.f64 (fma.f64 lambda1 (cos.f64 lambda2) (fma.f64 -1 (sin.f64 lambda2) (*.f64 1/2 (*.f64 (*.f64 lambda1 lambda1) (sin.f64 lambda2))))) (*.f64 -1/6 (*.f64 (cos.f64 lambda2) (pow.f64 lambda1 3))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))
15.9b
(atan2.f64 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 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)))))
Compiler

Compiled 3619 to 1335 computations (63.1% saved)

localize28.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.1b
(*.f64 (cos.f64 lambda2) (sin.f64 lambda1))
0.1b
(*.f64 (cos.f64 lambda1) (sin.f64 lambda2))
0.2b
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
4.9b
(cos.f64 (-.f64 lambda1 lambda2))

rewrite181.0ms (0.8%)

Algorithm
rewrite-expression-head
Error
0.1b
Rules
20×add-sqr-sqrt_binary64
16×*-un-lft-identity_binary64
16×add-cube-cbrt_binary64
13×add-cbrt-cube_binary64
13×add-exp-log_binary64
Counts
4 → 86
Calls

4 calls:

7.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
5.0ms
(cos.f64 (-.f64 lambda1 lambda2))
3.0ms
(*.f64 (cos.f64 lambda1) (sin.f64 lambda2))
3.0ms
(*.f64 (cos.f64 lambda2) (sin.f64 lambda1))
Compiler

Compiled 3431 to 588 computations (82.9% saved)

series222.0ms (1%)

Error
6.1b
Counts
4 → 55
Calls

4 calls:

65.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
24.0ms
(*.f64 (cos.f64 lambda2) (sin.f64 lambda1))
22.0ms
(*.f64 (cos.f64 lambda1) (sin.f64 lambda2))
19.0ms
(cos.f64 (-.f64 lambda1 lambda2))
Compiler

Compiled 4982 to 2499 computations (49.8% saved)

simplify232.0ms (1.1%)

Algorithm
egg-herbie
Rules
843×fma-neg_binary64
484×associate-*r*_binary64
443×associate-*l*_binary64
291×*-commutative_binary64
239×sub-neg_binary64
Counts
141 → 100
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
04745129
110954629
235484567
347434499
449614499
549954499
649194499

prune140.0ms (0.6%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New964100
Fresh13619
Picked101
Done000
Total11010120
Error
0.1b
Counts
120 → 10
Alt Table
StatusErrorProgram
36.5b
(atan2.f64 (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi2) (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
0.2b
(atan2.f64 (*.f64 (-.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)) (+.f64 (*.f64 (cos.f64 lambda2) (cos.f64 lambda1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
13.2b
(atan2.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2)))) (*.f64 (cos.f64 phi2) (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
15.9b
(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)))))
22.0b
(atan2.f64 (log.f64 (pow.f64 (exp.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)))))
7.1b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (*.f64 (cbrt.f64 (cos.f64 lambda1)) (cbrt.f64 (cos.f64 lambda1))) (*.f64 (sin.f64 lambda2) (cbrt.f64 (cos.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)))))
13.1b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))) (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2))))) (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))))
0.2b
(atan2.f64 (*.f64 (-.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 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (sin.f64 phi1)))) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
7.2b
(atan2.f64 (*.f64 (-.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)) (cbrt.f64 (pow.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2))) 3))))
15.9b
(atan2.f64 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 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)))))
Compiler

Compiled 2979 to 874 computations (70.7% saved)

localize36.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.1b
(*.f64 (cos.f64 lambda1) (sin.f64 lambda2))
0.2b
(*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (sin.f64 phi1))))
0.2b
(*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
0.2b
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))

rewrite206.0ms (1%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
29×add-cbrt-cube_binary64
29×add-exp-log_binary64
29×pow1_binary64
16×cbrt-unprod_binary64
16×prod-exp_binary64
Counts
4 → 89
Calls

4 calls:

7.0ms
(*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
7.0ms
(*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (sin.f64 phi1))))
5.0ms
(*.f64 (cos.f64 lambda1) (sin.f64 lambda2))
4.0ms
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
Compiler

Compiled 3985 to 482 computations (87.9% saved)

series268.0ms (1.2%)

Error
0.1b
Counts
4 → 61
Calls

4 calls:

79.0ms
(*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (sin.f64 phi1))))
69.0ms
(*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
23.0ms
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
22.0ms
(*.f64 (cos.f64 lambda1) (sin.f64 lambda2))
Compiler

Compiled 7308 to 3186 computations (56.4% saved)

simplify294.0ms (1.4%)

Algorithm
egg-herbie
Rules
815×associate-*r*_binary64
644×associate-*l*_binary64
478×fma-neg_binary64
343×fma-def_binary64
279×cancel-sign-sub-inv_binary64
Counts
150 → 97
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04476936
113316078
245826074
350056074

prune146.0ms (0.7%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New93497
Fresh279
Picked101
Done000
Total9611107
Error
0.1b
Counts
107 → 11
Alt Table
StatusErrorProgram
0.2b
(atan2.f64 (*.f64 (-.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 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (sin.f64 phi1)))) (cbrt.f64 (pow.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) 3)))))
13.2b
(atan2.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2)))) (*.f64 (cos.f64 phi2) (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
0.2b
(atan2.f64 (*.f64 (-.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 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (sin.f64 phi1)))) (log.f64 (pow.f64 (exp.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cos.f64 phi2) (sin.f64 phi1)))))))
15.9b
(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)))))
36.5b
(atan2.f64 (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi2) (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
22.0b
(atan2.f64 (log.f64 (pow.f64 (exp.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)))))
7.1b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (*.f64 (cbrt.f64 (cos.f64 lambda1)) (cbrt.f64 (cos.f64 lambda1))) (*.f64 (sin.f64 lambda2) (cbrt.f64 (cos.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)))))
13.1b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))) (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2))))) (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))))
15.9b
(atan2.f64 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 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)))))
0.2b
(atan2.f64 (*.f64 (-.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 (*.f64 (cbrt.f64 (cos.f64 lambda2)) (cbrt.f64 (cos.f64 lambda2))) (*.f64 (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (sin.f64 phi1))) (cbrt.f64 (cos.f64 lambda2)))) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
0.2b
(atan2.f64 (*.f64 (-.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 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (sin.f64 phi1)))) 3)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
Compiler

Compiled 3886 to 1067 computations (72.5% saved)

localize35.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.1b
(*.f64 (cos.f64 lambda1) (sin.f64 lambda2))
0.2b
(*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (sin.f64 phi1))))
0.2b
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
3.3b
(log.f64 (pow.f64 (exp.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cos.f64 phi2) (sin.f64 phi1))))

rewrite239.0ms (1.1%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
18×add-exp-log_binary64
17×add-cbrt-cube_binary64
17×pow1_binary64
15×add-sqr-sqrt_binary64
11×*-un-lft-identity_binary64
Counts
4 → 84
Calls

4 calls:

9.0ms
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
7.0ms
(*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (sin.f64 phi1))))
4.0ms
(*.f64 (cos.f64 lambda1) (sin.f64 lambda2))
3.0ms
(log.f64 (pow.f64 (exp.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cos.f64 phi2) (sin.f64 phi1))))
Compiler

Compiled 4095 to 530 computations (87.1% saved)

series424.0ms (2%)

Error
0.1b
Counts
4 → 61
Calls

4 calls:

193.0ms
(log.f64 (pow.f64 (exp.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cos.f64 phi2) (sin.f64 phi1))))
93.0ms
(*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (sin.f64 phi1))))
27.0ms
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
24.0ms
(*.f64 (cos.f64 lambda1) (sin.f64 lambda2))
Compiler

Compiled 7588 to 3395 computations (55.3% saved)

simplify165.0ms (0.8%)

Algorithm
egg-herbie
Rules
699×associate-*r*_binary64
534×associate-*l*_binary64
307×fma-def_binary64
234×cancel-sign-sub-inv_binary64
206×fma-neg_binary64
Counts
145 → 96
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
04736836
113506131
246266131
349746131

prune148.0ms (0.7%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New96096
Fresh01010
Picked011
Done000
Total9611107
Error
0.1b
Counts
107 → 11
Alt Table
StatusErrorProgram
0.2b
(atan2.f64 (*.f64 (-.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 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (sin.f64 phi1)))) (cbrt.f64 (pow.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) 3)))))
13.2b
(atan2.f64 (*.f64 (*.f64 (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2)))) (*.f64 (cos.f64 phi2) (cbrt.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
0.2b
(atan2.f64 (*.f64 (-.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 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (sin.f64 phi1)))) (log.f64 (pow.f64 (exp.f64 (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))) (*.f64 (cos.f64 phi2) (sin.f64 phi1)))))))
15.9b
(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)))))
36.5b
(atan2.f64 (*.f64 (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))) (*.f64 (cos.f64 phi2) (sqrt.f64 (sin.f64 (-.f64 lambda1 lambda2))))) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))))
22.0b
(atan2.f64 (log.f64 (pow.f64 (exp.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)))))
7.1b
(atan2.f64 (*.f64 (-.f64 (*.f64 (cos.f64 lambda2) (sin.f64 lambda1)) (*.f64 (*.f64 (cbrt.f64 (cos.f64 lambda1)) (cbrt.f64 (cos.f64 lambda1))) (*.f64 (sin.f64 lambda2) (cbrt.f64 (cos.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)))))
13.1b
(atan2.f64 (*.f64 (sin.f64 (-.f64 lambda1 lambda2)) (cos.f64 phi2)) (-.f64 (*.f64 (cos.f64 phi1) (sin.f64 phi2)) (*.f64 (*.f64 (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))) (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2))))) (cbrt.f64 (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (cos.f64 (-.f64 lambda1 lambda2)))))))
15.9b
(atan2.f64 (*.f64 (cbrt.f64 (pow.f64 (sin.f64 (-.f64 lambda1 lambda2)) 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)))))
0.2b
(atan2.f64 (*.f64 (-.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 (*.f64 (cbrt.f64 (cos.f64 lambda2)) (cbrt.f64 (cos.f64 lambda2))) (*.f64 (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (sin.f64 phi1))) (cbrt.f64 (cos.f64 lambda2)))) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
0.2b
(atan2.f64 (*.f64 (-.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 (cbrt.f64 (pow.f64 (*.f64 (cos.f64 lambda2) (*.f64 (cos.f64 lambda1) (*.f64 (cos.f64 phi2) (sin.f64 phi1)))) 3)) (*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2))))))
Compiler

Compiled 3710 to 847 computations (77.2% saved)

regimes3.3s (15.1%)

Accuracy

Total 0.1b remaining (51.8%)

Threshold costs 0.1b (51.8%)

Compiler

Compiled 81576 to 46212 computations (43.4% saved)

simplify7.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
03081
14681
26381
37781
48681
58981
68981

end1.0ms (0%)

Compiler

Compiled 52 to 29 computations (44.2% saved)

sample10.6s (48.9%)

Algorithm
intervals
Results
7.7s5320×body1024valid
1.0s1303×body512valid
689.0ms211×body2048valid
211.0ms390×body256valid
186.0ms776×body128valid
Compiler

Compiled 559 to 306 computations (45.3% saved)

Profiling

Loading profile data...