docs: private void computePixelFeatures() {
  		for (int y = 0; y < derivX.height; y++) {
  			int pixelIndex = y*derivX.width;
  			int endIndex = pixelIndex+derivX.width;
  			for (; pixelIndex < endIndex; pixelIndex++ ) {
  				float dx = derivX.data[pixelIndex];
  				float dy = derivY.data[pixelIndex];
  
  				// angle from 0 to pi radians
  				orientation.data[pixelIndex] = UtilAngle.atanSafe(dy,dx) + GrlConstants.F_PId2;
  				// gradient magnitude
  				magnitude.data[pixelIndex] = Math.sqrt(dx*dx + dy*dy);
  			}
  		}
  	}