boost::simd Namespace Reference

Main Boost.SIMD namespace. More...

Classes

struct  abi_of
 Type/Size to ABI mapping. More...
 
struct  abi_of< logical< Type >, N >
 
struct  as_arithmetic
 
struct  as_logical
 Convert type to its logical type counterpart. More...
 
struct  as_pack
 Extension point for pack-liek type generation. More...
 
struct  cardinal_of
 Computes the register width required to store an instance of any type T. More...
 
struct  downgrade
 For any fundamental type T, provides a member typedef type which is a type of the same category but with a halved size if possible. More...
 
struct  expected_cardinal
 Expected cardinal of register. More...
 
struct  expected_cardinal< logical< Type >, Extension >
 
struct  has_native_storage
 Checks if a type is Vectorizable with native storage. More...
 
struct  is_bitwise_logical
 Checks if type is not scalar. More...
 
struct  is_iterator
 Checks if type is iterator. More...
 
struct  is_logical_mask
 Is a SIMD vector both bitwise_logical and contain either all 0 or ~0. More...
 
struct  is_not_pack
 Checks if type is not a pack. More...
 
struct  is_not_scalar
 Checks if type is not scalar. More...
 
struct  is_pack
 Checks if type is a pack. More...
 
struct  is_pack< pack< T, N, ABI > >
 
struct  is_pointing_to
 Check for pointer/pointee compatibility. More...
 
struct  is_power_of_2_
 
struct  is_scalar
 Checks if type is scalar. More...
 
struct  logical
 Typed boolean value. More...
 
struct  logical_
 Logical type hierarchy tag. More...
 
struct  musl_tag
 
struct  native_cardinal
 Expected cardinal of current architecture register. More...
 
class  pack
 High-level interface for manipulating SIMD data. More...
 
struct  pack_
 
struct  pedantic_tag
 
struct  plain_tag
 
struct  preferred_alignment
 Computes the preferred alignment for any type T vectorized with a given cardinal Cardinal. More...
 
struct  raw_tag
 
struct  real_of
 Compute the underlying real type of a given type. More...
 
struct  real_of< boost::simd::logical< T > >
 
struct  residual_tag
 
struct  restricted_tag
 
struct  saturated_tag
 
struct  splatted_tag
 
struct  std_tag
 

Typedefs

template<typename T , std::size_t Cardinal = 0ULL>
using allocator = boost::alignment::aligned_allocator< T, preferred_alignment< T, Cardinal >::value >
 Convenience alias defining a standard compliant allocator returning memory which alignment is compatible with the storage of boot::simd::pack<T,Cardinal> or the actual alignment of T if T is not an arithmetic type. More...
 
template<typename Type , std::size_t N>
using abi_of_t = typename abi_of< Type, N >::type
 Eager short-cut to abi_of.
 
template<typename T >
using as_logical_t = typename as_logical< T >::type
 Eager short-cut to the as_logical meta-function. More...
 
template<typename T >
using cardinal_of_t = typename cardinal_of< T >::type
 Eager short-cut for cardinal_of.
 
template<typename T , typename Sign = dispatch::sign_of_t<T>>
using downgrade_t = typename simd::downgrade< T, Sign >::type
 Eager short-cut to simd::downgrade. More...
 
template<typename T >
using is_bitwise_logical_t = typename is_bitwise_logical< T >::type
 Eager short-cut to is_bitwise_logical meta-function.
 
template<typename T >
using is_pack_t = typename is_pack< T >::type
 Eager short-cut for is_pack_t.
 
template<typename T >
using is_not_pack_t = typename is_not_pack< T >::type
 Eager short-cut for is_not_pack_t.
 
template<typename T >
using real_of_t = typename real_of< T >::type
 Eager short-cut to real_of meta-function.
 

Functions

template<typename T >
std::ostream & operator<< (std::ostream &os, logical< T > const &v)
 Stream insertion operator.
 
template<typename T >
logical< T > operator== (logical< T > const &a, logical< T > const &b)
 Equality comparison operator.
 
template<typename T >
logical< T > operator!= (logical< T > const &a, logical< T > const &b)
 Inequality comparison operator.
 
template<typename T >
logical< T > operator&& (logical< T > const &a, logical< T > const &b)
 Equality comparison operator.
 
template<typename T >
logical< T > operator|| (logical< T > const &a, logical< T > const &b)
 Inequality comparison operator.
 
template<typename T , typename U , typename Mask >
detail::masked_pointer< T, Mask > mask (T *ptr, Mask const &status, U const &def)
 Marks a pointer as being masked. More...
 
template<typename T , typename Mask >
detail::masked_pointer< T, Mask, true > mask (T *ptr, Mask const &status)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename T , std::size_t N>
void swap (pack< T, N > &lhs, pack< T, N > &rhs) noexcept
 Swap two packs of same type and cardinal.
 
template<typename T , std::size_t N>
std::ostream & operator<< (std::ostream &os, pack< T, N > const &p)
 Stream insertion for pack.
 
template<typename T , typename Pred >
bool all_of (T const *first, T const *last, Pred const &pred)
 Returns true if pred evaluates to true for all the elements in the ContiguousRange [first,last) or if the range is empty, and false otherwise. More...
 
template<typename T >
bool all_of (T const *first, T const *last)
 Returns true if all the elements in the ContiguousRange [first,last) are not equal to zero or if the range is empty, and false otherwise. More...
 
template<typename T , typename Pred >
bool any_of (T const *first, T const *last, Pred const &pred)
 Returns @ true if pred avaluates to true for any of the elements in the ContiguousRange [first,last), and ^c false otherwise (in particular when the range is empty). More...
 
template<typename T >
bool any_of (T const *first, T const *last)
 Returns @ true if any of the elements in the ContiguousRange [first,last) is not equal to zero, and false otherwise (in particular when the range is empty). More...
 
template<typename T >
T * copy (T const *first, T const *last, T *out)
 Copies the elements in the range, defined by [first, last) to another range beginning at out. More...
 
template<typename T , typename Size >
T * copy_n (T const *first, Size n, T *out)
 Copies the elements in the range, defined by [first, last) to another range beginning at out. More...
 
template<typename T , typename U >
std::iterator_traits< const T * >::difference_type count (T const *first, T const *last, U const &val)
 Returns the number of elements in the ContiguousRange [first,last) that compare equal to val. More...
 
template<typename T , typename Pred >
std::iterator_traits< const T * >::difference_type count_if (T const *first, T const *last, Pred pred)
 Returns he number of elements in the range [first,last) for which pred returns true. More...
 
template<typename T >
bool equal (T const *first, T const *last, const T *first2)
 Returns true if the range [first, last) is equal to the range [first2, first2 + (last - first)), and false otherwise. More...
 
template<typename T , typename Pred >
bool equal (T const *first1, T const *last1, T const *first2, Pred const &f)
 Returns true if all the pairs in the range [first1, last1) and the range [first2, first2 + (last1 - first1)), satisfy f and false otherwise. More...
 
template<typename T , typename U >
void fill (T *first, T *last, U value)
 Fill the COntiguousRange [first,last) with a given value. More...
 
template<typename T , typename U >
T const * find (T const *first, T const *last, U const &val)
 Returns an iterator to the first element in the range [first,last) for which the element equals val. More...
 
template<typename T , typename Pred >
T const * find_if (T const *first, T const *last, Pred const &pred)
 Returns an iterator to the first element in the range [first,last) for which std::forward<Pred>(pred) returns true. More...
 
template<typename T , typename Pred >
T const * find_if_not (T const *first, T const *last, Pred const &pred)
 Returns an iterator to the first element in the range [first,last) for which pred returns false. More...
 
template<typename T , typename Gen >
void generate (T *first, T *last, Gen g)
 Assigns each element in range [first, last) a value generated by the successive calls to the given function object g. More...
 
template<typename T , typename Size , typename Gen >
const T * generate_n (T *first, Size n, Gen g)
 Assigns values, generated by given function object g, to the first n elements in the range beginning at first. More...
 
template<typename T , typename T1 , typename T2 >
void iota (T *first, T *last, T1 seed, T2 step)
 Fills the range [first, last) with sequentially increasing values, starting with seed and repetitively evaluating value += step. More...
 
template<typename T , typename T1 >
void iota (T *first, T *last, T1 seed)
 Fills the range [first, last) with sequentially increasing values starting with seed. More...
 
template<typename T >
bool lexicographical_compare (T const *first1, T const *last1, const T *first2, const T *last2)
 Returns true if the range [first1, last1) is lexicographically less than the second range [first2, last2), and false otherwise. More...
 
template<typename T , typename Pred >
bool lexicographical_compare (T const *first1, T const *last1, T const *first2, T const *last2, Pred comp)
 Returns true if the range [first1, last1) is lexicographically less than the second range [first2, first2 + (last1 - first1)), and false otherwise using comp as elementwise comparison. More...
 
template<typename T , typename Comp >
T const * max_element (T const *first, T const *last, Comp comp)
 Returns an iterator pointing to the element with the greatest value in the range [first,last). More...
 
template<typename T , typename Comp >
max_val (T const *first, T const *last, Comp comp)
 Returns the value of the element with the smallest value in the range [first,last), The largest possible value for the order if the range is empty. More...
 
template<typename T >
max_val (T const *first, T const *last)
 Returns the value of the element with the smallest value in the range [first,last), The largest possible value for the order if the range is empty. More...
 
template<typename T , typename Comp >
T const * min_element (T const *first, T const *last, Comp comp)
 Returns an iterator pointing to the element with the smallest value in the range [first,last). More...
 
template<typename T , typename Comp >
min_val (T const *first, T const *last, Comp comp)
 Returns the value of the element with the smallest value in the range [first,last), The largest possible value for the order if the range is empty. More...
 
template<typename T >
min_val (T const *first, T const *last)
 Returns the value of the element with the smallest value in the range [first,last), The largest possible value for the order if the range is empty. More...
 
template<typename T , typename Pred >
bool none_of (T const *first, T const *last, Pred f)
 Returns true if f returns false for all the elements in the range [first,last) or if the range is empty, and false otherwise. More...
 
template<typename T , typename Pred >
bool not_all_of (T const *first, T const *last, Pred f)
 Returns true if pred returns false on any element in the range [first,last), and false otherwise (in particular when the range is empty). More...
 
template<typename T >
reduce (T const *first, T const *last, T init)
 Computes the sum over elements in the given Contiguous Range [first, last[ and the initial value init. More...
 
template<typename T , typename F >
reduce (T const *first, T const *last, T init, F binop)
 Reduces the range [first; last), possibly permuted and aggregated in unspecified manner, along with the initial value init over binary_op. More...
 
template<typename T >
void replace (T *first, T *last, T const &old_val, T const &new_val)
 Replaces all elements that are equal to old_value with new_value in the range [first, last). More...
 
template<typename T , typename P >
void replace_if (T *first, T *last, P const &p, T const &new_val)
 Replaces all elements for which predicate p returns true by new_value in the range [first, last). More...
 
template<typename T , typename U , typename UnOp >
U * transform (T const *first, T const *last, U *out, UnOp const &f)
 Applies the given function f to the Contiguous Range [first, last[ and stores the result in another Contiguous Range, beginning at out. More...
 
template<typename T1 , typename T2 , typename U , typename BinOp >
U * transform (T1 const *first1, T1 const *last1, T2 const *first2, U *out, BinOp const &f)
 Applies the given function f to pairs of elements from two ranges: one defined by [first1, last1[ and the other beginning at first2, and stores the result in another Contiguous Range, beginning at out. More...
 
template<typename T , typename Unop , typename Binop >
transform_reduce (T const *first, T const *last, Unop unop, T init, Binop binop)
 Applies unary_op to each element in the range [first; last) and reduces the results (possibly permuted and aggregated in unspecified manner) along with the initial value init over binary_op. More...
 
template<typename T , typename U , typename V , typename Binop1 , typename Binop2 >
transform_reduce (T const *first1, T const *last1, U const *first2, Binop1 transform, V init, Binop2 gsum)
 Applies transform binary operator to each element in the range [first1; last1) and [first2, ) and reduces the results (possibly permuted and aggregated in unspecified manner) along with the initial value init over generalized sum gsum binary operator. More...
 
Value abs (Value const &x)
 The function object abs computes the absolute value of its parameter. More...
 
IEEEValue acos (IEEEValue const &x)
 This function object returns the inverse cosine in radian. More...
 
IEEEValue acosd (IEEEValue const &x)
 This function object returns the inverse cosine in degree. More...
 
IEEEValue acosh (IEEEValue const &x)
 This function object returns the hyperbolic cosine argument: \(\log(x+\sqrt{x^2-1})\). More...
 
IEEEValue acospi (IEEEValue const &x)
 This function object returns the inverse cosine in \(\pi\) multiples. More...
 
IEEEValue acot (IEEEValue const &x)
 This function object returns the inverse cotangent. More...
 
IEEEValue acotd (IEEEValue const &x)
 This function object returns the inverse cotangent in degree. More...
 
IEEEValue acoth (IEEEValue const &x)
 This function object returns the hyperbolic cotangent argument \(\frac12\log\frac{x+1}{x-1}\). More...
 
IEEEValue acotpi (IEEEValue const &x)
 This function object returns the inverse cotangent in pi multiples. More...
 
IEEEValue acsc (IEEEValue const &x)
 This function object returns the inverse cosecant in radian: \(\arcsin(1/x)\). More...
 
IEEEValue acscd (IEEEValue const &x)
 This function object returns the inverse cosecant in degree: \((180/\pi) \arcsin(1/x)\). More...
 
IEEEValue acsch (IEEEValue const &x)
 This function object returns the hyperbolic cosecant argument \(\mathop{\textrm{asinh}}(1/x)\). More...
 
IEEEValue acscpi (IEEEValue const &x)
 This function object returns the inverse secant in \(\pi\) multiples: \((1/\pi) \arcsin(1/x)\). More...
 
template<typename T , typename Pointer , typename Offset >
aligned_load (Pointer ptr, Offset o)
 Load a value from aligned memory into a generic variable. More...
 
template<typename T , typename Pointer >
aligned_load (Pointer ptr)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename Value , typename Pointer , typename Offset , typename Mask >
void aligned_store (Value const &val, Pointer const &ptr, Offset const &offset, Mask const &mask)
 Store a value at an aligned memory location. More...
 
template<typename Value , typename Pointer >
void aligned_store (Value const &val, Pointer ptr)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename Value , typename Pointer , typename Offset >
void aligned_store (Value const &val, Pointer const &ptr, Offset const &offset)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
bool all (Value const &x)
 This function object returns true if all elements of the argument are non zero. More...
 
bool any (Value const &x)
 This function object returns true if at least one element of the argument is non zero. More...
 
IEEEValue arg (IEEEValue const &x)
 This function computes the angular orientation of its floating parameter (the result is undifined for Nan entries if the pedantic_ decorator is not used) More...
 
IEEEValue asec (IEEEValue const &x)
 This function object returns the inverse secant in radian: \(\arccos(1/x)\). More...
 
IEEEValue asecd (IEEEValue const &x)
 This function object returns the inverse secant in degree: \((180/\pi) \arccos(1/x)\). More...
 
IEEEValue asech (IEEEValue const &x)
 This function returns the hyperbolic secant argument \(\mathop{\textrm{acosh}}(1/x)\). More...
 
IEEEValue asecpi (IEEEValue const &x)
 This function object returns the inverse secant in \(\pi\) multiples: \((1/\pi) \arccos(1/x)\). More...
 
IEEEValue asin (IEEEValue const &x)
 This function object returns the inverse sine. More...
 
IEEEValue asind (IEEEValue const &x)
 This function object returns the inverse sine in degree. More...
 
IEEEValue asinh (IEEEValue const &x)
 This function object returns the hyperbolic sine argument: \(\log(x+\sqrt{x^2+1})\). More...
 
IEEEValue asinpi (IEEEValue const &x)
 This function object returns the inverse sine in \(\pi\) multiples. More...
 
IEEEValue atan (IEEEValue const &x)
 This function object returns the inverse tangent. More...
 
IEEEValue atan2 (IEEEValue const &y, IEEEValue const &x)
 This function object returns the quadrant aware atan2 function. More...
 
IEEEValue atan2d (IEEEValue const &y, IEEEValue const &x)
 This function object returns the atan2d function : atan2 in degrees. More...
 
IEEEValue atan2pi (IEEEValue const &y, const IEEEValue &x)
 This function object returns the atan2pi function : atan2 in pi multiples. More...
 
IEEEValue atand (IEEEValue const &x)
 This function object returns the inverse tangent in degree. More...
 
IEEEValue atanh (IEEEValue const &x)
 This function object returns the hyperbolic tangent argument \(\frac12\log\frac{1+x}{1-x}\). More...
 
IEEEValue atanpi (IEEEValue const &x)
 This function object returns the inverse tangent in \(\pi\) multiples. More...
 
Value average (Value const &x, Value const &y)
 This function object computes the arithmetic mean of its parameters. More...
 
as_floating_t< Valuebitfloating (Value const &x)
 This function object transforms an integer value to a floating point one with a preserving order formula. More...
 
as_integer_t< Valuebitinteger (Value const &x)
 This function object transforms a floating point value in an integer with a preserving order formula. More...
 
Value bitofsign (Value const &x)
 This function object returns a value of the same type as the input with all bits set to zero except the sign bit which is preserved. More...
 
as_integer_t< Value, unsigned > bits (Value const &x)
 This function object returns an unsigned integer value which has the same bits as the input. More...
 
Value0 bitwise_and (Value0 const &x, Value1 const &y)
 This function object computes the bitwise and of the two parameters. More...
 
Value0 bitwise_andnot (Value0 const &x, Value1 const &y)
 This function object computes the bitwise and not of its parameters. More...
 
template<typename Target >
Target bitwise_cast (Value const &x)
 This function object function implementing bitwise_cast capabilities. More...
 
Value bitwise_not (Value const &x)
 This function object returns the return the bitwise bitwise_not of the entry Infix notation can be used with operator '~' This is a convenience alias of complement. More...
 
Value0 bitwise_notand (Value0 const &x, Value1 const &y)
 This function object computes the bitwise not and of its parameters. More...
 
Value0 bitwise_notor (Value0 const &x, Value1 const &y)
 This function object computes the bitwise not or of its parameters. More...
 
Value0 bitwise_or (Value0 const &x, Value1 const &y)
 This function object returns the return the bitwise or of the two parameters. More...
 
Value0 bitwise_ornot (Value0 const &x, Value1 const &y)
 This function object computes the bitwise or not of its parameters. More...
 
Value1 bitwise_select (Value0 const &sel, Value1 const &x, Value2 const &y)
 This function object returns the bitwise selection of bits from the second or third operand according to the setting of the bits of the first operand. More...
 
Value0 bitwise_xor (Value0 const &x, Value1 const &y)
 This function object returns the return the bitwise xor of the two parameters. More...
 
template<std::size_t Index, typename Value >
Value broadcast (Value const &v)
 Returns a boost::simd::pack filled with the value of the N th value of its argument. More...
 
IEEEValue cbrt (IEEEValue const &x)
 This function object returns the cubic root of its argument: \(\sqrt[3]{x}\). More...
 
Value ceil (Value const &x)
 This function object computes the smallest integral representable value of its parameter type which is greater or equal to it. More...
 
Value clamp (Value const &x, Value const &lo, Value const &hi)
 This function object clamps x between lo and hi. More...
 
as_integer_t< Valueclz (Value const &x)
 This function object returns the bit count of leading zeros. More...
 
Value combine (Value const &x, Value const &y)
 This function object concatenates two values of the same type to build a boost::simd::pack but with a cardinal twice as large. More...
 
bool compare_equal (Value const &x, Value const &y)
 This function object returns all(x == y), i.e. More...
 
bool compare_greater (Value const &x, Value const &y)
 This function object returns the return a bool that is the result of the lexicographic test for > on all elements of the entries. More...
 
bool compare_greater_equal (Value const &x, Value const &y)
 This function object returns a bool that is the result of the lexicographic test for >= on all elements of the entries. More...
 
bool compare_less (Value const &x, Value const &y)
 This function object returns a bool that is the result of the lexicographic test for < on all elements of the entries. More...
 
bool compare_less_equal (Value const &x, Value const &y)
 This function object returns a bool that is the result of the lexicographic test for <= on all elements of the entries. More...
 
bool compare_not_equal (Value const &x, Value const &y)
 This function object returns true if and only if two corresponding entries elements are not equal. More...
 
Value complement (Value const &x)
 This function object returns the return the bitwise complement of the entry Infix notation can be used with operator '~'. More...
 
Value conj (Value const &x)
 function object computes the complex conjugate of its parameter More...
 
Value copysign (Value const &x, Value const &y)
 This function object returns x with the sign of y. More...
 
IEEEValue cos (IEEEValue const &x)
 This function object returns the cosine of the input in radians. More...
 
IEEEValue cosd (IEEEValue const &x)
 This function object returns the cosine of the input in degree: \(\cos(\pi x/180)\). More...
 
IEEEValue cosh (IEEEValue const &x)
 This function object returns the hyperbolic cosine: \((e^{x}+e^{-x})/2\). More...
 
Value cospi (Value const &x)
 This function object returns the cosine of angle in \(\pi\) multiples: \(\cos(\pi x)\). More...
 
IEEEValue cot (IEEEValue const &x)
 This function object returns the cotangent of the input in radian: \(\cos(x)/\sin(x)\). More...
 
IEEEValue cotd (IEEEValue const &x)
 This function object returns the cotangent of input in degree: \(\cos(\pi x/180)/\sin(\pi x/180)\). More...
 
IEEEValue coth (IEEEValue const &x)
 This unction object returns the hyperbolic cotangent: \((e^{x}+e^{-x})/(e^{x}-e^{-x})\). More...
 
IEEEValue cotpi (IEEEValue const &x)
 This function object returns the cotangent of input in \(\pi\) multiples: \(\cos(\pi x)/sin(\pi x)\). More...
 
IEEEValue csc (IEEEValue const &x)
 This function object returns the cosecante of the input in radian : \(1/\sin(x)\). More...
 
IEEEValue cscd (IEEEValue const &x)
 This function object returns the cosecant in degree: \(1/\sin(180/(\pi x))\). More...
 
IEEEValue csch (IEEEValue const &x)
 This function object returns the hyperbolic cosecant: \(1/\sinh(1/x)\). More...
 
IEEEValue cscpi (IEEEValue const &x)
 This function object returns the cosecant of angle in \(\pi\) multiples: \(1/c\sin(\pi x)\). More...
 
as_integer_t< Valuectz (Value const &x)
 This function object returns the bit count of trailing zeroes. More...
 
Value cummax (Value const &x)
 This function object computes the cumulate maximum of the argument elements. More...
 
Value cummin (Value const &x)
 This function object computes the cumulate minimum of the argument elements. More...
 
Value cumprod (Value const &x)
 This function object computes the cumulated product of the argument elements. More...
 
Value cumsum (Value const &x)
 This function object returns the cumulate sum of the argument elements. More...
 
Value dec (Value const &x)
 This function object returns its parameter decremented by 1. More...
 
std::array< Value, 2 > deinterleave (Value const &x, Value const &y)
 This function object performs a complete deinterleaving of its arguments. More...
 
Value deinterleave_first (Value const &x, Value const &y)
 This function object performs the extraction of the first part of a boost::simd::pack containing two channels of data. More...
 
Value deinterleave_second (Value const &x, Value const &y)
 This function object performs the extraction of the second part of a boost::simd::pack containing two channels of data. More...
 
Value dist (Value const &x, Value const &y)
 This function object computes the absolute value of the difference of its parameters. More...
 
Value divides (Value const &x, Value const &y)
 Function object implementing divides capabilities. More...
 
scalar_of_t< Valuedot (Value const &x, Value const &y)
 This function object returns the returns the dot product of the two arguments. More...
 
Value enumerate (const ScalarValue &seed=0, const ScalarValue &step=1)
 Generates a value containing sequentially increasing elements, starting with seed and repetitively evaluating seed+=step. More...
 
Value eps (Value const &x)
 This object function computes the distance between its argument and the next representable value of its argument type. More...
 
IEEEValue erf (IEEEValue const &x)
 This function object computes the error function: \(\displaystyle \frac{2}{\sqrt\pi}\int_0^{x} e^{-t^2}\mbox{d}t\). More...
 
IEEEValue erfc (IEEEValue const &x)
 This fFunction object computes the complementary error function \(\displaystyle \frac{2}{\sqrt\pi}\int_{x}^{\infty} e^{-t^2}\mbox{d}t\). More...
 
IEEEValue erfcx (IEEEValue const &x)
 This function object computes the underflow-compensating (scaled) complementary error function: \(\displaystyle e^{x^2}\frac{2}{\sqrt\pi}\int_{x}^{\infty} e^{-t^2}\mbox{d}t\). More...
 
IEEEValue exp (IEEEValue const &x)
 This function object returns the exponential of its argument: \(e^{x}\). More...
 
IEEEValue exp10 (IEEEValue const &x)
 This function object returns the base ten exponential of its argument: \(10^{x}\). More...
 
IEEEValue exp2 (IEEEValue const &x)
 This function object returns the base two exponential of its argument: \(2^{x}\). More...
 
IEEEValue expm1 (IEEEValue const &x)
 This function object returns the exponential of its argument minus one: \(e^{x}-1\). More...
 
as_integer_t< Valueexponent (Value const &x)
 This function object returns the exponent of the floating input. More...
 
as_integer_t< IEEEValueexponentbits (IEEEValue const &x)
 This function object returns the exponent bits of its arguments as an integer value, the other bits (sign and mantissa) being just masked. More...
 
IEEEValue exprecneg (IEEEValue const &x)
 This function object computes: \(e^{-\frac1x}\). More...
 
IEEEValue exprecnegc (IEEEValue const &x)
 This function object computes: \(1-e^{-\frac1x}\). More...
 
IEEEValue expx2 (IEEEValue const &x, IEEEValue const &s=1)
 This function object returns the exponential of the square of its argument or its inverse: \(e^{x^2}\) or \(e^{-x^2}\). More...
 
template<typename Value , typename Offset >
scalar_of_t< Valueextract (Value const &v, Offset const &o)
 Random-access extraction of a value subcomponent. More...
 
as_integer_t< Valueffs (Value const &x)
 This function object returns the index of the first bit set (beginning with the least significant bit) in the parameter. More...
 
as_integer_t< Valuefirstbitset (Value const &x)
 This function object returns the bit pattern in which the only bit set is the first bit set (beginning with the least significant bit) in the parameter. More...
 
as_integer_t< Valuefirstbitunset (Value const &x)
 This function object returns the bit pattern in which the only bit set is the first bit unset (beginning with the least significant bit) in the parameter. More...
 
Value fix (Value const &x)
 This function object computes the truncation toward Zero of its parameter. More...
 
Value floor (Value const &x)
 This function object computes the greatest integral representable value of its parameter type which is less or equal to it. More...
 
Value fma (Value const &x, Value const &y, Value const &z)
 This function object computes the (fused) multiply add of these three parameters. More...
 
Value fms (Value const &x, Value const &y, Value const &z)
 This function object computes the (fused) multiply substract of these three parameters. More...
 
Value fnma (Value const &x, Value const &y, Value const &z)
 This function object computes the negated (fused) multiply add of its three parameters. More...
 
Value fnms (Value const &x, Value const &y, Value const &z)
 This function object computes the negated (fused) multiply substract of its three parameters. More...
 
as_integer_t< IEEEValuefpclassify (IEEEValue const &x)
 This function object categorizes floating point value into the following categories: zero, subnormal, normal, infinite, nan, or implementation-defined. More...
 
Value frac (Value const &x)
 This function object returns the fractional part of the input i.e. More...
 
std::pair< IEEEValue, IEEEValuefrexp (IEEEValue const &x)
 This function object returns a mantissa and an exponent pair for the input. More...
 
IEEEValue gamma (IEEEValue const &x)
 This function object computes the gamma function: \(\displaystyle \int_0^{\infty} t^{x-1}e^{-t}\mbox{d}t\). More...
 
IEEEValue gammaln (IEEEValue const &x)
 This function object computes the natural logarithm of the absolute value of the Gamma function: \(\displaystyle \log |\Gamma(x)|\). More...
 
Value genmaskc (Value const &x)
 This function object returns a mask of bits. More...
 
downgrade_t< Valuegroup (Value const &x, Value const &y)
 This function object aggregates two boost::simd::pack of basic type T and cardinal N into a single boost::simd::pack of cardinal 2*N and using a type twice smaller than T. More...
 
as_integer_t< Value, unsigned > hi (Value const &x)
 This function object returns the high part of the entry as an unsigned integer of the size of the input. More...
 
bitset< cardinal_of< Value >::value > hmsb (Value const &v)
 Returns a bs::bitset build from the most significant bit of each value its argument. More...
 
template<typename Value , uintmax_t... Coef>
Value horn (Value const &x)
 Computes the value of a polynomial by Horner algorithm. More...
 
template<typename Value , uintmax_t... Coef>
Value horn1 (Value const &x)
 Computes the value of a polynomial by Horner algorithm which leading 1 coeficient. More...
 
IEEEValue hypot (IEEEValue const &x, IEEEValue const &y)
 This function object computes the hypothenuse length: \((x^2 + y^2)^{1/2}\). More...
 
as_integer_t< Valueiceil (Value const &x)
 This function object computes the integer conversion of the ceil of its parameter. More...
 
Value1 if_allbits_else (Value0 const &c, Value1 const &f)
 This function object returns Allbits if c is True else returns f. More...
 
Value1 if_dec (Value0 const &c, Value1 const &x)
 This function object conditionally returns x-1 (respectively x) if c is True (respectively False) More...
 
Value1 if_else (Value0 const &c, Value1 const &t, Value1 const &f)
 This function object conditionally returns t (respectively f) if c is True (respectively False) More...
 
Value1 if_else_allbits (Value0 const &c, Value1 const &x)
 This function object conditionally returns x (respectively Allbits) if c is True (respectively False) More...
 
Value1 if_else_nan (Value0 const &c, Value1 const &x)
 This function object conditionally returns x (respectively Nan) if c is True (respectively False) More...
 
Value1 if_else_zero (Value0 const &c, Value1 const &t)
 This function object conditionally returns x (respectively Zero) if c is True (respectively False) More...
 
Value1 if_inc (Value0 const &c, Value1 const &x)
 This function object conditionally returns x+1 (respectively x) if c is True (respectively False) More...
 
Value1 if_minus (Value0 const &c, Value1 const &x, Value1 const &y)
 This function object conditionally returns x-y (respectively x) if c is True (respectively False) More...
 
Value1 if_nan_else (Value0 const &c, Value1 const &x)
 This function object conditionally returns Nan (respectively x) if c is True (respectively False) More...
 
Value1 if_neg (Value0 const &c, Value1 const &x)
 This function object conditionally returns -x if c is True and x otherwise. More...
 
Value if_one_else_zero (Value const &c)
 This function object conditionally returns 1 (respectively 0) if c is True (respectively False) More...
 
Value1 if_plus (Value0 const &c, Value1 const &x, Value1 const &y)
 This function object conditionally returns x+y (respectively x) if c is True (respectively False) More...
 
Value1 if_zero_else (Value0 const &c, Value1 const &x)
 This function object conditionally returns 0 (respectively x) if c is True (respectively False) More...
 
Value if_zero_else_one (Value const &c)
 This function object conditionally returns 0 (respectively 1) if c is True (respectively False) More...
 
Value ifix (Value const &x)
 This function object convert to integer by saturated truncation. More...
 
as_integer_t< Valueifloor (Value const &x)
 This function object computes the integer conversion of the floor of its parameter. More...
 
Value1 ifnot_dec (Value0 const &c, Value1 const &x)
 This function object conditionally returns x (respectively x-1) if c is True (respectively False) More...
 
Value1 ifnot_inc (Value0 const &c, Value1 const &x)
 This function object conditionally returns x (respectively x+1) if c is True (respectively False) More...
 
Value1 ifnot_minus (Value0 const &c, Value1 const &x, Value1 const &y)
 This function object conditionally returns x (respectively x-y) if c is True (respectively False) More...
 
Value1 ifnot_neg (Value0 const &c, Value1 const &x)
 This function object conditionally returns -x if c is False and x otherwise. More...
 
Value1 ifnot_plus (Value0 const &c, Value1 const &x, Value1 const &y)
 This function object conditionally returns x (respectively x+y) if c is True (respectively False) More...
 
std::pair< IEEEValue, as_integer_t< IEEEValue > > ifrexp (IEEEValue const &x)
 This function object computes a mantissa and an exponent pair for the input. More...
 
as_integer_t< Valueilog2 (Value const &x)
 This function object returns the integer part of the base 2 logarithm of the input. More...
 
as_integer_t< Valueilogb (Value const &x)
 This function object Extracts the value of the unbiased exponent from the floating-point argument x, and returns it as a signed integer value. More...
 
Value inc (Value const &x)
 This function object returns its parameter incremented by 1. More...
 
IEEEValue indeg (IEEEValue const &x)
 This function object converts radian to degree. More...
 
as_integer_t< Valueinearbyint (Value const &x)
 This function object computes the integer conversion of the nearbyint of its parameter. More...
 
IEEEValue inrad (IEEEValue const &x)
 This function object converts degree to radian. More...
 
template<typename Value , typename Offset >
void insert (Data &d, Offset const &o, Value const &v)
 Modify the value of the nth element of a mutable data. More...
 
std::array< Value, 2 > interleave (Value const &x, Value const &y)
 This function object performs a complete interleaving of its arguments. More...
 
Value interleave_even (Value const &x, Value const &y)
 This function object computes a vector from a combination of the two inputs. More...
 
Value interleave_first (Value const &x, Value const &y)
 This function object computes a vector from a combination of the two inputs. More...
 
Value interleave_odd (Value const &x, Value const &y)
 This function object computes a vector from a combination of the two inputs. More...
 
Value interleave_second (Value const &x, Value const &y)
 This function object computes a vector from a combination of the two inputs. More...
 
as_integer_t< Valueiround (Value const &x)
 This function object computes the integer conversion of the round of its parameter. More...
 
as_logical_t< Valueis_denormal (Value const &x)
 This function object returns True or False according x is denormal or not. More...
 
as_logical_t< Valueis_equal (Value const &x, Value const &y)
 This function object returns True or False according x and y are equal or not. More...
 
as_logical_t< Valueis_equal_with_equal_nans (Value const &x, Value const &y)
 This unction object returns True or False according x and y are equal or not. More...
 
as_logical_t< Valueis_eqz (Value const &x)
 This function object returns True or False according x is Zero or not. More...
 
as_logical_t< Valueis_even (Value const &x)
 This function object returns True or False according x is even or not. More...
 
as_logical_t< Valueis_finite (Value const &x)
 This function object returns True if x is not inf, -inf or nan, else returns False. More...
 
as_logical_t< Valueis_flint (Value const &x)
 This function object returns True or False according x is a flint or not. More...
 
as_logical_t< Valueis_gez (Value const &x)
 This function object returns True or False according x is greater or equal to Zero or not. More...
 
as_logical_t< Valueis_greater (Value const &x, Value const &y)
 This function object returns True or False according x is greater than y or not. More...
 
as_logical_t< Valueis_greater_equal (Value const &x, Value const &y)
 This function object returns True or False according x is greater or equal to y or not. More...
 
as_logical_t< Valueis_gtz (Value const &x)
 This function object returns True or False according x is greater than Zero or not. More...
 
as_logical_t< Valueis_imag (Value const &x)
 This function object returns True or False according x is pure imaginary or not. More...
 
as_logical_t< Valueis_inf (Value const &x)
 This function object returns True if x is inf or -inf else returns False. More...
 
as_logical_t< Valueis_invalid (Value const &x)
 This function object returns True if x is inf, -inf or nan, else returns False. More...
 
as_logical_t< Valueis_less (Value const &x, Value const &y)
 This function object returns True or False according x is less than y or not. More...
 
as_logical_t< Valueis_less_equal (Value const &x, Value const &y)
 This function object returns True or False depending on whether x is less than or equal to y or not. More...
 
as_logical_t< Valueis_lessgreater (Value const &x, Value const &y)
 This function object returns True if neither x nor y is Nan and x is not equal to y. More...
 
as_logical_t< Valueis_lez (Value const &x)
 This function object returns True or False according x is less or equal to Zero or not. More...
 
as_logical_t< Valueis_ltz (Value const &x)
 This function object returns True or False according x is less than Zero or not. More...
 
as_logical_t< Valueis_nan (Value const &x)
 This function object returns True or False according x is nan or not. More...
 
as_logical_t< Valueis_negative (Value const &x)
 This function object returns True if x is negative else False. More...
 
as_logical_t< Valueis_nez (Value const &x)
 This function object returns True if x is not equal to Zero else returns False. More...
 
as_logical_t< Valueis_ngez (Value const &x)
 This function object returns True if x is not greater or equal to Zero else returns False. More...
 
as_logical_t< Valueis_ngtz (Value const &x)
 This function object returns True if x is not greater than Zero else returns False. More...
 
as_logical_t< Valueis_nlez (Value const &x)
 This function object returns True if x is not less or equal to Zero else returns False. More...
 
as_logical_t< Valueis_nltz (Value const &x)
 This function object returns True if x is not less than Zero else returns False. More...
 
as_logical_t< Valueis_normal (Value const &x)
 This function object returns True or False according x is normal or not. More...
 
as_logical_t< Valueis_not_denormal (Value const &x)
 This function object returns True or False according x is not denormal. More...
 
as_logical_t< Valueis_not_equal (Value const &x)
 This function object returns True if x and y are not equal else False. More...
 
as_logical_t< Valueis_not_equal_with_equal_nans (Value const &x, Value const &y)
 This function object returns True if x and y are not equal else False, nans being considered equal. More...
 
as_logical_t< Valueis_not_greater (Value const &x, Value const &y)
 This function object returns True if x is not greater than y else returns False. More...
 
as_logical_t< Valueis_not_greater_equal (Value const &x, Value const &y)
 This function object returns True if x is not greater or equal to y else returns False. More...
 
as_logical_t< Valueis_not_imag (Value const &x)
 This function object returns True or False according x is not pure imaginary or is. More...
 
as_logical_t< Valueis_not_infinite (Value const &x)
 This function object returns True if x is finite or Nan. More...
 
as_logical_t< Valueis_not_less (Value const &x, Value const &y)
 This function object returns True or False according x is not less than y or not. More...
 
as_logical_t< Valueis_not_less_equal (Value const &x, Value const &y)
 This function object returns True or False depending on whether x is not less or equal to y or is. More...
 
as_logical_t< Valueis_not_nan (Value const &x)
 This function object returns False or True according x is Nan or not. More...
 
as_logical_t< Valueis_not_real (Value const &x)
 This function object returns True or False according x is real or not. More...
 
as_logical_t< Valueis_odd (Value const &x)
 This function object returns True or False according x is odd or not. More...
 
as_logical_t< Valueis_ord (Value const &x, Value const &y)
 This function object returns True if neither x nor y is Nan. More...
 
as_logical_t< Valueis_positive (Value const &x)
 This function object returns True if x is positive else False. More...
 
as_logical_t< Valueis_real (Value const &x)
 This function object returns True or False according x is real or not. More...
 
bool is_simd_logical (Value const &x)
 returns True if each vector elements have all bits or no bit set. More...
 
as_logical_t< Valueis_unord (Value const &x, Value const &y)
 This function object returns True if x or y is nan. More...
 
bool isincluded (Value const &x, Value const &y)
 This function object returns true is only if all bits set in x are also set in y. More...
 
bool isincluded_c (Value const &x, Value const &y)
 This function object returns true is only if all bits set in x are not set in y. More...
 
Value itrunc (Value const &x)
 Function object implementing itrunc capabilities. More...
 
Value0 ldexp (Value0 const &x, Value1 const &n)
 This function object returns \(x\) multiplied by by \(2^{n}\). More...
 
as_integer_t< Valuelo (Value const &x)
 This function object returns the low part of the entry as an unsigned integer of the size of the input. More...
 
template<typename T , typename Pointer , typename Offset >
load (Pointer ptr, Offset o)
 Load a value from memory into a generic variable. More...
 
template<typename T , typename Pointer >
load (Pointer ptr)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
IEEEValue log (IEEEValue const &x)
 This function object returns the natural logarithm of its argument. More...
 
IEEEValue log10 (IEEEValue const &x)
 This function object returns the base ten logarithm of its argument. More...
 
IEEEValue log1p (IEEEValue const &x)
 This function object computes \(\log(1+x)\) with good accuracy even for small \(x\) values. More...
 
IEEEValue log2 (IEEEValue const &x)
 This function object returns the base two logarithm of its argument. More...
 
as_logical_t< Value0 > logical_and (Value0 const &x, Value1 const &y)
 This function object returns the logical and of its two parameters. More...
 
as_logical_t< Value0 > logical_andnot (Value0 const &x, Value1 const &y)
 This function object returns the logical and of the first argument and of the logical negation of the second argument. More...
 
as_logical_t< Value0 > logical_not (Value0 const &x, Value1 const &y)
 This function object returns the return the logical negation of the argument. More...
 
as_logical_t< Value0 > logical_notand (Value0 const &x, Value1 const &y)
 This function object returns the logical and of the negation of the first argument with the second argument. More...
 
as_logical_t< Value0 > logical_notor (Value0 const &x, Value1 const &y)
 This function object returns the logical or of the negation of the first argument with the second argument. More...
 
as_logical_t< Value0 > logical_or (Value0 const &x, Value1 const &y)
 This function object returns the return the logical or of the two arguments. More...
 
as_logical_t< Value0 > logical_ornot (Value0 const &x, Value1 const &y)
 This function object returns the logical or of the first argument and of the negation the second argument. More...
 
as_logical_t< Value0 > logical_xor (Value0 const &x, Value1 const &y)
 This function object returns the logical xor of the first argument and of the second argument. More...
 
Value lookup (Value const &x, IntegerValue const &n)
 Function object implementing lookup capabilities. More...
 
as_logical_t< Valuemajority (Value const &x, Value const &y, Value const &z)
 This function object returns True if at least two inputs are not Zero else False. More...
 
template<typename T , typename.. Args>
make (Args const &... args)
 Build a value of type T from a list of scalar values of types Args. More...
 
template<typename Target , typename.. Value>
make (as_< Target > const &t, Value const &... args)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
Value mantissa (Value const &x)
 This function object returns the signed mantissa of the input argument. More...
 
as_logical_t< Valuemask2logical (Value const &x)
 This function object converts an arithmetic mask where each element is Zero or Allbits to a logical value. More...
 
Value max (Value const &x, Value const &y)
 This function object computes the largest of its parameter. More...
 
scalar_of_t< Valuemaximum (Value const &x)
 This function object returns the greatest element of the argument. More...
 
Value maxmag (Value const &x, Value const &y)
 This function object returns the value with the greatest absolute value among its arguments. More...
 
Value maxnum (Value const &x, Value const &y)
 This function object returns the largest of two floating point arguments, treating NaNs as missing data (between a NaN and a numeric value, the numeric value is chosen). More...
 
Value maxnummag (Value const &x, Value const &y)
 This function object returns between two floating point arguments, the one having the greatest absolute value, treating NaNs as missing data (between a NaN and a numeric value, the numeric value is chosen). More...
 
Value meanof (Value const &x, Value const &y)
 This function object computes the arithmetic mean of its parameters. More...
 
Value min (Value const &x, Value const &y)
 This function object computes the smallest of its parameter. More...
 
scalar_of_t< Valueminimum (Value const &x)
 This function object returns the smallest element of the argument. More...
 
Value minmag (Value const &x, Value const &y)
 This function object returns the input value which have the least absolute value. More...
 
Value minmod (Value const &x, Value const &y)
 This function object computes the smallest of its parameter if they share the same sign, zero instead. More...
 
Value minnum (Value const &x, Value const &y)
 This function object returns the smaller of two floating point arguments, treating NaNs as missing data (between a NaN and a numeric value, the numeric value is chosen). More...
 
Value minnummag (Value const &x, Value const &y)
 This function object returns between two floating point arguments, the one having the smallest absolute value, treating NaNs as missing data (between a NaN and a numeric value, the numeric value is chosen). More...
 
Value minus (Value const &x, Value const &y)
 This function object computes the difference of two parameters of the same type. More...
 
Value multiplies (Value const &x, Value const &y)
 This function object computes the product of two parameters of the same type. More...
 
template<typename T >
auto musl_ (T const &x)
 calls a version of the functor for which the algorithm is inspired by the musl library code. More...
 
std::size_t nbtrue (Value const &x)
 This function object returns the number of non Zero elements of the argument. More...
 
Value nearbyint (Value const &x)
 This function object computes the rounded to even value of its parameter. More...
 
Value negate (Value const &x, Value const &y)
 This function object returns the first element multiplied by 1, 0 or -1 depending on the fact its second argument is greater, equal or lesser than zero. More...
 
Value negatenz (Value const &x, Value const &y)
 This function object returns x multiplied by the signnz of y. More...
 
Value next (Value const &x)
 This function object returns the smallest representable value strictly greater than the parameter except: More...
 
Value nextafter (Value const &x, Value const &y)
 Returns the next representable value of x in the direction of y. More...
 
as_integer_t< Valuenextpow2 (Value const &x)
 This function object returns the smallest integer n such that saturated_(abs)(x) is less or equal to \(2^n\). More...
 
bool none (Value const &x)
 This function object returns true if all elements of the argument are zero. More...
 
Value nthroot (Value const &x, IntegerValue const &n)
 This function object returns the nth root of its first argument: \(\sqrt[n]{x}\). More...
 
Value oneminus (Value const &x)
 This function object returns one minus the entry. More...
 
template<typename Target , typename Value >
Target pack_cast (Value const &x)
 This function objects converts the elements of its argument to an arbitrary type. More...
 
template<typename T >
auto pedantic_ (T const &x)
 calls a version of the functor that can do some aggressive optimization at the cost of certain properties or corner cases of the original functor. More...
 
template<typename T >
auto plain_ (T const &x)
 calls the plain version of the functor This decorator is used internally as a tag to choose the boost simd kernel among other More...
 
Value plus (Value const &x, Value const &y)
 This function object computes the sum of two parameters of the same type. More...
 
as_integer_t< Valuepopcnt (Value const &x)
 This function object returns the number of set bits in the input. More...
 
IEEEValue pow_abs (IEEEValue const &x, IEEEValue const &y)
 This function object computes \(|x|^y\). More...
 
Value prev (Value const &x)
 This function object returns the greatest representable value strictly less than the parameter except: More...
 
scalar_of_t< Valueprod (Value const &x)
 This function object returns the product of the elements of the argument. More...
 
Value quadrant (Value const &n)
 This function object computes the quadrant of its parameter. More...
 
template<typename T >
auto raw_ (T const &x)
 grant access to low-level, low-accuracy intrinsics provided by some SIMD architectures. More...
 
Value rec (Value const &x)
 This function object returns the inverse (reciprocal) of the entry. More...
 
IEEEValue refine_rec (IEEEValue const &x, IEEEValue const &est)
 This function object performs a Newton-Raphson step to improve precision of a reciprocate estimate. More...
 
IEEEValue refine_rsqrt (IEEEValue const &x, IEEEValue const &est)
 This function object performs a Newton-Raphson step to improve precision of rsqrt estimate. More...
 
Value rem (Value const &x, Value const &y)
 This function object computes the remainder of the two parameters of the same type with or without option. More...
 
IEEEValue rem_2pi (IEEEValue const &x)
 This function object returns the compute the remainder modulo \(2\pi\). More...
 
std::pair< IEEEValue, IEEEValuerem_pio2 (IEEEValue const &x)
 This function object computes the remainder modulo \(\pi/2\), and the angle quadrant between 0 and 3. More...
 
std::pair< IEEEValue, IEEEValuerem_pio2_cephes (IEEEValue const &x)
 This function object returns the Computes the remainder modulo \(\pi/2\) with cephes algorithm, and the angle quadrant between 0 and 3. More...
 
std::pair< IEEEValue, IEEEValuerem_pio2_medium (IEEEValue const &x)
 This function object computes the remainder modulo \(\pi/2\) with medium algorithm, and the angle quadrant between 0 and 3. More...
 
std::pair< IEEEValue, IEEEValuerem_pio2_straight (IEEEValue const &x)
 This function object returns the Computes the remainder modulo \(\pi/2\). More...
 
std::pair< IEEEValue, as_integer_t< IEEEValue > > remquo (IEEEValue const &x, IEEEValue const &y)
 This function object computes the remainder (rem) and a part of the quotient (quo) upon division of x by y. More...
 
Value repeat_lower_half (Value const &x)
 Repeat the lower half of a vector. More...
 
Value repeat_upper_half (Value const &x)
 Function object implementing repeat_upper_half capabilities. More...
 
template<typename T >
auto restricted_ (T const &x)
 restricts the range of validity of some functors (thus avoiding tests and branching), but ensures an as accurate though speedier version on the limited range. More...
 
Value reverse (Value const &x)
 Function object implementing reverse. More...
 
IntegerValue reversebits (IntegerValue const &x)
 This function object returns the bits in reverse order for each scalar entry. More...
 
Value rol (Value const &x, IntegerValue const &n)
 This function object returns the first entry rotated left by the value of the second entry. More...
 
Value ror (Value const &x, IntegerValue const &n)
 This function object returns the first entry rotated right by the value of the second entry. More...
 
IEEEValue round (IEEEValue const &x, IntegerValue const &n=0)
 This function object computes the rounding away from zero of its parameter. More...
 
Value 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. More...
 
Value rror (Value const &x, IntegerValue const &n)
 This function object returns the first entry rotated right or left by the absolute value of the second entry, according to its sign. More...
 
Value rshl (Value const &x, IntegerValue const &n)
 This function object returns the first entry shifted left or right by the absolute value of the second entry, according to its sign. More...
 
Value rshr (Value const &x, IntegerValue const &n)
 This function object returns the first entry shifted right or left by the absolute value of the second entry, according to its sign. More...
 
IEEEValue rsqrt (IEEEValue const &x)
 This function object returns the inverse of the square root of the input. More...
 
IEEEValue safe_max (IEEEValue const &x)
 This function object returns a safe maximal value relative to the input, i.e. More...
 
IEEEValue safe_min (IEEEValue const &x)
 This function object returns a safe mininimal value relative to the input, i.e. More...
 
template<typename Target >
Value saturate (Value const &x)
 This function object returns the saturated value of the first input in the template parameter type, but in the same type as the argument. More...
 
template<typename T >
auto saturated_ (T const &x)
 provides a saturated version of some functors which produce integral typed values on return. More...
 
as_integer_t< Valuesbits (Value const &x)
 This function object returns the signed integer value which has the bit pattern of the input. More...
 
IEEEValue sec (IEEEValue const &x)
 This function object returns the secant of the angle in radian: \(1/\cos(x)\). More...
 
IEEEValue secd (IEEEValue const &x)
 This function object returns the secant of the angle in degree: \(1/\cos(\pi x/180)\). More...
 
IEEEValue sech (IEEEValue const &x)
 This function object returns the hyperbolic secant: \(1/\cosh(x)\). More...
 
IEEEValue secpi (IEEEValue const &x)
 This function object returns the secant of the angle in pi multiples: \(1/\cos(\pi x)\). More...
 
Value shift_left (Value const &x, IntegerValue const &n)
 This function object returns the first parameter shifted left by the second one. More...
 
Value shift_right (Value const &x, IntegerValue const &n)
 This function object returns the first operand shifted right by the second one. More...
 
Value shl (Value const &x, IntegerValue const &n)
 This function object returns the first operand shifted left by the second one. More...
 
Value shr (Value const &x, IntegerValue const &n)
 This function object returns the first parameter logically shifted right by value of the second one. More...
 
template<int P0, int ... Ps, typename T >
shuffle (T const &x)
 Shuffle the elements of a boost::simd::pack using an index permutation described by compile-time integral constants. More...
 
template<int P0, int ... Ps, typename T >
shuffle (T const &x, T const &y)
 Shuffle the elements of two boost::simd::pack using an index permutation described by compile-time integral constants. More...
 
template<typename Permutation , typename T >
shuffle (T const &x)
 Shuffle the elements of a boost::simd::pack using an index permutation described by compile-time meta-function. More...
 
template<typename Permutation , typename T >
shuffle (T const &x, T const &y)
 Shuffle the elements of two boost::simd::pack using an index permutation described by compile-time meta-function. More...
 
Value sign (Value const &x)
 This function object returns the sign of x. More...
 
as_logical_t< Valuesignbit (Value const &x)
 This function object returns True or false according to the bit of sign set or not set. More...
 
IEEEValue signgam (IEEEValue const &x)
 This function object computes the sign of gamma function without explicitly computing the costly gamma function. More...
 
IEEEValue significants (IEEEValue const &x, IntegerValue const &n)
 This function object returns the rounding to n significants digits of its argument. More...
 
Value signnz (Value const &x)
 This function object returns the sign of x. More...
 
IEEEValue sin (IEEEValue const &x)
 This function object returns the sine of the input in radians. More...
 
IEEEValue sinc (IEEEValue const &x)
 This function object returns the Computes the sinus cardinal value of its parameter, i.e. More...
 
std::pair< IEEEValue, IEEEValuesincos (IEEEValue const &x)
 This function object computes simultaneouly and at lower cost the sine and cosine of the input. More...
 
std::pair< IEEEValue, IEEEValuesincosd (IEEEValue const &x)
 This function object computes simultaneously and at lower cost the sind and cosd of the input. More...
 
std::pair< IEEEValue, IEEEValuesincospi (IEEEValue const &x)
 This function object computes simultaneously and at lower cost the sine and cosine of the input in \(\pi\) multiples. More...
 
IEEEValue sincpi (IEEEValue const &x)
 This function object returns the Computes the sinpi cardinal value of its parameter, i.e. More...
 
IEEEValue sind (IEEEValue const &x)
 This function object returns the sine of the angle in degree: \(\sin(\pi x/180)\). More...
 
IEEEValue sinh (IEEEValue const &x)
 This function object returns the hyperbolic sine: \((e^{x}-e^{-x})/2\). More...
 
IEEEValue sinhc (IEEEValue const &x)
 This function object returns the hyperbolic cardinal sine: \(\sinh(x)/x\). More...
 
std::pair< IEEEValue, IEEEValuesinhcosh (IEEEValue const &x)
 This function object computes simultaneously and at lower cost the sinh and cosh of the input. More...
 
IEEEValue sinpi (IEEEValue const &x)
 This function object returns the sine of the parameter in \(\pi\) multiples: \(\sin(\pi x)\). More...
 
std::array< ValueO, 2 > slice (Value1 const &x)
 Type-preserving pack slicing. More...
 
Value0 slice_high (Value1 const &x)
 Type-preserving pack higher slicing. More...
 
ValueO slice_low (Value1 const &x)
 Type-preserving pack lower slicing. More...
 
Value sort (Value const &x)
 Function object implementing sort capabilities. More...
 
as_simd_t< Valuesplat (Value const &x)
 Splat. More...
 
std::array< upgrade_t< Value >, 2 > split (Value const &x)
 Function object implementing split capabilities. More...
 
upgrade_t< Valuesplit_high (Value const &x)
 Function object implementing split_high capabilities. More...
 
upgrade_t< Valuesplit_low (Value const &x)
 Function object implementing split_low capabilities. More...
 
std::pair< upgrade_t< Value >, upgrade_t< Value > > split_multiplies (Value const &x, Value const &y)
 Function object implementing split_multiplies capabilities. More...
 
Value sqr (Value const &x)
 This function computes the square of its parameter. More...
 
Value sqr_abs (Value const &x)
 This function computes the square of the absolute value of its parameter. More...
 
Value sqrt (Value const &x)
 This function object computes the square root of its parameter. More...
 
IEEEValue sqrt1pm1 (IEEEValue const &x)
 This function object returns \(\sqrt{1+x}-1\) and the result is accurate even for x with small modulus. More...
 
Value stirling (Value const &x)
 This function object computes an approwimation of the gamma function using the Stirling formula: \(\sqrt{2 \pi} x^{x-\frac12} e^{-x} ( 1 + \frac1{x} P(\frac1{x}))\), where \(P\) is a polynomial. More...
 
template<typename Value , typename Pointer , typename Offset >
void store (Value const &val, Pointer const &ptr, Offset const &offset, Mask const &mask)
 Store a value at an arbitrary memory location. More...
 
template<typename Value , typename Pointer >
void store (Value const &val, Pointer ptr)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
template<typename Value , typename Pointer , typename Offset >
void store (Value const &val, Pointer const &ptr, Offset const &offset)
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 
scalar_of_t< Valuesum (Value const &x)
 This function object returns the sum of the elements of the SIMD argument. More...
 
Value swapbytes (Value const &x)
 This function object reverses the byte order of each scalar element of the parameter. More...
 
IEEEValue tan (IEEEValue const &x)
 This function object returns the tangent of the input in radians: \(\sin(x)/\cos(x)\). More...
 
IEEEValue tand (IEEEValue const &x)
 This function object returns the tangent of the input in degrees: \(\sin(\pi x/180)/\cos(\pi x/180) \). More...
 
IEEEValue tanh (IEEEValue const &x)
 This function object returns the hyperbolic tangent: \(\sinh(x)/\cosh(x)\). More...
 
IEEEValue tanpi (IEEEValue const &x)
 This function object returns the tangent of angle in \(\pi\) multiples: \(\cos(\pi x)/sin(\pi x)\). More...
 
Value tenpower (IntegerValue const &n)
 Function object implementing tenpower capabilities. More...
 
as_floating_t< Valuetofloat (Value const &x)
 This function object converts its parameter to floating point value occupying the same bit size. More...
 
as_integer_t< Valuetoint (Value const &x)
 This function object converts its parameter to integer by truncation. More...
 
as_integer_t< Value, unsigned > touint (Value const &x)
 This function object converts its parameter to unsigned integer by truncation. More...
 
Value trunc (Value const &x)
 This function object computes the truncation toward Zero of its parameter. More...
 
std::pair< Value, Valuetwo_add (Value const &x, Value const &y)
 This function object computes two reals of the type of the inputs (in an std::pair) r0 and r1 such that: More...
 
std::pair< Value, Valuetwo_prod (Value const &x, Value const &y)
 This function object computes two reals of the type of the inputs (in an std::pair) r0 and r1 such that: More...
 
std::pair< Value, Valuetwo_split (Value const &x)
 This function object computes two reals r0 and r1 (in an std::pair) such that: More...
 
IntegerValue twopower (IntegerValue const &x)
 This function object returns \(2^n\) (or 0 if n is less than zero) More...
 
Value ulp (Value const &x)
 This function object returns the ulp distance to the nearest (distinct) element of the same type. More...
 
IEEEValue ulpdist (IEEEValue const &x, IEEEValue const &y)
 This function object returns ulp distance between its arguments. More...
 
Value unary_minus (Value const &x)
 This function object returns the elementwise unary minus of the parameter. More...
 
Value unary_plus (Value const &x)
 This function object returns the elementwise unary plus of the parameter. More...
 
template<typename T >
T * allocate (std::size_t size)
 Allocates space for a memory block of size elements of type T with an alignment compatible with the current SIMD instructions set. More...
 
template<typename T , typename Arch >
T * allocate (std::size_t size, Arch const &arch)
 Allocates space for a memory block of size elements of type T with an alignment compatible with the selected SIMD instructions set arch. More...
 
template<typename T >
void deallocate (T *ptr)
 Deallocates space from a memory block of allocated by boost::simd::allocate. More...
 
template<typename T >
bool is_aligned (T const *ptr) noexcept
 Checks if a pointer is aligned within current architecture's constraints. More...
 
template<typename T , typename Arch >
bool is_aligned (T const *ptr, Arch const &arch) noexcept
 Checks if a pointer is aligned withing a given architecture's constraints. More...
 
template<typename T >
cardinal_of_t< T > cardinal (T &&v) noexcept
 Computes the register size of any given value v. More...
 
Value div (Option const &, Value const &x, Value const &y)
 This function object computes the quotient of the two parameters of the same type with or without option. More...
 
as_arithmetic_t< LogicalValuegenmask (const LogicalValue &a)
 This function object returns a mask of bits. More...
 
Value if_allbits_else_zero (Value const &x)
 This function object returns a mask of bits. More...
 
as_arithmetic_t< LogicalValueif_zero_else_allbits (LogicalValue const &c)
 This function object conditionally returns 0 (respectively Allbits) if c is True (respectively False) More...
 
Value modf (Value const &x, Value const &y)
 This function object returns the integral and fractional parts of the input. More...
 
IEEEValue pow (IEEEValue const &x, Value const &y)
 This function object computes \(x^y\). More...
 
IEEEValue pow2 (IEEEValue const &x, Value const &y)
 This function object returns \( x 2^y\). More...
 
Value predecessor (Value const &x)
 This function object returns the n-th greatest element strictly less than the parameter. More...
 
template<std::size_t N>
Value slide (Value const &x, Value const &y)
 This function object returns a vector extracted from the concatanation of x and y (resp. More...
 
Value successor (Value const &x)
 This function object returns the n-th least element strictly greater than the parameter. More...
 

Variables

const detail::decorator< splatted_tagsplatted_ = {}
 Decorator for selecting splatted version of reduction function. More...
 
const detail::decorator< std_tagstd_ = {}
 provides an easy way to use the original stdlibc++ function that is mimicked by one of our functors. More...
 

Detailed Description

Main Boost.SIMD namespace.