Skip to content

Commit 45dca42

Browse files
eisenwavetkoeppe
authored andcommitted
[simd.syn] Reorder declarations to match subclause order
Fixes NB US 175-281 (C++26 CD).
1 parent a019163 commit 45dca42

File tree

1 file changed

+44
-44
lines changed

1 file changed

+44
-44
lines changed

source/numerics.tex

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -16533,10 +16533,24 @@
1653316533
template<class T, @\exposid{simd-size-type}@ N = @\exposid{simd-size-v}@<T, @\exposid{native-abi}@<T>>>
1653416534
using @\libmember{vec}{simd}@ = basic_vec<T, @\exposid{deduce-abi-t}@<T, N>>;
1653516535

16536-
// \ref{simd.mask.class}, class template \tcode{basic_mask}
16537-
template<size_t Bytes, class Abi = @\exposid{native-abi}@<@\exposid{integer-from}@<Bytes>>> class basic_mask;
16538-
template<class T, @\exposid{simd-size-type}@ N = @\exposid{simd-size-v}@<T, @\exposid{native-abi}@<T>>>
16539-
using @\libmember{mask}{simd}@ = basic_mask<sizeof(T), @\exposid{deduce-abi-t}@<T, N>>;
16536+
// \ref{simd.reductions}, \tcode{basic_vec} reductions
16537+
template<class T, class Abi, class BinaryOperation = plus<>>
16538+
constexpr T reduce(const basic_vec<T, Abi>&, BinaryOperation = {});
16539+
template<class T, class Abi, class BinaryOperation = plus<>>
16540+
constexpr T reduce(
16541+
const basic_vec<T, Abi>& x, const typename basic_vec<T, Abi>::mask_type& mask,
16542+
BinaryOperation binary_op = {}, type_identity_t<T> identity_element = @\seebelow@);
16543+
16544+
template<class T, class Abi>
16545+
constexpr T reduce_min(const basic_vec<T, Abi>&) noexcept;
16546+
template<class T, class Abi>
16547+
constexpr T reduce_min(const basic_vec<T, Abi>&,
16548+
const typename basic_vec<T, Abi>::mask_type&) noexcept;
16549+
template<class T, class Abi>
16550+
constexpr T reduce_max(const basic_vec<T, Abi>&) noexcept;
16551+
template<class T, class Abi>
16552+
constexpr T reduce_max(const basic_vec<T, Abi>&,
16553+
const typename basic_vec<T, Abi>::mask_type&) noexcept;
1654016554

1654116555
// \ref{simd.loadstore}, \tcode{basic_vec} load and store functions
1654216556
template<class V = @\seebelow@, ranges::@\libconcept{contiguous_range}@ R, class... Flags>
@@ -16716,46 +16730,6 @@
1671616730
(basic_mask<Bytes, Abis>::size() + ...)>>
1671716731
cat(const basic_mask<Bytes, Abis>&...) noexcept;
1671816732

16719-
// \ref{simd.mask.reductions}, \tcode{basic_mask} reductions
16720-
template<size_t Bytes, class Abi>
16721-
constexpr bool all_of(const basic_mask<Bytes, Abi>&) noexcept;
16722-
template<size_t Bytes, class Abi>
16723-
constexpr bool any_of(const basic_mask<Bytes, Abi>&) noexcept;
16724-
template<size_t Bytes, class Abi>
16725-
constexpr bool none_of(const basic_mask<Bytes, Abi>&) noexcept;
16726-
template<size_t Bytes, class Abi>
16727-
constexpr @\exposid{simd-size-type}@ reduce_count(const basic_mask<Bytes, Abi>&) noexcept;
16728-
template<size_t Bytes, class Abi>
16729-
constexpr @\exposid{simd-size-type}@ reduce_min_index(const basic_mask<Bytes, Abi>&);
16730-
template<size_t Bytes, class Abi>
16731-
constexpr @\exposid{simd-size-type}@ reduce_max_index(const basic_mask<Bytes, Abi>&);
16732-
16733-
constexpr bool all_of(@\libconcept{same_as}@<bool> auto) noexcept;
16734-
constexpr bool any_of(@\libconcept{same_as}@<bool> auto) noexcept;
16735-
constexpr bool none_of(@\libconcept{same_as}@<bool> auto) noexcept;
16736-
constexpr @\exposid{simd-size-type}@ reduce_count(@\libconcept{same_as}@<bool> auto) noexcept;
16737-
constexpr @\exposid{simd-size-type}@ reduce_min_index(@\libconcept{same_as}@<bool> auto);
16738-
constexpr @\exposid{simd-size-type}@ reduce_max_index(@\libconcept{same_as}@<bool> auto);
16739-
16740-
// \ref{simd.reductions}, \tcode{basic_vec} reductions
16741-
template<class T, class Abi, class BinaryOperation = plus<>>
16742-
constexpr T reduce(const basic_vec<T, Abi>&, BinaryOperation = {});
16743-
template<class T, class Abi, class BinaryOperation = plus<>>
16744-
constexpr T reduce(
16745-
const basic_vec<T, Abi>& x, const typename basic_vec<T, Abi>::mask_type& mask,
16746-
BinaryOperation binary_op = {}, type_identity_t<T> identity_element = @\seebelow@);
16747-
16748-
template<class T, class Abi>
16749-
constexpr T reduce_min(const basic_vec<T, Abi>&) noexcept;
16750-
template<class T, class Abi>
16751-
constexpr T reduce_min(const basic_vec<T, Abi>&,
16752-
const typename basic_vec<T, Abi>::mask_type&) noexcept;
16753-
template<class T, class Abi>
16754-
constexpr T reduce_max(const basic_vec<T, Abi>&) noexcept;
16755-
template<class T, class Abi>
16756-
constexpr T reduce_max(const basic_vec<T, Abi>&,
16757-
const typename basic_vec<T, Abi>::mask_type&) noexcept;
16758-
1675916733
// \ref{simd.alg}, algorithms
1676016734
template<class T, class Abi>
1676116735
constexpr basic_vec<T, Abi>
@@ -17022,6 +16996,32 @@
1702216996
rebind_t<complex<typename V::value_type>, V> polar(const V& x, const V& y = {});
1702316997

1702416998
template<@\exposconcept{simd-complex}@ V> constexpr V pow(const V& x, const V& y);
16999+
17000+
// \ref{simd.mask.class}, class template \tcode{basic_mask}
17001+
template<size_t Bytes, class Abi = @\exposid{native-abi}@<@\exposid{integer-from}@<Bytes>>> class basic_mask;
17002+
template<class T, @\exposid{simd-size-type}@ N = @\exposid{simd-size-v}@<T, @\exposid{native-abi}@<T>>>
17003+
using @\libmember{mask}{simd}@ = basic_mask<sizeof(T), @\exposid{deduce-abi-t}@<T, N>>;
17004+
17005+
// \ref{simd.mask.reductions}, \tcode{basic_mask} reductions
17006+
template<size_t Bytes, class Abi>
17007+
constexpr bool all_of(const basic_mask<Bytes, Abi>&) noexcept;
17008+
template<size_t Bytes, class Abi>
17009+
constexpr bool any_of(const basic_mask<Bytes, Abi>&) noexcept;
17010+
template<size_t Bytes, class Abi>
17011+
constexpr bool none_of(const basic_mask<Bytes, Abi>&) noexcept;
17012+
template<size_t Bytes, class Abi>
17013+
constexpr @\exposid{simd-size-type}@ reduce_count(const basic_mask<Bytes, Abi>&) noexcept;
17014+
template<size_t Bytes, class Abi>
17015+
constexpr @\exposid{simd-size-type}@ reduce_min_index(const basic_mask<Bytes, Abi>&);
17016+
template<size_t Bytes, class Abi>
17017+
constexpr @\exposid{simd-size-type}@ reduce_max_index(const basic_mask<Bytes, Abi>&);
17018+
17019+
constexpr bool all_of(@\libconcept{same_as}@<bool> auto) noexcept;
17020+
constexpr bool any_of(@\libconcept{same_as}@<bool> auto) noexcept;
17021+
constexpr bool none_of(@\libconcept{same_as}@<bool> auto) noexcept;
17022+
constexpr @\exposid{simd-size-type}@ reduce_count(@\libconcept{same_as}@<bool> auto) noexcept;
17023+
constexpr @\exposid{simd-size-type}@ reduce_min_index(@\libconcept{same_as}@<bool> auto);
17024+
constexpr @\exposid{simd-size-type}@ reduce_max_index(@\libconcept{same_as}@<bool> auto);
1702517025
}
1702617026

1702717027
namespace std {

0 commit comments

Comments
 (0)