@@ -21510,11 +21510,13 @@
21510
21510
\begin{itemize}
21511
21511
\item
21512
21512
\tcode{M::index_type}
21513
- if the function is a member of a class \tcode{M}, otherwise
21513
+ if the function is a member of a class \tcode{M},
21514
21514
\item
21515
+ otherwise,
21515
21516
\tcode{remove_reference_t<decltype(src)>::index_type}
21516
- if the function has a parameter named \tcode{src}, otherwise
21517
+ if the function has a parameter named \tcode{src},
21517
21518
\item
21519
+ otherwise,
21518
21520
the same type as the function's template argument \tcode{IndexType};
21519
21521
\end{itemize}
21520
21522
\item let \tcode{rank} be the number of elements in \tcode{slices};
21526
21528
\begin{itemize}
21527
21529
\item
21528
21530
\tcode{dynamic_extent}
21529
- if $S_k$ models \tcode{\libconcept{convertible_to}<index_type>}, otherwise
21531
+ if $S_k$ models \tcode{\libconcept{convertible_to}<index_type>},
21530
21532
\item
21533
+ otherwise,
21531
21534
the number of types $S_j$ with $j < k$ that
21532
21535
do not model \tcode{\libconcept{convertible_to}<index_type>}.
21533
21536
\end{itemize}
@@ -21622,14 +21625,17 @@
21622
21625
Let $\phi{}_k$ denote the following value:
21623
21626
\begin{itemize}
21624
21627
\item
21625
- $s_k$ if $S_k$ models \tcode{\libconcept{convertible_to}<IndexType>}; otherwise
21628
+ $s_k$ if $S_k$ models \tcode{\libconcept{convertible_to}<IndexType>};
21626
21629
\item
21630
+ otherwise,
21627
21631
\tcode{get<0>($s_k$)}
21628
- if $S_k$ models \tcode{\exposconcept{index-pair-like}<IndexType>}; otherwise
21632
+ if $S_k$ models \tcode{\exposconcept{index-pair-like}<IndexType>};
21629
21633
\item
21634
+ otherwise,
21630
21635
\tcode{\exposid{de-ice}($s_k$.offset)}
21631
- if $S_k$ is a specialization of \tcode{strided_slice}; otherwise
21636
+ if $S_k$ is a specialization of \tcode{strided_slice};
21632
21637
\item
21638
+ otherwise,
21633
21639
\tcode{0}.
21634
21640
\end{itemize}
21635
21641
21708
21714
%FIXME: Also, calling first_ on each $k$ below gives us a set of indeces - how do we assign a set to the src_idx[$k$] above?
21709
21715
\tcode{\exposid{first_}<IndexType, $k$>(slices...)} for each $k$
21710
21716
where \tcode{\placeholder{map-rank}[$k$]} equals
21711
- \tcode{dynamic_extent}, otherwise
21717
+ \tcode{dynamic_extent},
21712
21718
21713
21719
\item
21720
+ %FIXME: How do we fail the previous \item to get here? There's no "if" test to fail.
21721
+ otherwise,
21714
21722
\tcode{\exposid{first_}<IndexType, $k$>(slices...)} \tcode{+}
21715
21723
\tcode{indices[\placeholder{map-rank}[$k$]]}.
21716
21724
\end{itemize}
21797
21805
\tcode{\exposid{de-ice}($S_k$::stride_type())},
21798
21806
if $S_k$ is a specialization of \tcode{strided_slice} whose
21799
21807
\tcode{extent_type} and \tcode{stride_type}
21800
- model \exposconceptx{integral-cons\-tant-like}{integral-constant-like}; otherwise
21808
+ model \exposconceptx{integral-cons\-tant-like}{integral-constant-like};
21801
21809
21802
21810
\item
21811
+ otherwise,
21803
21812
\tcode{dynamic_extent}.
21804
21813
\end{itemize}
21805
21814
\end{itemize}
@@ -21815,12 +21824,13 @@
21815
21824
\tcode{ext.extent(\placeholder{map-rank}[$k$])} equals
21816
21825
\tcode{$s_k$.extent == 0 ? 0 : 1 + (\exposid{de-ice}($s_k$.extent) - 1) /}\linebreak{}
21817
21826
\tcode{\exposid{de-ice}($s_k$.stride)}
21818
- if $S_k$ is a specialization of \tcode{strided_slice}, otherwise
21827
+ if $S_k$ is a specialization of \tcode{strided_slice},
21819
21828
21820
21829
\item
21830
+ otherwise,
21821
21831
\tcode{ext.extent(\placeholder{map-rank}[$k$])} equals
21822
21832
\tcode{\exposid{last_}<$k$>(src, slices...) -}
21823
- \tcode{\exposid{first_}<IndexType , $k$>(\linebreak{} slices...)}.
21833
+ \tcode{\exposid{first_}<Index-\linebreak{}Type , $k$>(slices...)}.
21824
21834
\end{itemize}
21825
21835
\end{itemdescr}
21826
21836
21898
21908
\item
21899
21909
\tcode{stride($k$) * \exposid{de-ice}($s_k$.stride)}
21900
21910
if $S_k$ is a specialization of \tcode{strided_slice} and
21901
- \tcode{$s_k$.stride < $s_k$.extent}; otherwise
21911
+ \tcode{$s_k$.stride < $s_k$.extent};
21902
21912
21903
21913
\item
21914
+ otherwise,
21904
21915
\tcode{stride($k$)}.
21905
21916
\end{itemize}
21906
21917
21918
21929
\begin{itemize}
21919
21930
\item
21920
21931
\tcode{submdspan_mapping_result\{*this, 0\}},
21921
- if \tcode{Extents::rank() == 0} is \tcode{true}; otherwise
21932
+ if \tcode{Extents::rank() == 0} is \tcode{true};
21922
21933
21923
21934
\item
21935
+ otherwise,
21924
21936
\tcode{submdspan_mapping_result\{layout_left::mapping(sub_ext), offset\}},
21925
21937
if
21926
21938
\begin{itemize}
21932
21944
\item
21933
21945
for $k$ equal to \tcode{SubExtents::rank() - 1},
21934
21946
$S_k$ models \tcode{\exposconcept{index-pair-like}<index_type>} or
21935
- %FIXME: Dangling "otherwise" in nested itemized list is lost, reword to move "otherwise" to start of alternate items
21936
21947
\tcode{is_convertible_v<$S_k$, full_extent_t>} is \tcode{true};
21937
- otherwise
21938
21948
\end{itemize}
21939
21949
\begin{note}
21940
21950
If the above conditions are true,
21943
21953
\end{note}
21944
21954
21945
21955
\item
21956
+ otherwise,
21946
21957
\tcode{submdspan_mapping_result\{layout_right::mapping(sub_ext), offset\}},
21947
21958
if
21948
21959
\begin{itemize}
21955
21966
\item
21956
21967
for $k$ equal to \tcode{Extents::rank() - SubExtents::rank()},
21957
21968
$S_k$ models \tcode{\exposconcept{index-pair-like}<in\-dex_type>} or
21958
- %FIXME: Dangling "otherwise" in nested itemized list is lost
21959
- \tcode{is_convertible_v<$S_k$, full_extent_t>} is \tcode{true}; otherwise
21969
+ \tcode{is_convertible_v<$S_k$, full_extent_t>} is \tcode{true};
21960
21970
\end{itemize}
21961
21971
\begin{note}
21962
21972
If the above conditions are true,
21965
21975
\end{note}
21966
21976
21967
21977
\item
21968
- \tcode{submdspan_mapping_result\{layout_stride::mapping(sub_ext, sub_strides), offset\}}.
21978
+ otherwise,
21979
+ \tcode{submdspan_mapping_result\{layout_stride::mapping(sub_ext, sub_strides),\linebreak{}offset\}}.
21969
21980
\end{itemize}
21970
21981
\end{itemdescr}
21971
21982
0 commit comments