/*!
\page arith_real_only arith_real
\note This function supports real inputs only. Complex inputs are not yet supported.
*/

/*!
\page arith_int_only arith_int
\note This function supports integer only.
*/



/**
\addtogroup arrayfire_func
@{



\defgroup arith_func_add add
\ingroup arith_mat

Elementwise addition



\defgroup arith_func_sub sub
\ingroup arith_mat

Elementwise subtraction



\defgroup arith_func_mul mul
\ingroup arith_mat

Elementwise multiply



\defgroup arith_func_div div
\ingroup arith_mat

Elementwise division



\defgroup arith_func_lt lt
\ingroup logic_mat

Less than, an elementwise comparison of two arrays.

Check if the elements of one array are less than those of another array.



\defgroup arith_func_gt gt
\ingroup logic_mat

Greater than comparison, an elementwise comparison of two arrays.

Check if the elements of one array are greater than those of another array.



\defgroup arith_func_le le
\ingroup logic_mat

Less than or equal to, an elementwise comparison of two arrays.

Check if the elements of one array are less than or equal to those of another array.


\defgroup arith_func_ge ge
\ingroup logic_mat

Greater than or equal to, an elementwise comparison of two arrays.

Check if the elements of one array are greater than or equal to those of another array.



\defgroup arith_func_eq eq
\ingroup logic_mat

\brief Equal to, an elementwise comparison of two arrays.

Check if the elements of one array are equal to those of another array.



\defgroup arith_func_neq neq
\ingroup logic_mat

\brief Not equal to, an elementwise comparison of two arrays.

Check if the elements of one array are not equal to those of another array.



\defgroup arith_func_and and
\ingroup logic_mat

Evaluate the logical AND of two arrays.



\defgroup arith_func_or or
\ingroup logic_mat

Evaluate the logical OR of two arrays.



\defgroup arith_func_not not
\ingroup logic_mat

Evaluate the logical NOT of an array.



\defgroup arith_func_neg neg
\ingroup numeric_mat

Negate an array.



\defgroup arith_func_bitnot bitnot
\ingroup logic_mat

Evaluate the bitwise NOT of an array.

\copydoc arith_int_only



\defgroup arith_func_bitand bitand
\ingroup logic_mat

Evaluate the bitwise AND of two arrays.

\copydoc arith_int_only



\defgroup arith_func_bitor bitor
\ingroup logic_mat

Evaluate the bitwise OR of two arrays.

\copydoc arith_int_only



\defgroup arith_func_bitxor bitxor
\ingroup logic_mat

Evaluate the bitwise XOR of two arrays.

\copydoc arith_int_only



\defgroup arith_func_shiftl bitshiftl
\ingroup arith_mat

Shift the bits of integer arrays left.

\copydoc arith_int_only



\defgroup arith_func_shiftr bitshiftr
\ingroup arith_mat

Shift the bits of integer arrays right.

\copydoc arith_int_only



\defgroup arith_func_cast cast
\ingroup helper_mat

Cast an array from one type to another.



\defgroup arith_func_min min
\ingroup numeric_mat

Returns the elementwise minimum between two arrays.



\defgroup arith_func_max max
\ingroup numeric_mat

Returns the elementwise maximum between two arrays.



\defgroup arith_func_clamp clamp
\ingroup numeric_mat

Clamp an array between an upper and a lower limit.



\defgroup arith_func_rem rem
\ingroup numeric_mat

Calculate the remainder of a division.

\copydoc arith_real_only



\defgroup arith_func_mod mod
\ingroup numeric_mat

Calculate the modulus.

\copydoc arith_real_only



\defgroup arith_func_abs abs
\ingroup numeric_mat

Calculate the absolute value.


\defgroup arith_func_arg arg
\ingroup numeric_mat

Calculate the phase angle (in radians) of a complex array.



\defgroup arith_func_sign sign
\ingroup numeric_mat

Return the sign of elements in an array.

\copydoc arith_real_only



\defgroup arith_func_round round
\ingroup numeric_mat

Round numbers to the nearest integer.

\copydoc arith_real_only



\defgroup arith_func_trunc trunc
\ingroup numeric_mat

Truncate numbers to nearest integer.

\copydoc arith_real_only



\defgroup arith_func_floor floor
\ingroup numeric_mat

Rounds down to the greatest integer less than or equal to x.

\copydoc arith_real_only



\defgroup arith_func_ceil ceil
\ingroup numeric_mat

Rounds up to the least integer greater than or equal to x.

\copydoc arith_real_only



\defgroup arith_func_hypot hypot
\ingroup numeric_mat

Evaluate the length of the hypotenuse of two inputs.

\copydoc arith_real_only



\defgroup arith_func_sin sin
\ingroup trig_mat

Evaluate the sine function.



\defgroup arith_func_cos cos
\ingroup trig_mat

Evaluate the cosine function.



\defgroup arith_func_tan tan
\ingroup trig_mat

Evaluate the tangent function.



\defgroup arith_func_asin asin
\ingroup trig_mat

Evaluate the inverse sine function (arc sine).



\defgroup arith_func_acos acos
\ingroup trig_mat

Evaluate the inverse cosine function (arc cosine).

The inverse of cosine so that, if `y = cos(x)`, then `x = arccos(y)`.


\defgroup arith_func_atan atan/atan2
\ingroup trig_mat

Evaluate the inverse tangent function (arc tangent).



\defgroup arith_func_sinh sinh
\ingroup hyper_mat

Evaluate the hyperbolic sine function.



\defgroup arith_func_cosh cosh
\ingroup hyper_mat

Evaluate the hyperbolic cosine function.



\defgroup arith_func_tanh tanh
\ingroup hyper_mat

Evaluate the hyperbolic tangent function.



\defgroup arith_func_asinh asinh
\ingroup hyper_mat

Evaluate the inverse hyperbolic sine function (area hyperbolic sine).



\defgroup arith_func_acosh acosh
\ingroup hyper_mat

Evaluate the inverse hyperbolic cosine function (area hyperbolic cosine).



\defgroup arith_func_atanh atanh
\ingroup hyper_mat

Evaluate the inverse hyperbolic tangent function (area hyperbolic tangent).



\defgroup arith_func_cplx complex
\ingroup complex_mat

Create complex arrays.

Complex arrays are created from any of the following four inputs:

1. a single real array, returning zeros for the imaginary component. See `array b` in the example.
2. two real arrays, one for the real component and one for the imaginary component. See `array c` in the example.
3. a single real array for the real component and a single scalar for each imaginary component. See `array d` in the example.
4. a single scalar for each real component and a single real array for the imaginary component. See `array e` in the example.

__Examples:__

\snippet test/complex.cpp ex_arith_func_complex



\defgroup arith_func_real real
\ingroup complex_mat

Returns the real part of a complex array.



\defgroup arith_func_imag imag
\ingroup complex_mat

Returns the imaginary part of a complex array.



\defgroup arith_func_conjg conjg
\ingroup complex_mat

Evaluate the complex conjugate of an input array.



\defgroup arith_func_root root
\ingroup explog_mat

Evaluate the nth root.



\defgroup arith_func_pow pow
\ingroup explog_mat

Raise a base to a power (or exponent).



\defgroup arith_func_pow2 pow2
\ingroup explog_mat

Raise 2 to a power (or exponent).



\defgroup arith_func_sigmoid sigmoid
Evaluate the logistical sigmoid function.



\defgroup arith_func_exp exp
\ingroup explog_mat

Evaluate the exponential function.



\defgroup arith_func_expm1 expm1
\ingroup explog_mat

Evaluate the exponential function of an array minus 1, `exp(in) - 1`.

\copydoc arith_real_only



\defgroup arith_func_erf erf
\ingroup explog_mat

Evaluate the error function.

\copydoc arith_real_only



\defgroup arith_func_erfc erfc
\ingroup explog_mat

Evaluate the complementary error function.

\copydoc arith_real_only



\defgroup arith_func_log log
\ingroup explog_mat

Evaluate the natural logarithm.



\defgroup arith_func_log1p log1p
\ingroup explog_mat

Evaluate the natural logarithm of 1 + input, `ln(1+in)`.

\copydoc arith_real_only



\defgroup arith_func_log10 log10
\ingroup explog_mat

Evaluate the base 10 logarithm.

\copydoc arith_real_only



\defgroup arith_func_log2 log2
\ingroup explog_mat

Evaluate the base 2 logarithm.

\copydoc arith_real_only



\defgroup arith_func_sqrt sqrt
\ingroup explog_mat

Evaluate the square root.



\defgroup arith_func_rsqrt rsqrt
\ingroup explog_mat

Evaluate the reciprocal square root.

\f[ \frac{1}{\sqrt{x}} \f]

\copydoc arith_real_only



\defgroup arith_func_cbrt cbrt
\ingroup explog_mat

Evaluate the cube root.

\copydoc arith_real_only



\defgroup arith_func_factorial factorial
\ingroup explog_mat

Evaluate the factorial.

\copydoc arith_real_only



\defgroup arith_func_tgamma tgamma
\ingroup explog_mat

Evaluate the gamma function.

\copydoc arith_real_only



\defgroup arith_func_lgamma lgamma
\ingroup explog_mat

Evaluate the logarithm of the absolute value of the gamma function.

\copydoc arith_real_only



\defgroup arith_func_iszero iszero
\ingroup helper_mat

Check if values are zero.



\defgroup arith_func_isinf isinf
\ingroup helper_mat

Check if values are infinite.



\defgroup arith_func_isnan isnan
\ingroup helper_mat

Check if values are NaN.



@}
*/
