module Numeric.LAPACK.Vector.Private where import qualified Numeric.LAPACK.Shape.Private as ShapePriv import qualified Numeric.LAPACK.FFI.Complex as LapackComplex import qualified Numeric.BLAS.FFI.Generic as BlasGen import qualified Numeric.Netlib.Class as Class import Foreign.Ptr (Ptr) import Foreign.C.Types (CInt) import qualified Data.Array.Comfort.Storable.Unchecked as Array import Data.Array.Comfort.Storable.Unchecked (Array) newtype ArgMaximum a = ArgMaximum {forall a. ArgMaximum a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt runArgMaximum :: Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt} absMax :: Class.Floating a => Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt absMax :: forall a. Floating a => Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt absMax = ArgMaximum a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt forall a. ArgMaximum a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt runArgMaximum (ArgMaximum a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt) -> ArgMaximum a -> Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt forall a b. (a -> b) -> a -> b $ ArgMaximum Float -> ArgMaximum Double -> ArgMaximum (Complex Float) -> ArgMaximum (Complex Double) -> ArgMaximum a forall a (f :: * -> *). Floating a => f Float -> f Double -> f (Complex Float) -> f (Complex Double) -> f a forall (f :: * -> *). f Float -> f Double -> f (Complex Float) -> f (Complex Double) -> f a Class.switchFloating ((Ptr CInt -> Ptr Float -> Ptr CInt -> IO CInt) -> ArgMaximum Float forall a. (Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt) -> ArgMaximum a ArgMaximum Ptr CInt -> Ptr Float -> Ptr CInt -> IO CInt forall a. Floating a => Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt BlasGen.iamax) ((Ptr CInt -> Ptr Double -> Ptr CInt -> IO CInt) -> ArgMaximum Double forall a. (Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt) -> ArgMaximum a ArgMaximum Ptr CInt -> Ptr Double -> Ptr CInt -> IO CInt forall a. Floating a => Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt BlasGen.iamax) ((Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO CInt) -> ArgMaximum (Complex Float) forall a. (Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt) -> ArgMaximum a ArgMaximum Ptr CInt -> Ptr (Complex Float) -> Ptr CInt -> IO CInt forall a. Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO CInt LapackComplex.imax1) ((Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO CInt) -> ArgMaximum (Complex Double) forall a. (Ptr CInt -> Ptr a -> Ptr CInt -> IO CInt) -> ArgMaximum a ArgMaximum Ptr CInt -> Ptr (Complex Double) -> Ptr CInt -> IO CInt forall a. Real a => Ptr CInt -> Ptr (Complex a) -> Ptr CInt -> IO CInt LapackComplex.imax1) uncheck :: Array sh a -> Array (ShapePriv.Unchecked sh) a uncheck :: forall sh a. Array sh a -> Array (Unchecked sh) a uncheck = (sh -> Unchecked sh) -> Array sh a -> Array (Unchecked sh) a forall sh0 sh1 a. (sh0 -> sh1) -> Array sh0 a -> Array sh1 a Array.mapShape sh -> Unchecked sh forall sh. sh -> Unchecked sh ShapePriv.Unchecked recheck :: Array (ShapePriv.Unchecked sh) a -> Array sh a recheck :: forall sh a. Array (Unchecked sh) a -> Array sh a recheck = (Unchecked sh -> sh) -> Array (Unchecked sh) a -> Array sh a forall sh0 sh1 a. (sh0 -> sh1) -> Array sh0 a -> Array sh1 a Array.mapShape Unchecked sh -> sh forall sh. Unchecked sh -> sh ShapePriv.deconsUnchecked