Idiomatic way to generate all possible values a static array of ubyte can have
jkpl via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sat Apr 2 02:45:40 PDT 2016
On Saturday, 2 April 2016 at 09:11:34 UTC, jkpl wrote:
> On Saturday, 2 April 2016 at 08:48:10 UTC, rikki cattermole
> wrote:
>> On 02/04/2016 9:36 PM, jkpl wrote:
>>> On Saturday, 2 April 2016 at 08:27:07 UTC, rikki cattermole
>>> wrote:
>> Okay that is a problem then.
>
> Yes clearly!
>
> Maybe this, a bit better:
>
>
> foreach (b0; randomCover(iota(0,256)))
> foreach (b1; randomCover(iota(0,256)))
> ...
> foreach (b255; randomCover(iota(0,256)))
> {
> ...
> }
Still not the right approach,
import std.stdio;
import std.random;
import std.range;
void testRunner(bool function(ubyte[128]) test)
{
uint[32] arr;
foreach (v0; randomCover(iota(0U,uint.max)))
foreach (v1; randomCover(iota(0U,uint.max)))
foreach (v2; randomCover(iota(0U,uint.max)))
foreach (v3; randomCover(iota(0U,uint.max)))
foreach (v4; randomCover(iota(0U,uint.max)))
foreach (v5; randomCover(iota(0U,uint.max)))
foreach (v6; randomCover(iota(0U,uint.max)))
foreach (v7; randomCover(iota(0U,uint.max)))
foreach (v8; randomCover(iota(0U,uint.max)))
foreach (v9; randomCover(iota(0U,uint.max)))
foreach (v10; randomCover(iota(0U,uint.max)))
foreach (v11; randomCover(iota(0U,uint.max)))
foreach (v12; randomCover(iota(0U,uint.max)))
foreach (v13; randomCover(iota(0U,uint.max)))
foreach (v14; randomCover(iota(0U,uint.max)))
foreach (v15; randomCover(iota(0U,uint.max)))
foreach (v16; randomCover(iota(0U,uint.max)))
foreach (v17; randomCover(iota(0U,uint.max)))
foreach (v18; randomCover(iota(0U,uint.max)))
foreach (v19; randomCover(iota(0U,uint.max)))
foreach (v20; randomCover(iota(0U,uint.max)))
foreach (v21; randomCover(iota(0U,uint.max)))
foreach (v22; randomCover(iota(0U,uint.max)))
foreach (v23; randomCover(iota(0U,uint.max)))
foreach (v24; randomCover(iota(0U,uint.max)))
foreach (v25; randomCover(iota(0U,uint.max)))
foreach (v26; randomCover(iota(0U,uint.max)))
foreach (v27; randomCover(iota(0U,uint.max)))
foreach (v28; randomCover(iota(0U,uint.max)))
foreach (v29; randomCover(iota(0U,uint.max)))
foreach (v30; randomCover(iota(0U,uint.max)))
foreach (v31; randomCover(iota(0U,uint.max)))
{
arr = [v0,v1,v2,v3,v4,v5,v6,v7,v8,v9,
v10,v11,v12,v13,v14,v15,v16,v17,v18,v19,
v20,v21,v22,v23,v24,v25,v26,v27,v28,v29,
v30, v31
];
writeln(arr);
//if (test(cast(ubyte[128]) arr))
return;
}
}
bool test(ubyte[128] arr)
{
if (arr[0] == 0U)
return true;
else
return false;
}
void main()
{
testRunner(&test);
}
More information about the Digitalmars-d-learn
mailing list