Details

Time bar (total: 8.9s)

analyze695.0ms (7.8%)

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
12.5%87.4%0.1%5
18.7%81.1%0.1%6
21.8%71.8%6.4%7
31.2%62.4%6.4%8
35.9%55.4%8.7%9
37.8%48.8%13.4%10
42.7%42.3%15%11
47.7%34.2%18.1%12
49.1%30.4%20.5%13
51.9%25.8%22.3%14
Compiler

Compiled 21 to 15 computations (28.6% saved)

sample3.1s (34.1%)

Results
1.4s5377×body128valid
684.0ms1172×body2048valid
326.0ms735×body1024valid
268.0ms408×body4096valid
150.0ms1128×body128invalid
125.0ms367×body512valid
46.0ms197×body256valid
Compiler

Compiled 62 to 44 computations (29% saved)

simplify373.0ms (4.2%)

Algorithm
egg-herbie
Rules
2009×fma-neg_binary64
1508×div-sub_binary64
1334×associate-/l*_binary64
1156×fma-def_binary64
685×associate-/l/_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01526
13422
26422
313222
419822
532522
655222
791822
8135222
9155422
10235922
11315822
12256522
13265322
14321922
15336122
16346122
17398522
18417122
19443922
20465922
21470122
22475722
23494122
24494122
25336522
26305922
27298322
28298522
29299722
30299722
31299722
32299722
33273622

prune4.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

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

Compiled 111 to 74 computations (33.3% saved)

localize12.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
1.2b
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
1.2b
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
22.0b
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))

series193.0ms (2.2%)

Counts
4 → 96
Calls

4 calls:

85.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
52.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
46.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
11.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))

rewrite127.0ms (1.4%)

Algorithm
batch-egg-rewrite
Rules
507×fma-neg_binary64
277×expm1-udef_binary64
277×log1p-udef_binary64
178×egg-rr
166×add-sqr-sqrt_binary64
Counts
4 → 178
Calls

4 calls:

122.0ms
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
122.0ms
(+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))))
122.0ms
(-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c)))
122.0ms
(sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01574
133862
2415362
3497962
4534962
000
100

simplify81.0ms (0.9%)

Algorithm
egg-herbie
Rules
742×times-frac_binary64
467×associate-/l*_binary64
436×fma-def_binary64
432×fma-neg_binary64
426×associate-/r*_binary64
Counts
274 → 251
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01212241
13982164
213272078
349542078
452182078

prune189.0ms (2.1%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New2429251
Fresh011
Picked011
Done000
Total24211253
Error
4.4b
Counts
253 → 11
Alt Table
StatusErrorProgram
46.0b
(/.f64 (/.f64 (+.f64 (fma.f64 b b (*.f64 b b)) (*.f64 4 (*.f64 a c))) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (*.f64 2 a))
44.3b
(-.f64 (/.f64 c b) (/.f64 b a))
56.8b
(/.f64 (+.f64 (neg.f64 b) b) (*.f64 2 a))
45.6b
(pow.f64 (/.f64 (*.f64 a 2) (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) -1)
40.7b
(neg.f64 (/.f64 c b))
45.8b
(pow.f64 (cbrt.f64 (*.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4)))) (/.f64 1/2 a))) 3)
33.1b
(/.f64 (+.f64 (neg.f64 b) (sqrt.f64 (-.f64 (*.f64 b b) (*.f64 4 (*.f64 a c))))) (*.f64 2 a))
44.1b
(/.f64 (neg.f64 b) a)
45.6b
(*.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (*.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (/.f64 1/2 a)))
33.1b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
50.0b
(/.f64 (*.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (*.f64 2 a))
Compiler

Compiled 6661 to 3810 computations (42.8% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a (*.f64 c -4) (*.f64 b b))
0.2b
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
1.2b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
22.0b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series191.0ms (2.1%)

Counts
4 → 96
Calls

4 calls:

82.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
56.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
43.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
10.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))

rewrite80.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
781×prod-diff_binary64
244×log1p-udef_binary64
165×egg-rr
138×add-sqr-sqrt_binary64
132×log1p-expm1-u_binary64
Counts
4 → 165
Calls

4 calls:

76.0ms
(fma.f64 a (*.f64 c -4) (*.f64 b b))
76.0ms
(*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) (/.f64 1/2 a))
76.0ms
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
76.0ms
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01362
127962
2338562
3510262
000
100

simplify81.0ms (0.9%)

Algorithm
egg-herbie
Rules
742×times-frac_binary64
467×associate-/l*_binary64
436×fma-def_binary64
432×fma-neg_binary64
426×associate-/r*_binary64
Counts
261 → 238
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01212241
13982164
213272078
349542078
452182078

prune190.0ms (2.1%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New2317238
Fresh369
Picked101
Done101
Total23613249
Error
4.4b
Counts
249 → 13
Alt Table
StatusErrorProgram
46.0b
(/.f64 (/.f64 (+.f64 (fma.f64 b b (*.f64 b b)) (*.f64 4 (*.f64 a c))) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (*.f64 2 a))
44.3b
(-.f64 (/.f64 c b) (/.f64 b a))
33.6b
(/.f64 (/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a))
33.1b
(/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2) a)
45.6b
(*.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (*.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (/.f64 1/2 a)))
33.4b
(*.f64 (-.f64 (pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2) b) (/.f64 1/2 a))
44.1b
(/.f64 (neg.f64 b) a)
40.7b
(neg.f64 (/.f64 c b))
56.8b
(*.f64 (-.f64 b b) (/.f64 1/2 a))
33.6b
(*.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) 2)) (/.f64 1/2 a))
36.0b
(*.f64 (-.f64 (exp.f64 (log.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) b) (/.f64 1/2 a))
33.1b
(/.f64 1 (/.f64 a (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2)))
50.0b
(/.f64 (*.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (*.f64 2 a))
Compiler

Compiled 6640 to 3883 computations (41.5% saved)

localize10.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(fma.f64 a (*.f64 c -4) (*.f64 b b))
0.1b
(/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2) a)
1.2b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
22.0b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series87.0ms (1%)

Counts
1 → 20
Calls

1 calls:

87.0ms
(/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2) a)

rewrite57.0ms (0.6%)

Algorithm
batch-egg-rewrite
Rules
790×prod-diff_binary64
245×log1p-udef_binary64
138×add-sqr-sqrt_binary64
132×log1p-expm1-u_binary64
132×expm1-log1p-u_binary64
Counts
1 → 44
Calls

1 calls:

56.0ms
(/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2) a)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01322
127822
2345422
3522122
000
100

simplify58.0ms (0.6%)

Algorithm
egg-herbie
Rules
794×fma-neg_binary64
351×unswap-sqr_binary64
333×distribute-neg-frac_binary64
328×times-frac_binary64
221×associate-*r*_binary64
Counts
64 → 67
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
064612
1210609
2666585
33266585
44979585
55005585

prune184.0ms (2.1%)

Pruning

13 alts after pruning (12 fresh and 1 done)

PrunedKeptTotal
New2391240
Fresh11112
Picked011
Done000
Total24013253
Error
4.4b
Counts
253 → 13
Alt Table
StatusErrorProgram
46.0b
(/.f64 (/.f64 (+.f64 (fma.f64 b b (*.f64 b b)) (*.f64 4 (*.f64 a c))) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (*.f64 2 a))
44.3b
(-.f64 (/.f64 c b) (/.f64 b a))
33.6b
(/.f64 (/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a))
33.1b
(/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2) a)
45.6b
(*.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (*.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (/.f64 1/2 a)))
33.4b
(*.f64 (-.f64 (pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2) b) (/.f64 1/2 a))
36.0b
(/.f64 (*.f64 (-.f64 (exp.f64 (log.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))))) b) 1/2) a)
44.1b
(/.f64 (neg.f64 b) a)
40.7b
(neg.f64 (/.f64 c b))
56.8b
(*.f64 (-.f64 b b) (/.f64 1/2 a))
33.6b
(*.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) 2)) (/.f64 1/2 a))
33.1b
(/.f64 1 (/.f64 a (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2)))
50.0b
(/.f64 (*.f64 -2 (fma.f64 (/.f64 c b) a (/.f64 (*.f64 (*.f64 c a) (*.f64 c a)) (pow.f64 b 3)))) (*.f64 2 a))
Compiler

Compiled 6561 to 3881 computations (40.8% saved)

localize11.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(/.f64 a (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2))
0.2b
(/.f64 1 (/.f64 a (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2)))
1.2b
(-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)
22.0b
(sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)))

series337.0ms (3.8%)

Counts
2 → 40
Calls

2 calls:

253.0ms
(/.f64 a (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2))
84.0ms
(/.f64 1 (/.f64 a (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2)))

rewrite72.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
799×prod-diff_binary64
156×add-sqr-sqrt_binary64
148×log1p-expm1-u_binary64
148×expm1-log1p-u_binary64
146×add-cbrt-cube_binary64
Counts
2 → 89
Calls

2 calls:

70.0ms
(/.f64 a (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2))
70.0ms
(/.f64 1 (/.f64 a (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2)))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01547
131944
2388044
3521144
000
100

simplify60.0ms (0.7%)

Algorithm
egg-herbie
Rules
800×times-frac_binary64
497×associate-/l*_binary64
431×associate-/r*_binary64
337×fma-def_binary64
309×fma-neg_binary64
Counts
129 → 135
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01041183
13431163
211601105
349481105
451371105

prune204.0ms (2.3%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New2713274
Fresh4711
Picked101
Done011
Total27611287
Error
4.3b
Counts
287 → 11
Alt Table
StatusErrorProgram
46.0b
(/.f64 (/.f64 (+.f64 (fma.f64 b b (*.f64 b b)) (*.f64 4 (*.f64 a c))) (-.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (*.f64 2 a))
44.3b
(-.f64 (/.f64 c b) (/.f64 b a))
33.6b
(/.f64 (/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2) (pow.f64 (cbrt.f64 a) 2)) (cbrt.f64 a))
33.1b
(/.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2) a)
45.6b
(*.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (*.f64 (sqrt.f64 (+.f64 b (sqrt.f64 (fma.f64 b b (*.f64 (*.f64 a c) -4))))) (/.f64 1/2 a)))
40.7b
(/.f64 1 (-.f64 (/.f64 a b) (/.f64 b c)))
33.4b
(/.f64 1 (/.f64 a (*.f64 (-.f64 (pow.f64 (pow.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b)) 1/4) 2) b) 1/2)))
44.1b
(/.f64 (neg.f64 b) a)
40.7b
(neg.f64 (/.f64 c b))
48.3b
(exp.f64 (-.f64 (log.f64 (*.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b) 1/2)) (log.f64 a)))
33.6b
(*.f64 (*.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) (pow.f64 (cbrt.f64 (-.f64 (sqrt.f64 (fma.f64 a (*.f64 c -4) (*.f64 b b))) b)) 2)) (/.f64 1/2 a))
Compiler

Compiled 7508 to 4578 computations (39% saved)

regimes2.3s (26.2%)

Accuracy

Total 4.4b remaining (44%)

Threshold costs 0b (0%)

Counts
187 → 3
Compiler

Compiled 16624 to 11478 computations (31% saved)

bsearch83.0ms (0.9%)

Steps
ItersRangePoint
10
1.901565658296121e-67
1.68094319869498e-53
2.7919095286000728e-58
6
-4.337663542347003e+121
-2.705837089243012e+119
-3.996635431194612e+121
Compiler

Compiled 4 to 3 computations (25% saved)

simplify3.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02450
13650
24750
35450
45750
55750

end153.0ms (1.7%)

Compiler

Compiled 293 to 188 computations (35.8% saved)

Profiling

Loading profile data...