## ◆ rrol()

 Value boost::simd::rrol ( Value const & x, IntegerValue const & n )

This function object returns the first entry rotated left or right by the absolute value of the second entry, according to its sign.

Note
This function asserts if the integral parameter is out of range
ror, rol, rror
Example:
#include <boost/simd/bitwise.hpp>
#include <boost/simd/pack.hpp>
#include <iostream>
namespace bs = boost::simd;
using iT = std::int32_t;
using pack_it = bs::pack<iT, 4>;
int main() {
pack_it pi = {1, 2, -1, 3};
pack_it qi = {1, -2, 4, -3};
std::cout << "---- simd" << '\n'
<< "<- pi = " << pi << '\n'
<< "<- qi = " << qi << '\n'
<< "-> bs::rrol(pi, qi) = " << bs::rrol(pi, qi) << '\n';
iT xi = 2, yi = 3;
std::cout << "---- scalar" << '\n'
<< "<- xi = " << xi << '\n'
<< "<- yi = " << yi << '\n'
<< "-> bs::rrol(xi, yi) = " << bs::rrol(xi, yi) << '\n';
return 0;
}
Possible output:
---- simd
<- pi = (1, 2, -1, 3)
<- qi = (1, -2, 4, -3)
-> bs::rrol(pi, qi) = (2, -2147483648, -1, 1610612736)
---- scalar
<- xi = 2
<- yi = 3
-> bs::rrol(xi, yi) = 16