code: @Override
      public boolean decompose( ZMatrixRMaj A )
      {
          if( A.numRows != A.numCols )
              throw new IllegalArgumentException("A must be square.");
          if( A.numRows <= 0 )
              return false;
  
          QH = A;
  
          N = A.numCols;
  
          if( b.length < N*2 ) {
              b = new double[ N*2 ];
              gammas = new double[ N ];
              u = new double[ N*2 ];
          }
          return _decompose();
      }
docs: Computes the decomposition of the provided matrix.  If no errors are detected then true is returned,
  false otherwise.
  @param A  The matrix that is being decomposed.  Not modified.
  @return If it detects any errors or not.