File: data.dox

package info (click to toggle)
arrayfire 3.3.2%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 109,016 kB
  • sloc: cpp: 127,909; lisp: 6,878; python: 3,923; ansic: 1,051; sh: 347; makefile: 338; xml: 175
file content (350 lines) | stat: -rw-r--r-- 9,405 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
/**
\addtogroup arrayfire_func
@{

\defgroup data_func_constant constant

\brief Create a array from a scalar input value

The array created has the same value at all locations

\ingroup data_mat
\ingroup arrayfire_func

=======================================================================

\defgroup data_func_randu randu

\brief Create a random array sampled from uniform distribution

The data is uniformly distributed between [0, 1]

\ingroup data_mat
\ingroup arrayfire_func

=======================================================================

\defgroup data_func_randn randn

\brief Create a random array sampled from a normal distribution

The distribution is centered around 0

\ingroup data_mat
\ingroup arrayfire_func


\defgroup data_func_setseed setSeed

\brief Set the seed for random number generator


\ingroup data_mat
\ingroup arrayfire_func


\defgroup data_func_getseed getSeed

\brief Get the seed for random number generator


\ingroup data_mat
\ingroup arrayfire_func


\defgroup data_func_identity identity

\brief Create an identity array with diagonal values 1

\code
array a = identity(5, 3);
// a [5 3 1 1]
// 1.0000     0.0000     0.0000
// 0.0000     1.0000     0.0000
// 0.0000     0.0000     1.0000
// 0.0000     0.0000     0.0000
// 0.0000     0.0000     0.0000
\endcode

\ingroup data_mat
\ingroup arrayfire_func

=======================================================================

\defgroup data_func_range range

\brief Creates an array with [0, n] values along the seq_dim which is tiled across other dimensions

\code
// Generates an array of [0, 4] along first dimension
array a = range(dim4(5));        // a = [0,
                                 //      1,
                                 //      2,
                                 //      3,
                                 //      4]

// Generates an array of [0, 4] along first dimension, tiled along second dimension
array b = range(dim4(5, 2));     // a = [0, 0,
                                 //      1, 1,
                                 //      2, 2,
                                 //      3, 3,
                                 //      4, 4]

// Generates an array of [0, 2] along second dimension, tiled along first dimension
array c = range(dim4(5, 3), 1);  // c = [0, 1, 2,
                                 //      0, 1, 2,
                                 //      0, 1, 2,
                                 //      0, 1, 2,
                                 //      0, 1, 2]
\endcode

\ingroup data_mat
\ingroup arrayfire_func

=======================================================================

\defgroup data_func_iota iota

\brief Create an sequence [0, dims.elements() - 1] and modify to specified dimensions dims and then tile it according to tile_dims

\code
// Generate [0, 5x3 - 1] in dimensions 5, 3
array a = iota(dim4(5, 3))
// a [5 3 1 1]
// 0.0000     5.0000    10.0000
// 1.0000     6.0000    11.0000
// 2.0000     7.0000    12.0000
// 3.0000     8.0000    13.0000
// 4.0000     9.0000    14.0000

// Generate [0, 5x3 - 1] in dimensions 5, 3 and then tile once along
// dim0 and twice along dim1
array b = iota(dim4(5, 3), dim4(1, 2))
// b [5 6 1 1]
// 0.0000     5.0000    10.0000     0.0000     5.0000    10.0000
// 1.0000     6.0000    11.0000     1.0000     6.0000    11.0000
// 2.0000     7.0000    12.0000     2.0000     7.0000    12.0000
// 3.0000     8.0000    13.0000     3.0000     8.0000    13.0000
// 4.0000     9.0000    14.0000     4.0000     9.0000    14.0000
\endcode

\ingroup data_mat
\ingroup arrafire_func

=======================================================================

\defgroup data_func_diag diag
\brief Extract diagonal from a matrix when \p extract is set to true. Create a diagonal marix from input array when \p extract is set to false

\code
// Extraction
array a = randu(dim4(4, 3));
// a [4 3 1 1]
// 0.0000     0.5328     0.6793
// 0.1315     0.2190     0.9347
// 0.7556     0.0470     0.3835
// 0.4587     0.6789     0.5194

array b = diag(a);
// b [3 1 1 1]
// 0.0000
// 0.2190
// 0.3835

array c = diag(a, 1);
// c [2 1 1 1]
// 0.5328
// 0.9347

// Creation
array a = randu(4);
// a [4 1 1 1]
// 0.0000
// 0.1315
// 0.7556
// 0.4587

array b = diag(a, 0, false);
// b [4 4 1 1]
// 0.0000     0.0000     0.0000     0.0000
// 0.0000     0.1315     0.0000     0.0000
// 0.0000     0.0000     0.7556     0.0000
// 0.0000     0.0000     0.0000     0.4587

array b = diag(a, -1, false);
// c [5 5 1 1]
// 0.0000     0.0000     0.0000     0.0000     0.0000
// 0.0000     0.0000     0.0000     0.0000     0.0000
// 0.0000     0.1315     0.0000     0.0000     0.0000
// 0.0000     0.0000     0.7556     0.0000     0.0000
// 0.0000     0.0000     0.0000     0.4587     0.0000
\endcode

\ingroup data_mat
\ingroup arrayfire_func

=======================================================================

\defgroup manip_func_join join

\brief Join up to 4 arrays along specified dimension.

Requires that all dimensions except the join dimension must be the same for all arrays.

\ingroup manip_mat
\ingroup arrayfire_func

=======================================================================

\defgroup manip_func_tile tile

\brief Tile the input array along specified dimensions

Creates copys of the array a specified number of times within the output array

\ingroup manip_mat
\ingroup arrayfire_func

=======================================================================

\defgroup manip_func_reorder reorder

\brief Reorder the input by in the specified order

Exchanges dimensions within an array. The order of the data along each
dimension does not change.

\code
array a = randu(5, 4, 3);
// a [5 4 3 1]
// 0.0000     0.2190     0.3835     0.5297
// 0.1315     0.0470     0.5194     0.6711
// 0.7556     0.6789     0.8310     0.0077
// 0.4587     0.6793     0.0346     0.3834
// 0.5328     0.9347     0.0535     0.0668

// 0.4175     0.5269     0.9103     0.3282
// 0.6868     0.0920     0.7622     0.6326
// 0.5890     0.6539     0.2625     0.7564
// 0.9304     0.4160     0.0475     0.9910
// 0.8462     0.7012     0.7361     0.3653

// 0.2470     0.0727     0.7665     0.1665
// 0.9826     0.6316     0.4777     0.4865
// 0.7227     0.8847     0.2378     0.8977
// 0.7534     0.2727     0.2749     0.9092
// 0.6515     0.4364     0.3593     0.0606

array b = reorder(a, 2, 0, 1)
// b [3 5 4 1]
// 0.0000     0.1315     0.7556     0.4587     0.5328
// 0.4175     0.6868     0.5890     0.9304     0.8462
// 0.2470     0.9826     0.7227     0.7534     0.6515

// 0.2190     0.0470     0.6789     0.6793     0.9347
// 0.5269     0.0920     0.6539     0.4160     0.7012
// 0.0727     0.6316     0.8847     0.2727     0.4364

// 0.3835     0.5194     0.8310     0.0346     0.0535
// 0.9103     0.7622     0.2625     0.0475     0.7361
// 0.7665     0.4777     0.2378     0.2749     0.3593

// 0.5297     0.6711     0.0077     0.3834     0.0668
// 0.3282     0.6326     0.7564     0.9910     0.3653
// 0.1665     0.4865     0.8977     0.9092     0.0606
\endcode

\ingroup manip_mat
\ingroup arrayfire_func

=======================================================================

\defgroup manip_func_shift shift

\brief Circular shift slong specified dimensions

Shifts the values in a circular fashion along the specified dimesion.

\ingroup manip_mat
\ingroup arrayfire_func

=======================================================================

\defgroup manip_func_moddims moddims

\brief Modify the input dimensions without changing the data order

Simply modifies the metadata. This is a noop.

\ingroup manip_mat
\ingroup arrayfire_func

=======================================================================

\defgroup manip_func_flat flat

\brief Flatten the input to a single dimension

Simply returns the array as a vector. This is a noop.

\ingroup manip_mat
\ingroup arrayfire_func

=======================================================================

\defgroup manip_func_flip flip

\brief Flip the input along sepcified dimension

Mirrors the array along the specified dimensions.

\ingroup manip_mat
\ingroup arrayfire_func

=======================================================================

\defgroup data_func_lower lower

\brief Create a lower triangular marix from input array

\ingroup data_mat
\ingroup arrayfire_func

=======================================================================

\defgroup data_func_upper upper

\brief Create a upper triangular marix from input array

\ingroup data_mat
\ingroup arrayfire_func

=======================================================================

\defgroup data_func_select select

\brief Select elements from two arrays based on an conditional array

If the condition array has an element as true, then the element from
the lhs array/value is selected, otherwise the element from the rhs
array/value is selected.

\ingroup manip_mat
\ingroup arrayfire_func

=======================================================================

\defgroup data_func_replace replace

\brief Replace elements of an array based on an conditional array

- Input values are retained when corresponding elements from condition array are true.
- Input values are replaced when corresponding elements from condition array are false.

\ingroup manip_mat
\ingroup arrayfire_func

=======================================================================

@}
*/