docs: protected double updateEigenvector(double[] in, double[] out, double l) {
      double s = 1. / (l > 0. ? l : l < 0. ? -l : 1.);
      s = (in[0] > 0.) ? s : -s; // Reduce flipping vectors
      double diff = 0.;
      for(int d = 0; d < in.length; d++) {
        in[d] *= s; // Scale to unit length
        // Compute change from previous iteration:
        double delta = in[d] - out[d];
        diff += delta * delta;
        out[d] = in[d]; // Update output storage
      }
      return diff;
    }