A high-performance general-purpose compute library

- Main Page
- Tutorials
- Release Notes
- Examples

unified/basic.cpp
/*******************************************************
* Copyright (c) 2015, ArrayFire
* All rights reserved.
*
* This file is distributed under 3-clause BSD license.
* The complete license agreement can be obtained at:
* http://arrayfire.com/licenses/BSD-3-Clause
********************************************************/
#include <arrayfire.h>
#include <algorithm>
#include <cstdio>
#include <vector>
using namespace af;
std::vector<float> input(100);
// Generate a random number between 0 and 1
// return a uniform number in [0,1].
double unifRand() { return rand() / double(RAND_MAX); }
void testBackend() {
af::info();
af::dim4 dims(10, 10, 1, 1);
af::array A(dims, &input.front());
af_print(A);
af::array B = af::constant(0.5, dims, f32);
af_print(B);
}
int main(int, char**) {
std::generate(input.begin(), input.end(), unifRand);
try {
printf("Trying CPU Backend\n");
af::setBackend(AF_BACKEND_CPU);
testBackend();
} catch (af::exception& e) {
printf("Caught exception when trying CPU backend\n");
fprintf(stderr, "%s\n", e.what());
}
try {
printf("Trying CUDA Backend\n");
af::setBackend(AF_BACKEND_CUDA);
testBackend();
} catch (af::exception& e) {
printf("Caught exception when trying CUDA backend\n");
fprintf(stderr, "%s\n", e.what());
}
try {
printf("Trying OpenCL Backend\n");
af::setBackend(AF_BACKEND_OPENCL);
testBackend();
} catch (af::exception& e) {
printf("Caught exception when trying OpenCL backend\n");
fprintf(stderr, "%s\n", e.what());
}
return 0;
}
arrayfire.h
af::array
A multi dimensional data container.
Definition array.h:37
af::dim4
Generic object that represents size and shape.
Definition dim4.hpp:26
af::exception
An ArrayFire exception class.
Definition exception.h:22
af::exception::what
virtual const char * what() const
Returns an error message for the exception in a string format.
Definition exception.h:46
f32
@ f32
32-bit floating point values
Definition defines.h:211
AF_BACKEND_CUDA
@ AF_BACKEND_CUDA
CUDA Compute Backend.
Definition defines.h:416
AF_BACKEND_OPENCL
@ AF_BACKEND_OPENCL
OpenCL Compute Backend.
Definition defines.h:417
AF_BACKEND_CPU
@ AF_BACKEND_CPU
CPU a.k.a sequential algorithms.
Definition defines.h:415
af::constant
array constant(T val, const dim4 &dims, const dtype ty=(af_dtype) dtype_traits< T >::ctype)
C++ Interface to generate an array with elements set to a specified value.
af::info
AFAPI void info()
af::setBackend
AFAPI void setBackend(const Backend bknd)
af
Definition algorithm.h:15
af_print
#define af_print(...)
Definition util.h:148