@@ -16619,14 +16619,14 @@
16619
16619
constexpr M compress(const M& v, const type_identity_t<M>& selector);
16620
16620
template<@\exposconcept{simd-type}@ V>
16621
16621
constexpr V compress(const V& v, const typename V::mask_type& selector,
16622
- const typename V::value_type& fill_value);
16622
+ const typename V::value_type& fill_value);
16623
16623
template<@\exposconcept{simd-mask-type}@ M>
16624
16624
constexpr M compress(const M& v, const type_identity_t<M>& selector,
16625
- const typename V::value_type& fill_value);
16625
+ const typename V::value_type& fill_value);
16626
16626
16627
16627
template<@\exposconcept{simd-type}@ V>
16628
- constexpr V expand(const V& v, const typename V::mask_type& selector,
16629
- const V& original = {});
16628
+ constexpr V expand(const V& v, const typename V::mask_type& selector,
16629
+ const V& original = {});
16630
16630
template<@\exposconcept{simd-mask-type}@ M>
16631
16631
constexpr M expand(const M& v, const type_identity_t<M>& selector, const M& original = {});
16632
16632
18688
18688
18689
18689
\begin{itemdecl}
18690
18690
template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-type}@ V, class IdxMap>
18691
- constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
18692
-
18691
+ constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
18693
18692
template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-mask-type}@ M, class IdxMap>
18694
- constexpr resize_t<N, M> permute(const M& v, IdxMap&& idxmap);
18693
+ constexpr resize_t<N, M> permute(const M& v, IdxMap&& idxmap);
18695
18694
\end{itemdecl}
18696
18695
18697
18696
\begin{itemdescr}
18715
18714
\pnum
18716
18715
\constraints
18717
18716
\tcode{integral<invoke_result_t<IdxMap\&, \exposid{simd-size-type}>> ||
18718
- integral<invoke_result_t <IdxMap\&, \exposid{simd-size-type},
18717
+ integral<invoke_re\-sult_t <IdxMap\&, \exposid{simd-size-type},
18719
18718
\exposid{simd-size-type}>>} is \tcode{true}.
18720
18719
18721
18720
\pnum
18740
18739
\begin{itemdecl}
18741
18740
template<@\exposconcept{simd-type}@ V, @\exposconcept{simd-integral}@ I>
18742
18741
constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
18743
-
18744
18742
template<@\exposconcept{simd-mask-type}@ M, @\exposconcept{simd-integral}@ I>
18745
18743
constexpr resize_t<I::size(), M> permute(const M& v, const I& indices);
18746
18744
\end{itemdecl}
18762
18760
\begin{itemdecl}
18763
18761
template<@\exposconcept{simd-type}@ V>
18764
18762
constexpr V compress(const V& v, const typename V::mask_type& selector);
18765
-
18766
18763
template<@\exposconcept{simd-mask-type}@ M>
18767
18764
constexpr M compress(const M& v, const type_identity_t<M>& selector);
18768
18765
\end{itemdecl}
18791
18788
template<@\exposconcept{simd-type}@ V>
18792
18789
constexpr V compress(const V& v, const typename V::mask_type& selector,
18793
18790
const typename V::value_type& fill_value);
18794
-
18795
18791
template<@\exposconcept{simd-mask-type}@ M>
18796
18792
constexpr M compress(const M& v, const type_identity_t<M>& selector,
18797
18793
const typename M::value_type& fill_value);
18817
18813
18818
18814
\begin{itemdecl}
18819
18815
template<@\exposconcept{simd-type}@ V>
18820
- constexpr V expand(const V& v, const typename V::mask_type& selector,
18821
- const V& original = {});
18822
-
18816
+ constexpr V expand(const V& v, const typename V::mask_type& selector, const V& original = {});
18823
18817
template<@\exposconcept{simd-mask-type}@ M>
18824
18818
constexpr M expand(const M& v, const type_identity_t<M>& selector, const M& original = {});
18825
18819
\end{itemdecl}
@@ -18847,13 +18841,10 @@
18847
18841
\rSec3[simd.permute.memory]{\tcode{simd} memory permute}
18848
18842
18849
18843
\begin{itemdecl}
18850
- template<class V = @\seebelow@,
18851
- ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18844
+ template<class V = @\seebelow@, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18852
18845
requires ranges::@\libconcept{sized_range}@<R>
18853
18846
constexpr V unchecked_gather_from(R&& in, const I& indices, flags<Flags...> f = {});
18854
-
18855
- template<class V = @\seebelow@,
18856
- ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18847
+ template<class V = @\seebelow@, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18857
18848
requires ranges::@\libconcept{sized_range}@<R>
18858
18849
constexpr V unchecked_gather_from(R&& in, const typename I::mask_type& mask,
18859
18850
const I& indices, flags<Flags...> f = {});
@@ -18880,13 +18871,10 @@
18880
18871
\end{itemdescr}
18881
18872
18882
18873
\begin{itemdecl}
18883
- template<class V = @\seebelow@,
18884
- ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18874
+ template<class V = @\seebelow@, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18885
18875
requires ranges::@\libconcept{sized_range}@<R>
18886
18876
constexpr V partial_gather_from(R&& in, const I& indices, flags<Flags...> f = {});
18887
-
18888
- template<class V = @\seebelow@,
18889
- ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18877
+ template<class V = @\seebelow@, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18890
18878
requires ranges::@\libconcept{sized_range}@<R>
18891
18879
constexpr V partial_gather_from(R&& in, const typename I::mask_type& mask,
18892
18880
const I& indices, flags<Flags...> f = {});
18925
18913
\returns
18926
18914
A \tcode{basic_vec} or \tcode{basic_mask} object where the $i^\text{th}$
18927
18915
element is initialized to the result of \tcode{mask[$i$] \&\& indices[$i$] <
18928
- ranges::size(in) ? static_cast<V::value_type>(ranges::data(in)[indices[$i$]]) :
18929
- typename V::value_type()} for all $i$ in the range \range{0}{I::size()}.
18916
+ ranges::size(in) ? static_cast<typename
18917
+ V::value_type>(range::\brk{}data(in)[indices[$i$]]) : typename
18918
+ V::value_type()} for all $i$ in the range \range{0}{I::size()}.
18919
+ % FIXME: the above \tcode{...} is too long => Overfull \hbox. codeblock?
18930
18920
18931
18921
\pnum
18932
18922
\remarks
@@ -18935,18 +18925,14 @@
18935
18925
\end{itemdescr}
18936
18926
18937
18927
\begin{itemdecl}
18938
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R,
18939
- @\exposconcept{simd-integral}@ I, class... Flags>
18928
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18940
18929
requires ranges::@\libconcept{sized_range}@<R>
18941
- constexpr void unchecked_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
18942
-
18943
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R,
18944
- @\exposconcept{simd-integral}@ I, class... Flags>
18930
+ constexpr void unchecked_scatter_to(const V& v, R&& out, const I& indices,
18931
+ flags<Flags...> f = {});
18932
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18945
18933
requires ranges::@\libconcept{sized_range}@<R>
18946
- constexpr void
18947
- unchecked_scatter_to(const V& v, R&& out,
18948
- const typename I::mask_type& mask,
18949
- const I& indices, flags<Flags...> f = {});
18934
+ constexpr void unchecked_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
18935
+ const I& indices, flags<Flags...> f = {});
18950
18936
\end{itemdecl}
18951
18937
18952
18938
\begin{itemdescr}
@@ -18965,15 +18951,11 @@
18965
18951
\end{itemdescr}
18966
18952
18967
18953
\begin{itemdecl}
18968
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R,
18969
- @\exposconcept{simd-integral}@ I, class... Flags>
18954
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18970
18955
requires ranges::@\libconcept{sized_range}@<R>
18971
18956
constexpr void
18972
18957
partial_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
18973
-
18974
- template<@\exposconcept{simd-type}@ V,
18975
- ranges::@\libconcept{contiguous_range}@ R,
18976
- @\exposconcept{simd-integral}@ I, class... Flags>
18958
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18977
18959
requires ranges::@\libconcept{sized_range}@<R>
18978
18960
constexpr void
18979
18961
partial_scatter_to(const V& v, R&& out,
0 commit comments