docs: private void hqr2BacksubstituteReal(int n, double p, double norm) {
      H[n][n] = 1.0;
      double s = 0, z = 0;
      for(int i = n - 1, l = n; i >= 0; i--) {
        final double[] Hi = H[i];
        double w = Hi[i] - p, r = 0.;
        for(int j = l; j <= n; j++) {
          r += Hi[j] * H[j][n];
        }
        if(e[i] < 0.0) {
          z = w;
          s = r;
          continue;
        }
        l = i;
        if(!(e[i] > 0.0)) {
          Hi[n] = -r / ((w > 0.0 || w < 0.0) ? w : (0x1P-52 * norm));
        }
        else {
          // Solve real equations
          final double[] Hip1 = H[i + 1];
          final double x = Hi[i + 1], y = Hip1[i], dip = d[i] - p, ei = e[i];
          final double t = Hi[n] = (x * s - z * r) / (dip * dip + ei * ei);
          Hip1[n] = (abs(x) > abs(z)) ? (-r - w * t) / x : (-s - y * t) / z;
        }
  
        // Overflow control
        final double t = abs(Hi[n]);
        if((0x1P-52 * t) * t > 1) {
          for(int j = i; j <= n; j++) {
            H[j][n] /= t;
          }
        }
      }
    }