25 return (float4)(x, x + 1, x + 2, x + 3);
41 __kernel
void mandelbrot(__global uchar* restrict output,
51 int x = get_global_id(0) * 4;
52 int y = get_global_id(1);
64 float4 initialReal = -2 + (
createStartX(x) / (float)width * 2.5f);
65 float4 initialImaginary = -1 + (y / (float)height * 2);
67 float4 real = initialReal;
68 float4 imaginary = initialImaginary;
72 int4 iterationsPerPixel = (int4)(0, 0, 0, 0);
92 float4 oldReal = real;
95 real = real * real - imaginary * imaginary + initialReal;
96 imaginary = 2 * oldReal * imaginary + initialImaginary;
105 float4 absoluteValue = real * real + imaginary * imaginary;
107 mask = isless(absoluteValue, (float4) 4.0f);
109 iterationsPerPixel -= mask;
118 vstore4(convert_uchar4(iterationsPerPixel), 0, output + x + y * width);