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:
* https://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::dim4 dims(10, 10, 1, 1);
af::array A(dims, &input.front());
af::array B = af::constant(0.5, dims, f32);
}
int main(int, char**) {
std::generate(input.begin(), input.end(), unifRand);
try {
printf("Trying CPU Backend\n");
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");
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");
testBackend();
} catch (af::exception& e) {
printf("Caught exception when trying OpenCL backend\n");
fprintf(stderr, "%s\n", e.what());
}
return 0;
}
af::dim4
Generic object that represents size and shape.
Definition: dim4.hpp:33
af::info
AFAPI void info()
af::constant
array constant(T val, const dim4 &dims, const dtype ty=(af_dtype) dtype_traits< T >::ctype)
af::array
A multi dimensional data container.
Definition: array.h:35
af
Definition: algorithm.h:15
af_print
#define af_print(...)
Definition: util.h:148
AF_BACKEND_OPENCL
@ AF_BACKEND_OPENCL
OpenCL Compute Backend.
Definition: defines.h:417
af::exception
An ArrayFire exception class.
Definition: exception.h:29
arrayfire.h
AF_BACKEND_CUDA
@ AF_BACKEND_CUDA
CUDA Compute Backend.
Definition: defines.h:416
af::exception::what
virtual const char * what() const
Returns an error message for the exception in a string format.
Definition: exception.h:60
af::setBackend
AFAPI void setBackend(const Backend bknd)
f32
@ f32
32-bit floating point values
Definition: defines.h:211
AF_BACKEND_CPU
@ AF_BACKEND_CPU
CPU a.k.a sequential algorithms.
Definition: defines.h:415