A high-performance general-purpose compute library
* Copyright (c) 2014, 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 <math.h>
#include <cstdio>
using namespace af;
static const int ITERATIONS = 50;
static const float PRECISION = 1.0f / ITERATIONS;
int main(int, char**) {
try {
// Initialize the kernel array just once
af::Window myWindow(800, 800, "2D Plot example: ArrayFire");
array Y;
int sign = 1;
array X = seq(-af::Pi, af::Pi, PRECISION);
array noise = randn(X.dims(0)) / 5.f;
myWindow.grid(2, 1);
for (double val = 0; !myWindow.close();) {
Y = sin(X);
myWindow(0, 0).plot(X, Y);
myWindow(1, 0).scatter(X, Y + noise, AF_MARKER_POINT);
X = X + PRECISION * float(sign);
val += PRECISION * float(sign);
if (val > af::Pi) {
sign = -1;
} else if (val < -af::Pi) {
sign = 1;
} catch (af::exception& e) {
fprintf(stderr, "%s\n", e.what());
return 0;
Window object to render af::arrays.
Definition: graphics.h:37
A multi dimensional data container.
Definition: array.h:37
dim4 dims() const
Get dimensions of the array.
An ArrayFire exception class.
Definition: exception.h:22
virtual const char * what() const
Returns an error message for the exception in a string format.
Definition: exception.h:46
seq is used to create sequences for indexing af::array
Definition: seq.h:46
Definition: defines.h:471
AFAPI void info()
void plot(const array &in, const char *const title=NULL)
Renders the input arrays as a 2D or 3D plot to the window.
void scatter(const array &in, const af::markerType marker=AF_MARKER_POINT, const char *const title=NULL)
Renders the input arrays as a 2D or 3D scatter-plot to the window.
bool close()
Check if window is marked for close.
void show()
This function swaps the background buffer to current view and polls for any key strokes while the win...
void grid(const int rows, const int cols)
Setup grid layout for multiview mode in a window.
Definition: algorithm.h:15
AFAPI const double Pi