ArrayFire: defines.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10#pragma once

11

12#ifndef __CUDACC_RTC__

13#include <af/compilers.h>

14#endif

15

16#if defined(_WIN32) || defined(_MSC_VER)

17

18

19 #ifdef AFDLL

20 #define AFAPI __declspec(dllexport)

21 #else

22 #define AFAPI __declspec(dllimport)

23 #endif

24

25

26 #ifndef __cplusplus

27 #define bool unsigned char

28 #define false 0

29 #define true 1

30 #endif

31 #define __PRETTY_FUNCTION__ __FUNCSIG__

32 #define SIZE_T_FRMT_SPECIFIER "%Iu"

33 #define AF_DEPRECATED(msg) __declspec(deprecated( msg ))

34 #if _MSC_VER >= 1800

35 #define AF_HAS_VARIADIC_TEMPLATES

36 #endif

37#else

38 #define AFAPI __attribute__((visibility("default")))

39 #include <stdbool.h>

40 #define SIZE_T_FRMT_SPECIFIER "%zu"

41#if __GNUC__ >= 4 && __GNUC_MINOR > 4

42 #define AF_DEPRECATED(msg) __attribute__((deprecated( msg )))

43#else

44 #define AF_DEPRECATED(msg) __attribute__((deprecated))

45#endif

46#endif

47

48

49#if defined(__x86_64__) || defined(_M_X64) || defined(_WIN64) || defined(__aarch64__) || defined(__LP64__)

50 typedef long long dim_t;

51

52#elif defined(__i386__) || defined(_M_IX86) || defined(__arm__) || defined(_M_ARM)

53 typedef int dim_t;

54

55#else

57#endif

58

59#include <stdlib.h>

60

61#ifndef AFDLL

62typedef AF_DEPRECATED("intl is deprecated. Use long long instead.") long long intl;

63typedef AF_DEPRECATED("uintl is deprecated. Use unsigned long long instead.") unsigned long long uintl;

64#endif

65

66#include <af/version.h>

67#ifndef AF_API_VERSION

68#define AF_API_VERSION AF_API_VERSION_CURRENT

69#endif

70

71typedef enum {

76

77

78

83

88

93

94

95

100

105

110

115

120

125

126

127#if AF_API_VERSION >= 33

132#endif

133

134

135

140

145

146#if AF_API_VERSION >= 32

151#endif

152

153

154

159

165

166#if AF_API_VERSION >= 37

171#endif

172

173

174

175#if AF_API_VERSION >= 32

180#endif

181

182#if AF_API_VERSION >= 32

187#endif

188

189#if AF_API_VERSION >= 32

194#endif

195

196

197

203

209

210typedef enum {

221#if AF_API_VERSION >= 32

223#endif

224#if AF_API_VERSION >= 32

226#endif

227#if AF_API_VERSION >= 37

229#endif

230#if AF_API_VERSION >= 310

232#endif

234

235typedef enum {

239

240#define AF_MAX_DIMS 4

241

242

244

245typedef enum {

251#if AF_API_VERSION >= 34

253#endif

254#if AF_API_VERSION >= 34

256#endif

257#if AF_API_VERSION >= 34

259#endif

260#if AF_API_VERSION >= 34

262#endif

263#if AF_API_VERSION >= 34

265#endif

266

268

269typedef enum {

274

279

284

290

291typedef enum {

296

302

303typedef enum {

304

309

315

316typedef enum {

321

322typedef enum {

333

334#if AF_API_VERSION >= 31

335typedef enum {

340#endif

341

342typedef enum {

346#if AF_API_VERSION >= 31

348#endif

350

351typedef enum {

365

366typedef enum {

375

378

379#if AF_API_VERSION >= 31

380typedef enum {

395#endif

396

397#if AF_API_VERSION >=34

398typedef enum {

405#endif

406

407#if AF_API_VERSION >= 32

408typedef enum {

412#endif

413

414#if AF_API_VERSION >= 32

415

416typedef enum {

423#endif

424

425

426

427

428typedef enum {

431

432#if AF_API_VERSION >=34

433typedef enum {

439#endif

440

441#if AF_API_VERSION >=34

442typedef enum {

451#endif

452

454

455

457typedef enum {

470

471#if AF_API_VERSION >= 32

472typedef enum {

482#endif

484

485#if AF_API_VERSION >= 35

486typedef enum {

490#endif

491

492#if AF_API_VERSION >= 34

493typedef enum {

499#endif

500

501#if AF_API_VERSION >= 36

502typedef enum {

507

508typedef enum {

513

514typedef enum {

522#endif

523

524#if AF_API_VERSION >= 37

525typedef enum {

530

531typedef enum {

536

537typedef enum {

541

542#endif

543

544#if AF_API_VERSION >= 37

545typedef enum {

551#endif

552

553#ifdef __cplusplus

554namespace af

555{

570#if AF_API_VERSION >= 31

572#endif

573#if AF_API_VERSION >= 31

575#endif

576#if AF_API_VERSION >= 32

578#endif

579#if AF_API_VERSION >= 32

581#endif

582#if AF_API_VERSION >= 34

584#endif

585#if AF_API_VERSION >= 34

587#endif

588#if AF_API_VERSION >= 34

590#endif

591#if AF_API_VERSION >= 34

593#endif

594#if AF_API_VERSION >= 35

596#endif

597#if AF_API_VERSION >= 36

601#endif

602#if AF_API_VERSION >= 37

607#endif

608}

609

610#endif

@ u32

32-bit unsigned integral values

@ u64

64-bit unsigned integral values

@ s32

32-bit signed integral values

@ s64

64-bit signed integral values

@ c64

64-bit complex floating point values

@ f32

32-bit floating point values

@ s16

16-bit signed integral values

@ c32

32-bit complex floating point values

@ s8

8-bit signed integral values

@ f64

64-bit floating point values

@ u16

16-bit unsigned integral values

@ f16

16-bit floating point value

@ u8

8-bit unsigned integral values

@ AF_CANNY_THRESHOLD_AUTO_OTSU

Determine canny algorithm thresholds using Otsu algorithm.

@ AF_CANNY_THRESHOLD_MANUAL

User has to define canny thresholds manually.

@ AF_ITERATIVE_DECONV_LANDWEBER

Landweber Deconvolution.

@ AF_ITERATIVE_DECONV_DEFAULT

Default is Landweber deconvolution.

@ AF_ITERATIVE_DECONV_RICHARDSONLUCY

Richardson-Lucy Deconvolution.

@ AF_INVERSE_DECONV_DEFAULT

Default is Tikhonov deconvolution.

@ AF_INVERSE_DECONV_TIKHONOV

Tikhonov Inverse deconvolution.

@ AF_NORM_MATRIX_L_PQ

returns Lpq-norm

@ AF_NORM_VECTOR_2

treats the input as a vector and returns euclidean norm

@ AF_NORM_MATRIX_2

returns the max singular value). Currently NOT SUPPORTED

@ AF_NORM_MATRIX_INF

return the max of row sums

@ AF_NORM_EUCLID

The default. Same as AF_NORM_VECTOR_2.

@ AF_NORM_VECTOR_P

treats the input as a vector and returns the p-norm

@ AF_NORM_VECTOR_INF

treats the input as a vector and returns the max of absolute values

@ AF_NORM_VECTOR_1

treats the input as a vector and returns the sum of absolute values

@ AF_NORM_MATRIX_1

return the max of column sums

@ AF_PAD_SYM

Out of bound values are symmetric over the edge.

@ AF_PAD_PERIODIC

Out of bound values are mapped to range of the dimension in cyclic fashion.

@ AF_PAD_CLAMP_TO_EDGE

Out of bound values are clamped to the edge.

@ AF_PAD_ZERO

Out of bound values are 0.

@ AF_FIF_PNG

FreeImage Enum for Portable Network Graphics File.

@ AF_FIF_PSD

FreeImage Enum for Adobe Photoshop File.

@ AF_FIF_PPMRAW

FreeImage Enum for Portable Pixelmap (Binary) File.

@ AF_FIF_JPEG

FreeImage Enum for JPEG File.

@ AF_FIF_JP2

FreeImage Enum for JPEG-2000 File.

@ AF_FIF_PPM

FreeImage Enum for Portable Pixelmap (ASCII) File.

@ AF_FIF_BMP

FreeImage Enum for Bitmap File.

@ AF_FIF_ICO

FreeImage Enum for Windows Icon File.

@ AF_FIF_RAW

FreeImage Enum for RAW Camera Image File.

@ AF_FIF_EXR

FreeImage Enum for ILM OpenEXR File.

@ AF_FIF_TIFF

FreeImage Enum for Tagged Image File Format File.

@ AF_FIF_HDR

FreeImage Enum for High Dynamic Range File.

@ AF_FIF_JNG

FreeImage Enum for JPEG Network Graphics File.

@ AF_COLORMAP_COLORS

Colors, aka. Rainbow.

@ AF_COLORMAP_SPECTRUM

Spectrum map (390nm-830nm, in sRGB colorspace)

@ AF_COLORMAP_DEFAULT

Default grayscale map.

@ AF_COLORMAP_VIRIDIS

Perceptually uniform shades of blue-green-yellow.

@ AF_COLORMAP_BLUE

Blue hue map.

@ AF_COLORMAP_HEAT

Heat map.

@ AF_COLORMAP_RED

Red hue map.

@ AF_COLORMAP_PLASMA

Perceptually uniform shades of blue-red-yellow.

@ AF_COLORMAP_MAGMA

Perceptually uniform shades of black-red-white.

@ AF_COLORMAP_MOOD

Mood map.

@ AF_COLORMAP_INFERNO

Perceptually uniform shades of black-red-yellow.

@ AF_MAT_CONJ

Data needs to be conjugate.

@ AF_MAT_CTRANS

Data needs to be conjugate tansposed.

@ AF_MAT_LOWER

Matrix is lower triangular.

@ AF_MAT_POSDEF

Matrix is positive definite.

@ AF_MAT_UPPER

Matrix is upper triangular.

@ AF_MAT_SYM

Matrix is symmetric.

@ AF_MAT_ORTHOG

Matrix is orthogonal.

@ AF_MAT_BLOCK_DIAG

Matrix is block diagonal.

@ AF_MAT_TRI_DIAG

Matrix is tri diagonal.

@ AF_MAT_DIAG_UNIT

Matrix diagonal contains unitary values.

@ AF_MAT_TRANS

Data needs to be transposed.

@ AF_STORAGE_CSC

Storage type is CSC.

@ AF_STORAGE_CSR

Storage type is CSR.

@ AF_STORAGE_COO

Storage type is COO.

@ AF_STORAGE_DENSE

Storage type is dense.

@ AF_RANDOM_ENGINE_PHILOX

@ AF_RANDOM_ENGINE_DEFAULT

@ AF_RANDOM_ENGINE_MERSENNE_GP11213

@ AF_RANDOM_ENGINE_THREEFRY

@ AF_RANDOM_ENGINE_PHILOX_4X32_10

@ AF_RANDOM_ENGINE_MERSENNE

@ AF_RANDOM_ENGINE_THREEFRY_2X32_16

@ AF_ERR_ARR_BKND_MISMATCH

@ AF_SUCCESS

The function returned successfully.

@ AF_CONV_FREQ

Perform convolution in frequency domain.

@ AF_CONV_SPATIAL

Perform convolution in spatial domain.

@ AF_CONV_AUTO

ArrayFire automatically picks the right convolution algorithm.

@ AF_HOMOGRAPHY_RANSAC

Computes homography using RANSAC.

@ AF_HOMOGRAPHY_LMEDS

Computes homography using Least Median of Squares.

#define AF_DEPRECATED(msg)

@ AF_LSSD

Match based on Locally scaled SSD.

@ AF_ZNCC

Match based on Zero mean NCC.

@ AF_ZSAD

Match based on Zero mean SAD.

@ AF_SSD

Match based on Sum of Squared Differences (SSD)

@ AF_NCC

Match based on Normalized Cross Correlation (NCC)

@ AF_SHD

Match based on Sum of Hamming Distances (SHD)

@ AF_LSAD

Match based on Locally scaled SAD.

@ AF_ZSSD

Match based on Zero mean SSD.

@ AF_SAD

Match based on Sum of Absolute Differences (SAD)

@ AF_TOPK_STABLE_MAX

Top k max with stable indices.

@ AF_TOPK_STABLE

Preserve order of indices for equal values.

@ AF_TOPK_MIN

Top k min values.

@ AF_TOPK_MAX

Top k max values.

@ AF_TOPK_DEFAULT

Default option (max)

@ AF_TOPK_STABLE_MIN

Top k min with stable indices.

@ AF_YCC_709

ITU-R BT.709 standard.

@ AF_YCC_2020

ITU-R BT.2020 standard.

@ AF_YCC_601

ITU-R BT.601 (formerly CCIR 601) standard.

@ AF_VARIANCE_DEFAULT

Default (Population) variance.

@ AF_VARIANCE_SAMPLE

Sample variance.

@ AF_VARIANCE_POPULATION

Population variance.

@ afDevice

Device pointer.

@ AF_INTERP_CUBIC

Cubic Interpolation.

@ AF_INTERP_LOWER

Floor Indexed.

@ AF_INTERP_LINEAR_COSINE

Linear Interpolation with cosine smoothing.

@ AF_INTERP_LINEAR

Linear Interpolation.

@ AF_INTERP_NEAREST

Nearest Interpolation.

@ AF_INTERP_BILINEAR_COSINE

Bilinear Interpolation with cosine smoothing.

@ AF_INTERP_CUBIC_SPLINE

Cubic Interpolation with Catmull-Rom splines.

@ AF_INTERP_BICUBIC

Bicubic Interpolation.

@ AF_INTERP_BICUBIC_SPLINE

Bicubic Interpolation with Catmull-Rom splines.

@ AF_INTERP_BILINEAR

Bilinear Interpolation.

@ AF_DIFFUSION_MCDE

Modified curvature diffusion equation.

@ AF_DIFFUSION_GRAD

Gradient diffusion equation.

@ AF_DIFFUSION_DEFAULT

Default option is same as AF_DIFFUSION_GRAD.

@ AF_CONV_DEFAULT

Output of the convolution is the same size as input.

@ AF_CONV_EXPAND

Output of the convolution is signal_len + filter_len - 1.

@ AF_YCbCr

3-channel YCbCr

@ AF_FLUX_EXPONENTIAL

Exponential flux function.

@ AF_FLUX_QUADRATIC

Quadratic flux function.

@ AF_FLUX_DEFAULT

Default flux function is exponential.

@ AF_CONNECTIVITY_4

Connectivity includes neighbors, North, East, South and West of current pixel.

@ AF_CONNECTIVITY_8

Connectivity includes 4-connectivity neigbors and also those on Northeast, Northwest,...

@ AF_BACKEND_ONEAPI

OneAPI Compute Backend.

@ AF_BACKEND_CUDA

CUDA Compute Backend.

@ AF_BACKEND_OPENCL

OpenCL Compute Backend.

@ AF_BACKEND_CPU

CPU a.k.a sequential algorithms.

@ AF_BACKEND_DEFAULT

Default backend order: OpenCL -> CUDA -> CPU.

@ AF_CONV_GRADIENT_FILTER

@ AF_CONV_GRADIENT_DEFAULT

af_diffusion_eq diffusionEq

af_flux_function fluxFunction

af_border_type borderType

af_topk_function topkFunction

af_moment_type momentType

af_iterative_deconv_algo iterativeDeconvAlgo

af_conv_gradient_type convGradientType

af_interp_type interpType

af_random_engine_type randomEngineType

af_canny_threshold cannyThreshold

af_connectivity connectivity

af_inverse_deconv_algo inverseDeconvAlgo

af_conv_domain convDomain

af_marker_type markerType

af_image_format imageFormat