 var r = zmagsq(c);
  return r;
}

function zsquare(c) {
  var r = c[1];
  var i = c[2];
  return ({1:((r * r - i * i)/precision), 2:((2 * r * i)/precision)});
}

function zsquare_traced(c) {
  var r = zsquare(c);
  return r;
}

function zplus(z1, z2) {
  return ({1:(z1[1] + z2[1]), 2:(z1[2] + z2[2])});
}

var the_limit = 16;

function showz(z) {
  return "("+intToString(z[1]) + ","+intToString(z[2])+")"
}

function mandelloop(z, c, i) {
  for (;;) {
    if (zmagsq_traced(z) > (4 * precision)) {
      break