A high-performance general-purpose compute library
arith.h
Go to the documentation of this file.
1/*******************************************************
2 * Copyright (c) 2014, ArrayFire
3 * All rights reserved.
4 *
5 * This file is distributed under 3-clause BSD license.
6 * The complete license agreement can be obtained at:
7 * http://arrayfire.com/licenses/BSD-3-Clause
8 ********************************************************/
9
10#include <af/defines.h>
11
12#ifdef __cplusplus
13namespace af
14{
15 class array;
16
24 AFAPI array min (const array &lhs, const array &rhs);
25
34 AFAPI array min (const array &lhs, const double rhs);
35
44 AFAPI array min (const double lhs, const array &rhs);
45
53 AFAPI array max (const array &lhs, const array &rhs);
54
63 AFAPI array max (const array &lhs, const double rhs);
64
73 AFAPI array max (const double lhs, const array &rhs);
74
75#if AF_API_VERSION >= 34
85 AFAPI array clamp(const array &in, const array &lo, const array &hi);
86#endif
87
88#if AF_API_VERSION >= 34
90 AFAPI array clamp(const array &in, const array &lo, const double hi);
91#endif
92
93#if AF_API_VERSION >= 34
95 AFAPI array clamp(const array &in, const double lo, const array &hi);
96#endif
97
98#if AF_API_VERSION >= 34
100 AFAPI array clamp(const array &in, const double lo, const double hi);
101#endif
103
112 AFAPI array rem (const array &lhs, const array &rhs);
113
115 AFAPI array rem (const array &lhs, const double rhs);
116
118 AFAPI array rem (const double lhs, const array &rhs);
120
129 AFAPI array mod (const array &lhs, const array &rhs);
130
132 AFAPI array mod (const array &lhs, const double rhs);
133
135 AFAPI array mod (const double lhs, const array &rhs);
137
144 AFAPI array abs (const array &in);
145
153 AFAPI array arg (const array &in);
154
161 AFAPI array sign (const array &in);
162
169 AFAPI array round (const array &in);
170
177 AFAPI array trunc (const array &in);
178
185 AFAPI array floor (const array &in);
186
193 AFAPI array ceil (const array &in);
194
205 AFAPI array hypot (const array &lhs, const array &rhs);
206
208 AFAPI array hypot (const array &lhs, const double rhs);
209
211 AFAPI array hypot (const double lhs, const array &rhs);
213
220 AFAPI array sin (const array &in);
221
228 AFAPI array cos (const array &in);
229
236 AFAPI array tan (const array &in);
237
244 AFAPI array asin (const array &in);
245
252 AFAPI array acos (const array &in);
253
260 AFAPI array atan (const array &in);
261
269 AFAPI array atan2 (const array &lhs, const array &rhs);
270
272 AFAPI array atan2 (const array &lhs, const double rhs);
273
275 AFAPI array atan2 (const double lhs, const array &rhs);
277
284 AFAPI array sinh(const array& in);
285
292 AFAPI array cosh(const array& in);
293
300 AFAPI array tanh(const array& in);
301
308 AFAPI array asinh(const array& in);
309
316 AFAPI array acosh(const array& in);
317
324 AFAPI array atanh(const array& in);
325
333
341 AFAPI array complex(const array &real_, const array &imag_);
342
351 AFAPI array complex(const array &real_, const double imag_);
352
361 AFAPI array complex(const double real_, const array &imag_);
363
370 AFAPI array real (const array &in);
371
378 AFAPI array imag (const array &in);
379
386 AFAPI array conjg (const array &in);
387
395 AFAPI array root (const array &nth_root, const array &value);
396
404 AFAPI array root (const array &nth_root, const double value);
405
413 AFAPI array root (const double nth_root, const array &value);
414
425 AFAPI array pow (const array &base, const array &exponent);
426
428 AFAPI array pow (const array &base, const double exponent);
429
431 AFAPI array pow (const double base, const array &exponent);
432
437 AFAPI array pow2 (const array &in);
439
440#if AF_API_VERSION >= 31
450#endif
451
458 AFAPI array exp (const array &in);
459
469 AFAPI array expm1 (const array &in);
470
477 AFAPI array erf (const array &in);
478
485 AFAPI array erfc (const array &in);
486
493 AFAPI array log (const array &in);
494
504 AFAPI array log1p (const array &in);
505
512 AFAPI array log10 (const array &in);
513
520 AFAPI array log2 (const array &in);
521
528 AFAPI array sqrt (const array &in);
529
530#if AF_API_VERSION >= 37
537 AFAPI array rsqrt (const array &in);
538#endif
539
546 AFAPI array cbrt (const array &in);
547
555
562 AFAPI array tgamma (const array &in);
563
571 AFAPI array lgamma (const array &in);
572
579 AFAPI array iszero (const array &in);
580
588 AFAPI array isInf (const array &in);
589
596 AFAPI array isNaN (const array &in);
597}
598#endif
599
600#ifdef __cplusplus
601extern "C" {
602#endif
603
616 AFAPI af_err af_add (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
617
630 AFAPI af_err af_sub (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
631
644 AFAPI af_err af_mul (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
645
658 AFAPI af_err af_div (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
659
675 AFAPI af_err af_lt (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
676
692 AFAPI af_err af_gt (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
693
709 AFAPI af_err af_le (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
710
726 AFAPI af_err af_ge (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
727
742 AFAPI af_err af_eq (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
743
759 AFAPI af_err af_neq (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
760
775 AFAPI af_err af_and (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
776
791 AFAPI af_err af_or (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
792
806
807#if AF_API_VERSION >= 38
819#endif
820
833 AFAPI af_err af_bitand (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
834
847 AFAPI af_err af_bitor (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
848
861 AFAPI af_err af_bitxor (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
862
875 AFAPI af_err af_bitshiftl(af_array *out, const af_array lhs, const af_array rhs, const bool batch);
876
889 AFAPI af_err af_bitshiftr(af_array *out, const af_array lhs, const af_array rhs, const bool batch);
890
933 AFAPI af_err af_cast (af_array *out, const af_array in, const af_dtype type);
934
947 AFAPI af_err af_minof (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
948
962 AFAPI af_err af_maxof (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
963
964#if AF_API_VERSION >= 34
979 const af_array lo, const af_array hi, const bool batch);
980#endif
981
994 AFAPI af_err af_rem (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
995
1008 AFAPI af_err af_mod (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
1009
1021
1034
1046
1058
1070
1082
1094
1107 AFAPI af_err af_hypot (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
1108
1120
1132
1144
1156
1168
1180
1193 AFAPI af_err af_atan2 (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
1194
1206
1218
1230
1242
1254
1266
1278
1293 AFAPI af_err af_cplx2(af_array* out, const af_array real, const af_array imag, const bool batch);
1294
1306
1318
1330
1343 AFAPI af_err af_root (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
1344
1345
1358 AFAPI af_err af_pow (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
1359
1371
1372#if AF_API_VERSION >= 31
1386#endif
1387
1399
1412
1424
1436
1448
1460
1472
1484
1496
1497#if AF_API_VERSION >= 37
1509#endif
1521
1533
1545
1558
1570
1583
1595
1596#ifdef __cplusplus
1597}
1598#endif
AFAPI af_err af_log2(af_array *out, const af_array in)
C Interface to evaluate the base 2 logarithm.
AFAPI af_err af_lt(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to perform a less-than comparison between corresponding elements of two arrays.
A multi dimensional data container.
Definition: array.h:37
af_dtype
Definition: defines.h:210
af_err
Definition: defines.h:71
void * af_array
Definition: defines.h:240
#define AFAPI
Definition: defines.h:38
AFAPI array abs(const array &in)
C++ Interface to calculate the absolute value.
AFAPI af_err af_abs(af_array *out, const af_array in)
C Interface to calculate the absolute value.
AFAPI af_err af_acos(af_array *out, const af_array in)
C Interface to evaluate the inverse cosine function.
AFAPI array acos(const array &in)
C++ Interface to evaluate the inverse cosine function.
AFAPI array acosh(const array &in)
C++ Interface to evaluate the inverse hyperbolic cosine function.
AFAPI af_err af_acosh(af_array *out, const af_array in)
C Interface to evaluate the inverse hyperbolic cosine function.
AFAPI af_err af_add(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to add two arrays.
AFAPI af_err af_and(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to evaluate the logical AND of two arrays.
AFAPI array arg(const array &in)
C++ Interface to calculate the phase angle (in radians) of a complex array.
AFAPI af_err af_arg(af_array *out, const af_array in)
C Interface to calculate the phase angle (in radians) of a complex array.
AFAPI af_err af_asin(af_array *out, const af_array in)
C Interface to evaluate the inverse sine function.
AFAPI array asin(const array &in)
C++ Interface to evaluate the inverse sine function.
AFAPI af_err af_asinh(af_array *out, const af_array in)
C Interface to evaluate the inverse hyperbolic sine function.
AFAPI array asinh(const array &in)
C++ Interface to evaluate the inverse hyperbolic sine function.
AFAPI af_err af_atan(af_array *out, const af_array in)
C Interface to evaluate the inverse tangent function.
AFAPI array atan2(const array &lhs, const array &rhs)
C++ Interface to evaluate the inverse tangent of two arrays.
AFAPI array atan(const array &in)
C++ Interface to evaluate the inverse tangent function.
AFAPI af_err af_atan2(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to evaluate the inverse tangent of two arrays.
AFAPI af_err af_atanh(af_array *out, const af_array in)
C Interface to evaluate the inverse hyperbolic tangent function.
AFAPI array atanh(const array &in)
C++ Interface to evaluate the inverse hyperbolic tangent function.
AFAPI af_err af_bitand(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to evaluate the bitwise AND of two arrays.
AFAPI af_err af_bitnot(af_array *out, const af_array in)
C Interface to evaluate the bitwise NOT of an array.
AFAPI af_err af_bitor(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to evaluate the bitwise OR of two arrays.
AFAPI af_err af_bitxor(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to evaluate the bitwise XOR of two arrays.
AFAPI af_err af_cast(af_array *out, const af_array in, const af_dtype type)
C Interface to cast an array from one type to another.
AFAPI af_err af_cbrt(af_array *out, const af_array in)
C Interface to evaluate the cube root.
AFAPI array cbrt(const array &in)
C++ Interface to evaluate the cube root.
AFAPI array ceil(const array &in)
C++ Interface to ceil numbers.
AFAPI af_err af_ceil(af_array *out, const af_array in)
C Interface to ceil numbers.
AFAPI array clamp(const array &in, const array &lo, const array &hi)
AFAPI af_err af_clamp(af_array *out, const af_array in, const af_array lo, const af_array hi, const bool batch)
C Interface to clamp an array between an upper and a lower limit.
AFAPI array conjg(const array &in)
C++ Interface to calculate the complex conjugate of an input array.
AFAPI af_err af_conjg(af_array *out, const af_array in)
C Interface to evaluate the complex conjugate of an input array.
AFAPI array cos(const array &in)
C++ Interface to evaluate the cosine function.
AFAPI af_err af_cos(af_array *out, const af_array in)
C Interface to evaluate the cosine function.
AFAPI array cosh(const array &in)
C++ Interface to evaluate the hyperbolic cosine function.
AFAPI af_err af_cosh(af_array *out, const af_array in)
C Interface to evaluate the hyperbolic cosine function.
AFAPI array complex(const array &in)
C++ Interface to create a complex array from a single real array.
AFAPI af_err af_cplx(af_array *out, const af_array in)
C Interface to create a complex array from a single real array.
AFAPI af_err af_cplx2(af_array *out, const af_array real, const af_array imag, const bool batch)
C Interface to create a complex array from two real arrays.
AFAPI af_err af_div(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to divide one array by another array.
AFAPI af_err af_eq(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to check if corresponding elements of two arrays are equal.
AFAPI array erf(const array &in)
C++ Interface to evaluate the error function.
AFAPI af_err af_erf(af_array *out, const af_array in)
C Interface to evaluate the error function.
AFAPI af_err af_erfc(af_array *out, const af_array in)
C Interface to evaluate the complementary error function.
AFAPI array erfc(const array &in)
C++ Interface to evaluate the complementary error function.
AFAPI af_err af_exp(af_array *out, const af_array in)
C Interface to evaluate the exponential.
AFAPI array exp(const array &in)
C++ Interface to evaluate the exponential.
AFAPI af_err af_expm1(af_array *out, const af_array in)
C Interface to evaluate the exponential of an array minus 1, exp(in) - 1.
AFAPI array expm1(const array &in)
C++ Interface to evaluate the exponential of an array minus 1, exp(in) - 1.
AFAPI array factorial(const array &in)
C++ Interface to calculate the factorial.
AFAPI af_err af_factorial(af_array *out, const af_array in)
C Interface to calculate the factorial.
AFAPI af_err af_hypot(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to calculate the length of the hypotenuse of two inputs.
AFAPI af_err af_floor(af_array *out, const af_array in)
C Interface to floor numbers.
AFAPI array floor(const array &in)
C++ Interface to floor numbers.
AFAPI af_err af_ge(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to perform a greater-than-or-equal comparison between corresponding elements of two array...
AFAPI af_err af_gt(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to perform a greater-than comparison between corresponding elements of two arrays.
AFAPI array hypot(const array &lhs, const array &rhs)
C++ Interface to calculate the length of the hypotenuse of two inputs.
AFAPI af_err af_imag(af_array *out, const af_array in)
C Interface to return the imaginary part of a complex array.
AFAPI array imag(const array &in)
C++ Interface to return the imaginary part of a complex array.
AFAPI array isInf(const array &in)
C++ Interface to check if values are infinite.
AFAPI af_err af_isinf(af_array *out, const af_array in)
C Interface to check if values are infinite.
AFAPI af_err af_isnan(af_array *out, const af_array in)
C Interface to check if values are NaN.
AFAPI array isNaN(const array &in)
C++ Interface to check if values are NaN.
AFAPI array iszero(const array &in)
C++ Interface to check which values are zero.
AFAPI af_err af_iszero(af_array *out, const af_array in)
C Interface to check if values are zero.
AFAPI af_err af_le(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to perform a less-than-or-equal comparison between corresponding elements of two arrays.
AFAPI array lgamma(const array &in)
C++ Interface to evaluate the logarithm of the absolute value of the gamma function.
AFAPI af_err af_lgamma(af_array *out, const af_array in)
C Interface to evaluate the logarithm of the absolute value of the gamma function.
AFAPI af_err af_log10(af_array *out, const af_array in)
C Interface to evaluate the base 10 logarithm.
AFAPI array log10(const array &in)
C++ Interface to evaluate the base 10 logarithm.
AFAPI af_err af_log1p(af_array *out, const af_array in)
C Interface to evaluate the natural logarithm of 1 + input, ln(1+in).
AFAPI array log1p(const array &in)
C++ Interface to evaluate the natural logarithm of 1 + input, ln(1+in).
AFAPI af_err af_log(af_array *out, const af_array in)
C Interface to evaluate the natural logarithm.
AFAPI array log(const array &in)
C++ Interface to evaluate the natural logarithm.
AFAPI af_err af_maxof(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to find the elementwise minimum between an array and a scalar value.
AFAPI af_err af_minof(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to find the elementwise minimum between two arrays.
AFAPI af_err af_mod(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to calculate the modulus.
AFAPI array mod(const array &lhs, const array &rhs)
AFAPI af_err af_mul(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to multiply two arrays.
AFAPI af_err af_neq(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to check if corresponding elements of two arrays are not equal.
AFAPI af_err af_not(af_array *out, const af_array in)
C Interface to evaluate the logical NOT of an array.
AFAPI af_err af_or(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface the evaluate the logical OR of two arrays.
AFAPI af_err af_pow2(af_array *out, const af_array in)
C Interface to raise 2 to a power (or exponent).
AFAPI af_err af_pow(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to raise a base to a power (or exponent).
AFAPI array pow2(const array &in)
C++ Interface to raise 2 to a power (or exponent).
AFAPI array pow(const array &base, const array &exponent)
C++ Interface to raise a base to a power (or exponent).
AFAPI af_err af_real(af_array *out, const af_array in)
C Interface to return the real part of a complex array.
AFAPI array real(const array &in)
C++ Interface to return the real part of a complex array.
AFAPI array rem(const array &lhs, const array &rhs)
AFAPI af_err af_rem(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to calculate the remainder.
AFAPI af_err af_root(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to evaluate the nth root.
AFAPI array root(const array &nth_root, const array &value)
C++ Interface to evaluate the nth root.
AFAPI af_err af_round(af_array *out, const af_array in)
C Interface to round numbers.
AFAPI array round(const array &in)
C++ Interface to round numbers.
AFAPI af_err af_rsqrt(af_array *out, const af_array in)
C Interface to evaluate the reciprocal square root.
AFAPI array rsqrt(const array &in)
C++ Interface to evaluate the reciprocal square root.
AFAPI af_err af_bitshiftl(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to shift the bits of integer arrays left.
AFAPI af_err af_bitshiftr(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to shift the bits of integer arrays right.
AFAPI array sigmoid(const array &in)
C++ Interface to evaluate the logistical sigmoid function.
AFAPI af_err af_sigmoid(af_array *out, const af_array in)
C Interface to evaluate the logistical sigmoid function.
AFAPI af_err af_sign(af_array *out, const af_array in)
C Interface to calculate the sign of elements in an array.
AFAPI array sign(const array &in)
C++ Interface to return the sign of elements in an array.
AFAPI af_err af_sin(af_array *out, const af_array in)
C Interface to evaluate the sine function.
AFAPI array sin(const array &in)
C++ Interface to evaluate the sine function.
AFAPI array sinh(const array &in)
C++ Interface to evaluate the hyperbolic sine function.
AFAPI af_err af_sinh(af_array *out, const af_array in)
C Interface to evaluate the hyperbolic sine function.
AFAPI af_err af_sqrt(af_array *out, const af_array in)
C Interface to evaluate the square root.
AFAPI array sqrt(const array &in)
C++ Interface to evaluate the square root.
AFAPI af_err af_sub(af_array *out, const af_array lhs, const af_array rhs, const bool batch)
C Interface to subtract one array from another array.
AFAPI array tan(const array &in)
C++ Interface to evaluate the tangent function.
AFAPI af_err af_tan(af_array *out, const af_array in)
C Interface to evaluate the tangent function.
AFAPI af_err af_tanh(af_array *out, const af_array in)
C Interface to evaluate the hyperbolic tangent function.
AFAPI array tanh(const array &in)
C++ Interface to evaluate the hyperbolic tangent function.
AFAPI af_err af_tgamma(af_array *out, const af_array in)
C Interface to evaluate the gamma function.
AFAPI array tgamma(const array &in)
C++ Interface to evaluate the gamma function.
AFAPI array trunc(const array &in)
C++ Interface to truncate numbers.
AFAPI af_err af_trunc(af_array *out, const af_array in)
C Interface to truncate numbers.
AFAPI array max(const array &in, const int dim=-1)
C++ Interface to return the maximum along a given dimension.
AFAPI array min(const array &in, const int dim=-1)
C++ Interface to return the minimum along a given dimension.
Definition: algorithm.h:15
AFAPI array log2(const array &in)
C++ Interface to evaluate the base 2 logarithm.