@@ -16515,24 +16515,24 @@
16515
16515
template<@\exposid{simd-size-type}@ N, class V> struct resize { using type = @\seebelow@; };
16516
16516
template<@\exposid{simd-size-type}@ N, class V> using @\libmember{resize_t}{simd}@ = typename resize<N, V>::type;
16517
16517
16518
- // \ref{simd.flags}, Load and store flags
16518
+ // \ref{simd.flags}, load and store flags
16519
16519
template<class... Flags> struct flags;
16520
16520
inline constexpr flags<> @\libmember{flag_default}{simd}@{};
16521
16521
inline constexpr flags<@\exposid{convert-flag}@> @\libmember{flag_convert}{simd}@{};
16522
16522
inline constexpr flags<@\exposid{aligned-flag}@> @\libmember{flag_aligned}{simd}@{};
16523
16523
template<size_t N> requires (has_single_bit(N))
16524
16524
constexpr flags<@\exposid{overaligned-flag}<N>@> @\libmember{flag_overaligned}{simd}@{};
16525
16525
16526
- // \ref{simd.iterator}, Class template \exposid{simd-iterator}
16526
+ // \ref{simd.iterator}, class template \exposid{simd-iterator}
16527
16527
template<class V>
16528
16528
class @\exposidnc{simd-iterator}@; // \expos
16529
16529
16530
- // \ref{simd.class}, Class template \tcode{basic_vec}
16530
+ // \ref{simd.class}, class template \tcode{basic_vec}
16531
16531
template<class T, class Abi = @\exposid{native-abi}@<T>> class basic_vec;
16532
16532
template<class T, @\exposid{simd-size-type}@ N = @\exposid{simd-size-v}@<T, @\exposid{native-abi}@<T>>>
16533
16533
using @\libmember{vec}{simd}@ = basic_vec<T, @\exposid{deduce-abi-t}@<T, N>>;
16534
16534
16535
- // \ref{simd.mask.class}, Class template \tcode{basic_mask}
16535
+ // \ref{simd.mask.class}, class template \tcode{basic_mask}
16536
16536
template<size_t Bytes, class Abi = @\exposid{native-abi}@<@\exposid{integer-from}@<Bytes>>> class basic_mask;
16537
16537
template<class T, @\exposid{simd-size-type}@ N = @\exposid{simd-size-v}@<T, @\exposid{native-abi}@<T>>>
16538
16538
using @\libmember{mask}{simd}@ = basic_mask<sizeof(T), @\exposid{deduce-abi-t}@<T, N>>;
16627
16627
constexpr void partial_store(const basic_vec<T, Abi>& v, I first, S last,
16628
16628
const typename basic_vec<T, Abi>::mask_type& mask, flags<Flags...> f = {});
16629
16629
16630
- // \ref{simd.permute.static}, Permute by static index generator
16630
+ // \ref{simd.permute.static}, permute by static index generator
16631
16631
static constexpr @\exposid{simd-size-type}@ @\libmember{zero_element}{simd}@ = @\impdefx{value of \tcode{simd::zero_element}}@;
16632
16632
static constexpr @\exposid{simd-size-type}@ @\libmember{uninit_element}{simd}@ = @\impdefx{value of \tcode{simd::uninit_element}}@;
16633
16633
@@ -16636,13 +16636,13 @@
16636
16636
template<@\exposid{simd-size-type}@ N = @\seebelow@, @\exposconcept{simd-mask-type}@ M, class IdxMap>
16637
16637
constexpr resize_t<N, M> permute(const M& v, IdxMap&& idxmap);
16638
16638
16639
- // \ref{simd.permute.dynamic}, Permute by dynamic index
16639
+ // \ref{simd.permute.dynamic}, permute by dynamic index
16640
16640
template<@\exposconcept{simd-vec-type}@ V, @\exposconcept{simd-integral}@ I>
16641
16641
constexpr resize_t<I::size(), V> permute(const V& v, const I& indices);
16642
16642
template<@\exposconcept{simd-mask-type}@ M, @\exposconcept{simd-integral}@ I>
16643
16643
constexpr resize_t<I::size(), M> permute(const M& v, const I& indices);
16644
16644
16645
- // \ref{simd.permute.mask}, Permute by active mask bits
16645
+ // \ref{simd.permute.mask}, permute by active mask bits
16646
16646
template<@\exposconcept{simd-vec-type}@ V>
16647
16647
constexpr V compress(const V& v, const typename V::mask_type& selector);
16648
16648
template<@\exposconcept{simd-mask-type}@ M>
16661
16661
constexpr M expand(const M& v, const type_identity_t<M>& selector,
16662
16662
const M& original = {});
16663
16663
16664
- // \ref{simd.permute.memory}, Permute to and from memory
16664
+ // \ref{simd.permute.memory}, permute to and from memory
16665
16665
template<class V = @\seebelow@,
16666
16666
ranges::@\libconcept{contiguous_range}@ R, @\exposconcept{simd-integral}@ I, class... Flags>
16667
16667
requires ranges::@\libconcept{sized_range}@<R>
16769
16769
constexpr T reduce_max(const basic_vec<T, Abi>&,
16770
16770
const typename basic_vec<T, Abi>::mask_type&) noexcept;
16771
16771
16772
- // \ref{simd.alg}, Algorithms
16772
+ // \ref{simd.alg}, algorithms
16773
16773
template<class T, class Abi>
16774
16774
constexpr basic_vec<T, Abi>
16775
16775
min(const basic_vec<T, Abi>& a, const basic_vec<T, Abi>& b) noexcept;
16791
16791
constexpr auto select(const basic_mask<Bytes, Abi>& c, const T& a, const U& b)
16792
16792
noexcept -> decltype(@\exposid{simd-select-impl}@(c, a, b));
16793
16793
16794
- // \ref{simd.math}, Mathematical functions
16794
+ // \ref{simd.math}, mathematical functions
16795
16795
template<@\exposconcept{math-floating-point}@ V> constexpr @\exposid{deduced-vec-t}@<V> acos(const V& x);
16796
16796
template<@\exposconcept{math-floating-point}@ V> constexpr @\exposid{deduced-vec-t}@<V> asin(const V& x);
16797
16797
template<@\exposconcept{math-floating-point}@ V> constexpr @\exposid{deduced-vec-t}@<V> atan(const V& x);
@@ -16814,18 +16814,18 @@
16814
16814
frexp(const V& value, rebind_t<int, @\exposid{deduced-vec-t}@<V>>* exp);
16815
16815
template<@\exposconcept{math-floating-point}@ V>
16816
16816
constexpr rebind_t<int, @\exposid{deduced-vec-t}@<V>> ilogb(const V& x);
16817
- template<@\exposconcept{math-floating-point}@ V> constexpr @\exposid{deduced-vec-t}@<V> ldexp(const V& x, const
16818
- rebind_t<int, @\exposid{deduced-vec-t}@<V>>& exp);
16817
+ template<@\exposconcept{math-floating-point}@ V>
16818
+ constexpr @\exposid{deduced-vec-t}@<V> ldexp(const V& x, const rebind_t<int, @\exposid{deduced-vec-t}@<V>>& exp);
16819
16819
template<@\exposconcept{math-floating-point}@ V> constexpr @\exposid{deduced-vec-t}@<V> log(const V& x);
16820
16820
template<@\exposconcept{math-floating-point}@ V> constexpr @\exposid{deduced-vec-t}@<V> log10(const V& x);
16821
16821
template<@\exposconcept{math-floating-point}@ V> constexpr @\exposid{deduced-vec-t}@<V> log1p(const V& x);
16822
16822
template<@\exposconcept{math-floating-point}@ V> constexpr @\exposid{deduced-vec-t}@<V> log2(const V& x);
16823
16823
template<@\exposconcept{math-floating-point}@ V> constexpr @\exposid{deduced-vec-t}@<V> logb(const V& x);
16824
16824
template<class T, class Abi>
16825
- constexpr basic_vec<T, Abi> modf(const type_identity_t<basic_vec<T, Abi>>& value,
16826
- basic_vec<T, Abi>* iptr);
16827
- template<@\exposconcept{math-floating-point}@ V> constexpr @\exposid{deduced-vec-t}@<V> scalbn(const V& x, const
16828
- rebind_t<int, @\exposid{deduced-vec-t}@<V>>& n);
16825
+ constexpr basic_vec<T, Abi>
16826
+ modf(const type_identity_t<basic_vec<T, Abi>>& value, basic_vec<T, Abi>* iptr);
16827
+ template<@\exposconcept{math-floating-point}@ V>
16828
+ constexpr @\exposid{deduced-vec-t}@<V> scalbn(const V& x, const rebind_t<int, @\exposid{deduced-vec-t}@<V>>& n);
16829
16829
template<@\exposconcept{math-floating-point}@ V>
16830
16830
constexpr @\exposid{deduced-vec-t}@<V> scalbln(
16831
16831
const V& x, const rebind_t<long int, @\exposid{deduced-vec-t}@<V>>& n);
16882
16882
constexpr @\exposid{math-common-simd-t}@<V0, V1, V2> fma(const V0& x, const V1& y, const V2& z);
16883
16883
template<class V0, class V1, class V2>
16884
16884
constexpr @\exposid{math-common-simd-t}@<V0, V1, V2>
16885
- lerp(const V0& a, const V1& b, const V2& t) noexcept;
16885
+ lerp(const V0& a, const V1& b, const V2& t) noexcept;
16886
16886
template<@\exposconcept{math-floating-point}@ V>
16887
16887
constexpr rebind_t<int, @\exposid{deduced-vec-t}@<V>> fpclassify(const V& x);
16888
16888
template<@\exposconcept{math-floating-point}@ V>
@@ -16914,13 +16914,11 @@
16914
16914
constexpr typename @\exposid{math-common-simd-t}@<V0, V1>::mask_type
16915
16915
isunordered(const V0& x, const V1& y);
16916
16916
template<@\exposconcept{math-floating-point}@ V>
16917
- @\exposid{deduced-vec-t}@<V> assoc_laguerre(const rebind_t<unsigned, @\exposid{deduced-vec-t}@<V>>& n, const
16918
- rebind_t<unsigned, @\exposid{deduced-vec-t}@<V>>& m,
16919
- const V& x);
16917
+ @\exposid{deduced-vec-t}@<V> assoc_laguerre(const rebind_t<unsigned, @\exposid{deduced-vec-t}@<V>>& n,
16918
+ const rebind_t<unsigned, @\exposid{deduced-vec-t}@<V>>& m, const V& x);
16920
16919
template<@\exposconcept{math-floating-point}@ V>
16921
- @\exposid{deduced-vec-t}@<V> assoc_legendre(const rebind_t<unsigned, @\exposid{deduced-vec-t}@<V>>& l, const
16922
- rebind_t<unsigned, @\exposid{deduced-vec-t}@<V>>& m,
16923
- const V& x);
16920
+ @\exposid{deduced-vec-t}@<V> assoc_legendre(const rebind_t<unsigned, @\exposid{deduced-vec-t}@<V>>& l,
16921
+ const rebind_t<unsigned, @\exposid{deduced-vec-t}@<V>>& m, const V& x);
16924
16922
template<class V0, class V1>
16925
16923
@\exposid{math-common-simd-t}@<V0, V1> beta(const V0& x, const V1& y);
16926
16924
template<@\exposconcept{math-floating-point}@ V> @\exposid{deduced-vec-t}@<V> comp_ellint_1(const V& k);
16960
16958
@\exposid{deduced-vec-t}@<V>
16961
16959
sph_neumann(const rebind_t<unsigned, @\exposid{deduced-vec-t}@<V>>& n, const V& x);
16962
16960
16963
- // \ref{simd.bit}, Bit manipulation
16961
+ // \ref{simd.bit}, bit manipulation
16964
16962
template<@\exposconcept{simd-vec-type}@ V> constexpr V byteswap(const V& v) noexcept;
16965
16963
template<@\exposconcept{simd-vec-type}@ V> constexpr V bit_ceil(const V& v) noexcept;
16966
16964
template<@\exposconcept{simd-vec-type}@ V> constexpr V bit_floor(const V& v) noexcept;
@@ -16979,21 +16977,25 @@
16979
16977
constexpr V rotr(const V& v, int s) noexcept;
16980
16978
16981
16979
template<@\exposconcept{simd-vec-type}@ V>
16982
- constexpr rebind_t<make_signed_t<typename V::value_type>, V> bit_width(const V& v) noexcept;
16980
+ constexpr rebind_t<make_signed_t<typename V::value_type>, V>
16981
+ bit_width(const V& v) noexcept;
16983
16982
template<@\exposconcept{simd-vec-type}@ V>
16984
16983
constexpr rebind_t<make_signed_t<typename V::value_type>, V>
16985
- countl_zero(const V& v) noexcept;
16984
+ countl_zero(const V& v) noexcept;
16986
16985
template<@\exposconcept{simd-vec-type}@ V>
16987
- constexpr rebind_t<make_signed_t<typename V::value_type>, V> countl_one(const V& v) noexcept;
16986
+ constexpr rebind_t<make_signed_t<typename V::value_type>, V>
16987
+ countl_one(const V& v) noexcept;
16988
16988
template<@\exposconcept{simd-vec-type}@ V>
16989
16989
constexpr rebind_t<make_signed_t<typename V::value_type>, V>
16990
- countr_zero(const V& v) noexcept;
16990
+ countr_zero(const V& v) noexcept;
16991
16991
template<@\exposconcept{simd-vec-type}@ V>
16992
- constexpr rebind_t<make_signed_t<typename V::value_type>, V> countr_one(const V& v) noexcept;
16992
+ constexpr rebind_t<make_signed_t<typename V::value_type>, V>
16993
+ countr_one(const V& v) noexcept;
16993
16994
template<@\exposconcept{simd-vec-type}@ V>
16994
- constexpr rebind_t<make_signed_t<typename V::value_type>, V> popcount(const V& v) noexcept;
16995
+ constexpr rebind_t<make_signed_t<typename V::value_type>, V>
16996
+ popcount(const V& v) noexcept;
16995
16997
16996
- // \ref{simd.complex.math}, vec complex math
16998
+ // \ref{simd.complex.math}, \tcode{ vec} complex math
16997
16999
template<@\exposconcept{simd-complex}@ V>
16998
17000
constexpr rebind_t<@\exposid{simd-complex-value-type<V>}@, V> real(const V&) noexcept;
16999
17001
@@ -17036,13 +17038,13 @@
17036
17038
}
17037
17039
17038
17040
namespace std {
17039
- // See \ref{simd.alg}, Algorithms
17041
+ // See \ref{simd.alg}, algorithms
17040
17042
using simd::min;
17041
17043
using simd::max;
17042
17044
using simd::minmax;
17043
17045
using simd::clamp;
17044
17046
17045
- // See \ref{simd.math}, Mathematical functions
17047
+ // See \ref{simd.math}, mathematical functions
17046
17048
using simd::acos;
17047
17049
using simd::asin;
17048
17050
using simd::atan;
17135
17137
using simd::sph_legendre;
17136
17138
using simd::sph_neumann;
17137
17139
17138
- // See \ref{simd.bit}, Bit manipulation
17140
+ // See \ref{simd.bit}, bit manipulation
17139
17141
using simd::byteswap;
17140
17142
using simd::bit_ceil;
17141
17143
using simd::bit_floor;
17149
17151
using simd::countr_one;
17150
17152
using simd::popcount;
17151
17153
17152
- // See \ref{simd.complex.math}, vec complex math
17154
+ // See \ref{simd.complex.math}, \tcode{ vec} complex math
17153
17155
using simd::real;
17154
17156
using simd::imag;
17155
17157
using simd::arg;
0 commit comments