A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://arrayfire.org/docs/graphics_2fractal_8cpp-example.htm below:

ArrayFire: graphics/fractal.cpp

#include <stdio.h>

#include <cmath>

#include <cstdlib>

#include <iostream>

#define WIDTH 400

#define HEIGHT 400

using std::abs;

array

complex_grid(

int

width,

int

height,

float

zoom,

float

center[2]) {

(iota(

dim4

(1, height),

dim4

(width, 1)) - (float)height / 2.0) / zoom +

center[0];

(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;

array

cond = (abs(Z) > maxval).as(

f32

);

C = C * (1 - cond);

Z = Z * (1 - cond);

}

return mag / maxval;

}

float mx = af::max<float>(a);

float mn = af::min<float>(a);

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.75f, 0.1f};

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.

A multi dimensional data container.

dim4 dims() const

Get dimensions of the array.

void eval() const

Evaluate any JIT expressions to generate data for the array.

Generic object that represents size and shape.

An ArrayFire exception class.

virtual const char * what() const

Returns an error message for the exception in a string format.

@ f32

32-bit floating point values

@ AF_COLORMAP_SPECTRUM

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

AFAPI array abs(const array &in)

C++ Interface to calculate the absolute value.

AFAPI array sqrt(const array &in)

C++ Interface to evaluate the square root.

array & eval(array &a)

Evaluate an expression (nonblocking).

AFAPI void setDevice(const int device)

Sets the current device.

AFAPI array max(const array &in, const int dim=-1)

C++ Interface to return the maximum along a given dimension.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4