#include <stdio.h>
#include <iostream>
#include <math.h>
#include <cstdlib>
#define WIDTH 400 // Width of image
#define HEIGHT 400 // Width of image
array complex_grid(
int width, 
int height, 
float zoom, 
float center[2])
 
{
    
    array x = (
seq(
double(height)) - double(height) / 2.0);
 
    array y = (
seq(
double(width )) - double(width)  / 2.0);
 
    
    
}
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;
}
{
    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.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;
}