@@ -16623,14 +16623,14 @@
16623
16623
constexpr M compress(const M& v, const type_identity_t<M>& selector);
16624
16624
template<@\exposconcept{simd-type}@ V>
16625
16625
constexpr V compress(const V& v, const typename V::mask_type& selector,
16626
- const typename V::value_type& fill_value);
16626
+ const typename V::value_type& fill_value);
16627
16627
template<@\exposconcept{simd-mask-type}@ M>
16628
16628
constexpr M compress(const M& v, const type_identity_t<M>& selector,
16629
- const typename V::value_type& fill_value);
16629
+ const typename V::value_type& fill_value);
16630
16630
16631
16631
template<@\exposconcept{simd-type}@ V>
16632
- constexpr V expand(const V& v, const typename V::mask_type& selector,
16633
- const V& original = {});
16632
+ constexpr V expand(const V& v, const typename V::mask_type& selector,
16633
+ const V& original = {});
16634
16634
template<@\exposconcept{simd-mask-type}@ M>
16635
16635
constexpr M expand(const M& v, const type_identity_t<M>& selector, const M& original = {});
16636
16636
18692
18692
18693
18693
\begin{itemdecl}
18694
18694
template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-type}@ V, class IdxMap>
18695
- constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
18696
-
18695
+ constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
18697
18696
template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-mask-type}@ M, class IdxMap>
18698
- constexpr resize_t<N, M> permute(const M& v, IdxMap&& idxmap);
18697
+ constexpr resize_t<N, M> permute(const M& v, IdxMap&& idxmap);
18699
18698
\end{itemdecl}
18700
18699
18701
18700
\begin{itemdescr}
18719
18718
\pnum
18720
18719
\constraints
18721
18720
\tcode{integral<invoke_result_t<IdxMap\&, \exposid{simd-size-type}>> ||
18722
- integral<invoke_result_t <IdxMap\&, \exposid{simd-size-type},
18721
+ integral<invoke_re\-sult_t <IdxMap\&, \exposid{simd-size-type},
18723
18722
\exposid{simd-size-type}>>} is \tcode{true}.
18724
18723
18725
18724
\pnum
18744
18743
\begin{itemdecl}
18745
18744
template<@\exposconcept{simd-type}@ V, @\exposconcept{simd-integral}@ I>
18746
18745
constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
18747
-
18748
18746
template<@\exposconcept{simd-mask-type}@ M, @\exposconcept{simd-integral}@ I>
18749
18747
constexpr resize_t<I::size(), M> permute(const M& v, const I& indices);
18750
18748
\end{itemdecl}
18766
18764
\begin{itemdecl}
18767
18765
template<@\exposconcept{simd-type}@ V>
18768
18766
constexpr V compress(const V& v, const typename V::mask_type& selector);
18769
-
18770
18767
template<@\exposconcept{simd-mask-type}@ M>
18771
18768
constexpr M compress(const M& v, const type_identity_t<M>& selector);
18772
18769
\end{itemdecl}
18795
18792
template<@\exposconcept{simd-type}@ V>
18796
18793
constexpr V compress(const V& v, const typename V::mask_type& selector,
18797
18794
const typename V::value_type& fill_value);
18798
-
18799
18795
template<@\exposconcept{simd-mask-type}@ M>
18800
18796
constexpr M compress(const M& v, const type_identity_t<M>& selector,
18801
18797
const typename M::value_type& fill_value);
18821
18817
18822
18818
\begin{itemdecl}
18823
18819
template<@\exposconcept{simd-type}@ V>
18824
- constexpr V expand(const V& v, const typename V::mask_type& selector,
18825
- const V& original = {});
18826
-
18820
+ constexpr V expand(const V& v, const typename V::mask_type& selector, const V& original = {});
18827
18821
template<@\exposconcept{simd-mask-type}@ M>
18828
18822
constexpr M expand(const M& v, const type_identity_t<M>& selector, const M& original = {});
18829
18823
\end{itemdecl}
@@ -18851,13 +18845,10 @@
18851
18845
\rSec3[simd.permute.memory]{\tcode{simd} memory permute}
18852
18846
18853
18847
\begin{itemdecl}
18854
- template<class V = @\seebelow@,
18855
- ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18848
+ template<class V = @\seebelow@, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18856
18849
requires ranges::@\libconcept{sized_range}@<R>
18857
18850
constexpr V unchecked_gather_from(R&& in, const I& indices, flags<Flags...> f = {});
18858
-
18859
- template<class V = @\seebelow@,
18860
- ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18851
+ template<class V = @\seebelow@, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18861
18852
requires ranges::@\libconcept{sized_range}@<R>
18862
18853
constexpr V unchecked_gather_from(R&& in, const typename I::mask_type& mask,
18863
18854
const I& indices, flags<Flags...> f = {});
@@ -18884,13 +18875,10 @@
18884
18875
\end{itemdescr}
18885
18876
18886
18877
\begin{itemdecl}
18887
- template<class V = @\seebelow@,
18888
- ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18878
+ template<class V = @\seebelow@, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18889
18879
requires ranges::@\libconcept{sized_range}@<R>
18890
18880
constexpr V partial_gather_from(R&& in, const I& indices, flags<Flags...> f = {});
18891
-
18892
- template<class V = @\seebelow@,
18893
- ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18881
+ template<class V = @\seebelow@, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18894
18882
requires ranges::@\libconcept{sized_range}@<R>
18895
18883
constexpr V partial_gather_from(R&& in, const typename I::mask_type& mask,
18896
18884
const I& indices, flags<Flags...> f = {});
18929
18917
\returns
18930
18918
A \tcode{basic_simd} or \tcode{basic_simd_mask} object where the $i^\text{th}$
18931
18919
element is initialized to the result of \tcode{mask[$i$] \&\& indices[$i$] <
18932
- ranges::size(in) ? static_cast<V::value_type>(ranges::data(in)[indices[$i$]]) :
18933
- typename V::value_type()} for all $i$ in the range \range{0}{I::size()}.
18920
+ ranges::size(in) ? static_cast<typename
18921
+ V::value_type>(range::\brk{}data(in)[indices[$i$]]) : typename
18922
+ V::value_type()} for all $i$ in the range \range{0}{I::size()}.
18923
+ % FIXME: the above \tcode{...} is too long => Overfull \hbox. codeblock?
18934
18924
18935
18925
\pnum
18936
18926
\remarks
@@ -18939,18 +18929,14 @@
18939
18929
\end{itemdescr}
18940
18930
18941
18931
\begin{itemdecl}
18942
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R,
18943
- @\exposconcept{simd-integral}@ I, class... Flags>
18932
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18944
18933
requires ranges::@\libconcept{sized_range}@<R>
18945
- constexpr void unchecked_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
18946
-
18947
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R,
18948
- @\exposconcept{simd-integral}@ I, class... Flags>
18934
+ constexpr void unchecked_scatter_to(const V& v, R&& out, const I& indices,
18935
+ flags<Flags...> f = {});
18936
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18949
18937
requires ranges::@\libconcept{sized_range}@<R>
18950
- constexpr void
18951
- unchecked_scatter_to(const V& v, R&& out,
18952
- const typename I::mask_type& mask,
18953
- const I& indices, flags<Flags...> f = {});
18938
+ constexpr void unchecked_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
18939
+ const I& indices, flags<Flags...> f = {});
18954
18940
\end{itemdecl}
18955
18941
18956
18942
\begin{itemdescr}
@@ -18969,15 +18955,11 @@
18969
18955
\end{itemdescr}
18970
18956
18971
18957
\begin{itemdecl}
18972
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R,
18973
- @\exposconcept{simd-integral}@ I, class... Flags>
18958
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18974
18959
requires ranges::@\libconcept{sized_range}@<R>
18975
18960
constexpr void
18976
18961
partial_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
18977
-
18978
- template<@\exposconcept{simd-type}@ V,
18979
- ranges::@\libconcept{contiguous_range}@ R,
18980
- @\exposconcept{simd-integral}@ I, class... Flags>
18962
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18981
18963
requires ranges::@\libconcept{sized_range}@<R>
18982
18964
constexpr void
18983
18965
partial_scatter_to(const V& v, R&& out,
0 commit comments