Details

Time bar (total: 9.5s)

analyze746.0ms (7.9%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
25%74.9%0.1%5
25%74.9%0.1%6
25%68.6%6.4%7
31.2%62.4%6.4%8
36.7%54.6%8.7%9
38.2%48.4%13.4%10
42.7%42.3%15%11
47.8%34.1%18.1%12
49.1%30.3%20.5%13
51.9%25.8%22.3%14
Compiler

Compiled 21 to 15 computations (28.6% saved)

sample2.5s (26.9%)

Results
767.0ms5364×body128valid
681.0ms1185×body2048valid
334.0ms747×body1024valid
326.0ms402×body4096valid
156.0ms1142×body128invalid
146.0ms392×body512valid
40.0ms166×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify345.0ms (3.6%)

Algorithm
egg-herbie
Rules
1968×fma-neg_binary64
1363×fma-def_binary64
898×div-sub_binary64
743×associate-/l*_binary64
567×times-frac_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01326
13022
26422
313522
420122
533522
655422
792922
8147722
9211522
10259922
11255422
12260222
13267122
14311722
15232722
16237522
17238322
18238922
19239522
20239722
21239722
22258522
23268522
24261922
25263122
26266122
27267722
28270722
29270722
30275122
31285122
32282722
33282722
34263822

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
33.7b
Counts
3 → 2
Alt Table
StatusErrorProgram
33.8b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
33.8b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -3) (*.f64 b b))) b) (/.f64 1/3 a))
Compiler

Compiled 111 to 74 computations (33.3% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))
0.5b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
0.7b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
20.8b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))

series132.0ms (1.4%)

Counts
4 → 96
Calls

4 calls:

58.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
36.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
29.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))
9.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))

rewrite30.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
22×*-un-lft-identity_binary64
11×add-sqr-sqrt_binary64
10×fma-def_binary64
10×add-cube-cbrt_binary64
10×add-log-exp_binary64
Counts
4 → 90
Calls

4 calls:

10.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))) (*.f64 3 a))
7.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
5.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))
3.0ms
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))

simplify121.0ms (1.3%)

Algorithm
egg-herbie
Rules
683×fma-neg_binary64
319×cancel-sign-sub-inv_binary64
242×distribute-rgt-neg-in_binary64
156×associate-*r*_binary64
151×distribute-rgt-neg-out_binary64
Counts
186 → 207
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02594256
17163931
225283797
347003771
450263771

prune379.0ms (4%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New19413207
Fresh101
Picked101
Done000
Total19613209
Error
6.1b
Counts
209 → 13
Alt Table
StatusErrorProgram
46.9b
(fma.f64 1/2 (/.f64 c b) (*.f64 (/.f64 b a) -2/3))
34.6b
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) 3) a)
44.7b
(fma.f64 (/.f64 (*.f64 c (*.f64 c a)) (pow.f64 b 3)) -3/8 (*.f64 -1/2 (/.f64 c b)))
34.2b
(/.f64 (*.f64 (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))) (/.f64 (*.f64 3 a) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))))
40.1b
(*.f64 -1/2 (/.f64 c b))
50.1b
(exp.f64 (log.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) (*.f64 3 a))))
46.8b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
33.8b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))) (*.f64 3 a))
34.9b
(/.f64 (+.f64 (neg.f64 b) (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)))) (sqrt.f64 (cbrt.f64 (fma.f64 (*.f64 c a) -3 (*.f64 b b)))))) (*.f64 3 a))
53.5b
(/.f64 (+.f64 (neg.f64 b) (/.f64 (sqrt.f64 (-.f64 (pow.f64 (*.f64 b b) 3) (pow.f64 (*.f64 (*.f64 3 a) c) 3))) (sqrt.f64 (+.f64 (*.f64 (*.f64 b b) (*.f64 b b)) (+.f64 (*.f64 (*.f64 (*.f64 3 a) c) (*.f64 (*.f64 3 a) c)) (*.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))))) (*.f64 3 a))
33.7b
(/.f64 1 (/.f64 (*.f64 3 a) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))))
58.4b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 3 a))
33.9b
(*.f64 (/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))) 3) (/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))) a))
Compiler

Compiled 5971 to 3526 computations (40.9% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))
0.4b
(/.f64 (*.f64 3 a) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))
0.7b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
20.8b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))

series165.0ms (1.7%)

Counts
1 → 20
Calls

1 calls:

165.0ms
(/.f64 (*.f64 3 a) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))

rewrite12.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
11×*-un-lft-identity_binary64
add-cbrt-cube_binary64
add-exp-log_binary64
associate-/r*_binary64
times-frac_binary64
Counts
1 → 29
Calls

1 calls:

10.0ms
(/.f64 (*.f64 3 a) (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))

simplify66.0ms (0.7%)

Algorithm
egg-herbie
Rules
872×fma-def_binary64
731×associate-/l*_binary64
534×associate-/r*_binary64
175×associate-/r/_binary64
155×fma-neg_binary64
Counts
49 → 67
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01371578
14051336
213621282
347661282
453771282

prune194.0ms (2%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2025207
Fresh4812
Picked101
Done000
Total20713220
Error
6.0b
Counts
220 → 13
Alt Table
StatusErrorProgram
46.9b
(fma.f64 1/2 (/.f64 c b) (*.f64 (/.f64 b a) -2/3))
34.6b
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) 3) a)
40.1b
(*.f64 -1/2 (/.f64 c b))
46.9b
(/.f64 1 (/.f64 (*.f64 3 a) (*.f64 b -2)))
46.6b
(/.f64 1 (*.f64 -3/2 (/.f64 a b)))
50.1b
(exp.f64 (log.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) (*.f64 3 a))))
46.8b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
33.8b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))) (*.f64 3 a))
40.0b
(/.f64 1 (fma.f64 -2 (/.f64 b c) (*.f64 3/2 (/.f64 a b))))
33.9b
(*.f64 (/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))) 3) (/.f64 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))) a))
34.2b
(/.f64 (*.f64 (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))) (/.f64 (*.f64 3 a) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))))
33.8b
(/.f64 1 (*.f64 (*.f64 3 a) (/.f64 1 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))))
33.9b
(/.f64 1 (*.f64 (/.f64 3 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))) (/.f64 a (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))))))
Compiler

Compiled 6351 to 3944 computations (37.9% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))) (*.f64 3 a))
0.5b
(fma.f64 b b (*.f64 c (*.f64 a -3)))
0.7b
(+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3)))))
20.8b
(sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))

series134.0ms (1.4%)

Counts
4 → 96
Calls

4 calls:

56.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))) (*.f64 3 a))
39.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3)))))
29.0ms
(sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))
10.0ms
(fma.f64 b b (*.f64 c (*.f64 a -3)))

rewrite20.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
22×*-un-lft-identity_binary64
11×add-sqr-sqrt_binary64
10×fma-def_binary64
10×add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
4 → 82
Calls

4 calls:

9.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))) (*.f64 3 a))
5.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3)))))
1.0ms
(sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))
0.0ms
(fma.f64 b b (*.f64 c (*.f64 a -3)))

simplify140.0ms (1.5%)

Algorithm
egg-herbie
Rules
613×fma-def_binary64
389×fma-neg_binary64
228×cancel-sign-sub-inv_binary64
221×distribute-rgt-in_binary64
182×distribute-lft-in_binary64
Counts
178 → 192
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02364062
16473741
221263619
347183613
449933613
549083613

prune141.0ms (1.5%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New1902192
Fresh21012
Picked011
Done000
Total19213205
Error
6.0b
Counts
205 → 13
Alt Table
StatusErrorProgram
46.9b
(fma.f64 1/2 (/.f64 c b) (*.f64 (/.f64 b a) -2/3))
34.6b
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) 3) a)
40.1b
(*.f64 -1/2 (/.f64 c b))
46.9b
(/.f64 1 (/.f64 (*.f64 3 a) (*.f64 b -2)))
46.6b
(/.f64 1 (*.f64 -3/2 (/.f64 a b)))
50.1b
(exp.f64 (log.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) (*.f64 3 a))))
46.8b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
33.8b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))) (*.f64 3 a))
33.8b
(/.f64 1 (*.f64 (*.f64 3 a) (/.f64 1 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))))
34.2b
(/.f64 (*.f64 (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3)))))) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))))) (/.f64 (*.f64 3 a) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))))))
33.9b
(/.f64 1 (*.f64 (/.f64 3 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))) (/.f64 a (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))))))
40.0b
(/.f64 1 (fma.f64 -2 (/.f64 b c) (*.f64 3/2 (/.f64 a b))))
33.8b
(*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))) (/.f64 1 (*.f64 3 a)))
Compiler

Compiled 5276 to 3234 computations (38.7% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.3b
(/.f64 1 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))
0.4b
(-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))
0.7b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))
20.8b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))

series111.0ms (1.2%)

Counts
1 → 20
Calls

1 calls:

111.0ms
(/.f64 1 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))

rewrite14.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
27×*-un-lft-identity_binary64
15×times-frac_binary64
11×add-sqr-sqrt_binary64
11×add-cube-cbrt_binary64
distribute-lft-out_binary64
Counts
1 → 43
Calls

1 calls:

10.0ms
(/.f64 1 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))

simplify82.0ms (0.9%)

Algorithm
egg-herbie
Rules
653×times-frac_binary64
358×fma-neg_binary64
341×associate-/r*_binary64
304×associate-*r*_binary64
303×associate-/l*_binary64
Counts
63 → 74
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01151782
13141573
29401493
349131489
451021489

prune181.0ms (1.9%)

Pruning

15 alts after pruning (13 fresh and 2 done)

PrunedKeptTotal
New2122214
Fresh01111
Picked011
Done011
Total21215227
Error
6.0b
Counts
227 → 15
Alt Table
StatusErrorProgram
46.9b
(fma.f64 1/2 (/.f64 c b) (*.f64 (/.f64 b a) -2/3))
34.6b
(/.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) 3) a)
40.1b
(*.f64 -1/2 (/.f64 c b))
46.9b
(/.f64 1 (/.f64 (*.f64 3 a) (*.f64 b -2)))
46.6b
(/.f64 1 (*.f64 -3/2 (/.f64 a b)))
50.1b
(exp.f64 (log.f64 (/.f64 (-.f64 (hypot.f64 (sqrt.f64 (*.f64 c (*.f64 a -3))) b) b) (*.f64 3 a))))
46.8b
(/.f64 (*.f64 -2 b) (*.f64 3 a))
33.8b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))) (*.f64 3 a))
45.6b
(/.f64 1 (*.f64 (*.f64 3 a) (fma.f64 -2/3 (/.f64 b (*.f64 c a)) (/.f64 1/2 b))))
40.0b
(/.f64 1 (fma.f64 -2 (/.f64 b c) (*.f64 3/2 (/.f64 a b))))
33.8b
(/.f64 1 (*.f64 (*.f64 3 a) (/.f64 1 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))))
34.2b
(/.f64 (*.f64 (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3)))))) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))))) (/.f64 (*.f64 3 a) (cbrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))))))
33.9b
(/.f64 1 (*.f64 (/.f64 3 (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c)))))) (/.f64 a (sqrt.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 (*.f64 3 a) c))))))))
46.6b
(/.f64 1 (*.f64 (*.f64 3 a) (/.f64 -1/2 b)))
33.8b
(*.f64 (+.f64 (neg.f64 b) (sqrt.f64 (fma.f64 b b (*.f64 c (*.f64 a -3))))) (/.f64 1 (*.f64 3 a)))
Compiler

Compiled 6740 to 4341 computations (35.6% saved)

regimes3.6s (37.8%)

Accuracy

Total 4.5b remaining (44.6%)

Threshold costs 0b (0%)

Counts
215 → 3
Compiler

Compiled 27997 to 20020 computations (28.5% saved)

bsearch86.0ms (0.9%)

Steps
ItersRangePoint
8
1.508614625727024e-62
2.4520718216466138e-59
5.690509076716312e-61
10
-3.032309977489097e+146
-1.0154505877482267e+136
-5.597250644341572e+143
Compiler

Compiled 4 to 3 computations (25% saved)

simplify4.0ms (0%)

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

Useful iterations: 1 (0.0ms)

IterNodesCost
02855
14451
26251
37051
47451
57551
67351

end196.0ms (2.1%)

Compiler

Compiled 361 to 255 computations (29.4% saved)

Profiling

Loading profile data...