docs: private float iterationSorSafe(GrayF32 image1, int x, int y, int pixelIndex) {
  		float w = SOR_RELAXATION;
  
  		float uf;
  		float vf;
  		float ui = initFlowX.data[pixelIndex];
  		float vi = initFlowY.data[pixelIndex];
  
  		float u = flowX.data[pixelIndex];
  		float v = flowY.data[pixelIndex];
  
  		float I1 = image1.data[pixelIndex];
  		float I2 = warpImage2.data[pixelIndex];
  
  		float I2x = warpDeriv2X.data[pixelIndex];
  		float I2y = warpDeriv2Y.data[pixelIndex];
  
  		float AU = A_safe(x,y,flowX);
  		float AV = A_safe(x,y,flowY);
  
  		flowX.data[pixelIndex] = uf = (1-w)*u + w*((I1-I2+I2x*ui - I2y*(v-vi))*I2x + alpha2*AU)/(I2x*I2x + alpha2);
  		flowY.data[pixelIndex] = vf = (1-w)*v + w*((I1-I2+I2y*vi - I2x*(uf-ui))*I2y + alpha2*AV)/(I2y*I2y + alpha2);
  
  		return (uf - u)*(uf - u) + (vf - v)*(vf - v);
  	}