Re: updated mir interface

2018-11-07 Thread Alex via Digitalmars-d-learn

On Wednesday, 7 November 2018 at 19:40:57 UTC, 9il wrote:

On Wednesday, 7 November 2018 at 19:09:50 UTC, Alex wrote:
Ok... sorry for being penetrant, but there is still something 
strange. Having dependencies as you had,


[...]


Well, fixed in v2.1.3


Thanks again!
Works for now.


Re: updated mir interface

2018-11-07 Thread 9il via Digitalmars-d-learn

On Wednesday, 7 November 2018 at 19:09:50 UTC, Alex wrote:
Ok... sorry for being penetrant, but there is still something 
strange. Having dependencies as you had,


[...]


Well, fixed in v2.1.3


Re: updated mir interface

2018-11-07 Thread drug via Digitalmars-d-learn

On 07.11.2018 22:09, Alex wrote:
Ok... sorry for being penetrant, but there is still something strange. 
Having dependencies as you had,


´´´
import mir.random.algorithm;
import mir.algorithm.iteration;
import mir.ndslice;
import mir.random;

void fun(size_t s){}

void main()
{
 size_t[] arr;
 arr.length = 42;

 rne.sample(arr, 1).each!(el => fun(el));
 foreach(i; rne.sample(arr, 1)) { i.fun; }
}
´´´

I get

/Users/alex/.dub/packages/mir-random-2.1.2/mir-random/source/mir/random/algorithm.d(573,48): 
Error: no property front for type ulong[]
/Users/alex/.dub/packages/mir-algorithm-3.0.3/mir-algorithm/source/mir/algorithm/iteration.d-mixin-922(922,5): 
Error: template instance 
`mir.random.algorithm.RandomSample!(MersenneTwisterEngine!(ulong, 64LU, 
312LU, 156LU, 31LU, 13043109905998158313LU, 29LU, 6148914691236517205LU, 
17LU, 8202884508482404352LU, 37LU, 1873444759240704LU, 43LU, 
6364136223846793005LU), ulong[]).RandomSample.front!()` error instantiating
/Users/alex/.dub/packages/mir-algorithm-3.0.3/mir-algorithm/source/mir/algorithm/iteration.d(966,25):
instantiated from here: eachImpl!(__lambda1, 
RandomSample!(MersenneTwisterEngine!(ulong, 64LU, 312LU, 156LU, 31LU, 
13043109905998158313LU, 29LU, 6148914691236517205LU, 17LU, 
8202884508482404352LU, 37LU,1873444759240704LU, 43LU, 
6364136223846793005LU), ulong[]))
source/app.d(13,20):    instantiated from here: 
each!(RandomSample!(MersenneTwisterEngine!(ulong, 64LU, 312LU, 156LU, 
31LU, 13043109905998158313LU, 29LU, 6148914691236517205LU, 17LU, 
8202884508482404352LU, 37LU, 1873444759240704LU, 43LU, 
6364136223846793005LU), ulong[]))

dmd failed with exit code 1.

If I import in mir.random.algorithm.d (2.1.2) in line 534 std.range, the 
error goes away. But I assume, that's not the way it should be solved, 
is it?
It's not a full answer, but try to add `import std.array;` or its analog 
in mir if exists


Re: updated mir interface

2018-11-07 Thread Alex via Digitalmars-d-learn
Ok... sorry for being penetrant, but there is still something 
strange. Having dependencies as you had,


´´´
import mir.random.algorithm;
import mir.algorithm.iteration;
import mir.ndslice;
import mir.random;

void fun(size_t s){}

void main()
{
size_t[] arr;
arr.length = 42;

rne.sample(arr, 1).each!(el => fun(el));
foreach(i; rne.sample(arr, 1)) { i.fun; }
}
´´´

I get

/Users/alex/.dub/packages/mir-random-2.1.2/mir-random/source/mir/random/algorithm.d(573,48):
 Error: no property front for type ulong[]
/Users/alex/.dub/packages/mir-algorithm-3.0.3/mir-algorithm/source/mir/algorithm/iteration.d-mixin-922(922,5):
 Error: template instance 
`mir.random.algorithm.RandomSample!(MersenneTwisterEngine!(ulong, 64LU, 312LU, 
156LU, 31LU, 13043109905998158313LU, 29LU, 6148914691236517205LU, 17LU, 
8202884508482404352LU, 37LU, 1873444759240704LU, 43LU, 
6364136223846793005LU), ulong[]).RandomSample.front!()` error instantiating
/Users/alex/.dub/packages/mir-algorithm-3.0.3/mir-algorithm/source/mir/algorithm/iteration.d(966,25):
instantiated from here: eachImpl!(__lambda1, 
RandomSample!(MersenneTwisterEngine!(ulong, 64LU, 312LU, 156LU, 31LU, 
13043109905998158313LU, 29LU, 6148914691236517205LU, 17LU, 
8202884508482404352LU, 37LU,1873444759240704LU, 43LU, 
6364136223846793005LU), ulong[]))
source/app.d(13,20):instantiated from here: 
each!(RandomSample!(MersenneTwisterEngine!(ulong, 64LU, 312LU, 
156LU, 31LU, 13043109905998158313LU, 29LU, 6148914691236517205LU, 
17LU, 8202884508482404352LU, 37LU, 1873444759240704LU, 43LU, 
6364136223846793005LU), ulong[]))

dmd failed with exit code 1.

If I import in mir.random.algorithm.d (2.1.2) in line 534 
std.range, the error goes away. But I assume, that's not the way 
it should be solved, is it?


Re: updated mir interface

2018-11-07 Thread Alex via Digitalmars-d-learn

On Wednesday, 7 November 2018 at 17:05:31 UTC, 9il wrote:

I have updated template constraints.
http://docs.random.dlang.io/latest/mir_random_algorithm.html#.sample

The problem that looks like Phobos map does not define all 
required primitives like popFrontExactly.


Ok... didn't have this on my radar.


I suggest using Mir instead of Phobos if possible:


https://run.dlang.io/is/NBTfwF

/+dub.sdl:
dependency "mir-algorithm" version="~>3.0.3"
dependency "mir-random" version="~>2.1.1"
+/

import mir.random.algorithm;
import mir.algorithm.iteration;
import mir.ndslice: sliced, iota, map, member;

void main()
{
S[] arr;
arr.length = 42;
// using each
arr.length.iota.each!((i, ref el) => el.i = i)(arr);

// or using each and member
arr.length.iota.each!"b = a"(arr.member!"i");

// or using assign
arr.member!"i"[] = arr.length.iota;

auto res0 = rne.sample(arr.map!((ref el) => el.i), 1);
// or using member
auto res1 = rne.sample(arr.member!"i", 1);

}

struct S { size_t i; }


I will try to adopt this... Thanks a lot!


Re: updated mir interface

2018-11-07 Thread 9il via Digitalmars-d-learn

On Wednesday, 7 November 2018 at 14:46:17 UTC, Alex wrote:

On Wednesday, 7 November 2018 at 14:07:32 UTC, 9il wrote:

This is a regression. It is fixed in mir-random v2.1.2.


Thanks. But I have another one:

´´´
import mir.random.algorithm;
import std.experimental.all;

void main()
{
S[] arr;
arr.length = 42;
arr.each!((i, ref el) => el.i = i);
auto res = rne.sample(arr.map!((ref el) => el.i), 1);
}

struct S { size_t i; }
´´´

Does not depend, on whether I use (ref el) or just el... And 
should not depend on that ;)


I have updated template constraints.
http://docs.random.dlang.io/latest/mir_random_algorithm.html#.sample

The problem that looks like Phobos map does not define all 
required primitives like popFrontExactly. I suggest using Mir 
instead of Phobos if possible:



https://run.dlang.io/is/NBTfwF

/+dub.sdl:
dependency "mir-algorithm" version="~>3.0.3"
dependency "mir-random" version="~>2.1.1"
+/

import mir.random.algorithm;
import mir.algorithm.iteration;
import mir.ndslice: sliced, iota, map, member;

void main()
{
S[] arr;
arr.length = 42;
// using each
arr.length.iota.each!((i, ref el) => el.i = i)(arr);

// or using each and member
arr.length.iota.each!"b = a"(arr.member!"i");

// or using assign
arr.member!"i"[] = arr.length.iota;

auto res0 = rne.sample(arr.map!((ref el) => el.i), 1);
// or using member
auto res1 = rne.sample(arr.member!"i", 1);

}

struct S { size_t i; }




Re: updated mir interface

2018-11-07 Thread Alex via Digitalmars-d-learn

On Wednesday, 7 November 2018 at 14:07:32 UTC, 9il wrote:

This is a regression. It is fixed in mir-random v2.1.2.


Thanks. But I have another one:

´´´
import mir.random.algorithm;
import std.experimental.all;

void main()
{
S[] arr;
arr.length = 42;
arr.each!((i, ref el) => el.i = i);
auto res = rne.sample(arr.map!((ref el) => el.i), 1);
}

struct S { size_t i; }
´´´

Does not depend, on whether I use (ref el) or just el... And 
should not depend on that ;)


Re: updated mir interface

2018-11-07 Thread 9il via Digitalmars-d-learn

On Wednesday, 7 November 2018 at 09:33:32 UTC, Alex wrote:

I'm referring to the example
http://docs.random.dlang.io/latest/mir_random_algorithm.html#.sample

[...]


This is a regression. It is fixed in mir-random v2.1.2.


updated mir interface

2018-11-07 Thread Alex via Digitalmars-d-learn

I'm referring to the example
http://docs.random.dlang.io/latest/mir_random_algorithm.html#.sample

Could somebody tell me, why

´´´
import mir.random.algorithm;
import std.range; //import mir.range;

void main()
{ // line 5
size_t[] arr;
arr.length = 42;
arr = arr.length.iota.array;
auto res = rne.sample(arr, 1);
} // line 10
´´´
refuses to compile?

The error message is

/Users/alex/.dub/packages/mir-random-2.1.1/mir-random/source/mir/random/algorithm.d(551,23):
 Error: no property popFrontExactly for type ulong[]
/Users/alex/.dub/packages/mir-random-2.1.1/mir-random/source/mir/random/algorithm.d(558,13):
 Error: template instance 
`mir.random.algorithm.RandomSample!(MersenneTwisterEngine!(ulong, 64LU, 312LU, 
156LU, 31LU, 13043109905998158313LU, 29LU, 6148914691236517205LU, 17LU, 
8202884508482404352LU, 37LU, 1873444759240704LU, 43LU, 
6364136223846793005LU), ulong[]).RandomSample.__ctor!()` error instantiating
/Users/alex/.dub/packages/mir-random-2.1.1/mir-random/source/mir/random/algorithm.d(448,35):
instantiated from here: __ctor!()
source/app.d(9,23):instantiated from here: 
sample!(MersenneTwisterEngine!(ulong, 64LU, 312LU, 156LU, 31LU, 
13043109905998158313LU, 29LU, 6148914691236517205LU, 17LU, 
8202884508482404352LU, 37LU, 1873444759240704LU, 43LU, 
6364136223846793005LU), ulong[])

dmd failed with exit code 1.