ORNL / cpp-proposals-pub

Collaborating on papers for the ISO C++ committee - public repo
26 stars 26 forks source link

mdspan: layout_stride unnecessarily requires non-zero strides #111

Open dhollman opened 5 years ago

dhollman commented 5 years ago

There is no reason stride of 0 should be prohibited, but the current paper does.

dsunder commented 5 years ago

Making the change

—Dan S

On Aug 6, 2019, at 12:52 PM, David Hollman notifications@github.com<mailto:notifications@github.com> wrote:

There is no reason stride of 0 should be prohibited, but the current paper does.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHubhttps://github.com/ORNL/cpp-proposals-pub/issues/111?email_source=notifications&email_token=ACBQOEUXXIYECDHGRESV2JDQDHB67A5CNFSM4IJZIMS2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HDWV57A, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ACBQOETS7QRFSLU5O6ZPXADQDHB67ANCNFSM4IJZIMSQ.

dhollman commented 5 years ago

This is a functional change, so we should probably discuss it rather than changing it directly in the paper. I'm just making a list of things we want to change once we're out of wording and either into the working draft (in which case these will be papers suggesting changes) or back to LEWG (in which case we can just make some of these changes preemptively).

dhollman commented 5 years ago

Also, if this is changed, layout_stride::mapping::is_unique() layout_stride::mapping::is_always_unique() need to change.

dsunder commented 5 years ago

Since we already need to take the paper back to LEWG, I just added a question in editor font about allowing stride 0.

—Dan S

On Aug 6, 2019, at 3:05 PM, David Hollman notifications@github.com<mailto:notifications@github.com> wrote:

Also, if this is changed, layout_stride::mapping::is_unique() layout_stride::mapping::is_always_unique() need to change.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHubhttps://github.com/ORNL/cpp-proposals-pub/issues/111?email_source=notifications&email_token=ACBQOEST5AZYTNGAVEHEIIDQDHRSTA5CNFSM4IJZIMS2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD3WO4TA#issuecomment-518843980, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ACBQOET4SCMBMPHVJHXIZODQDHRSTANCNFSM4IJZIMSQ.

dhollman commented 5 years ago

Well, if we're going to do that, there are about 10 other things in the previous 10 issues that need to be changed also

crtrott commented 5 years ago

I am against allowing stride 0 for layout_stride. In fact we discussed this at some point because there are libraries which allow this essentially for "broadcasting" a scalar value into a dimension. But there are serious downsides to making layout_stride not be always_unique. The always_unique property is very handy for telling me I can do a lot of things layout agnostic. For example "scale every element by 2". If always_unique is not true I need to figure out how the thing is non-unique, and run a different loop structure etc.