code: @Override
      public Matrix[] decompose() {
  
          if (matrix.is(Matrices.SYMMETRIC_MATRIX)) {
              return decomposeSymmetricMatrix(matrix);
          } else if (matrix.rows() == matrix.columns()) {
              return decomposeNonSymmetricMatrix(matrix);
          } else {
              throw new IllegalArgumentException("Can't decompose rectangle matrix");
          }
      }
docs: Returns the result of Eigen (EVD) decomposition of given matrix
  <p>
  See <a href="http://mathworld.wolfram.com/EigenDecomposition.html">
  http://mathworld.wolfram.com/EigenDecomposition.html</a> for more
  details.
  </p>
  
  @return { V, D }