@@ -16620,14 +16620,14 @@
16620
16620
constexpr V compress(const V& v, const type_identity_t<V>& selector);
16621
16621
template<@\exposconcept{simd-type}@ V>
16622
16622
constexpr V compress(const V& v, const typename V::mask_type& selector,
16623
- const typename V::value_type& fill_value);
16623
+ const typename V::value_type& fill_value);
16624
16624
template<@\exposconcept{simd-mask-type}@ V>
16625
16625
constexpr V compress(const V& v, const type_identity_t<V>& selector,
16626
- const typename V::value_type& fill_value);
16626
+ const typename V::value_type& fill_value);
16627
16627
16628
16628
template<@\exposconcept{simd-type}@ V>
16629
- constexpr V expand(const V& v, const typename V::mask_type& selector,
16630
- const V& original = {});
16629
+ constexpr V expand(const V& v, const typename V::mask_type& selector,
16630
+ const V& original = {});
16631
16631
template<@\exposconcept{simd-mask-type}@ V>
16632
16632
constexpr V expand(const V& v, const type_identity_t<V>& selector, const V& original = {});
16633
16633
18262
18262
\pnum
18263
18263
\returns
18264
18264
\tcode{\placeholdernc{GENERALIZED_SUM}(binary_op, vec<T, 1>(x[0]), $\ldots$,
18265
- vec<T, 1>(x[x.size() - 1])\brk{})[ 0]}\iref{numerics.defns}.
18265
+ vec<T, 1>(x[x.size() - 1]))[ \brk{}0]}\iref{numerics.defns}.
18266
18266
18267
18267
\pnum
18268
18268
\throws
18689
18689
18690
18690
\begin{itemdecl}
18691
18691
template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-type}@ V, class IdxMap>
18692
- constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
18693
-
18692
+ constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
18694
18693
template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-mask-type}@ V, class IdxMap>
18695
- constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
18694
+ constexpr resize_t<N, V> permute(const V& v, IdxMap&& idxmap);
18696
18695
\end{itemdecl}
18697
18696
18698
18697
\begin{itemdescr}
18716
18715
\pnum
18717
18716
\constraints
18718
18717
\tcode{integral<invoke_result_t<IdxMap\&, \exposid{simd-size-type}>> ||
18719
- integral<invoke_result_t <IdxMap\&, \exposid{simd-size-type},
18718
+ integral<invoke_re\-sult_t <IdxMap\&, \exposid{simd-size-type},
18720
18719
\exposid{simd-size-type}>>} is \tcode{true}.
18721
18720
18722
18721
\pnum
18741
18740
\begin{itemdecl}
18742
18741
template<@\exposconcept{simd-type}@ V, @\exposconcept{simd-integral}@ I>
18743
18742
constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
18744
-
18745
18743
template<@\exposconcept{simd-mask-type}@ V, @\exposconcept{simd-integral}@ I>
18746
18744
constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
18747
18745
\end{itemdecl}
18763
18761
\begin{itemdecl}
18764
18762
template<@\exposconcept{simd-type}@ V>
18765
18763
constexpr V compress(const V& v, const typename V::mask_type& selector);
18766
-
18767
18764
template<@\exposconcept{simd-mask-type}@ V>
18768
18765
constexpr V compress(const V& v, const type_identity_t<V>& selector);
18769
18766
\end{itemdecl}
18792
18789
template<@\exposconcept{simd-type}@ V>
18793
18790
constexpr V compress(const V& v, const typename V::mask_type& selector,
18794
18791
const typename V::value_type& fill_value);
18795
-
18796
18792
template<@\exposconcept{simd-mask-type}@ V>
18797
18793
constexpr V compress(const V& v, const type_identity_t<V>& selector,
18798
18794
const typename V::value_type& fill_value);
18818
18814
18819
18815
\begin{itemdecl}
18820
18816
template<@\exposconcept{simd-type}@ V>
18821
- constexpr V expand(const V& v, const typename V::mask_type& selector,
18822
- const V& original = {});
18823
-
18817
+ constexpr V expand(const V& v, const typename V::mask_type& selector, const V& original = {});
18824
18818
template<@\exposconcept{simd-mask-type}@ V>
18825
18819
constexpr V expand(const V& v, const type_identity_t<V>& selector, const V& original = {});
18826
18820
\end{itemdecl}
@@ -18848,13 +18842,10 @@
18848
18842
\rSec3[simd.permute.memory]{\tcode{simd} memory permute}
18849
18843
18850
18844
\begin{itemdecl}
18851
- template<class V = @\seebelow@,
18852
- ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18845
+ template<class V = @\seebelow@, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18853
18846
requires ranges::@\libconcept{sized_range}@<R>
18854
18847
constexpr V unchecked_gather_from(R&& in, const I& indices, flags<Flags...> f = {});
18855
-
18856
- template<class V = @\seebelow@,
18857
- 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>
18858
18849
requires ranges::@\libconcept{sized_range}@<R>
18859
18850
constexpr V unchecked_gather_from(R&& in, const typename I::mask_type& mask,
18860
18851
const I& indices, flags<Flags...> f = {});
@@ -18877,17 +18868,14 @@
18877
18868
\pnum
18878
18869
\remarks
18879
18870
The default argument for template parameter \tcode{V} is
18880
- \tcode{vec<ranges::range_value_t<R>, I::size()>}.
18871
+ \tcode{vec<ranges::range_value_t<R>, I::\brk{} size()>}.
18881
18872
\end{itemdescr}
18882
18873
18883
18874
\begin{itemdecl}
18884
- template<class V = @\seebelow@,
18885
- ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18875
+ template<class V = @\seebelow@, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18886
18876
requires ranges::@\libconcept{sized_range}@<R>
18887
18877
constexpr V partial_gather_from(R&& in, const I& indices, flags<Flags...> f = {});
18888
-
18889
- template<class V = @\seebelow@,
18890
- 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>
18891
18879
requires ranges::@\libconcept{sized_range}@<R>
18892
18880
constexpr V partial_gather_from(R&& in, const typename I::mask_type& mask,
18893
18881
const I& indices, flags<Flags...> f = {});
@@ -18939,22 +18927,18 @@
18939
18927
\pnum
18940
18928
\remarks
18941
18929
The default argument for template parameter \tcode{V} is
18942
- \tcode{vec<ranges::range_value_t<R>, I::size()>}.
18930
+ \tcode{vec<ranges::range_value_t<R>, I::\brk{} size()>}.
18943
18931
\end{itemdescr}
18944
18932
18945
18933
\begin{itemdecl}
18946
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R,
18947
- @\exposconcept{simd-integral}@ I, class... Flags>
18934
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18948
18935
requires ranges::@\libconcept{sized_range}@<R>
18949
- constexpr void unchecked_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
18950
-
18951
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R,
18952
- @\exposconcept{simd-integral}@ I, class... Flags>
18936
+ constexpr void unchecked_scatter_to(const V& v, R&& out, const I& indices,
18937
+ flags<Flags...> f = {});
18938
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18953
18939
requires ranges::@\libconcept{sized_range}@<R>
18954
- constexpr void
18955
- unchecked_scatter_to(const V& v, R&& out,
18956
- const typename I::mask_type& mask,
18957
- const I& indices, flags<Flags...> f = {});
18940
+ constexpr void unchecked_scatter_to(const V& v, R&& out, const typename I::mask_type& mask,
18941
+ const I& indices, flags<Flags...> f = {});
18958
18942
\end{itemdecl}
18959
18943
18960
18944
\begin{itemdescr}
@@ -18973,15 +18957,11 @@
18973
18957
\end{itemdescr}
18974
18958
18975
18959
\begin{itemdecl}
18976
- template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R,
18977
- @\exposconcept{simd-integral}@ I, class... Flags>
18960
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18978
18961
requires ranges::@\libconcept{sized_range}@<R>
18979
18962
constexpr void
18980
18963
partial_scatter_to(const V& v, R&& out, const I& indices, flags<Flags...> f = {});
18981
-
18982
- template<@\exposconcept{simd-type}@ V,
18983
- ranges::@\libconcept{contiguous_range}@ R,
18984
- @\exposconcept{simd-integral}@ I, class... Flags>
18964
+ template<@\exposconcept{simd-type}@ V, ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
18985
18965
requires ranges::@\libconcept{sized_range}@<R>
18986
18966
constexpr void
18987
18967
partial_scatter_to(const V& v, R&& out,
19051
19031
\item
19052
19032
For the second overload,
19053
19033
\tcode{T} is an enabled specialization of \tcode{basic_mask}.
19054
- If \tcode{basic_mask<\exposid{mask-element -size}<T>, Abi>::size() \% T::size()}
19034
+ If \tcode{basic_mask<\exposid{mask-el\-e\-ment -size}<T>, Abi>::size() \% T::size()}
19055
19035
is not \tcode{0}, then
19056
- \tcode{resize_t<\brk{}basic_mask<\brk{}\exposid{mask-element -size}<T>,
19036
+ \tcode{resize_t<\brk{}basic_mask<\brk{}\exposid{mask-el\-e\-ment -size}<T>,
19057
19037
Abi>::size() \% T::size(), T>} is valid and denotes a type.
19058
19038
\end{itemize}
19059
19039
0 commit comments