std::experimental::simd<T,Abi>::operator+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=

Applies the given compound assignment operator element-wise to each corresponding element of the operands such that for all i in the range of [0,size()) the result is equivalent to:

# Declarations

friend simd& operator+=( simd& lhs, const simd& rhs ) noexcept;

(parallelism TS v2)

friend simd& operator-=( simd& lhs, const simd& rhs ) noexcept;

(parallelism TS v2)

friend simd& operator*=( simd& lhs, const simd& rhs ) noexcept;

(parallelism TS v2)

friend simd& operator/=( simd& lhs, const simd& rhs ) noexcept;

(parallelism TS v2)

friend simd& operator%=( simd& lhs, const simd& rhs ) noexcept;

(parallelism TS v2)

friend simd& operator&=( simd& lhs, const simd& rhs ) noexcept;

(parallelism TS v2)

friend simd& operator|=( simd& lhs, const simd& rhs ) noexcept;

(parallelism TS v2)

friend simd& operator^=( simd& lhs, const simd& rhs ) noexcept;

(parallelism TS v2)

friend simd& operator<<=( simd& lhs, const simd& rhs ) noexcept;

(parallelism TS v2)

friend simd& operator<<=( simd& lhs, int n ) noexcept;

(parallelism TS v2)

friend simd& operator>>=( simd& lhs, const simd& rhs ) noexcept;

(parallelism TS v2)

friend simd& operator>>=( simd& lhs, int n ) noexcept;

(parallelism TS v2)

# Parameters

# Return value

lhs

# Example

#include <cstddef>
#include <experimental/simd>
#include <iomanip>
#include <iostream>
#include <string_view>
namespace stq = std::experimental;
 
void print(const std::string_view rem, const auto x)
{
    std::cout << rem << '\n' << std::fixed;
    for (std::size_t t{}; t != x.size(); ++t)
        std::cout << std::setw(10) << x[t] << ((t + 1) % 8 ? ',' : '\n');
    std::cout << '\n';
}
 
int main()
{
    constexpr auto N = 32UZ;
    using elem_t = long double;
 
    stq::fixed_size_simd<elem_t, N> x{[](elem_t i) { return i / N; }};
    stq::fixed_size_simd<elem_t, N> y{x};
    x = stq::cosh(x);
    y = stq::sinh(y);
    x *= x;
    y *= y;
    print("cosh(x)²:", x);
    print("sinh(x)²:", y);
    auto z = x - y;
    print("cosh(x)² - sinh(x)²:", z);
    std::cout << "reduce(z) = " << stq::reduce(z) << '\n';
}

# See also