29 Numerics library [numerics]

29.10 Data-parallel types [simd]

29.10.7 basic_simd non-member operations [simd.nonmembers]

29.10.7.4 simd complex accessors [simd.complex.access]

constexpr auto real() const noexcept; constexpr auto imag() const noexcept;
Constraints: simd-complex<basic_simd> is modeled.
Returns: An object of type rebind_t<typename T​::​value_type, basic_simd> where the element is initialized to the result of cmplx-func(operator[](i)) for all i in the range [0, size()), where cmplx-func is the corresponding function from <complex>.
template<simd-floating-point V> constexpr void real(const V& v) noexcept; template<simd-floating-point V> constexpr void imag(const V& v) noexcept;
Constraints:
Effects: Replaces each element of the basic_simd object such that the element is replaced with value_type(v[i], operator[](i).imag()) or value_type(operator[](i).real(), v[i]) for real and imag respectively, for all i in the range [0, size()).