◆ ifix()

Value boost::simd::ifix ( Value const &  x)

This function object convert to integer by saturated truncation.

This is an alias of saturated_(toint) (See toint)

Header <boost/simd/function/ifix.hpp>
Example:
#include <boost/simd/arithmetic.hpp>
#include <boost/simd/pack.hpp>
#include <boost/simd/function/enumerate.hpp>
#include <iostream>
namespace bs = boost::simd;
using pack_ft = bs::pack <float, 8>;
int main()
{
pack_ft pf = bs::enumerate<pack_ft>(-2.56, 0.51);
std::cout
<< "---- simd" << '\n'
<< " <- pf = " << pf << '\n'
<< " -> bs::ifix(pf) = " << bs::ifix(pf) << '\n';
float xf = 3.2f, yf = -3.2f;
std::cout
<< "---- scalar" << '\n'
<< " <- xf = " << xf<< '\n'
<< " -> bs::ifix(xf) = " << bs::ifix(xf) << '\n'
<< " <- yf = " << yf << '\n'
<< " -> bs::ifix(yf) = " << bs::ifix(yf) << '\n';
return 0;
}
Possible output:
---- simd
<- pf = (-2.56, -2.05, -1.54, -1.03, -0.52, -0.00999999, 0.5, 1.01)
-> bs::ifix(pf) = (-2, -2, -1, -1, 0, 0, 0, 1)
---- scalar
<- xf = 3.2
-> bs::ifix(xf) = 3
<- yf = -3.2
-> bs::ifix(yf) = -3