Arithmetic operators¶
-
template<class
T
, classA
>
autoxsimd
::
add
(batch<T> const &x, batch<T, A> const &y)¶ Computes the sum of the batches
x
andy
.- Return
- the sum of
x
andy
- Parameters
x
: batch or scalar involved in the addition.y
: batch or scalar involved in the addition.
-
template<class
T
, classA
>
autoxsimd
::
div
(batch<T, A> const &x, batch<T, A> const &y)¶ Computes the division of the batch
x
by the batchy
.- Return
- the result of the division.
- Parameters
x
: scalar or batch of scalarsy
: scalar or batch of scalars
-
template<class
T
, classA
>
batch<T, A>xsimd
::
fma
(batch<T, A> const &x, batch<T, A> const &y, batch<T, A> const &z)¶ Computes
(x*y) + z
in a single instruction when possible.- Return
- the result of the fused multiply-add operation.
- Parameters
x
: a batch of integer or floating point values.y
: a batch of integer or floating point values.z
: a batch of integer or floating point values.
-
template<class
T
, classA
>
batch<T, A>xsimd
::
fms
(batch<T, A> const &x, batch<T, A> const &y, batch<T, A> const &z)¶ Computes
(x*y) - z
in a single instruction when possible.- Return
- the result of the fused multiply-sub operation.
- Parameters
x
: a batch of integer or floating point values.y
: a batch of integer or floating point values.z
: a batch of integer or floating point values.
-
template<class
T
, classA
>
batch<T, A>xsimd
::
fnma
(batch<T, A> const &x, batch<T, A> const &y, batch<T, A> const &z)¶ Computes
-(x*y) + z
in a single instruction when possible.- Return
- the result of the fused negated multiply-add operation.
- Parameters
x
: a batch of integer or floating point values.y
: a batch of integer or floating point values.z
: a batch of integer or floating point values.
-
template<class
T
, classA
>
batch<T, A>xsimd
::
fnms
(batch<T, A> const &x, batch<T, A> const &y, batch<T, A> const &z)¶ Computes
-(x*y) - z
in a single instruction when possible.- Return
- the result of the fused negated multiply-sub operation.
- Parameters
x
: a batch of integer or floating point values.y
: a batch of integer or floating point values.z
: a batch of integer or floating point values.
-
template<class
T
, classA
>
autoxsimd
::
mod
(batch<T, A> const &x, batch<T, A> const &y)¶ Computes the integer modulo of the batch
x
by the batchy
.- Return
- the result of the modulo.
- Parameters
x
: batch involved in the modulo.y
: batch involved in the modulo.
-
template<class
T
, classA
>
autoxsimd
::
mul
(batch<T, A> const &x, batch<T, A> const &y)¶ Computes the product of the batches
x
andy
.- Return
- the result of the product.
- Template Parameters
X
: the actual type of batch.
- Parameters
x
: batch involved in the product.y
: batch involved in the product.
-
template<class
T
, classA
>
batch<T, A>xsimd
::
neg
(batch<T, A> const &x)¶ Computes the opposite of the batch
x
.- Return
- the opposite of
x
. - Parameters
x
: batch involved in the operation.
-
template<class
T
, classA
>
batch<T, A>xsimd
::
pos
(batch<T, A> const &x)¶ No-op on
x
.- Return
x
.- Parameters
x
: batch involved in the operation.
-
template<class
T
, classA
, class = typename std::enable_if<std::is_floating_point<T>::value, void>::type>
batch<T, A>xsimd
::
reciprocal
(batch<T, A> const &x)¶ Computes the approximate reciprocal of the batch
x
.The maximum relative error for this approximation is less than 1.5*2^-12.
- Return
- the reciprocal.
- Parameters
x
: batch of floating point numbers.
-
template<class
T
, classA
>
batch<T, A>xsimd
::
sadd
(batch<T, A> const &x, batch<T, A> const &y)¶ Computes the saturate sum of the batch
x
and the batchy
.- Return
- the result of the saturated addition.
- Template Parameters
X
: the actual type of batch.
- Parameters
x
: batch involved in the saturated addition.y
: batch involved in the saturated addition.
-
template<class
T
, classA
>
batch<T, A>xsimd
::
ssub
(batch<T, A> const &x, batch<T, A> const &y)¶ Computes the saturate difference of the batch
x
and the batchy
.- Return
- the result of the saturated difference.
- Template Parameters
X
: the actual type of batch.
- Parameters
x
: batch involved in the saturated difference.y
: batch involved in the saturated difference.