@@ -16619,14 +16619,14 @@
16619
16619
constexpr V compress(const V& v, const type_identity_t<V>& 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}@ V>
16624
16624
constexpr V compress(const V& v, const type_identity_t<V>& 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}@ V>
16631
16631
constexpr V expand(const V& v, const type_identity_t<V>& selector, const V& original = {});
16632
16632
18261
18261
\pnum
18262
18262
\returns
18263
18263
\tcode{\placeholdernc{GENERALIZED_SUM}(binary_op, vec<T, 1>(x[0]), $\ldots$,
18264
- vec<T, 1>(x[x.size() - 1])\brk{})[ 0]}\iref{numerics.defns}.
18264
+ vec<T, 1>(x[x.size() - 1]))[ \brk{}0]}\iref{numerics.defns}.
18265
18265
18266
18266
\pnum
18267
18267
\throws
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}@ V, class IdxMap>
18694
- constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
18693
+ constexpr resize_t<N, V> permute(const V& 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}@ V, @\exposconcept{simd-integral}@ I>
18745
18743
constexpr resize_t<I::size(), V> permute(const V& 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}@ V>
18767
18764
constexpr V compress(const V& v, const type_identity_t<V>& 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}@ V>
18796
18792
constexpr V compress(const V& v, const type_identity_t<V>& selector,
18797
18793
const typename V::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}@ V>
18824
18818
constexpr V expand(const V& v, const type_identity_t<V>& selector, const V& 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 = {});
@@ -18876,17 +18867,14 @@
18876
18867
\pnum
18877
18868
\remarks
18878
18869
The default argument for template parameter \tcode{V} is
18879
- \tcode{vec<ranges::range_value_t<R>, I::size()>}.
18870
+ \tcode{vec<ranges::range_value_t<R>, I::\brk{} size()>}.
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 = {});
@@ -18938,22 +18926,18 @@
18938
18926
\pnum
18939
18927
\remarks
18940
18928
The default argument for template parameter \tcode{V} is
18941
- \tcode{vec<ranges::range_value_t<R>, I::size()>}.
18929
+ \tcode{vec<ranges::range_value_t<R>, I::\brk{} size()>}.
18942
18930
\end{itemdescr}
18943
18931
18944
18932
\begin{itemdecl}
18945
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R,
18946
- @\exposconcept{simd-integral}@ I, class... Flags>
18933
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18947
18934
requires ranges::@\libconcept{sized_range}@<R>
18948
- constexpr void unchecked_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
18949
-
18950
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R,
18951
- @\exposconcept{simd-integral}@ I, class... Flags>
18935
+ constexpr void unchecked_scatter_to(const V& v, R&& out, const I& indices,
18936
+ flags<Flags...> f = {});
18937
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18952
18938
requires ranges::@\libconcept{sized_range}@<R>
18953
- constexpr void
18954
- unchecked_scatter_to(const V& v, R&& out,
18955
- const typename I::mask_type& mask,
18956
- const I& indices, flags<Flags...> f = {});
18939
+ constexpr void unchecked_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
18940
+ const I& indices, flags<Flags...> f = {});
18957
18941
\end{itemdecl}
18958
18942
18959
18943
\begin{itemdescr}
@@ -18972,15 +18956,11 @@
18972
18956
\end{itemdescr}
18973
18957
18974
18958
\begin{itemdecl}
18975
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R,
18976
- @\exposconcept{simd-integral}@ I, class... Flags>
18959
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18977
18960
requires ranges::@\libconcept{sized_range}@<R>
18978
18961
constexpr void
18979
18962
partial_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
18980
-
18981
- template<@\exposconcept{simd-type}@ V,
18982
- ranges::@\libconcept{contiguous_range}@ R,
18983
- @\exposconcept{simd-integral}@ I, class... Flags>
18963
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18984
18964
requires ranges::@\libconcept{sized_range}@<R>
18985
18965
constexpr void
18986
18966
partial_scatter_to(const V& v, R&& out,
19050
19030
\item
19051
19031
For the second overload,
19052
19032
\tcode{T} is an enabled specialization of \tcode{basic_mask}.
19053
- If \tcode{basic_mask<\exposid{mask-element -size}<T>, Abi>::size() \% T::size()}
19033
+ If \tcode{basic_mask<\exposid{mask-el\-e\-ment -size}<T>, Abi>::size() \% T::size()}
19054
19034
is not \tcode{0}, then
19055
- \tcode{resize_t<\brk{}basic_mask<\brk{}\exposid{mask-element -size}<T>,
19035
+ \tcode{resize_t<\brk{}basic_mask<\brk{}\exposid{mask-el\-e\-ment -size}<T>,
19056
19036
Abi>::size() \% T::size(), T>} is valid and denotes a type.
19057
19037
\end{itemize}
19058
19038
0 commit comments