{-# LANGUAGE TypeFamilies #-}
module Numeric.LAPACK.Matrix.BandedHermitian (
module Numeric.LAPACK.Matrix.BandedHermitian.Basic,
eigenvalues,
eigensystem,
) where
import qualified Numeric.LAPACK.Matrix.BandedHermitian.Eigen as Eigen
import Numeric.LAPACK.Matrix.BandedHermitian.Basic
import qualified Numeric.LAPACK.Matrix.Private as Matrix
import Numeric.LAPACK.Vector (Vector)
import Numeric.LAPACK.Scalar (RealOf)
import qualified Numeric.Netlib.Class as Class
import qualified Type.Data.Num.Unary as Unary
import qualified Data.Array.Comfort.Shape as Shape
eigenvalues ::
(Unary.Natural offDiag, Shape.C sh, Class.Floating a) =>
BandedHermitian offDiag sh a -> Vector sh (RealOf a)
eigenvalues = Eigen.values
eigensystem ::
(Unary.Natural offDiag, Shape.C sh, Class.Floating a) =>
BandedHermitian offDiag sh a -> (Matrix.Square sh a, Vector sh (RealOf a))
eigensystem = Eigen.decompose