blas-0.7: lib/Data/Vector/Dense/Class.hs
-----------------------------------------------------------------------------
-- |
-- Module : Data.Vector.Dense.Class
-- Copyright : Copyright (c) , Patrick Perry <patperry@stanford.edu>
-- License : BSD3
-- Maintainer : Patrick Perry <patperry@stanford.edu>
-- Stability : experimental
--
-- An overloaded interface to mutable dense vectors. For vector types
-- than can be used with this interface, see "Data.Vector.Dense.IO" and
-- "Data.Vector.Dense.ST". Many of these functions can also be used with
-- the immutable type defined in "Data.Vector.Dense".
--
module Data.Vector.Dense.Class (
-- * Dense vector type classes
BaseVector( dim, conj, stride, isConj, coerceVector ),
ReadVector,
WriteVector,
-- * Creating new vectors
newVector_,
newVector,
newListVector,
-- * Special vectors
newZeroVector,
newConstantVector,
newBasisVector,
setZeroVector,
setConstantVector,
setBasisVector,
-- * Copying vectors
newCopyVector,
newCopyVector',
copyVector,
swapVector,
-- * Vector views
subvectorView,
subvectorViewWithStride,
-- * Overloaded interface for reading and writing vector elements
module Data.Tensor.Class.MTensor,
-- * Vector operations
-- ** Unary
getConjVector,
getScaledVector,
getShiftedVector,
doConjVector,
scaleByVector,
shiftByVector,
-- ** Binary
getAddVector,
getSubVector,
getMulVector,
getDivVector,
addVector,
subVector,
axpyVector,
mulVector,
divVector,
-- * Vector Properties
getSumAbs,
getNorm2,
getWhichMaxAbs,
getDot,
-- * Conversions between mutable and immutable vectors
freezeVector,
thawVector,
unsafeFreezeVector,
unsafeThawVector,
-- * Conversions from @IOVector@s
unsafeVectorToIOVector,
unsafeConvertIOVector,
unsafePerformIOWithVector,
) where
import Data.Vector.Dense.Base
import Data.Tensor.Class.MTensor