diff options
author | Erik Schnetter <schnetter@gmail.com> | 2013-07-11 15:17:31 -0400 |
---|---|---|
committer | Erik Schnetter <schnetter@gmail.com> | 2013-07-11 15:17:31 -0400 |
commit | e6e3f56a902da271e13b151aa4388b5bee325b0e (patch) | |
tree | f738030559c671120a656ad9b8615dd49c418310 /Carpet/LoopControl | |
parent | 3bd10ccb63673b78023687ae05505f62df20c12d (diff) |
LoopControl: Correct logic that chooses tile sizes
Diffstat (limited to 'Carpet/LoopControl')
-rw-r--r-- | Carpet/LoopControl/src/loopcontrol.cc | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/Carpet/LoopControl/src/loopcontrol.cc b/Carpet/LoopControl/src/loopcontrol.cc index afe104db6..79ed2018c 100644 --- a/Carpet/LoopControl/src/loopcontrol.cc +++ b/Carpet/LoopControl/src/loopcontrol.cc @@ -719,17 +719,16 @@ void lc_control_init(lc_control_t *restrict const control, const int loopsizes[LC_DIM] = {loopsize_i, loopsize_j, loopsize_k}; for (int d=0; d<LC_DIM; ++d) { const int align = d==0 ? int(tilesize_alignment) : 1; - for (int count=0; count<10; ++count) { - params_key.tilesize.v[d] = - randomui(align, max_size_factor * tilesizes[d], align); - params_key.loopsize.v[d] = - randomui(align, max_size_factor * loopsizes[d], align); - if (params_key.loopsize.v[d] % params_key.tilesize.v[d] == 0) break; - } params_key.tilesize.v[d] = - alignup(params_key.tilesize.v[0], align); + randomui(align, alignup(max_size_factor * tilesizes[d], align), + align); + const int tilesize = params_key.tilesize.v[d]; params_key.loopsize.v[d] = - alignup(params_key.loopsize.v[d], params_key.tilesize.v[d]); + randomui(tilesize, alignup(max_size_factor * loopsizes[d], tilesize), + tilesize); + assert(moddown(params_key.tilesize.v[d], align) == 0); + assert(moddown(params_key.loopsize.v[d], params_key.tilesize.v[d]) == + 0); } break; } |