Details

Time bar (total: 13.1s)

analyze755.0ms (5.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
25%74.9%0.1%4
25%74.9%0.1%5
25%74.9%0.1%6
25%74.9%0.1%7
25%74.9%0.1%8
25%65.5%9.5%9
28.5%50.9%20.6%10
30.4%48.1%21.5%11
33.7%37.3%28.9%12
37.4%27.1%35.5%13
38.1%26.2%35.7%14
Compiler

Compiled 18 to 12 computations (33.3% saved)

sample2.0s (15.5%)

Symmetry

(sort x y z)

Results
1.5s8256×body128valid
460.0ms2329×body128invalid
Compiler

Compiled 53 to 35 computations (34% saved)

simplify21.0ms (0.2%)

Algorithm
egg-herbie
Rules
25×fma-def_binary64
+-commutative_binary64
*-commutative_binary64
distribute-rgt-out_binary64
associate-+r+_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01218
12316
24316
35916
46116
56216
66216

prune6.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New112
Fresh101
Picked000
Done000
Total213
Error
17.9b
Counts
3 → 1
Alt Table
StatusErrorProgram
17.9b
(*.f64 2 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))
Compiler

Compiled 56 to 34 computations (39.3% saved)

localize17.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.5b
(fma.f64 x (+.f64 y z) (*.f64 y z))
17.9b
(sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))

series436.0ms (3.3%)

Counts
2 → 48
Calls

2 calls:

419.0ms
(sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))
16.0ms
(fma.f64 x (+.f64 y z) (*.f64 y z))

rewrite5.0ms (0%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary64
*-un-lft-identity_binary64
sqrt-prod_binary64
add-cube-cbrt_binary64
pow1_binary64
Counts
2 → 25
Calls

2 calls:

2.0ms
(sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))
1.0ms
(fma.f64 x (+.f64 y z) (*.f64 y z))

simplify135.0ms (1%)

Algorithm
egg-herbie
Rules
631×associate-*l*_binary64
605×cancel-sign-sub-inv_binary64
565×associate-*r*_binary64
297×fma-neg_binary64
197×fma-def_binary64
Counts
73 → 70
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02141615
15311523
218731478
349331478
451151478

prune149.0ms (1.1%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New581270
Fresh000
Picked101
Done000
Total591271
Error
17.7b
Counts
71 → 12
Alt Table
StatusErrorProgram
46.5b
(*.f64 2 (sqrt.f64 (cbrt.f64 (*.f64 (*.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) (fma.f64 x (+.f64 y z) (*.f64 y z))) (fma.f64 x (+.f64 y z) (*.f64 y z))))))
45.4b
(*.f64 2 (fma.f64 1/2 (*.f64 z (+.f64 (sqrt.f64 (/.f64 x y)) (sqrt.f64 (/.f64 y x)))) (sqrt.f64 (*.f64 y x))))
18.2b
(*.f64 2 (*.f64 (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
62.7b
(*.f64 2 (+.f64 (sqrt.f64 (*.f64 z x)) (*.f64 y (*.f64 1/2 (+.f64 (sqrt.f64 (/.f64 z x)) (sqrt.f64 (/.f64 x z)))))))
17.9b
(*.f64 2 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/2))
38.5b
(*.f64 2 (sqrt.f64 (*.f64 y z)))
18.4b
(*.f64 2 (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
18.4b
(*.f64 2 (*.f64 (sqrt.f64 (*.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (sqrt.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
18.7b
(*.f64 2 (*.f64 (*.f64 (cbrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (cbrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))) (cbrt.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
61.7b
(*.f64 2 (sqrt.f64 (*.f64 z x)))
21.2b
(*.f64 2 (exp.f64 (log.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
37.2b
(*.f64 2 (sqrt.f64 (*.f64 z (+.f64 y x))))
Compiler

Compiled 2462 to 1181 computations (52% saved)

localize22.0ms (0.2%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.5b
(fma.f64 x (+.f64 y z) (*.f64 y z))
17.9b
(pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/2)

series139.0ms (1.1%)

Counts
1 → 36
Calls

1 calls:

139.0ms
(pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/2)

rewrite4.0ms (0%)

Algorithm
rewrite-expression-head
Rules
pow-unpow_binary64
*-un-lft-identity_binary64
add-sqr-sqrt_binary64
unpow-prod-down_binary64
add-cube-cbrt_binary64
Counts
1 → 20
Calls

1 calls:

3.0ms
(pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/2)

simplify125.0ms (1%)

Algorithm
egg-herbie
Rules
387×associate-*r*_binary64
385×times-frac_binary64
268×associate-*l*_binary64
268×associate-/r*_binary64
245×fma-def_binary64
Counts
56 → 96
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03733294
111493138
249193138
350653138

prune226.0ms (1.7%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New1166122
Fresh9211
Picked011
Done000
Total1259134
Error
2.0b
Counts
134 → 9
Alt Table
StatusErrorProgram
17.9b
(*.f64 2 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/2))
33.1b
(*.f64 2 (pow.f64 (exp.f64 1/2) (+.f64 (log.f64 (+.f64 y x)) (log.f64 z))))
36.9b
(*.f64 2 (exp.f64 (*.f64 1/2 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))))
18.4b
(*.f64 2 (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
46.5b
(*.f64 2 (sqrt.f64 (cbrt.f64 (*.f64 (*.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) (fma.f64 x (+.f64 y z) (*.f64 y z))) (fma.f64 x (+.f64 y z) (*.f64 y z))))))
18.1b
(*.f64 2 (*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)))
33.9b
(*.f64 2 (cbrt.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 3/2)))
18.4b
(*.f64 2 (*.f64 (fabs.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (sqrt.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
33.1b
(*.f64 2 (exp.f64 (*.f64 1/2 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z))))))
Compiler

Compiled 5213 to 2706 computations (48.1% saved)

localize22.0ms (0.2%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4))
0.5b
(fma.f64 x (+.f64 y z) (*.f64 y z))
18.2b
(pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)

series457.0ms (3.5%)

Counts
2 → 48
Calls

2 calls:

317.0ms
(*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4))
139.0ms
(pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)

rewrite28.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
24×add-sqr-sqrt_binary64
21×unpow-prod-down_binary64
15×add-exp-log_binary64
12×*-un-lft-identity_binary64
12×add-cube-cbrt_binary64
Counts
2 → 73
Calls

2 calls:

11.0ms
(*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4))
3.0ms
(pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)

simplify179.0ms (1.4%)

Algorithm
egg-herbie
Rules
493×associate-*l*_binary64
448×fma-def_binary64
385×times-frac_binary64
317×associate-/r*_binary64
245×associate-/l*_binary64
Counts
121 → 176
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
05855877
117185500
254985500

prune642.0ms (4.9%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New3134317
Fresh347
Picked101
Done011
Total3179326
Error
2.0b
Counts
326 → 9
Alt Table
StatusErrorProgram
18.2b
(*.f64 2 (*.f64 (pow.f64 (*.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) 1/4) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 1/4) (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4))))
18.3b
(*.f64 2 (*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) (cbrt.f64 (*.f64 (*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)) (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)))))
17.9b
(*.f64 2 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/2))
33.1b
(*.f64 2 (pow.f64 (exp.f64 1/2) (+.f64 (log.f64 (+.f64 y x)) (log.f64 z))))
18.2b
(*.f64 2 (*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) (/.f64 1/4 2)) (*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) (/.f64 1/4 2)) (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4))))
33.1b
(*.f64 2 (exp.f64 (*.f64 1/2 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z))))))
36.9b
(*.f64 2 (exp.f64 (*.f64 1/2 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))))
18.4b
(*.f64 2 (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
39.9b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 2) 1/4))
Compiler

Compiled 16406 to 8015 computations (51.1% saved)

localize34.0ms (0.3%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.4b
(*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) (/.f64 1/4 2)) (*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) (/.f64 1/4 2)) (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)))
0.5b
(fma.f64 x (+.f64 y z) (*.f64 y z))
18.2b
(pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)
18.2b
(pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) (/.f64 1/4 2))

series505.0ms (3.9%)

Counts
2 → 48
Calls

2 calls:

385.0ms
(*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) (/.f64 1/4 2)) (*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) (/.f64 1/4 2)) (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)))
120.0ms
(pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) (/.f64 1/4 2))

rewrite23.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
62×add-exp-log_binary64
57×prod-exp_binary64
29×pow-exp_binary64
29×pow-to-exp_binary64
13×pow-unpow_binary64
Counts
2 → 80
Calls

2 calls:

7.0ms
(*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) (/.f64 1/4 2)) (*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) (/.f64 1/4 2)) (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)))
5.0ms
(pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) (/.f64 1/4 2))

simplify194.0ms (1.5%)

Algorithm
egg-herbie
Rules
757×fma-def_binary64
366×times-frac_binary64
321×associate-/r*_binary64
240×associate-/l*_binary64
214×*-commutative_binary64
Counts
128 → 180
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
06235499
118435187
249675134
352395134

prune1.3s (9.9%)

Pruning

10 alts after pruning (8 fresh and 2 done)

PrunedKeptTotal
New4591460
Fresh077
Picked011
Done011
Total45910469
Error
2.0b
Counts
469 → 10
Alt Table
StatusErrorProgram
18.2b
(*.f64 2 (*.f64 (pow.f64 (*.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) 1/4) (*.f64 (pow.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 1/4) (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4))))
18.3b
(*.f64 2 (*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) (cbrt.f64 (*.f64 (*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4) (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)) (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4)))))
17.9b
(*.f64 2 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/2))
33.1b
(*.f64 2 (pow.f64 (exp.f64 1/2) (+.f64 (log.f64 (+.f64 y x)) (log.f64 z))))
18.2b
(*.f64 2 (*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) (/.f64 1/4 2)) (*.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) (/.f64 1/4 2)) (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/4))))
33.1b
(*.f64 2 (exp.f64 (*.f64 1/2 (-.f64 (log.f64 (+.f64 y x)) (log.f64 (/.f64 1 z))))))
36.9b
(*.f64 2 (exp.f64 (*.f64 1/2 (-.f64 (log.f64 (neg.f64 (+.f64 y z))) (log.f64 (/.f64 -1 x))))))
18.4b
(*.f64 2 (sqrt.f64 (*.f64 (*.f64 (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)))) (cbrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))))))
39.9b
(*.f64 2 (pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 2) 1/4))
18.4b
(*.f64 2 (*.f64 (pow.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) (/.f64 1/4 2)) (*.f64 (pow.f64 (sqrt.f64 (fma.f64 x (+.f64 y z) (*.f64 y z))) 1/8) (pow.f64 (pow.f64 (fma.f64 x (+.f64 y z) (*.f64 y z)) 1/8) 3))))
Compiler

Compiled 29243 to 14076 computations (51.9% saved)

regimes4.0s (30.8%)

Accuracy

Total 3.1b remaining (60.4%)

Threshold costs 0b (0%)

Counts
163 → 5
Compiler

Compiled 28664 to 15848 computations (44.7% saved)

bsearch271.0ms (2.1%)

Steps
ItersRangePoint
7
2.5277842608173215e+91
1.0319103201538945e+93
1.0208539709101426e+93
11
-2.4161171264377086e-251
-2.221401343227022e-279
-2.7214926907983235e-253
11
-1.6233304406267663e-175
-7.777286448998501e-199
-1.1343957496177142e-192
3
-2.1955296947950985e+23
-1.6939739310864924e+23
-1.7253211663182805e+23
Compiler

Compiled 4 to 3 computations (25% saved)

simplify11.0ms (0.1%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
045123
166123
280123
390123
494123
593123

end1.3s (10.2%)

Compiler

Compiled 631 to 382 computations (39.5% saved)

Profiling

Loading profile data...