Details

Time bar (total: 7.5s)

analyze1.2s (16.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
6.2%93.6%0.2%9
9.4%90.4%0.2%10
14%83.4%2.5%11
18.7%78.2%3.1%12
28.1%65.5%6.4%13
30.7%59.4%9.9%14
Compiler

Compiled 20 to 12 computations (40% saved)

sample1.9s (25.6%)

Results
975.0ms8256×body128valid
729.0ms6170×body128invalid
Compiler

Compiled 59 to 35 computations (40.7% saved)

simplify8.0ms (0.1%)

Algorithm
egg-herbie
Rules
associate-/l*_binary64
associate-*r/_binary64
associate-/r/_binary64
fma-def_binary64
associate-/r*_binary64
Counts
1 → 2
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
01222
12520
24520
35520
45520
55520

prune66.0ms (0.9%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
29.8b
Counts
3 → 2
Alt Table
StatusErrorProgram
29.8b
(fma.f64 x (/.f64 x (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
36.2b
(+.f64 (/.f64 (*.f64 x x) (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
Compiler

Compiled 107 to 55 computations (48.6% saved)

localize9.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
2.9b
(fma.f64 x (/.f64 x (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
11.2b
(/.f64 x (*.f64 y y))
20.9b
(/.f64 (*.f64 z z) (*.f64 t t))

series250.0ms (3.3%)

Counts
3 → 96
Calls

3 calls:

126.0ms
(fma.f64 x (/.f64 x (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
98.0ms
(/.f64 x (*.f64 y y))
25.0ms
(/.f64 (*.f64 z z) (*.f64 t t))

rewrite66.0ms (0.9%)

Algorithm
batch-egg-rewrite
Rules
338×prod-diff_binary64
206×expm1-udef_binary64
206×log1p-udef_binary64
196×log-pow_binary64
177×log-div_binary64
Counts
3 → 98
Calls

3 calls:

64.0ms
(fma.f64 x (/.f64 x (*.f64 y y)) (/.f64 (*.f64 z z) (*.f64 t t)))
64.0ms
(/.f64 x (*.f64 y y))
64.0ms
(/.f64 (*.f64 z z) (*.f64 t t))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01137
123531
2302631
3497631
000
100

simplify200.0ms (2.7%)

Algorithm
egg-herbie
Rules
652×unswap-sqr_binary64
531×associate-/l*_binary64
480×sqr-pow_binary64
355×associate-/r*_binary64
289×associate-/l/_binary64
Counts
194 → 105
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0141320
1291320
2511248
31391248
45451248
527051248
639741248
740231248
843111248
946971248
1050741248

prune120.0ms (1.6%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New9213105
Fresh101
Picked101
Done000
Total9413107
Error
2.4b
Counts
107 → 13
Alt Table
StatusErrorProgram
42.6b
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
34.1b
(pow.f64 (hypot.f64 (/.f64 z t) (*.f64 (sqrt.f64 x) (/.f64 (sqrt.f64 x) y))) 2)
13.3b
(fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (cbrt.f64 (pow.f64 (/.f64 z t) 2)) 3))
30.0b
(fma.f64 x (*.f64 (cbrt.f64 (/.f64 x (*.f64 y y))) (pow.f64 (cbrt.f64 (/.f64 x (*.f64 y y))) 2)) (/.f64 (*.f64 z z) (*.f64 t t)))
17.1b
(fma.f64 x (/.f64 x (*.f64 y y)) (*.f64 z (/.f64 1 (/.f64 t (/.f64 z t)))))
13.0b
(fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))
38.7b
(cbrt.f64 (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 3))
43.3b
(fma.f64 x (pow.f64 (/.f64 (sqrt.f64 x) y) 2) (/.f64 (*.f64 z z) (*.f64 t t)))
22.0b
(fma.f64 x (*.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) y) (/.f64 (cbrt.f64 x) y)) (/.f64 (*.f64 z z) (*.f64 t t)))
21.6b
(fma.f64 x (*.f64 (/.f64 x y) (/.f64 1 y)) (/.f64 (*.f64 z z) (*.f64 t t)))
29.7b
(fma.f64 x (*.f64 x (pow.f64 y -2)) (/.f64 (*.f64 z z) (*.f64 t t)))
24.7b
(fma.f64 x (/.f64 x (*.f64 y y)) (*.f64 (/.f64 z (*.f64 t t)) z))
24.6b
(fma.f64 x (/.f64 x (*.f64 y y)) (*.f64 (/.f64 (*.f64 z z) t) (/.f64 1 t)))
Compiler

Compiled 2307 to 898 computations (61.1% saved)

localize8.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.3b
(pow.f64 (/.f64 z t) 2)
2.9b
(fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))
11.2b
(/.f64 x (*.f64 y y))

series71.0ms (0.9%)

Counts
2 → 72
Calls

2 calls:

60.0ms
(fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))
11.0ms
(pow.f64 (/.f64 z t) 2)

rewrite62.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
566×log-prod_binary64
208×prod-diff_binary64
204×expm1-udef_binary64
204×log1p-udef_binary64
188×log-pow_binary64
Counts
2 → 70
Calls

2 calls:

60.0ms
(pow.f64 (/.f64 z t) 2)
60.0ms
(fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01124
123324
2281624
3529424
000
100

simplify149.0ms (2%)

Algorithm
egg-herbie
Rules
572×unswap-sqr_binary64
522×associate-/l*_binary64
486×*-commutative_binary64
484×sqr-pow_binary64
336×associate-/r*_binary64
Counts
142 → 75
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0131152
1281152
2491080
31331080
45231080
525931080
632371080
735241080
838281080
942061080
1046771080
1149651080
1249441080

prune127.0ms (1.7%)

Pruning

15 alts after pruning (15 fresh and 0 done)

PrunedKeptTotal
New10011111
Fresh8412
Picked101
Done000
Total10915124
Error
1.3b
Counts
124 → 15
Alt Table
StatusErrorProgram
17.1b
(fma.f64 x (/.f64 x (*.f64 y y)) (*.f64 z (/.f64 1 (/.f64 t (/.f64 z t)))))
16.7b
(fma.f64 x (/.f64 x (*.f64 y y)) (*.f64 z (*.f64 (/.f64 1 t) (/.f64 z t))))
38.7b
(cbrt.f64 (pow.f64 (fma.f64 x (/.f64 x (*.f64 y y)) (pow.f64 (/.f64 z t) 2)) 3))
49.3b
(/.f64 (+.f64 (pow.f64 (*.f64 x (/.f64 x (*.f64 y y))) 3) (pow.f64 (pow.f64 (/.f64 z t) 2) 3)) (fma.f64 (*.f64 x (/.f64 x (*.f64 y y))) (*.f64 x (/.f64 x (*.f64 y y))) (-.f64 (pow.f64 (/.f64 z t) 4) (*.f64 (*.f64 x (/.f64 x (*.f64 y y))) (pow.f64 (/.f64 z t) 2)))))
42.6b
(/.f64 (pow.f64 x 2) (pow.f64 y 2))
34.1b
(pow.f64 (hypot.f64 (/.f64 z t) (*.f64 (sqrt.f64 x) (/.f64 (sqrt.f64 x) y))) 2)
13.2b
(fma.f64 x (*.f64 (pow.f64 (cbrt.f64 (/.f64 x (*.f64 y y))) 2) (cbrt.f64 (/.f64 x (*.f64 y y)))) (pow.f64 (/.f64 z t) 2))
41.9b
(/.f64 (pow.f64 z 2) (pow.f64 t 2))
24.5b
(fma.f64 x (/.f64 x (*.f64 y y)) (*.f64 (pow.f64 (cbrt.f64 (/.f64 z t)) 2) (cbrt.f64 (pow.f64 (/.f64 z t) 4))))
13.1b
(fma.f64 x (*.f64 (pow.f64 y -2) x) (pow.f64 (/.f64 z t) 2))
3.3b
(fma.f64 x (*.f64 (/.f64 1 y) (/.f64 x y)) (pow.f64 (/.f64 z t) 2))
3.7b
(fma.f64 x (*.f64 (/.f64 (pow.f64 (cbrt.f64 x) 2) y) (/.f64 (cbrt.f64 x) y)) (pow.f64 (/.f64 z t) 2))
35.5b
(fma.f64 x (pow.f64 (/.f64 (sqrt.f64 x) y) 2) (pow.f64 (/.f64 z t) 2))
16.4b
(fma.f64 x (/.f64 x (*.f64 y y)) (/.f64 (*.f64 z (/.f64 z t)) t))
16.4b
(fma.f64 x (/.f64 x (*.f64 y y)) (*.f64 (*.f64 (/.f64 z t) z) (/.f64 1 t)))
Compiler

Compiled 2495 to 1054 computations (57.8% saved)

localize11.0ms (0.1%)

Local error

Found 3 expressions with local error:

NewErrorProgram
0.2b
(*.f64 (/.f64 1 y) (/.f64 x y))
0.3b
(pow.f64 (/.f64 z t) 2)
2.9b
(fma.f64 x (*.f64 (/.f64 1 y) (/.f64 x y)) (pow.f64 (/.f64 z t) 2))

series82.0ms (1.1%)

Counts
2 → 72
Calls

2 calls:

59.0ms
(fma.f64 x (*.f64 (/.f64 1 y) (/.f64 x y)) (pow.f64 (/.f64 z t) 2))
22.0ms
(*.f64 (/.f64 1 y) (/.f64 x y))

rewrite61.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
280×prod-diff_binary64
226×expm1-udef_binary64
226×log1p-udef_binary64
208×log-pow_binary64
157×log-div_binary64
Counts
2 → 71
Calls

2 calls:

60.0ms
(*.f64 (/.f64 1 y) (/.f64 x y))
60.0ms
(fma.f64 x (*.f64 (/.f64 1 y) (/.f64 x y)) (pow.f64 (/.f64 z t) 2))
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01324
127323
2320620
3497720
000
100

simplify117.0ms (1.6%)

Algorithm
egg-herbie
Rules
652×unswap-sqr_binary64
531×associate-/l*_binary64
480×sqr-pow_binary64
355×associate-/r*_binary64
289×associate-/l/_binary64
Counts
143 → 78
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0141080
1291080
2511008
31391008
45451008
527051008
639741008
740231008
843111008
946971008
1050741008

prune136.0ms (1.8%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New1089117
Fresh11314
Picked101
Done000
Total12012132
Error
0.0b
Counts
132 → 12
Alt Table
StatusErrorProgram
31.7b
(fma.f64 z (/.f64 z (*.f64 t t)) (/.f64 (*.f64 x x) (*.f64 y y)))
24.5b
(fma.f64 x (/.f64 x (*.f64 y y)) (*.f64 (pow.f64 (cbrt.f64 (/.f64 z t)) 2) (cbrt.f64 (pow.f64 (/.f64 z t) 4))))
7.3b
(fma.f64 x (*.f64 (/.f64 1 y) (/.f64 x y)) (*.f64 (*.f64 (/.f64 z t) z) (/.f64 1 t)))
16.7b
(fma.f64 x (/.f64 x (*.f64 y y)) (*.f64 z (*.f64 (/.f64 1 t) (/.f64 z t))))
7.2b
(fma.f64 x (*.f64 (/.f64 1 y) (/.f64 x y)) (/.f64 z (*.f64 (/.f64 t z) t)))
35.5b
(fma.f64 x (pow.f64 (/.f64 (sqrt.f64 x) y) 2) (pow.f64 (/.f64 z t) 2))
3.7b
(fma.f64 x (/.f64 (/.f64 (/.f64 x y) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y)) (pow.f64 (/.f64 z t) 2))
0.4b
(pow.f64 (hypot.f64 (/.f64 x y) (/.f64 z t)) 2)
3.3b
(fma.f64 x (/.f64 (/.f64 1 y) (/.f64 y x)) (pow.f64 (/.f64 z t) 2))
3.3b
(fma.f64 x (/.f64 (/.f64 x y) y) (pow.f64 (/.f64 z t) 2))
33.9b
(cbrt.f64 (pow.f64 (pow.f64 (hypot.f64 (/.f64 x y) (/.f64 z t)) 2) 3))
1.2b
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 (/.f64 x y) (/.f64 z t)) 2)) 3)
Compiler

Compiled 2320 to 1098 computations (52.7% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(hypot.f64 (/.f64 x y) (/.f64 z t))
0.4b
(pow.f64 (hypot.f64 (/.f64 x y) (/.f64 z t)) 2)

series719.0ms (9.6%)

Counts
2 → 96
Calls

2 calls:

540.0ms
(pow.f64 (hypot.f64 (/.f64 x y) (/.f64 z t)) 2)
179.0ms
(hypot.f64 (/.f64 x y) (/.f64 z t))

rewrite60.0ms (0.8%)

Algorithm
batch-egg-rewrite
Rules
506×log-prod_binary64
190×pow1/3_binary64
188×expm1-udef_binary64
188×log1p-udef_binary64
175×pow3_binary64
Counts
2 → 73
Calls

2 calls:

58.0ms
(hypot.f64 (/.f64 x y) (/.f64 z t))
58.0ms
(pow.f64 (hypot.f64 (/.f64 x y) (/.f64 z t)) 2)
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01023
121223
2252423
3503723
000
100

simplify86.0ms (1.1%)

Algorithm
egg-herbie
Rules
912×associate-/l*_binary64
768×associate-/r*_binary64
242×fma-neg_binary64
196×fma-def_binary64
140×associate-/r/_binary64
Counts
169 → 109
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
0812816
12712768
211412632
349862632
451082632

prune106.0ms (1.4%)

Pruning

12 alts after pruning (12 fresh and 0 done)

PrunedKeptTotal
New1054109
Fresh3811
Picked101
Done000
Total10912121
Error
0.0b
Counts
121 → 12
Alt Table
StatusErrorProgram
31.7b
(fma.f64 z (/.f64 z (*.f64 t t)) (/.f64 (*.f64 x x) (*.f64 y y)))
4.3b
(fma.f64 (*.f64 (/.f64 z t) z) (/.f64 1 t) (pow.f64 (/.f64 x y) 2))
24.5b
(fma.f64 x (/.f64 x (*.f64 y y)) (*.f64 (pow.f64 (cbrt.f64 (/.f64 z t)) 2) (cbrt.f64 (pow.f64 (/.f64 z t) 4))))
4.6b
(fma.f64 (*.f64 (/.f64 x y) x) (/.f64 1 y) (pow.f64 (/.f64 z t) 2))
7.2b
(fma.f64 x (*.f64 (/.f64 1 y) (/.f64 x y)) (/.f64 z (*.f64 (/.f64 t z) t)))
3.3b
(fma.f64 x (/.f64 (/.f64 x y) y) (pow.f64 (/.f64 z t) 2))
21.5b
(fma.f64 (*.f64 x x) (*.f64 (/.f64 1 y) (/.f64 1 y)) (pow.f64 (/.f64 z t) 2))
35.5b
(fma.f64 x (pow.f64 (/.f64 (sqrt.f64 x) y) 2) (pow.f64 (/.f64 z t) 2))
3.7b
(fma.f64 x (/.f64 (/.f64 (/.f64 x y) (pow.f64 (cbrt.f64 y) 2)) (cbrt.f64 y)) (pow.f64 (/.f64 z t) 2))
1.2b
(pow.f64 (cbrt.f64 (pow.f64 (hypot.f64 (/.f64 x y) (/.f64 z t)) 2)) 3)
0.6b
(*.f64 (sqrt.f64 (hypot.f64 (/.f64 x y) (/.f64 z t))) (*.f64 (sqrt.f64 (hypot.f64 (/.f64 x y) (/.f64 z t))) (hypot.f64 (/.f64 x y) (/.f64 z t))))
3.3b
(fma.f64 x (/.f64 (/.f64 1 y) (/.f64 y x)) (pow.f64 (/.f64 z t) 2))
Compiler

Compiled 2400 to 1147 computations (52.2% saved)

regimes1.5s (19.8%)

Accuracy

Total 0.4b remaining (89.4%)

Threshold costs 0.4b (89.4%)

Counts
110 → 1
Compiler

Compiled 24819 to 15740 computations (36.6% saved)

simplify2.0ms (0%)

Algorithm
egg-herbie
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01017
11017

end356.0ms (4.8%)

Compiler

Compiled 268 to 163 computations (39.2% saved)

Profiling

Loading profile data...