#pragma once template float iterate(const T& ca, const T& cb, int maxIterations) { T a = ca; T b = cb; int n; for(n = 0; n < maxIterations; n++) { T aa = a * a; T bb = b * b; T abab = a * b; abab += abab; a = aa - bb + ca; b = abab + cb; if (aa + bb > T(16)) { break; } } return float(n); }