data.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 #pragma once
11 #include <af/defines.h>
12 
13 #ifdef __cplusplus
14 #include <af/dim4.hpp>
15 #include <af/traits.hpp>
16 namespace af
17 {
18  class array;
19 
30  template<typename T>
31  array constant(T val, const dim4 &dims, const dtype ty=(af_dtype)dtype_traits<T>::ctype);
32 
43  template<typename T>
44  array constant(T val, const dim_t d0, const af_dtype ty=(af_dtype)dtype_traits<T>::ctype);
45 
56  template<typename T>
57  array constant(T val, const dim_t d0, const dim_t d1, const af_dtype ty=(af_dtype)dtype_traits<T>::ctype);
58 
70  template<typename T>
71  array constant(T val, const dim_t d0, const dim_t d1, const dim_t d2, const af_dtype ty=(af_dtype)dtype_traits<T>::ctype);
72 
85  template<typename T>
86  array constant(T val, const dim_t d0, const dim_t d1, const dim_t d2, const dim_t d3, const af_dtype ty=(af_dtype)dtype_traits<T>::ctype);
87 
96  AFAPI array randu(const dim4 &dims, const dtype ty=f32);
97 
106  AFAPI array randu(const dim_t d0, const dtype ty=f32);
107 
117  AFAPI array randu(const dim_t d0,
118  const dim_t d1, const dtype ty=f32);
119 
130  AFAPI array randu(const dim_t d0,
131  const dim_t d1, const dim_t d2, const dtype ty=f32);
132 
144  AFAPI array randu(const dim_t d0,
145  const dim_t d1, const dim_t d2,
146  const dim_t d3, const dtype ty=f32);
147 
156  AFAPI array randn(const dim4 &dims, const dtype ty=f32);
157 
166  AFAPI array randn(const dim_t d0, const dtype ty=f32);
176  AFAPI array randn(const dim_t d0,
177  const dim_t d1, const dtype ty=f32);
188  AFAPI array randn(const dim_t d0,
189  const dim_t d1, const dim_t d2, const dtype ty=f32);
190 
202  AFAPI array randn(const dim_t d0,
203  const dim_t d1, const dim_t d2,
204  const dim_t d3, const dtype ty=f32);
205 
211  AFAPI void setSeed(const uintl seed);
212 
218  AFAPI uintl getSeed();
219 
220 
229  AFAPI array identity(const dim4 &dims, const dtype ty=f32);
230 
239  AFAPI array identity(const dim_t d0, const dtype ty=f32);
240 
250  AFAPI array identity(const dim_t d0, const dim_t d1, const dtype ty=f32);
251 
262  AFAPI array identity(const dim_t d0, const dim_t d1,
263  const dim_t d2, const dtype ty=f32);
264 
276  AFAPI array identity(const dim_t d0, const dim_t d1,
277  const dim_t d2, const dim_t d3, const dtype ty=f32);
278 
288  AFAPI array range(const dim4 &dims, const int seq_dim = -1, const dtype ty=f32);
289 
302  AFAPI array range(const dim_t d0, const dim_t d1 = 1, const dim_t d2 = 1,
303  const dim_t d3 = 1, const int seq_dim = -1, const dtype ty=f32);
304 
314  AFAPI array iota(const dim4 &dims, const dim4 &tile_dims = dim4(1), const dtype ty=f32);
315 
326  AFAPI array diag(const array &in, const int num = 0, const bool extract = true);
327 
338  AFAPI array join(const int dim, const array &first, const array &second);
339 
351  AFAPI array join(const int dim, const array &first, const array &second, const array &third);
352 
365  AFAPI array join(const int dim, const array &first, const array &second,
366  const array &third, const array &fourth);
367 
378  AFAPI array tile(const array &in, const unsigned x, const unsigned y=1,
379  const unsigned z=1, const unsigned w=1);
380 
388  AFAPI array tile(const array &in, const dim4 &dims);
389 
400  AFAPI array reorder(const array& in, const unsigned x,
401  const unsigned y=1, const unsigned z=2, const unsigned w=3);
402 
414  AFAPI array shift(const array& in, const int x, const int y=0, const int z=0, const int w=0);
415 
424  AFAPI array moddims(const array& in, const unsigned ndims, const dim_t * const dims);
425 
433  AFAPI array moddims(const array& in, const dim4& dims);
434 
445  AFAPI array moddims(const array& in, const dim_t d0, const dim_t d1=1, const dim_t d2=1, const dim_t d3=1);
446 
453  AFAPI array flat(const array &in);
454 
462  AFAPI array flip(const array &in, const unsigned dim);
463 
471  AFAPI array lower(const array &in, bool is_unit_diag=false);
472 
480  AFAPI array upper(const array &in, bool is_unit_diag=false);
481 
482 #if AF_API_VERSION >= 31
483 
491  AFAPI array select(const array &cond, const array &a, const array &b);
492 #endif
493 
494 #if AF_API_VERSION >= 31
495 
503  AFAPI array select(const array &cond, const array &a, const double &b);
504 #endif
505 
506 #if AF_API_VERSION >= 31
507 
515  AFAPI array select(const array &cond, const double &a, const array &b);
516 #endif
517 
518 #if AF_API_VERSION >= 31
519 
528  AFAPI void replace(array &a, const array &cond, const array &b);
529 #endif
530 
531 #if AF_API_VERSION >= 31
532 
541  AFAPI void replace(array &a, const array &cond, const double &b);
542 #endif
543 
547 }
548 #endif
549 
550 #ifdef __cplusplus
551 extern "C" {
552 #endif
553 
554 
564  AFAPI af_err af_constant(af_array *arr, const double val, const unsigned ndims, const dim_t * const dims, const af_dtype type);
565 
577  AFAPI af_err af_constant_complex(af_array *arr, const double real, const double imag,
578  const unsigned ndims, const dim_t * const dims, const af_dtype type);
579 
589  AFAPI af_err af_constant_long (af_array *arr, const intl val, const unsigned ndims, const dim_t * const dims);
590 
600  AFAPI af_err af_constant_ulong(af_array *arr, const uintl val, const unsigned ndims, const dim_t * const dims);
614  AFAPI af_err af_range(af_array *out, const unsigned ndims, const dim_t * const dims,
615  const int seq_dim, const af_dtype type);
616 
627  AFAPI af_err af_iota(af_array *out, const unsigned ndims, const dim_t * const dims,
628  const unsigned t_ndims, const dim_t * const tdims, const af_dtype type);
629 
638  AFAPI af_err af_randu(af_array *out, const unsigned ndims, const dim_t * const dims, const af_dtype type);
639 
648  AFAPI af_err af_randn(af_array *out, const unsigned ndims, const dim_t * const dims, const af_dtype type);
649 
655  AFAPI af_err af_set_seed(const uintl seed);
656 
662  AFAPI af_err af_get_seed(uintl *seed);
663 
664 
673  AFAPI af_err af_identity(af_array *out, const unsigned ndims, const dim_t * const dims, const af_dtype type);
674 
682  AFAPI af_err af_diag_create(af_array *out, const af_array in, const int num);
683 
691  AFAPI af_err af_diag_extract(af_array *out, const af_array in, const int num);
692 
703  AFAPI af_err af_join(af_array *out, const int dim, const af_array first, const af_array second);
704 
717  AFAPI af_err af_join_many(af_array *out, const int dim, const unsigned n_arrays, const af_array *inputs);
718 
729  AFAPI af_err af_tile(af_array *out, const af_array in,
730  const unsigned x, const unsigned y, const unsigned z, const unsigned w);
731 
742  AFAPI af_err af_reorder(af_array *out, const af_array in,
743  const unsigned x, const unsigned y, const unsigned z, const unsigned w);
744 
755  AFAPI af_err af_shift(af_array *out, const af_array in, const int x, const int y, const int z, const int w);
756 
765  AFAPI af_err af_moddims(af_array *out, const af_array in, const unsigned ndims, const dim_t * const dims);
766 
773  AFAPI af_err af_flat(af_array *out, const af_array in);
774 
782  AFAPI af_err af_flip(af_array *out, const af_array in, const unsigned dim);
783 
791  AFAPI af_err af_lower(af_array *out, const af_array in, bool is_unit_diag);
792 
800  AFAPI af_err af_upper(af_array *out, const af_array in, bool is_unit_diag);
805 #if AF_API_VERSION >= 31
806 
814  AFAPI af_err af_select(af_array *out, const af_array cond, const af_array a, const af_array b);
815 #endif
816 
817 #if AF_API_VERSION >= 31
818 
826  AFAPI af_err af_select_scalar_r(af_array *out, const af_array cond, const af_array a, const double b);
827 #endif
828 
829 #if AF_API_VERSION >= 31
830 
838  AFAPI af_err af_select_scalar_l(af_array *out, const af_array cond, const double a, const af_array b);
839 #endif
840 
841 #if AF_API_VERSION >= 31
842 
851  AFAPI af_err af_replace(af_array a, const af_array cond, const af_array b);
852 #endif
853 
854 #if AF_API_VERSION >= 31
855 
864  AFAPI af_err af_replace_scalar(af_array a, const af_array cond, const double b);
865 #endif
866 
867 #ifdef __cplusplus
868 }
869 #endif
AFAPI af_err af_randu(af_array *out, const unsigned ndims, const dim_t *const dims, const af_dtype type)
AFAPI array randn(const dim4 &dims, const dtype ty=f32)
AFAPI array join(const int dim, const array &first, const array &second)
Join 2 arrays along dim.
AFAPI af_err af_set_seed(const uintl seed)
AFAPI array moddims(const array &in, const unsigned ndims, const dim_t *const dims)
AFAPI af_err af_constant_complex(af_array *arr, const double real, const double imag, const unsigned ndims, const dim_t *const dims, const af_dtype type)
AFAPI array lower(const array &in, bool is_unit_diag=false)
Definition: algorithm.h:14
AFAPI af_err af_get_seed(uintl *seed)
AFAPI array flip(const array &in, const unsigned dim)
AFAPI af_err af_shift(af_array *out, const af_array in, const int x, const int y, const int z, const int w)
AFAPI af_err af_moddims(af_array *out, const af_array in, const unsigned ndims, const dim_t *const dims)
AFAPI af_err af_constant_long(af_array *arr, const intl val, const unsigned ndims, const dim_t *const dims)
AFAPI af_err af_range(af_array *out, const unsigned ndims, const dim_t *const dims, const int seq_dim, const af_dtype type)
AFAPI af_err af_iota(af_array *out, const unsigned ndims, const dim_t *const dims, const unsigned t_ndims, const dim_t *const tdims, const af_dtype type)
AFAPI af_err af_identity(af_array *out, const unsigned ndims, const dim_t *const dims, const af_dtype type)
AFAPI af_err af_randn(af_array *out, const unsigned ndims, const dim_t *const dims, const af_dtype type)
AFAPI af_err af_replace(af_array a, const af_array cond, const af_array b)
AFAPI af_err af_join_many(af_array *out, const int dim, const unsigned n_arrays, const af_array *inputs)
Join many arrays along dim.
AFAPI af_err af_select(af_array *out, const af_array cond, const af_array a, const af_array b)
AFAPI af_err af_diag_extract(af_array *out, const af_array in, const int num)
AFAPI uintl getSeed()
AFAPI af_err af_flat(af_array *out, const af_array in)
AFAPI array range(const dim4 &dims, const int seq_dim=-1, const dtype ty=f32)
static af::array array(af::dim4 idims, cl_mem buf, af::dtype type, bool retain=false)
Create an af::array object from an OpenCL cl_mem buffer.
Definition: opencl.h:329
AFAPI array diag(const array &in, const int num=0, const bool extract=true)
AFAPI array reorder(const array &in, const unsigned x, const unsigned y=1, const unsigned z=2, const unsigned w=3)
af_err
Definition: defines.h:63
AFAPI af_err af_join(af_array *out, const int dim, const af_array first, const af_array second)
Join 2 arrays along dim.
AFAPI af_err af_diag_create(af_array *out, const af_array in, const int num)
AFAPI af_err af_constant(af_array *arr, const double val, const unsigned ndims, const dim_t *const dims, const af_dtype type)
AFAPI array select(const array &cond, const array &a, const array &b)
AFAPI af_err af_upper(af_array *out, const af_array in, bool is_unit_diag)
long long dim_t
Definition: defines.h:50
AFAPI array imag(const array &in)
C++ Interface for getting imaginary part from complex array.
AFAPI array randu(const dim4 &dims, const dtype ty=f32)
AFAPI array real(const array &in)
C++ Interface for getting real part from complex array.
AFAPI array flat(const array &in)
AFAPI af_err af_constant_ulong(af_array *arr, const uintl val, const unsigned ndims, const dim_t *const dims)
AFAPI af_err af_select_scalar_r(af_array *out, const af_array cond, const af_array a, const double b)
#define AFAPI
Definition: defines.h:31
AFAPI af_err af_replace_scalar(af_array a, const af_array cond, const double b)
AFAPI af_err af_select_scalar_l(af_array *out, const af_array cond, const double a, const af_array b)
AFAPI af_err af_tile(af_array *out, const af_array in, const unsigned x, const unsigned y, const unsigned z, const unsigned w)
unsigned long long uintl
Definition: defines.h:56
array constant(T val, const dim4 &dims, const dtype ty=(af_dtype) dtype_traits< T >::ctype)
AFAPI array tile(const array &in, const unsigned x, const unsigned y=1, const unsigned z=1, const unsigned w=1)
AFAPI af_err af_reorder(af_array *out, const af_array in, const unsigned x, const unsigned y, const unsigned z, const unsigned w)
void * af_array
Definition: defines.h:222
AFAPI void setSeed(const uintl seed)
AFAPI void replace(array &a, const array &cond, const array &b)
32-bit floating point values
Definition: defines.h:196
AFAPI af_err af_lower(af_array *out, const af_array in, bool is_unit_diag)
AFAPI array shift(const array &in, const int x, const int y=0, const int z=0, const int w=0)
AFAPI array iota(const dim4 &dims, const dim4 &tile_dims=dim4(1), const dtype ty=f32)
af_dtype
Definition: defines.h:195
AFAPI af_err af_flip(af_array *out, const af_array in, const unsigned dim)
af_dtype dtype
Definition: defines.h:400
long long intl
Definition: defines.h:55
AFAPI array upper(const array &in, bool is_unit_diag=false)
AFAPI array identity(const dim4 &dims, const dtype ty=f32)