docs: protected void eigenBB_2x2( int x1 ) {
          double b11 = diag[x1];
          double b12 = off[x1];
          double b22 = diag[x1+1];
  
          // normalize to reduce overflow
          double absA = Math.abs(b11);
          double absB = Math.abs(b12);
          double absC = Math.abs(b22);
  
          double scale = absA > absB ? absA : absB;
          if( absC > scale ) scale = absC;
  
          // see if it is a pathological case.  the diagonal must already be zero
          // and the eigenvalues are all zero.  so just return
          if( scale == 0 )
              return;
  
          b11 /= scale;
          b12 /= scale;
          b22 /= scale;
  
          eigenSmall.symm2x2_fast(b11*b11, b11*b12 , b12*b12+b22*b22);
  
          off[x1] = 0;
          diag[x1] = scale* Math.sqrt(eigenSmall.value0.real);
          double sgn = Math.signum(eigenSmall.value1.real);
          diag[x1+1] = sgn*scale* Math.sqrt(Math.abs(eigenSmall.value1.real));
  
      }