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
33 AFAPI array min (const array &lhs, const double rhs);
34
42 AFAPI array min (const double lhs, const array &rhs);
43
51 AFAPI array max (const array &lhs, const array &rhs);
52
60 AFAPI array max (const array &lhs, const double rhs);
61
69 AFAPI array max (const double lhs, const array &rhs);
70
71#if AF_API_VERSION >= 34
81 AFAPI array clamp(const array &in, const array &lo, const array &hi);
82#endif
83
84#if AF_API_VERSION >= 34
86 AFAPI array clamp(const array &in, const array &lo, const double hi);
87#endif
88
89#if AF_API_VERSION >= 34
91 AFAPI array clamp(const array &in, const double lo, const array &hi);
92#endif
93
94#if AF_API_VERSION >= 34
96 AFAPI array clamp(const array &in, const double lo, const double hi);
97#endif
99
108 AFAPI array rem (const array &lhs, const array &rhs);
109
111 AFAPI array rem (const array &lhs, const double rhs);
112
114 AFAPI array rem (const double lhs, const array &rhs);
116
125 AFAPI array mod (const array &lhs, const array &rhs);
126
128 AFAPI array mod (const array &lhs, const double rhs);
129
131 AFAPI array mod (const double lhs, const array &rhs);
133
140 AFAPI array abs (const array &in);
141
148 AFAPI array arg (const array &in);
149
156 AFAPI array sign (const array &in);
157
164 AFAPI array round (const array &in);
165
172 AFAPI array trunc (const array &in);
173
180 AFAPI array floor (const array &in);
181
188 AFAPI array ceil (const array &in);
189
200 AFAPI array hypot (const array &lhs, const array &rhs);
201
203 AFAPI array hypot (const array &lhs, const double rhs);
204
206 AFAPI array hypot (const double lhs, const array &rhs);
208
215 AFAPI array sin (const array &in);
216
223 AFAPI array cos (const array &in);
224
231 AFAPI array tan (const array &in);
232
239 AFAPI array asin (const array &in);
240
247 AFAPI array acos (const array &in);
248
255 AFAPI array atan (const array &in);
256
264 AFAPI array atan2 (const array &lhs, const array &rhs);
265
267 AFAPI array atan2 (const array &lhs, const double rhs);
268
270 AFAPI array atan2 (const double lhs, const array &rhs);
272
279 AFAPI array sinh(const array& in);
280
287 AFAPI array cosh(const array& in);
288
295 AFAPI array tanh(const array& in);
296
303 AFAPI array asinh(const array& in);
304
311 AFAPI array acosh(const array& in);
312
319 AFAPI array atanh(const array& in);
320
328
334 AFAPI array complex(const array &real_, const array &imag_);
335
341 AFAPI array complex(const array &real_, const double imag_);
342
348 AFAPI array complex(const double real_, const array &imag_);
350
357 AFAPI array real (const array &in);
358
365 AFAPI array imag (const array &in);
366
373 AFAPI array conjg (const array &in);
374
382 AFAPI array root (const array &nth_root, const array &value);
383
391 AFAPI array root (const array &nth_root, const double value);
392
400 AFAPI array root (const double nth_root, const array &value);
401
402
412 AFAPI array pow (const array &base, const array &exponent);
413
415 AFAPI array pow (const array &base, const double exponent);
416
418 AFAPI array pow (const double base, const array &exponent);
419
425 AFAPI array pow2 (const array &in);
427
428#if AF_API_VERSION >= 31
438#endif
439
446 AFAPI array exp (const array &in);
447
455 AFAPI array expm1 (const array &in);
456
463 AFAPI array erf (const array &in);
464
471 AFAPI array erfc (const array &in);
472
479 AFAPI array log (const array &in);
480
488 AFAPI array log1p (const array &in);
489
496 AFAPI array log10 (const array &in);
497
504 AFAPI array log2 (const array &in);
505
512 AFAPI array sqrt (const array &in);
513
514#if AF_API_VERSION >= 37
521 AFAPI array rsqrt (const array &in);
522#endif
523
530 AFAPI array cbrt (const array &in);
531
539
546 AFAPI array tgamma (const array &in);
547
554 AFAPI array lgamma (const array &in);
555
562 AFAPI array iszero (const array &in);
563
570 AFAPI array isInf (const array &in);
571
578 AFAPI array isNaN (const array &in);
579}
580#endif
581
582#ifdef __cplusplus
583extern "C" {
584#endif
585
597 AFAPI af_err af_add (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
598
610 AFAPI af_err af_sub (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
611
623 AFAPI af_err af_mul (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
624
636 AFAPI af_err af_div (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
637
649 AFAPI af_err af_lt (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
650
662 AFAPI af_err af_gt (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
663
675 AFAPI af_err af_le (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
676
688 AFAPI af_err af_ge (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
689
701 AFAPI af_err af_eq (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
702
714 AFAPI af_err af_neq (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
715
727 AFAPI af_err af_and (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
728
740 AFAPI af_err af_or (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
741
752
753#if AF_API_VERSION >= 38
764#endif
765
777 AFAPI af_err af_bitand (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
778
790 AFAPI af_err af_bitor (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
791
803 AFAPI af_err af_bitxor (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
804
816 AFAPI af_err af_bitshiftl(af_array *out, const af_array lhs, const af_array rhs, const bool batch);
817
829 AFAPI af_err af_bitshiftr(af_array *out, const af_array lhs, const af_array rhs, const bool batch);
830
870 AFAPI af_err af_cast (af_array *out, const af_array in, const af_dtype type);
871
883 AFAPI af_err af_minof (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
884
896 AFAPI af_err af_maxof (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
897
898#if AF_API_VERSION >= 34
912 const af_array lo, const af_array hi, const bool batch);
913#endif
914
926 AFAPI af_err af_rem (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
927
939 AFAPI af_err af_mod (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
940
951
962
973
984
995
1006
1017
1029 AFAPI af_err af_hypot (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
1030
1041
1052
1063
1074
1085
1096
1108 AFAPI af_err af_atan2 (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
1109
1120
1131
1142
1153
1164
1175
1186
1198 AFAPI af_err af_cplx2(af_array* out, const af_array real, const af_array imag, const bool batch);
1199
1210
1221
1232
1244 AFAPI af_err af_root (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
1245
1246
1258 AFAPI af_err af_pow (af_array *out, const af_array lhs, const af_array rhs, const bool batch);
1259
1270
1271#if AF_API_VERSION >= 31
1284#endif
1285
1296
1307
1318
1329
1340
1351
1362
1373
1384
1385#if AF_API_VERSION >= 37
1396#endif
1407
1418
1429
1440
1451
1462
1473
1474#ifdef __cplusplus
1475}
1476#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 for maximum values in an array.
AFAPI array min(const array &in, const int dim=-1)
C++ Interface for minimum values in an array.
Definition: algorithm.h:15
AFAPI array log2(const array &in)
C++ Interface to evaluate the base 2 logarithm.