code: public void value2x2_fast( double a11 , double a12, double a21 , double a22 )
      {
          double left = (a11+a22)/2.0;
          double inside = 4.0*a12*a21 + (a11-a22)*(a11-a22);
  
          if( inside < 0 ) {
              value0.real = value1.real = left;
              value0.imaginary = Math.sqrt(-inside)/2.0;
              value1.imaginary = -value0.imaginary;
          } else {
              double right = Math.sqrt(inside)/2.0;
              value0.real = (left+right);
              value1.real = (left-right);
              value0.imaginary = value1.imaginary = 0.0;
          }
      }
docs: Computes the eigenvalues of a 2 by 2 matrix using a faster but more prone to errors method.  This
  is the typical method.