{-# LANGUAGE TypeFamilies #-} module Numeric.LAPACK.Matrix.Hermitian ( module Numeric.LAPACK.Matrix.Hermitian.Basic, module Numeric.LAPACK.Matrix.Hermitian.Linear, eigenvalues, eigensystem, ) where import qualified Numeric.LAPACK.Matrix.Hermitian.Eigen as Eigen import Numeric.LAPACK.Matrix.Hermitian.Basic import Numeric.LAPACK.Matrix.Hermitian.Linear import Numeric.LAPACK.Matrix.Private (Square) import Numeric.LAPACK.Vector (Vector) import Numeric.LAPACK.Scalar (RealOf) import qualified Numeric.Netlib.Class as Class import qualified Data.Array.Comfort.Shape as Shape eigenvalues :: (Shape.C sh, Class.Floating a) => Hermitian sh a -> Vector sh (RealOf a) eigenvalues = Eigen.values {- | For symmetric eigenvalue problems, @eigensystem@ and @schur@ coincide. -} eigensystem :: (Shape.C sh, Class.Floating a) => Hermitian sh a -> (Square sh a, Vector sh (RealOf a)) eigensystem = Eigen.decompose