Details

Time bar (total: 5.4s)

analyze1.0ms (0%)

Algorithm
search
Search
TrueOtherFalseIter
0%100%0%0
100%0%0%1
Compiler

Compiled 14 to 13 computations (7.1% saved)

sample2.1s (39.4%)

Results
1.0s2167×body2048valid
468.0ms4300×body128valid
377.0ms1009×body1024valid
148.0ms507×body512valid
50.0ms273×body256valid
Compiler

Compiled 41 to 38 computations (7.3% saved)

simplify7.0ms (0.1%)

Algorithm
egg-herbie
Rules
sub-neg_binary64
fma-def_binary64
+-commutative_binary64
*-commutative_binary64
associate-+l-_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01018
12215
22715
33515
44215
55215
66015
76915
87215
95315

prune3.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
14.5b
Counts
3 → 1
Alt Table
StatusErrorProgram
14.5b
(-.f64 1 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))))
Compiler

Compiled 45 to 41 computations (8.9% saved)

localize6.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(/.f64 1/2 (hypot.f64 1 x))
0.0b
(+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))
0.0b
(sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))))
2.0b
(-.f64 1 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))))

series17.0ms (0.3%)

Counts
4 → 48
Calls

4 calls:

6.0ms
(-.f64 1 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))))
4.0ms
(sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))))
4.0ms
(+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))
3.0ms
(/.f64 1/2 (hypot.f64 1 x))

rewrite24.0ms (0.4%)

Algorithm
rewrite-expression-head
Rules
49×*-un-lft-identity_binary64
44×add-sqr-sqrt_binary64
30×add-cube-cbrt_binary64
24×sqrt-prod_binary64
21×prod-diff_binary64
Counts
4 → 117
Calls

4 calls:

7.0ms
(-.f64 1 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))))
4.0ms
(sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))))
4.0ms
(+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))
2.0ms
(/.f64 1/2 (hypot.f64 1 x))

simplify116.0ms (2.2%)

Algorithm
egg-herbie
Rules
663×fma-def_binary64
471×associate-*l*_binary64
406×associate-*r*_binary64
399×fma-neg_binary64
286×cancel-sign-sub-inv_binary64
Counts
165 → 201
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02573449
16433086
217712766
347722766
448752766

prune162.0ms (3%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New1992201
Fresh000
Picked101
Done000
Total2002202
Error
0.0b
Counts
202 → 2
Alt Table
StatusErrorProgram
31.5b
(*.f64 1/8 (pow.f64 x 2))
14.0b
(/.f64 (-.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))) (+.f64 1 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))))))
Compiler

Compiled 4480 to 3991 computations (10.9% saved)

localize8.0ms (0.1%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))
0.0b
(+.f64 1 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))))
0.0b
(sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))))
1.5b
(-.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))

series9.0ms (0.2%)

Counts
2 → 24
Calls

2 calls:

5.0ms
(+.f64 1 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))))
4.0ms
(-.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))

rewrite18.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
52×*-un-lft-identity_binary64
52×add-sqr-sqrt_binary64
45×add-cube-cbrt_binary64
39×prod-diff_binary64
37×times-frac_binary64
Counts
2 → 90
Calls

2 calls:

6.0ms
(+.f64 1 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))))
6.0ms
(-.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))

simplify96.0ms (1.8%)

Algorithm
egg-herbie
Rules
767×times-frac_binary64
691×fma-def_binary64
261×associate-/l*_binary64
242×fma-neg_binary64
235×cancel-sign-sub-inv_binary64
Counts
114 → 143
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02762633
17251921
218921557
345221557
455851557

prune262.0ms (4.9%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New2203223
Fresh011
Picked101
Done000
Total2214225
Error
0.0b
Counts
225 → 4
Alt Table
StatusErrorProgram
31.5b
(*.f64 1/8 (pow.f64 x 2))
14.5b
(/.f64 (+.f64 (fma.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) (cbrt.f64 1/2) (neg.f64 (*.f64 (/.f64 (cbrt.f64 1/2) (hypot.f64 1 x)) (/.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) 1)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 1/2) (hypot.f64 1 x))) (/.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) 1) (*.f64 (/.f64 (cbrt.f64 1/2) (hypot.f64 1 x)) (/.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) 1)))) (+.f64 1 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))))))
14.0b
(/.f64 (-.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))) (+.f64 1 (hypot.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1/2 (hypot.f64 1 x))))))
14.0b
(/.f64 (-.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))) (+.f64 1 (log.f64 (exp.f64 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))))))))
Compiler

Compiled 7445 to 6604 computations (11.3% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 1 (log.f64 (exp.f64 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))))))
0.0b
(log.f64 (exp.f64 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))))))
0.0b
(sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))))
1.5b
(-.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))

series10.0ms (0.2%)

Counts
2 → 24
Calls

2 calls:

5.0ms
(+.f64 1 (log.f64 (exp.f64 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))))))
5.0ms
(log.f64 (exp.f64 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))))))

rewrite15.0ms (0.3%)

Algorithm
rewrite-expression-head
Rules
12×*-un-lft-identity_binary64
log-pow_binary64
add-sqr-sqrt_binary64
exp-prod_binary64
add-cube-cbrt_binary64
Counts
2 → 42
Calls

2 calls:

9.0ms
(+.f64 1 (log.f64 (exp.f64 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))))))
5.0ms
(log.f64 (exp.f64 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))))))

simplify80.0ms (1.5%)

Algorithm
egg-herbie
Rules
351×fma-neg_binary64
320×sub-neg_binary64
240×fma-def_binary64
207×associate-*l/_binary64
196×neg-mul-1_binary64
Counts
66 → 105
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01311304
13281210
28331182
325691174
448601165
549791165

prune297.0ms (5.6%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New2461247
Fresh123
Picked011
Done000
Total2474251
Error
0b
Counts
251 → 4
Alt Table
StatusErrorProgram
14.5b
(/.f64 (+.f64 (fma.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) (cbrt.f64 1/2) (neg.f64 (*.f64 (/.f64 (cbrt.f64 1/2) (hypot.f64 1 x)) (/.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) 1)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 1/2) (hypot.f64 1 x))) (/.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) 1) (*.f64 (/.f64 (cbrt.f64 1/2) (hypot.f64 1 x)) (/.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) 1)))) (+.f64 1 (log.f64 (exp.f64 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))))))))
14.0b
(/.f64 (-.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))) (+.f64 1 (hypot.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1/2 (hypot.f64 1 x))))))
31.5b
(*.f64 1/8 (pow.f64 x 2))
14.0b
(/.f64 (-.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))) (+.f64 1 (log.f64 (exp.f64 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))))))))
Compiler

Compiled 8589 to 7676 computations (10.6% saved)

localize9.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.0b
(+.f64 1 (hypot.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1/2 (hypot.f64 1 x)))))
0.0b
(hypot.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1/2 (hypot.f64 1 x))))
0.1b
(sqrt.f64 (/.f64 1/2 (hypot.f64 1 x)))
1.5b
(-.f64 1/2 (/.f64 1/2 (hypot.f64 1 x)))

series61.0ms (1.1%)

Counts
3 → 16
Calls

3 calls:

23.0ms
(hypot.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1/2 (hypot.f64 1 x))))
21.0ms
(+.f64 1 (hypot.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1/2 (hypot.f64 1 x)))))
14.0ms
(sqrt.f64 (/.f64 1/2 (hypot.f64 1 x)))

rewrite7.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
14×add-sqr-sqrt_binary64
13×*-un-lft-identity_binary64
13×sqrt-prod_binary64
11×add-cube-cbrt_binary64
10×times-frac_binary64
Counts
3 → 54
Calls

3 calls:

2.0ms
(+.f64 1 (hypot.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1/2 (hypot.f64 1 x)))))
2.0ms
(sqrt.f64 (/.f64 1/2 (hypot.f64 1 x)))
0.0ms
(hypot.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1/2 (hypot.f64 1 x))))

simplify83.0ms (1.6%)

Algorithm
egg-herbie
Rules
977×fma-neg_binary64
379×sub-neg_binary64
279×fma-def_binary64
200×associate-/l*_binary64
194×distribute-neg-frac_binary64
Counts
70 → 87
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01531528
13451439
29321425
334521423
449331423
549401423

prune250.0ms (4.7%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New1861187
Fresh112
Picked011
Done011
Total1874191
Error
0b
Counts
191 → 4
Alt Table
StatusErrorProgram
31.5b
(*.f64 1/8 (pow.f64 x 2))
14.5b
(/.f64 (+.f64 (fma.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) (cbrt.f64 1/2) (neg.f64 (*.f64 (/.f64 (cbrt.f64 1/2) (hypot.f64 1 x)) (/.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) 1)))) (fma.f64 (neg.f64 (/.f64 (cbrt.f64 1/2) (hypot.f64 1 x))) (/.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) 1) (*.f64 (/.f64 (cbrt.f64 1/2) (hypot.f64 1 x)) (/.f64 (*.f64 (cbrt.f64 1/2) (cbrt.f64 1/2)) 1)))) (+.f64 1 (hypot.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1/2 (hypot.f64 1 x))))))
14.0b
(/.f64 (-.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))) (+.f64 1 (hypot.f64 (sqrt.f64 1/2) (sqrt.f64 (/.f64 1/2 (hypot.f64 1 x))))))
14.0b
(/.f64 (-.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))) (+.f64 1 (log.f64 (exp.f64 (sqrt.f64 (+.f64 1/2 (/.f64 1/2 (hypot.f64 1 x))))))))
Compiler

Compiled 6842 to 6132 computations (10.4% saved)

regimes1.5s (28%)

Accuracy

Total 0.0b remaining (2.9%)

Threshold costs 0.0b (2.9%)

Counts
161 → 3
Compiler

Compiled 31306 to 28378 computations (9.4% saved)

bsearch49.0ms (0.9%)

Steps
ItersRangePoint
10
1.3491531036351671e-12
1.3717918192523137
0.00012153717904520032
9
-0.20611028169239645
-1.1233212943995242e-9
-0.00010956238046010226
Compiler

Compiled 2 to 1 computations (50% saved)

simplify9.0ms (0.2%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
033100
145100
255100
359100
461100
558100

end138.0ms (2.6%)

Compiler

Compiled 247 to 220 computations (10.9% saved)

Profiling

Loading profile data...