Re: Voting For std.experimental.ndslice

2015-12-30 Thread Jack Stouffer via Digitalmars-d
On Wednesday, 30 December 2015 at 01:03:39 UTC, Ilya Yaroshenko 
wrote:
ldmd2/ldc2 flag -mcpu=native will optimise code for your CPU. 
-- Ilya


Hmm, ldc seems to segfault when passing that flag. I will make a 
bug report for this.


Re: Voting For std.experimental.ndslice

2015-12-30 Thread John Colvin via Digitalmars-d
On Wednesday, 30 December 2015 at 21:39:54 UTC, Ilya Yaroshenko 
wrote:
On Tuesday, 29 December 2015 at 18:08:52 UTC, Andrei 
Alexandrescu wrote:

On 12/29/2015 11:28 AM, Robert burner Schadek wrote:
On Tuesday, 29 December 2015 at 16:11:00 UTC, Ilya Yaroshenko 
wrote:


OK, lets discuss every function.



That is acceptably the problem. It is not about the 
documentation of the
functions it is about the documentation binding the functions 
together

and the documentation giving the idea of the library.


Hopefully this is something that you or someone else could 
help by creating pull requests. Any volunteers? -- Andrei


Does it means that the PR can be merged? --Ilya


If there's a time constraint, perhaps we could merge it for 2.070 
but keep adding documentation updates to both master and release 
branches?


Re: Voting For std.experimental.ndslice

2015-12-30 Thread Ilya via Digitalmars-d

On Wednesday, 30 December 2015 at 22:46:28 UTC, John Colvin wrote:
On Wednesday, 30 December 2015 at 21:39:54 UTC, Ilya Yaroshenko 
wrote:
On Tuesday, 29 December 2015 at 18:08:52 UTC, Andrei 
Alexandrescu wrote:

On 12/29/2015 11:28 AM, Robert burner Schadek wrote:

[...]


Hopefully this is something that you or someone else could 
help by creating pull requests. Any volunteers? -- Andrei


Does it means that the PR can be merged? --Ilya


If there's a time constraint, perhaps we could merge it for 
2.070 but keep adding documentation updates to both master and 
release branches?


2.070 would be merged into stable soon.


Re: Voting For std.experimental.ndslice

2015-12-30 Thread Ilya Yaroshenko via Digitalmars-d
On Tuesday, 29 December 2015 at 18:08:52 UTC, Andrei Alexandrescu 
wrote:

On 12/29/2015 11:28 AM, Robert burner Schadek wrote:
On Tuesday, 29 December 2015 at 16:11:00 UTC, Ilya Yaroshenko 
wrote:


OK, lets discuss every function.



That is acceptably the problem. It is not about the 
documentation of the
functions it is about the documentation binding the functions 
together

and the documentation giving the idea of the library.


Hopefully this is something that you or someone else could help 
by creating pull requests. Any volunteers? -- Andrei


Does it means that the PR can be merged? --Ilya


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Jack Stouffer via Digitalmars-d
On Monday, 28 December 2015 at 14:42:43 UTC, Ilya Yaroshenko 
wrote:

On Monday, 28 December 2015 at 11:13:57 UTC, Martin Nowak wrote:
We're branching for 2.070 soon, would be nice if this can make 
it, but only if it's really ready.


Whooohooo!

Thanks!

Ilya


I'm writing a blog post giving an overview of std.ndslice and 
comparing and contrasting to Numpy, to be released when this is 
merged, and I was wondering if I can have your permission to 
include your great image processing example in the post?


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Ilya Yaroshenko via Digitalmars-d
On Tuesday, 29 December 2015 at 16:28:52 UTC, Robert burner 
Schadek wrote:
On Tuesday, 29 December 2015 at 16:11:00 UTC, Ilya Yaroshenko 
wrote:


OK, lets discuss every function.



That is acceptably the problem. It is not about the 
documentation of the functions it is about the documentation 
binding the functions together and the documentation giving the 
idea of the library.


OK, looks like I understand you.

My style of exploration is set of examples. For some people it is 
much better. But I agree that it may be bad for others.


About `iteration` module:

1. from documentation:
--
Operators only change strides and lengths of a slice. The range 
of a slice remains unmodified. All operators return slice of the 
same type as the type of the argument.

--
2. They are very simple functions, and their combination is 
simple too. A user will understand how to use them. Furthermore 
`Binary representation` section in `Slice` docs has examples with 
`transposed` and `reversed`. So user can understand what exactly 
going on with iteration functions.



About selection module:

1. from documentation:
--
Selectors create new views and iteration patterns over the same 
data, without copying.


Subspace selectors
- - -
Subspace selectors serve to generalize and combine other 
selectors easily. For a slice of Slice!(N, Range) type 
slice.pack!K creates a slice of slices of Slice!(N-K, Slice!(K+1, 
Range)) type by packing the last K dimensions of the top 
dimension pack, and the type of element of slice.byElement is 
Slice!(K, Range). Another way to use pack is transposition of 
dimension packs using evertPack. Examples of use of subspace 
selectors are available for selectors, Slice.shape , and 
Slice.elementsCount .

--

2. Selectors look simple, but their combinations can be _very_ 
crazy. Combination of this functions is art of imagination. I am 
not so talented writer to create good documentation. The problem 
here is that I have never discuss this module with significant 
amount of people. And I don't think that I will have such 
opportunity. So what I have done with documentation for 
selectors? I created cross examples:


`unpack` has examples with
  - `pack`
`evertPack` has examples with
  - `pack`
  - `unpack`
`diagonal` has examples with
  - `dropOne`
  - `dropToHypercube`
  - `reversed`
  - `pack`
  - `evertPack`
  - Note about additional examples with `blocks` and `windows`
`blocks` has examples with
  - `byElement`
  - `diagonal`
  - `pack`
  - `evertPack`
  - `unpack`
`windows` has examples with
  - `byElement`
  - `diagonal`
  - `pack`
  - `evertPack`
  - `unpack`
`byElement` has examples with
  - `pack`
  - `drop`
  - `std.range.retro`
  - `allReversed`
`byElementInStandardSimplex` has examples with
  - `allReversed `
  - `transposed`
`indexSlice` has examples with
  - `byElement`

In addition, example `Image Processing` in `package` description 
is a real world combination of `sliced`, `pack`, `windows`, 
`unpack`, `byElement`, `std.algorithm.iteration.map`, 
`std.array.array`,  `Slice.shape`.


This is a way how I can write documentation. I don't think that I 
can write using style you want or find someone who can do it 
instead of me. I am already spend a lot of time with English 
translator to improve docs. And every new sentence is a real 
pain, because I need to ask my translator to check it.


Ilya


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Ilya Yaroshenko via Digitalmars-d
On Tuesday, 29 December 2015 at 18:08:52 UTC, Andrei Alexandrescu 
wrote:

On 12/29/2015 11:28 AM, Robert burner Schadek wrote:
On Tuesday, 29 December 2015 at 16:11:00 UTC, Ilya Yaroshenko 
wrote:


OK, lets discuss every function.



That is acceptably the problem. It is not about the 
documentation of the
functions it is about the documentation binding the functions 
together

and the documentation giving the idea of the library.


Hopefully this is something that you or someone else could help 
by creating pull requests. Any volunteers? -- Andrei


Collection of posts like Jack Stouffer is writing will bring an 
understanding of how to improve docs. Currently we can collect 
links of such posts for a while and store them on package 
description page, thought.


YouTube has 7.5K videos for "numpy" query.

Ilya


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Ilya Yaroshenko via Digitalmars-d

On Tuesday, 29 December 2015 at 17:17:05 UTC, Jack Stouffer wrote:
On Monday, 28 December 2015 at 14:42:43 UTC, Ilya Yaroshenko 
wrote:
On Monday, 28 December 2015 at 11:13:57 UTC, Martin Nowak 
wrote:
We're branching for 2.070 soon, would be nice if this can 
make it, but only if it's really ready.


Whooohooo!

Thanks!

Ilya


I'm writing a blog post giving an overview of std.ndslice and 
comparing and contrasting to Numpy, to be released when this is 
merged, and I was wondering if I can have your permission to 
include your great image processing example in the post?


Thank you for doing this!

Yes, you can get any examples! `movingWindowByChannel` is a good 
function, however small function `median` can be improved, but it 
is not easy to do it for small filter sizes. You may want to use 
convolution matrices such as the Sobel operator or Gaussian blur 
instead of `median`. They will work faster comparing with 
`median`.  Another option is a note that `median` can be 
significantly optimised.


^^ Many thanks!

Ilya


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Andrei Alexandrescu via Digitalmars-d

On 12/29/2015 11:28 AM, Robert burner Schadek wrote:

On Tuesday, 29 December 2015 at 16:11:00 UTC, Ilya Yaroshenko wrote:


OK, lets discuss every function.



That is acceptably the problem. It is not about the documentation of the
functions it is about the documentation binding the functions together
and the documentation giving the idea of the library.


Hopefully this is something that you or someone else could help by 
creating pull requests. Any volunteers? -- Andrei


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Ilya Yaroshenko via Digitalmars-d
On Tuesday, 29 December 2015 at 15:42:32 UTC, Robert burner 
Schadek wrote:
On Monday, 28 December 2015 at 22:39:45 UTC, Ilya Yaroshenko 
wrote:


1. First paragraph was replaced by your variant.
2. Binary representation was moved to Slice type documentation.
3. Small "Quick Start" was added, so new user will start from 
`sliced` and `Slice`.


That is just patchwork ...

The style of writing I presented should be used throughout the 
documentation so people know what everything is and how it 
works together.


OK, lets discuss every function.

Fist is `transposed`:

---
N-dimensional transpose operator. Brings selected dimensions to 
the first position.


Parameters:
Slice!(N, Range) slice  input slice
Dimensions	indexes of dimensions to be brought to the first 
position


Returns:
n-dimensional slice of the same type
See Also:
swapped, everted


What is wrong with this documentation?



Re: Voting For std.experimental.ndslice

2015-12-29 Thread Robert burner Schadek via Digitalmars-d
On Tuesday, 29 December 2015 at 16:11:00 UTC, Ilya Yaroshenko 
wrote:


OK, lets discuss every function.



That is acceptably the problem. It is not about the documentation 
of the functions it is about the documentation binding the 
functions together and the documentation giving the idea of the 
library.


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Ilya Yaroshenko via Digitalmars-d
On Tuesday, 29 December 2015 at 14:51:37 UTC, Márcio Martins 
wrote:
On Tuesday, 29 December 2015 at 13:54:56 UTC, Jack Stouffer 
wrote:
On Tuesday, 29 December 2015 at 13:30:47 UTC, Márcio Martins 
wrote:
If I am reading the code right, the number of dimensions must 
always be known at compile time, right?


Not necessarily. The dimensions for this slice are computed at 
runtime.


```
auto slice = 1000.iota.sliced(5, 6, 7);
```


```

With this declaration:

```
struct Slice(size_t _N, _Range)
```
_N, the number of dimensions, must necessarily be known at 
compile-time, right?


Yes. -- Ilya


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Ilya Yaroshenko via Digitalmars-d
On Tuesday, 29 December 2015 at 13:30:47 UTC, Márcio Martins 
wrote:
On Tuesday, 29 December 2015 at 07:45:14 UTC, Ilya Yaroshenko 
wrote:
On Monday, 28 December 2015 at 22:39:45 UTC, Ilya Yaroshenko 
wrote:
On Monday, 28 December 2015 at 21:43:35 UTC, Robert burner 
Schadek wrote:

[...]


Agreed

1. First paragraph was replaced by your variant.
2. Binary representation was moved to Slice type 
documentation.
3. Small "Quick Start" was added, so new user will start from 
`sliced` and `Slice`.


http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-081dd6e9e8b3810a143d0a5fcba8d60b/web/phobos-prerelease/std_experimental_ndslice.html

Thanks!

Ilya


Fix English: 
http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-bfed2500425eb407bf2c97fc72e8a0c5/web/phobos-prerelease/std_experimental_ndslice.html


If I am reading the code right, the number of dimensions must 
always be known at compile time, right? Is so, I suppose it was 
a performance-oriented decision and not an oversight, correct?


This package is performance oriented. In the same time it is more 
flexible comparing with numpy.


Simple optimisation check:
Source: https://gist.github.com/9il/bc7966823d96557c566c
LDC disassembled: 
https://gist.github.com/9il/47aea1621a9fba609869 (all functions 
are inlined)




Re: Voting For std.experimental.ndslice

2015-12-29 Thread MrSmith via Digitalmars-d

On Tuesday, 29 December 2015 at 21:19:19 UTC, Jack Stouffer wrote:
On Tuesday, 29 December 2015 at 17:38:06 UTC, Ilya Yaroshenko 
wrote:
On Tuesday, 29 December 2015 at 17:17:05 UTC, Jack Stouffer 
wrote:

...
First draft: http://jackstouffer.com/hidden/nd_slice.html

Please critique.


Looks solid. Good work!


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Ilya Yaroshenko via Digitalmars-d

On Tuesday, 29 December 2015 at 21:19:19 UTC, Jack Stouffer wrote:
On Tuesday, 29 December 2015 at 17:38:06 UTC, Ilya Yaroshenko 
wrote:
On Tuesday, 29 December 2015 at 17:17:05 UTC, Jack Stouffer 
wrote:
On Monday, 28 December 2015 at 14:42:43 UTC, Ilya Yaroshenko 
wrote:
On Monday, 28 December 2015 at 11:13:57 UTC, Martin Nowak 
wrote:
We're branching for 2.070 soon, would be nice if this can 
make it, but only if it's really ready.


Whooohooo!

Thanks!

Ilya


I'm writing a blog post giving an overview of std.ndslice and 
comparing and contrasting to Numpy, to be released when this 
is merged, and I was wondering if I can have your permission 
to include your great image processing example in the post?


Thank you for doing this!


First draft: http://jackstouffer.com/hidden/nd_slice.html

Please critique.


Awesome!

Please find my notes below.

The Basics
==

About `iota.front -> slice.font -> user accessing the data`:

1.
From the `sliced` documentation for `range` parameter: "only 
index operator auto `opIndex(size_t index)` is required for 
ranges".


See also recently added the last two examples for sliced 
http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-387174b023f8cb9612cfcddc76788896/web/phobos-prerelease/std_experimental_ndslice_slice.html#.sliced


The first one is for Input Range primitives, the second one is 
for Random Access Range primitives.


2.
Consequently `Slice` never invokes `front`, `popFront`, `empty`, 
and others range primitives. `Slice` invokes only 
`opIndex(size_t)`, and if `save` is defined, `slice.save` invokes 
`range.save`.


In addition, `sliced` can be used like Finite Random Access Range 
Constructor: user may define only `opIndex(size_t)` and `save` to 
make a Finite Random Access Range by calling `sliced`.


3.
If type of slice is `Slice!(3, Range)`, then `slice.front` do not 
invokes `range[indexToFront]`, it returns a slice type of 
`Slice!(2, Range)`.


In addition, `indexToFront` may not be zero, because primitives 
like `popFront` or operators like `reversed` may be called before.


For slices over arrays `indexToFront` is not defined because the 
pointer always refers to the first position: the pointer is moved 
when the slice changes.


For more details see also examples for Internal Binary 
Representation 
http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-387174b023f8cb9612cfcddc76788896/web/phobos-prerelease/std_experimental_ndslice_slice.html#.Slice


Getting Hands On
==
 - Please use "~>0.8.7" instead of "~>0.8.0". "~>0.8.7" has LDC 
0.17.0 alpha1 support.


Examples
==
 - A Basic Example With A Benchmark is not honest (difference 76 
is very large). To make it honest:
 1. Larger 100x1000 matrix can be used instead of 10x10, 
because numpy have a significant initialization overhead.
 2. Both `100_000.iota.sliced(100, 1000)` and 
`100_000.iota.array.sliced(100, 1000)` can be tested. The last 
one is with `std.array.array`. Memory access is expensive.
 3. Only iteration should be tested. Allocation and 
initilization should be separated from iteration both in D and 
Python.


   I expect smaller differnce in perfomance than 76 times.

 - You may want to test both DMD and LDC 0.17.0 alpha1 for 
bechmarks 
https://github.com/ldc-developers/ldc/releases/tag/v0.17.0-alpha1

   LDC 0.17.0 alpha1 works well with dip80-ndslice v0.8.7.

 - Python users love small code and they can be afraid to see 
large (template constraints)

   `mean` funciton.
   An example with lambda function can be added:
   ---
   auto means = 100_000.iota.sliced(100, 1).rotated(3).map!(r 
=> sum(r) / r.length);

   ---
   One line!

 - Nitpick: `transposed` (without params for 2D slice) is more 
clear than `rotated(3)`, IMO


 - `dub --build=release`can be added where you have noted dmd 
optimisation flags.


Numpy's Main Problem, and How D Avoids It
=
 - D version with allocation using `std.array.array` can be added 
(or just `new int[1000]`). The slice over `repeat` is not mutable 
(users from numpy world may expect that it is an array).


Ilya


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Ilya Yaroshenko via Digitalmars-d
On Wednesday, 30 December 2015 at 00:24:38 UTC, Ilya Yaroshenko 
wrote:
On Tuesday, 29 December 2015 at 21:19:19 UTC, Jack Stouffer 
wrote:
On Tuesday, 29 December 2015 at 17:38:06 UTC, Ilya Yaroshenko 
wrote:
On Tuesday, 29 December 2015 at 17:17:05 UTC, Jack Stouffer 
wrote:

[...]


Thank you for doing this!


First draft: http://jackstouffer.com/hidden/nd_slice.html

Please critique.


Awesome!

Please find my notes below.
[...]
 - You may want to test both DMD and LDC 0.17.0 alpha1 for 
bechmarks 
https://github.com/ldc-developers/ldc/releases/tag/v0.17.0-alpha1

   LDC 0.17.0 alpha1 works well with dip80-ndslice v0.8.7.
[...]
Ilya


ldmd2/ldc2 flag -mcpu=native will optimise code for your CPU. -- 
Ilya


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Jack Stouffer via Digitalmars-d
On Tuesday, 29 December 2015 at 17:38:06 UTC, Ilya Yaroshenko 
wrote:
On Tuesday, 29 December 2015 at 17:17:05 UTC, Jack Stouffer 
wrote:
On Monday, 28 December 2015 at 14:42:43 UTC, Ilya Yaroshenko 
wrote:
On Monday, 28 December 2015 at 11:13:57 UTC, Martin Nowak 
wrote:
We're branching for 2.070 soon, would be nice if this can 
make it, but only if it's really ready.


Whooohooo!

Thanks!

Ilya


I'm writing a blog post giving an overview of std.ndslice and 
comparing and contrasting to Numpy, to be released when this 
is merged, and I was wondering if I can have your permission 
to include your great image processing example in the post?


Thank you for doing this!


First draft: http://jackstouffer.com/hidden/nd_slice.html

Please critique.



Re: Voting For std.experimental.ndslice

2015-12-29 Thread Ilya via Digitalmars-d
On Wednesday, 30 December 2015 at 01:03:39 UTC, Ilya Yaroshenko 
wrote:
On Wednesday, 30 December 2015 at 00:24:38 UTC, Ilya Yaroshenko 
wrote:
On Tuesday, 29 December 2015 at 21:19:19 UTC, Jack Stouffer 
wrote:
On Tuesday, 29 December 2015 at 17:38:06 UTC, Ilya Yaroshenko 
wrote:
On Tuesday, 29 December 2015 at 17:17:05 UTC, Jack Stouffer 
wrote:

[...]


Thank you for doing this!


First draft: http://jackstouffer.com/hidden/nd_slice.html

Please critique.


Awesome!

Please find my notes below.
[...]
 - You may want to test both DMD and LDC 0.17.0 alpha1 for 
bechmarks 
https://github.com/ldc-developers/ldc/releases/tag/v0.17.0-alpha1

   LDC 0.17.0 alpha1 works well with dip80-ndslice v0.8.7.
[...]
Ilya


ldmd2/ldc2 flag -mcpu=native will optimise code for your CPU. 
-- Ilya


The paragraph

"This function does not calculate border cases in which a window 
overlaps the image partially. However, the function can still be 
used to carry out such calculations. That can be done by creating 
an amplified image, with the edges reflected from the original 
image, and then applying the given function to the new file. 
Note:"


ends with "Note:". --Ilya


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Jack Stouffer via Digitalmars-d
On Wednesday, 30 December 2015 at 00:24:38 UTC, Ilya Yaroshenko 
wrote:

Awesome!

Please find my notes below.


Thanks for the feedback. Good thing I posted this here before 
releasing it.


Funny thing, when I made the D example use the mean lambda 
function, it got way faster. Even with the larger array size, the 
D code went from 138 ns with the small array and the function to 
58 ns with the large array and the lambda. And, the Python code 
expectantly got slower, even when I made sure to only test the 
np.mean function, the time taking the mean of the large array was 
145 µs up from 10.5 µs with allocation and taking the mean with 
the smaller array.


So now the D version is 2474x faster.

Also, I was unable to get LDC numbers, as when I compiled my test 
program with all of the optimization flags, LDC returns 0 hnsecs


the code:

===

import std.range;
import std.algorithm.iteration;
import std.experimental.ndslice;
import std.stdio;
import std.datetime;
import std.conv : to;

void f0() {
auto means = 100_000.iota.sliced(100, 1000).transposed.map!(r 
=> sum(r) / r.length);

}

void main() {
auto r = benchmark!(f0)(10_000);
auto f0Result = to!Duration(r[0]);
f0Result.writeln;
}

I'm assuming that LLVM realizes that the variable means is never 
used, so it removes it from the final version.


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Ilya Yaroshenko via Digitalmars-d
On Wednesday, 30 December 2015 at 06:16:23 UTC, Jack Stouffer 
wrote:
On Wednesday, 30 December 2015 at 00:24:38 UTC, Ilya Yaroshenko 
wrote:

[...]


Thanks for the feedback. Good thing I posted this here before 
releasing it.


[...]



means in your code is lazy variable :)
You may want to made means a global array. And copy mapped result 
to it. Please made PR to DlangSciencse/examples with your Python 
and D benchmarks. --Ilya


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Jack Stouffer via Digitalmars-d
On Tuesday, 29 December 2015 at 13:30:47 UTC, Márcio Martins 
wrote:
If I am reading the code right, the number of dimensions must 
always be known at compile time, right?


Not necessarily. The dimensions for this slice are computed at 
runtime.


```
auto slice = 1000.iota.sliced(5, 6, 7);
```


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Márcio Martins via Digitalmars-d

On Tuesday, 29 December 2015 at 13:54:56 UTC, Jack Stouffer wrote:
On Tuesday, 29 December 2015 at 13:30:47 UTC, Márcio Martins 
wrote:
If I am reading the code right, the number of dimensions must 
always be known at compile time, right?


Not necessarily. The dimensions for this slice are computed at 
runtime.


```
auto slice = 1000.iota.sliced(5, 6, 7);
```


```

With this declaration:

```
struct Slice(size_t _N, _Range)
```
_N, the number of dimensions, must necessarily be known at 
compile-time, right?


Re: Voting For std.experimental.ndslice

2015-12-29 Thread Márcio Martins via Digitalmars-d
On Tuesday, 29 December 2015 at 07:45:14 UTC, Ilya Yaroshenko 
wrote:
On Monday, 28 December 2015 at 22:39:45 UTC, Ilya Yaroshenko 
wrote:
On Monday, 28 December 2015 at 21:43:35 UTC, Robert burner 
Schadek wrote:

[...]


Agreed

1. First paragraph was replaced by your variant.
2. Binary representation was moved to Slice type documentation.
3. Small "Quick Start" was added, so new user will start from 
`sliced` and `Slice`.


http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-081dd6e9e8b3810a143d0a5fcba8d60b/web/phobos-prerelease/std_experimental_ndslice.html

Thanks!

Ilya


Fix English: 
http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-bfed2500425eb407bf2c97fc72e8a0c5/web/phobos-prerelease/std_experimental_ndslice.html


If I am reading the code right, the number of dimensions must 
always be known at compile time, right? Is so, I suppose it was a 
performance-oriented decision and not an oversight, correct?


Re: Voting For std.experimental.ndslice

2015-12-28 Thread Robert burner Schadek via Digitalmars-d
On Monday, 28 December 2015 at 18:39:47 UTC, Ilya Yaroshenko 
wrote:

Have you read the latest changes?
http://forum.dlang.org/post/djgkkrdufycyjhpma...@forum.dlang.org



I have.

The problem with the doc is that is describes what it can be used 
for, but it does not describe what it is.


It is like saying: "It brings you from point A to point B."
Instead you should say it is a car. And a car is self moving 
object 


The first few sentences:
"""
The package is designed for applications such as linear algebra, 
physics and statistics. It would be well suited to creating 
machine learning and image processing algorithms, but should also 
be general enough for use anywhere with homogeneously-typed 
multidimensional data.

"""
does not say what it is.

Should be something, as far as I understand the package, like:

"""
This package provides a multidimensional array implementation, 
suited for scientific computing. Additionally, many functions for 
iteration, accessing and manipulation are given. 

"""


Re: Voting For std.experimental.ndslice

2015-12-28 Thread Martin Nowak via Digitalmars-d

On Monday, 28 December 2015 at 07:11:00 UTC, Jack Stouffer wrote:

Voting has ended! Thanks to everyone who voted and reviewed.

The final tally:

Yes: 12
No: 0


Anything left to review/do on the PR? We're branching for 2.070 
soon, would be nice if this can make it, but only if it's really 
ready.


Re: Voting For std.experimental.ndslice

2015-12-28 Thread Ilya Yaroshenko via Digitalmars-d

On Monday, 28 December 2015 at 11:13:57 UTC, Martin Nowak wrote:
On Monday, 28 December 2015 at 07:11:00 UTC, Jack Stouffer 
wrote:

Voting has ended! Thanks to everyone who voted and reviewed.

The final tally:

Yes: 12
No: 0


Anything left to review/do on the PR?


Very minor DDOC style hack can be fixed. I will fix it during 
first alpha version. The following console code can not be placed 
with CCODE macros because looks like `Usage:` word breaks it. So 
it is D CODE with `default` and `is` keywords highlighted for now.



$ median-filter --help
Usage: median-filter [] []
options:
 --nr number of rows in window, default value is 3
 --nc number of columns in window default value equals to nr
-h --help This help information.


We're branching for 2.070 soon, would be nice if this can make 
it, but only if it's really ready.


Whooohooo!

Thanks!

Ilya


Re: Voting For std.experimental.ndslice

2015-12-28 Thread Jack Stouffer via Digitalmars-d

On Monday, 28 December 2015 at 11:13:57 UTC, Martin Nowak wrote:
On Monday, 28 December 2015 at 07:11:00 UTC, Jack Stouffer 
wrote:

Voting has ended! Thanks to everyone who voted and reviewed.

The final tally:

Yes: 12
No: 0


Anything left to review/do on the PR? We're branching for 2.070 
soon, would be nice if this can make it, but only if it's 
really ready.


I believe, with Ilya's recent doc fix, it's ready to go.


Re: Voting For std.experimental.ndslice

2015-12-28 Thread Jack Stouffer via Digitalmars-d
On Monday, 28 December 2015 at 15:52:09 UTC, Robert burner 
Schadek wrote:
Please do not merge this with the current state of 
documentation.


Could you elaborate what issues you have with the docs? All of 
the functions have Params and Returns sections and the examples 
show what each function does.


Re: Voting For std.experimental.ndslice

2015-12-28 Thread Robert burner Schadek via Digitalmars-d

On Monday, 28 December 2015 at 07:11:00 UTC, Jack Stouffer wrote:

The final tally:

Yes: 12
No: 0


This is not true, my yes was conditional and the documentation is 
still weak. So it is


Yes: 11
Yes: Conditional
No: 0

Please do not merge this with the current state of documentation.




Re: Voting For std.experimental.ndslice

2015-12-28 Thread Andrei Alexandrescu via Digitalmars-d

On 12/28/2015 09:57 AM, Jack Stouffer wrote:

On Monday, 28 December 2015 at 11:13:57 UTC, Martin Nowak wrote:

On Monday, 28 December 2015 at 07:11:00 UTC, Jack Stouffer wrote:

Voting has ended! Thanks to everyone who voted and reviewed.

The final tally:

Yes: 12
No: 0


Anything left to review/do on the PR? We're branching for 2.070 soon,
would be nice if this can make it, but only if it's really ready.


I believe, with Ilya's recent doc fix, it's ready to go.


Let's do it. Many thanks to Ilya and all reviewers! -- Andrei



Re: Voting For std.experimental.ndslice

2015-12-28 Thread Robert burner Schadek via Digitalmars-d
On Monday, 28 December 2015 at 15:52:09 UTC, Robert burner 
Schadek wrote:


fix


Yes: 11
Yes: Conditional: 1 <<-- fix here
No: 0


Please do not merge this with the current state of 
documentation.





Re: Voting For std.experimental.ndslice

2015-12-28 Thread Andrei Alexandrescu via Digitalmars-d

On 12/28/2015 04:43 PM, Robert burner Schadek wrote:

On Monday, 28 December 2015 at 18:39:47 UTC, Ilya Yaroshenko wrote:

Have you read the latest changes?
http://forum.dlang.org/post/djgkkrdufycyjhpma...@forum.dlang.org



I have.

The problem with the doc is that is describes what it can be used for,
but it does not describe what it is.

It is like saying: "It brings you from point A to point B."
Instead you should say it is a car. And a car is self moving object 

The first few sentences:
"""
The package is designed for applications such as linear algebra, physics
and statistics. It would be well suited to creating machine learning and
image processing algorithms, but should also be general enough for use
anywhere with homogeneously-typed multidimensional data.
"""
does not say what it is.

Should be something, as far as I understand the package, like:

"""
This package provides a multidimensional array implementation, suited
for scientific computing. Additionally, many functions for iteration,
accessing and manipulation are given. 
"""


FWIW I noticed that too. It took me a while to figure what the thing 
really is. -- Andrei


Re: Voting For std.experimental.ndslice

2015-12-28 Thread Ilya Yaroshenko via Digitalmars-d
On Monday, 28 December 2015 at 21:43:35 UTC, Robert burner 
Schadek wrote:
On Monday, 28 December 2015 at 18:39:47 UTC, Ilya Yaroshenko 
wrote:

Have you read the latest changes?
http://forum.dlang.org/post/djgkkrdufycyjhpma...@forum.dlang.org



I have.

The problem with the doc is that is describes what it can be 
used for, but it does not describe what it is.


It is like saying: "It brings you from point A to point B."
Instead you should say it is a car. And a car is self moving 
object 


The first few sentences:
"""
The package is designed for applications such as linear 
algebra, physics and statistics. It would be well suited to 
creating machine learning and image processing algorithms, but 
should also be general enough for use anywhere with 
homogeneously-typed multidimensional data.

"""
does not say what it is.

Should be something, as far as I understand the package, like:

"""
This package provides a multidimensional array implementation, 
suited for scientific computing. Additionally, many functions 
for iteration, accessing and manipulation are given. 

"""


Agreed

1. First paragraph was replaced by your variant.
2. Binary representation was moved to Slice type documentation.
3. Small "Quick Start" was added, so new user will start from 
`sliced` and `Slice`.


http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-081dd6e9e8b3810a143d0a5fcba8d60b/web/phobos-prerelease/std_experimental_ndslice.html

Thanks!

Ilya


Re: Voting For std.experimental.ndslice

2015-12-28 Thread Ilya Yaroshenko via Digitalmars-d
On Monday, 28 December 2015 at 15:52:09 UTC, Robert burner 
Schadek wrote:
On Monday, 28 December 2015 at 07:11:00 UTC, Jack Stouffer 
wrote:

The final tally:

Yes: 12
No: 0


This is not true, my yes was conditional and the documentation 
is still weak. So it is


Yes: 11
Yes: Conditional
No: 0

Please do not merge this with the current state of 
documentation.


Have you read the latest changes?
http://forum.dlang.org/post/djgkkrdufycyjhpma...@forum.dlang.org

I have write documentation as I understand problem. I don't know 
what would be not weak for you. This module has three levels. 
User should study them one by one if he is new be (slice, 
iteration, selection). I am not a book author, I can describe 
something to my colleagues, but I have not any understanding of 
what would be _not weak_.


If you _really_ have  read all documentation one by one with 
attention and you have some question, please write them. Then I 
can improve documentsion.


Ilya


Re: Voting For std.experimental.ndslice

2015-12-28 Thread Ilya Yaroshenko via Digitalmars-d
On Monday, 28 December 2015 at 22:39:45 UTC, Ilya Yaroshenko 
wrote:
On Monday, 28 December 2015 at 21:43:35 UTC, Robert burner 
Schadek wrote:

[...]


Agreed

1. First paragraph was replaced by your variant.
2. Binary representation was moved to Slice type documentation.
3. Small "Quick Start" was added, so new user will start from 
`sliced` and `Slice`.


http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-081dd6e9e8b3810a143d0a5fcba8d60b/web/phobos-prerelease/std_experimental_ndslice.html

Thanks!

Ilya


Fix English: 
http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-bfed2500425eb407bf2c97fc72e8a0c5/web/phobos-prerelease/std_experimental_ndslice.html


Re: Voting For std.experimental.ndslice

2015-12-27 Thread Jack Stouffer via Digitalmars-d
On Thursday, 24 December 2015 at 17:10:25 UTC, Jack Stouffer 
wrote:
On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer 
wrote:
This is the voting thread to decide if the proposed addition 
to Phobos, std.experimental.ndslice, should be accepted.


Voting ends in three days.

Have a merry Christmas everyone!


Voting has ended! Thanks to everyone who voted and reviewed.

The final tally:

Yes: 12
No: 0


Re: Voting For std.experimental.ndslice

2015-12-24 Thread Jack Stouffer via Digitalmars-d

On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:
This is the voting thread to decide if the proposed addition to 
Phobos, std.experimental.ndslice, should be accepted.


Voting ends in three days.

Have a merry Christmas everyone!


Re: Voting For std.experimental.ndslice

2015-12-22 Thread Ilya Yaroshenko via Digitalmars-d

On Monday, 14 December 2015 at 08:29:13 UTC, Andrea Fontana wrote:
On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer 
wrote:
This is the voting thread to decide if the proposed addition 
to Phobos, std.experimental.ndslice, should be accepted.


To vote, please respond to this post. You have three options:

* Yes
* Yes with a single condition
* No


Yes!


Thanks!
Image example is a good idea but I think it should not use 
external libraries. If someone starts with d/phobos probably 
won't download/configure another library to do some tests.


I suggest you to fix the example using ppm format.
https://en.wikipedia.org/wiki/Netpbm_format#PPM_example

It's just a couple of "map!()" away. :)

Or bmp, it's not that complex to read in its common form.


imageformats consists of a single file, so user can compile it 
without dub. It would be faster for user to find and use 
imageformats than to find a converter from jpeg/png to PPM. 
Furthermore complete dub example is available at 
DlangScience/examples.


If you have an idea about additional example I'll be happy to 
discuss it.


Best,
Ilya


Re: Voting For std.experimental.ndslice

2015-12-22 Thread Ilya Yaroshenko via Digitalmars-d
On Thursday, 17 December 2015 at 13:33:28 UTC, Robert burner 
Schadek wrote:
On Wednesday, 16 December 2015 at 17:49:03 UTC, Ilya Yaroshenko 
wrote:
In the same time I expect few articles from another engineers 
about ndslice like this 
http://dlang.org/intro-to-datetime.html . It is much better to 
have explanation from different engineers.




Please no, put all the doc at one place.

Actually, that article was written by the author of the 
library. People are lazy, if the doc is not in the phobos docs 
they will not search for it. Make it very hard for people to 
complain.


0. Package header was added
1. Annotations for `Category` column was added.
2. Internal Binary Representation section was added to 
std_experimental_ndslice.html
3. `Slice` type contains classification of slicing and indexing, 
so user can study it along with examples of Slice's overloaded 
operators.


$(CCODE code) does not work if code contains `ALineLikeThat:`. So 
I use $(D ), but words `is` and `default` are highlighted =\


Update link: 
http://dtest.thecybershadow.net/artifact/website-76234ca0eab431527327d5ce1ec0ad74c6421533-904569dd4c4451a4514dc4b456c7b395/web/phobos-prerelease/std_experimental_ndslice.html


Re: Voting For std.experimental.ndslice

2015-12-21 Thread Yazan D via Digitalmars-d
Yes


Re: Voting For std.experimental.ndslice

2015-12-17 Thread Robert burner Schadek via Digitalmars-d
On Wednesday, 16 December 2015 at 17:49:03 UTC, Ilya Yaroshenko 
wrote:



* Miscellaneous
** string mixins. I think some of the string mixins can be 
removed for something more readable/debuggable

**


I have not found examples where string mixins can be removed. 
Please refer to particular example. The code for `sliced` and 
`assumeSorted` looks ugly. But I don't know how is can be done 
another way. Remove this functionality is an option.


template sliced(Names...)

you can simple compute the strings and than pass them as template 
parameter or as alias to another function.


If that becomes unpractical at least use q{ } strings



Re: Voting For std.experimental.ndslice

2015-12-17 Thread Robert burner Schadek via Digitalmars-d
On Wednesday, 16 December 2015 at 17:49:03 UTC, Ilya Yaroshenko 
wrote:
In the same time I expect few articles from another engineers 
about ndslice like this http://dlang.org/intro-to-datetime.html 
. It is much better to have explanation from different 
engineers.




Please no, put all the doc at one place.

Actually, that article was written by the author of the library. 
People are lazy, if the doc is not in the phobos docs they will 
not search for it. Make it very hard for people to complain.




Re: Voting For std.experimental.ndslice

2015-12-16 Thread Ilya Yaroshenko via Digitalmars-d
On Wednesday, 16 December 2015 at 17:49:03 UTC, Ilya Yaroshenko 
wrote:
On Wednesday, 16 December 2015 at 11:01:25 UTC, Robert burner 
Schadek wrote:


I have not found examples where string mixins can be removed. 
Please refer to particular example. The code for `sliced` and 
`assumeSorted` looks ugly. But I don't know how is can be done 
another way. Remove this functionality is an option.


Thank you and regards,
Ilya


EDIT: assumeSameStructure



Re: Voting For std.experimental.ndslice

2015-12-16 Thread Ilya Yaroshenko via Digitalmars-d
On Wednesday, 16 December 2015 at 11:01:25 UTC, Robert burner 
Schadek wrote:

Yes with many conditions:

* Documentation
** The documentation needs a complete rewrite. If I hadn't had 
any prior knowledge, I would have needed to read the numpy 
documentation to figure what this package does. That is not 
acceptable. It is also not clear how the functionally in the 
package is supposed to work together, and how it interacts with 
the rest of phobos.


I will add description of what this module dose and how it works 
under the hood. In the same time I expect few articles from 
another engineers about ndslice like this 
http://dlang.org/intro-to-datetime.html . It is much better to 
have explanation from different engineers.



** Params, Returns ...


Agreed.


* Style
** the source code does not look like phobos
** s/assert (/assert(/g
** s/unittest {/unittest\n{/g
** unittest properties should be on the same line as the 
unittest keyword

** spaces between operators
** dfmt and some manuel work is your friend


Agreed all except spaces between operators. I would like to do 
not use them in someY examples exactly for readability reasons.



* Testing
** most tests only use itoa, what about arrays what about 
arrays with user defined types. That's properly trivial but 
should be tested.


Didn't agree. Corresponding features for arrays and 
std.container.array are tested. 98% of ndslice do not do anything 
with data. Its change strides and lengths _only_.


** interaction with rest of phobos. Can I call map on a Slice? 
If I can, it should be tested so that it still works after the 
next release.


OK, I will add test for `map`. For other Phobos Slice is just an 
Random Access Range and it is already tested for  iota, arrays, 
std.container.array, dummyranges .


Please note this DMD bug (see reduced example by John):  
https://issues.dlang.org/show_bug.cgi?id=15441



* Miscellaneous
** string mixins. I think some of the string mixins can be 
removed for something more readable/debuggable

**


I have not found examples where string mixins can be removed. 
Please refer to particular example. The code for `sliced` and 
`assumeSorted` looks ugly. But I don't know how is can be done 
another way. Remove this functionality is an option.


Thank you and regards,
Ilya


Re: Voting For std.experimental.ndslice

2015-12-16 Thread Dennis Ritchie via Digitalmars-d

On Wednesday, 16 December 2015 at 11:21:13 UTC, John Colvin wrote:
On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer 
wrote:
This is the voting thread to decide if the proposed addition 
to Phobos, std.experimental.ndslice, should be accepted.


[...]


Docs are hitting a server error.


On Sunday, 13 December 2015 at 05:21:49 UTC, Ilya Yaroshenko 
wrote:
Docs fixed link: 
http://dtest.thecybershadow.net/artifact/website-13cbdcf17d84fc31328c3f517a56bea783c418d6-dd2292a424959b594956eeeba64d391f/web/phobos-prerelease/std_experimental_ndslice.html


The latest docs always can be found at PullRequest's 
CyberShadow/DAutoTest


Re: Voting For std.experimental.ndslice

2015-12-16 Thread Robert burner Schadek via Digitalmars-d

Yes with many conditions:

* Documentation
** The documentation needs a complete rewrite. If I hadn't had 
any prior knowledge, I would have needed to read the numpy 
documentation to figure what this package does. That is not 
acceptable. It is also not clear how the functionally in the 
package is supposed to work together, and how it interacts with 
the rest of phobos.

** Params, Returns ...

* Style
** the source code does not look like phobos
** s/assert (/assert(/g
** s/unittest {/unittest\n{/g
** unittest properties should be on the same line as the unittest 
keyword

** spaces between operators
** dfmt and some manuel work is your friend

* Testing
** most tests only use itoa, what about arrays what about arrays 
with user defined types. That's properly trivial but should be 
tested.
** interaction with rest of phobos. Can I call map on a Slice? If 
I can, it should be tested so that it still works after the next 
release.


* Miscellaneous
** string mixins. I think some of the string mixins can be 
removed for something more readable/debuggable

**



Re: Voting For std.experimental.ndslice

2015-12-16 Thread John Colvin via Digitalmars-d

On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:
This is the voting thread to decide if the proposed addition to 
Phobos, std.experimental.ndslice, should be accepted.


[...]


Docs are hitting a server error.


Re: Voting For std.experimental.ndslice

2015-12-16 Thread John Colvin via Digitalmars-d
On Wednesday, 16 December 2015 at 11:31:00 UTC, Dennis Ritchie 
wrote:
On Wednesday, 16 December 2015 at 11:21:13 UTC, John Colvin 
wrote:
On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer 
wrote:
This is the voting thread to decide if the proposed addition 
to Phobos, std.experimental.ndslice, should be accepted.


[...]


Docs are hitting a server error.


On Sunday, 13 December 2015 at 05:21:49 UTC, Ilya Yaroshenko 
wrote:
Docs fixed link: 
http://dtest.thecybershadow.net/artifact/website-13cbdcf17d84fc31328c3f517a56bea783c418d6-dd2292a424959b594956eeeba64d391f/web/phobos-prerelease/std_experimental_ndslice.html


The latest docs always can be found at PullRequest's 
CyberShadow/DAutoTest


Totally forgot reading that, thanks.


Re: Voting For std.experimental.ndslice

2015-12-16 Thread Nordlöw via Digitalmars-d

On Sunday, 13 December 2015 at 12:57:00 UTC, Nordlöw wrote:

To vote, please respond to this post.


Yes


I've contributed to both DMD and Phobos.


Re: Voting For std.experimental.ndslice

2015-12-14 Thread Laeeth Isharc via Digitalmars-d

Yes


Re: Voting For std.experimental.ndslice

2015-12-14 Thread Andrea Fontana via Digitalmars-d

On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:
This is the voting thread to decide if the proposed addition to 
Phobos, std.experimental.ndslice, should be accepted.


To vote, please respond to this post. You have three options:

* Yes
* Yes with a single condition
* No


Yes! Image example is a good idea but I think it should not use 
external libraries. If someone starts with d/phobos probably 
won't download/configure another library to do some tests.


I suggest you to fix the example using ppm format.
https://en.wikipedia.org/wiki/Netpbm_format#PPM_example

It's just a couple of "map!()" away. :)

Or bmp, it's not that complex to read in its common form.



Re: Voting For std.experimental.ndslice

2015-12-13 Thread lobo via Digitalmars-d

On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:
This is the voting thread to decide if the proposed addition to 
Phobos, std.experimental.ndslice, should be accepted.


[...]


Yes


Re: Voting For std.experimental.ndslice

2015-12-13 Thread drug via Digitalmars-d

13.12.2015 12:01, lobo пишет:

On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:

This is the voting thread to decide if the proposed addition to
Phobos, std.experimental.ndslice, should be accepted.

[...]


Yes

Yes


Re: Voting For std.experimental.ndslice

2015-12-13 Thread Nordlöw via Digitalmars-d

On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:
This is the voting thread to decide if the proposed addition to 
Phobos, std.experimental.ndslice, should be accepted.


To vote, please respond to this post.


Yes


Re: Voting For std.experimental.ndslice

2015-12-13 Thread ZombineDev via Digitalmars-d

On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:
This is the voting thread to decide if the proposed addition to 
Phobos, std.experimental.ndslice, should be accepted.


[...]


Yes.


Re: Voting For std.experimental.ndslice

2015-12-13 Thread Jack Stouffer via Digitalmars-d

On Sunday, 13 December 2015 at 06:07:15 UTC, Meta wrote:

Is std.experimental also on the table, or directly to phobos?


Not quite sure what you're asking here, but if you're asking if 
this is going into stdx first, then the answer is yes. Things 
that go into stdx aren't supposed to change that much.


Re: Voting For std.experimental.ndslice

2015-12-13 Thread John Colvin via Digitalmars-d

On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:
This is the voting thread to decide if the proposed addition to 
Phobos, std.experimental.ndslice, should be accepted.


[...]


I've played some large part in the various iterations of 
reviewing this, so I'm biased, but of course:


yes


Re: Voting For std.experimental.ndslice

2015-12-13 Thread jmh530 via Digitalmars-d

On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:
This is the voting thread to decide if the proposed addition to 
Phobos, std.experimental.ndslice, should be accepted.


To vote, please respond to this post. You have three options:



Yes


Re: Voting For std.experimental.ndslice

2015-12-13 Thread Tanel Tagaväli via Digitalmars-d

Yes

Hope to see a Matrix (multidimensional, if possible) class with 
this.


Re: Voting For std.experimental.ndslice

2015-12-13 Thread Meta via Digitalmars-d

On Sunday, 13 December 2015 at 17:07:06 UTC, Jack Stouffer wrote:

On Sunday, 13 December 2015 at 06:07:15 UTC, Meta wrote:

Is std.experimental also on the table, or directly to phobos?


Not quite sure what you're asking here, but if you're asking if 
this is going into stdx first, then the answer is yes. Things 
that go into stdx aren't supposed to change that much.


Ok, your wording about the API freezing seemed to imply that it 
would go directly into Phobos without spending some time in 
std.experimental.


Anyway, I'm not familiar with the subject domain, so I'll abstain 
from voting. I will say however that the documentation could use 
some work.


Re: Voting For std.experimental.ndslice

2015-12-13 Thread Ilya Yaroshenko via Digitalmars-d

On Sunday, 13 December 2015 at 22:16:35 UTC, Tanel Tagaväli wrote:

Yes

Hope to see a Matrix (multidimensional, if possible) class with 
this.


What matrix features are missing in ndslice except matrix 
multiplication?


Voting For std.experimental.ndslice

2015-12-12 Thread Jack Stouffer via Digitalmars-d
This is the voting thread to decide if the proposed addition to 
Phobos, std.experimental.ndslice, should be accepted.


To vote, please respond to this post. You have three options:

* Yes
* Yes with a single condition
* No

If you vote "yes" you can still mention something you'd like 
improved, but please be explicit if that problem is a non starter 
for you and you are choosing option two. If you vote no, please 
state why, though you aren't required to.


Everyone can vote, but the contributors to the language will have 
more sway. If you are a contributor, please identify yourself as 
such.


Some things to consider when making a vote:

* Is this functionality needed in Phobos?
* The API is practically permanent once the module is accepted. 
Some minor changes can be made, but a full redesign is no longer 
an option.


The voting will end December 27th.

Github: https://github.com/D-Programming-Language/phobos/pull/3397
dub: http://code.dlang.org/packages/dip80-ndslice
docs: 
http://dtest.thecybershadow.net/artifact/website-13cbdcf17d84fc31328c3f517a56bea783c418d6-dd2292a424959b594956eeeba64d391f/web/phobos-prerelease/std_experimental_ndslice.html/
original discussion: 
http://forum.dlang.org/thread/rilfmeaqkailgpxoz...@forum.dlang.org
review thread: 
http://forum.dlang.org/post/uesnmkgniumswfclw...@forum.dlang.org


Re: Voting For std.experimental.ndslice

2015-12-12 Thread Jack Stouffer via Digitalmars-d

On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:
This is the voting thread to decide if the proposed addition to 
Phobos, std.experimental.ndslice, should be accepted.


To vote, please respond to this post. You have three options:

* Yes
* Yes with a single condition
* No


I vote yes. I am a contributor to Phobos.



Re: Voting For std.experimental.ndslice

2015-12-12 Thread Ilya Yaroshenko via Digitalmars-d

On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:
This is the voting thread to decide if the proposed addition to 
Phobos, std.experimental.ndslice, should be accepted.


[...]


Docs fixed link: 
http://dtest.thecybershadow.net/artifact/website-13cbdcf17d84fc31328c3f517a56bea783c418d6-dd2292a424959b594956eeeba64d391f/web/phobos-prerelease/std_experimental_ndslice.html


The latest docs always can be found at PullRequest's 
CyberShadow/DAutoTest


Re: Voting For std.experimental.ndslice

2015-12-12 Thread Meta via Digitalmars-d

On Sunday, 13 December 2015 at 05:10:17 UTC, Jack Stouffer wrote:
* The API is practically permanent once the module is accepted. 
Some minor changes can be made, but a full redesign is no 
longer an option.


Is std.experimental also on the table, or directly to phobos?