13 #define is_gpu(id) ((id) == S_GPU || (id) == S_IRITH_SCALAR || (id) == S_IRITH_MATRIX)
36 struct {
int first,
inc; } lin;
37 struct {
unsigned pos; } non;
178 explicit seq(
double n);
193 seq(
double first,
double last);
209 seq(
double first,
double inc,
double last);
282 void init(
double first,
double inc,
double last);
343 #endif // __cplusplus
355 int nsubs, const sub_t *subs, \
356 const unsigned *dims_dst, const unsigned *dims_src, unsigned base, \
357 const unsigned *inds, const void *d0, const void *d1, const void *d2, \
358 unsigned ngfor_dst, unsigned ngfor_sub, float start, float inc
360 #define GET(T) AFAPI afError af_get(_##T##_ *d_dst, const _##T##_ *d_src, JI_PARAMS);
361 #define SET(T) AFAPI afError af_set(_##T##_ *d_dst, const _##T##_ *d_src, JI_PARAMS, unsigned ngfor_src);
362 #define SETSCALAR(T) \
363 AFAPI afError af_setscalar(_##T##_ *d_dst, const _##T##_ src, JI_PARAMS); \
364 AFAPI afError af_setscalar(_##T##_ *d_dst, const _##T##_ *d_src, JI_PARAMS, unsigned ngfor_src);
405 unsigned num_in,
float *d_in,
406 unsigned num_rm,
float *h_idx);
409 unsigned num_in,
double *d_in,
410 unsigned num_rm,
float *h_idx);
413 unsigned num_in,
cfloat *d_in,
414 unsigned num_rm,
float *h_idx);
417 unsigned num_in,
cdouble *d_in,
418 unsigned num_rm,
float *h_idx);
421 unsigned num_in,
double *d_in,
422 unsigned num_rm,
double *h_idx);
425 unsigned num_in,
cdouble *d_in,
426 unsigned num_rm,
double *h_idx);
429 unsigned num_in,
float *d_in,
430 unsigned num_rm,
unsigned *h_idx);
433 unsigned num_in,
double *d_in,
434 unsigned num_rm,
unsigned *h_idx);
437 unsigned num_in,
cfloat *d_in,
438 unsigned num_rm,
unsigned *h_idx);
441 unsigned num_in,
cdouble *d_in,
442 unsigned num_rm,
unsigned *h_idx);
447 float start,
float step,
afError af_range_S(float *d_out, float start, float step, unsigned numel)
Unsigned integer (32-bit)
Definition: index.h:29
Metadata describing subscript.
Definition: index.h:33
seq operator*(double x)
Scale offset sequence.
Definition: index.h:249
#define SETSCALAR(T)
Definition: index.h:362
GFOR iterator.
Definition: index.h:20
seq operator-()
Negative sequence.
Definition: index.h:219
afError af_remove_DD(double *d_out, unsigned num_in, double *d_in, unsigned num_rm, double *h_idx)
Read from GPU device memory (zero-indexed)
Definition: index.h:19
afError af_remove_DS(double *d_out, unsigned num_in, double *d_in, unsigned num_rm, float *h_idx)
afError af_remove_ZD(cdouble *d_out, unsigned num_in, cdouble *d_in, unsigned num_rm, double *h_idx)
unsigned pos
Definition: index.h:37
friend seq operator*(double x, seq y)
Scale offset sequence.
Definition: index.h:279
stype_t
What type of subscript is this?
Definition: index.h:16
int inc
Definition: index.h:36
Linear (inc*i+first)
Definition: index.h:17
afError
Definition: defines.h:10
cuDoubleComplex cdouble
Definition: defines.h:109
GFOR iterator with non-scalar arithmetic.
Definition: index.h:22
double last
Ending value of the sequence.
Definition: index.h:161
afError af_remove_ZS(cdouble *d_out, unsigned num_in, cdouble *d_in, unsigned num_rm, float *h_idx)
int end
Reference last element in dimension.
sequential index generator
Definition: index.h:156
unsigned size
Number of elements in the sequence.
Definition: index.h:162
double first
Starting value of the sequence.
Definition: index.h:159
afError af_remove_SU(float *d_out, unsigned num_in, float *d_in, unsigned num_rm, unsigned *h_idx)
afError af_remove_CU(cfloat *d_out, unsigned num_in, cfloat *d_in, unsigned num_rm, unsigned *h_idx)
double inc
Increment size.
Definition: index.h:160
seq operator-(double x)
Offset sequence.
Definition: index.h:239
#define SET(T)
Definition: index.h:361
afError af_remove_DU(double *d_out, unsigned num_in, double *d_in, unsigned num_rm, unsigned *h_idx)
#define AFAPI
Definition: defines.h:45
sty_t ty
underlying data type
Definition: index.h:39
afError af_remove_ZU(cdouble *d_out, unsigned num_in, cdouble *d_in, unsigned num_rm, unsigned *h_idx)
seq span
Reference entire dimension.
friend seq operator+(double x, seq y)
Offset sequence.
Definition: index.h:259
friend seq operator-(double x, seq y)
Offset sequence.
Definition: index.h:269
sty_t
What type of data is this?
Definition: index.h:25
Single-precision (32-bit)
Definition: index.h:27
afError af_remove_CS(cfloat *d_out, unsigned num_in, cfloat *d_in, unsigned num_rm, float *h_idx)
GFOR iterator with scalar arithmetic.
Definition: index.h:21
Boolean (only scalar subsasgn)
Definition: index.h:26
Double-precision (64-bit)
Definition: index.h:28
cuFloatComplex cfloat
Definition: defines.h:108
Nonlinear (directly specified in d_ind)
Definition: index.h:18
seq operator+(double x)
Offset sequence.
Definition: index.h:229
#define GET(T)
Definition: index.h:360
afError af_remove_SS(float *d_out, unsigned num_in, float *d_in, unsigned num_rm, float *h_idx)
int id
Which device pointer (0,1,2)
Definition: index.h:40