Skip to content

Commit feb1f1e

Browse files
committed
[simd.syn] Reorder declarations to match subclause order
Fixes NB US 175-281 (C++26 CD).
1 parent b194937 commit feb1f1e

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
@@ -16532,10 +16532,24 @@
1653216532
template<class T, @\exposid{simd-size-type}@ N = @\exposid{simd-size-v}@<T, @\exposid{native-abi}@<T>>>
1653316533
using @\libmember{vec}{simd}@ = basic_vec<T, @\exposid{deduce-abi-t}@<T, N>>;
1653416534

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

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

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

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

1702617026
namespace std {

0 commit comments

Comments
 (0)