/* * JOCL - Java bindings for OpenCL * * Copyright 2009 Marco Hutter - http://www.jocl.org/ */ // A mandelbrot kernel using QuadFloat functions inline int iterate( float2 x0, float2 y0, float2 dx, float2 dy, float relX, float relY, int maxIterations) { float4 qx0 = qfAssign2(x0); float4 qy0 = qfAssign2(y0); float4 qdx = qfAssign2(dx); float4 qdy = qfAssign2(dy); float4 qr = qfAssign(0); float4 qi = qfAssign(0); float4 qx = qfAssign(0); float4 qy = qfAssign(0); float4 qxx = qfAssign(0); float4 qyy = qfAssign(0); float4 qfTemp = qfAssign(0); float4 magnitudeSquared = qfAssign(0); //float r = x0 + ((float)ix / sizeX) * dx; //float i = y0 + ((float)iy / sizeY) * dy; qfMulFloat(&qfTemp, qdx, relX); qfAdd(&qr, qx0, qfTemp); qfMulFloat(&qfTemp, qdy, relY); qfAdd(&qi, qy0, qfTemp); int iteration = 0; while (iteration