#include <stdio.h>
#include <iostream>
#include <cmath>
#include <cstdlib>
#define WIDTH 400
#define HEIGHT 400
using std::abs;
array complex_grid(
int width,
int height,
float zoom,
float center[2])
{
array X = (iota(
dim4(1, height),
dim4(width , 1)) - (float)height / 2.0) / zoom + center[0];
array Y = (iota(
dim4(width , 1),
dim4(1, height)) - (float)width / 2.0) / zoom + center[1];
return complex(X, Y);
}
array mandelbrot(
const array &in,
int iter,
float maxval)
{
for (int ii = 1; ii < iter; ii++) {
Z = Z * Z + C;
C = C * (1 - cond);
Z = Z * (1 - cond);
Z.eval();
}
return mag / maxval;
}
{
return (a-mn)/(mx-mn);
}
int main(int argc, char **argv)
{
int device = argc > 1 ? atoi(argv[1]) : 0;
int iter = argc > 2 ? atoi(argv[2]) : 100;
bool console = argc > 2 ? argv[2][0] == '-' : false;
try {
printf("** ArrayFire Fractals Demo **\n");
float center[] = {-0.75, 0.1};
for (int i = 10; i < 400; i++) {
int zoom = i * i;
if(!(i % 10)) printf("iteration: %d zoom: %d\n", i, zoom); fflush(stdout);
array c = complex_grid(WIDTH, HEIGHT, zoom, center);
array mag = mandelbrot(c, iter, 1000);
if(!console) {
if (wnd.close()) break;
array mag_norm = normalize(mag);
wnd.image(mag_norm);
}
}
fprintf(stderr,
"%s\n", e.
what());
throw;
}
return 0;
}
Window object to render af::arrays.
Definition graphics.h:37
A multi dimensional data container.
Definition array.h:27
Definition exception.h:20
virtual const char * what() const
Definition exception.h:34
@ f32
32-bit floating point values
Definition defines.h:196
@ AF_COLORMAP_SPECTRUM
Spectrum map.
Definition defines.h:334
AFAPI array abs(const array &in)
C++ Interface for absolute value.
AFAPI array sqrt(const array &in)
C++ Interface for square root of input.
AFAPI void setDevice(const int device)
Sets the current device.
dim4 dims() const
Get dimensions of the array.
void eval() const
Evaluate any JIT expressions to generate data for the array.
AFAPI array max(const array &in, const int dim=-1)
C++ Interface for maximum values in an array.
AFAPI array sum(const array &in, const int dim=-1)
C++ Interface for sum of elements in an array.
Definition algorithm.h:15