linear-1.21.5: Linear Algebra
Copyright (C) 2012-2015 Edward Kmett BSD-style (see the file LICENSE) Edward Kmett experimental non-portable Trustworthy Haskell2010

Linear.V1

Description

1-D Vectors

Synopsis

# Documentation

newtype V1 a Source #

A 1-dimensional vector

>>> pure 1 :: V1 Int
V1 1

>>> V1 2 + V1 3
V1 5

>>> V1 2 * V1 3
V1 6

>>> sum (V1 2)
2


Constructors

 V1 a

#### Instances

Instances details
 Source # Instance detailsDefined in Linear.V1 Methods(>>=) :: V1 a -> (a -> V1 b) -> V1 b #(>>) :: V1 a -> V1 b -> V1 b #return :: a -> V1 a # Source # Instance detailsDefined in Linear.V1 Methodsfmap :: (a -> b) -> V1 a -> V1 b #(<\$) :: a -> V1 b -> V1 a # Source # Instance detailsDefined in Linear.V1 Methodsmfix :: (a -> V1 a) -> V1 a # Source # Instance detailsDefined in Linear.V1 Methodspure :: a -> V1 a #(<*>) :: V1 (a -> b) -> V1 a -> V1 b #liftA2 :: (a -> b -> c) -> V1 a -> V1 b -> V1 c #(*>) :: V1 a -> V1 b -> V1 b #(<*) :: V1 a -> V1 b -> V1 a # Source # Instance detailsDefined in Linear.V1 Methodsfold :: Monoid m => V1 m -> m #foldMap :: Monoid m => (a -> m) -> V1 a -> m #foldMap' :: Monoid m => (a -> m) -> V1 a -> m #foldr :: (a -> b -> b) -> b -> V1 a -> b #foldr' :: (a -> b -> b) -> b -> V1 a -> b #foldl :: (b -> a -> b) -> b -> V1 a -> b #foldl' :: (b -> a -> b) -> b -> V1 a -> b #foldr1 :: (a -> a -> a) -> V1 a -> a #foldl1 :: (a -> a -> a) -> V1 a -> a #toList :: V1 a -> [a] #null :: V1 a -> Bool #length :: V1 a -> Int #elem :: Eq a => a -> V1 a -> Bool #maximum :: Ord a => V1 a -> a #minimum :: Ord a => V1 a -> a #sum :: Num a => V1 a -> a #product :: Num a => V1 a -> a # Source # Instance detailsDefined in Linear.V1 Methodstraverse :: Applicative f => (a -> f b) -> V1 a -> f (V1 b) #sequenceA :: Applicative f => V1 (f a) -> f (V1 a) #mapM :: Monad m => (a -> m b) -> V1 a -> m (V1 b) #sequence :: Monad m => V1 (m a) -> m (V1 a) # Source # Instance detailsDefined in Linear.V1 Methodsdistribute :: Functor f => f (V1 a) -> V1 (f a) #collect :: Functor f => (a -> V1 b) -> f a -> V1 (f b) #distributeM :: Monad m => m (V1 a) -> V1 (m a) #collectM :: Monad m => (a -> V1 b) -> m a -> V1 (m b) # Source # Instance detailsDefined in Linear.V1 Associated Typestype Rep V1 # Methodstabulate :: (Rep V1 -> a) -> V1 a #index :: V1 a -> Rep V1 -> a # Source # Instance detailsDefined in Linear.V1 MethodsliftEq :: (a -> b -> Bool) -> V1 a -> V1 b -> Bool # Source # Instance detailsDefined in Linear.V1 MethodsliftCompare :: (a -> b -> Ordering) -> V1 a -> V1 b -> Ordering # Source # Instance detailsDefined in Linear.V1 MethodsliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (V1 a) #liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [V1 a] #liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (V1 a) #liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [V1 a] # Source # Instance detailsDefined in Linear.V1 MethodsliftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> V1 a -> ShowS #liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [V1 a] -> ShowS # Source # Instance detailsDefined in Linear.V1 Methodsmzip :: V1 a -> V1 b -> V1 (a, b) #mzipWith :: (a -> b -> c) -> V1 a -> V1 b -> V1 c #munzip :: V1 (a, b) -> (V1 a, V1 b) # Source # Instance detailsDefined in Linear.V1 MethodsserializeWith :: MonadPut m => (a -> m ()) -> V1 a -> m () #deserializeWith :: MonadGet m => m a -> m (V1 a) # Source # Instance detailsDefined in Linear.V1 MethodsliftHashWithSalt :: (Int -> a -> Int) -> Int -> V1 a -> Int # Source # Instance detailsDefined in Linear.V1 Methods(<.>) :: V1 (a -> b) -> V1 a -> V1 b #(.>) :: V1 a -> V1 b -> V1 b #(<.) :: V1 a -> V1 b -> V1 a #liftF2 :: (a -> b -> c) -> V1 a -> V1 b -> V1 c # Source # Instance detailsDefined in Linear.V1 Methodstraverse1 :: Apply f => (a -> f b) -> V1 a -> f (V1 b) #sequence1 :: Apply f => V1 (f b) -> f (V1 b) # Source # Instance detailsDefined in Linear.V1 Methodsfold1 :: Semigroup m => V1 m -> m #foldMap1 :: Semigroup m => (a -> m) -> V1 a -> m #toNonEmpty :: V1 a -> NonEmpty a # Source # Instance detailsDefined in Linear.V1 Methods(>>-) :: V1 a -> (a -> V1 b) -> V1 b #join :: V1 (V1 a) -> V1 a # Source # Instance detailsDefined in Linear.V1 Methodszero :: Num a => V1 a Source #(^+^) :: Num a => V1 a -> V1 a -> V1 a Source #(^-^) :: Num a => V1 a -> V1 a -> V1 a Source #lerp :: Num a => a -> V1 a -> V1 a -> V1 a Source #liftU2 :: (a -> a -> a) -> V1 a -> V1 a -> V1 a Source #liftI2 :: (a -> b -> c) -> V1 a -> V1 b -> V1 c Source # Source # Instance detailsDefined in Linear.V1 Methodsdot :: Num a => V1 a -> V1 a -> a Source #quadrance :: Num a => V1 a -> a Source #qd :: Num a => V1 a -> V1 a -> a Source #distance :: Floating a => V1 a -> V1 a -> a Source #norm :: Floating a => V1 a -> a Source #signorm :: Floating a => V1 a -> V1 a Source # Source # Instance detailsDefined in Linear.V1 Associated Typestype Size V1 :: Nat Source # MethodstoV :: V1 a -> V (Size V1) a Source #fromV :: V (Size V1) a -> V1 a Source # Source # Instance detailsDefined in Linear.V1 Methods_x :: Lens' (V1 a) a Source # Source # Instance detailsDefined in Linear.Trace Methodstrace :: Num a => V1 (V1 a) -> a Source #diagonal :: V1 (V1 a) -> V1 a Source # Source # Instance detailsDefined in Linear.Affine Associated Typestype Diff V1 :: Type -> Type Source # Methods(.-.) :: Num a => V1 a -> V1 a -> Diff V1 a Source #(.+^) :: Num a => V1 a -> Diff V1 a -> V1 a Source #(.-^) :: Num a => V1 a -> Diff V1 a -> V1 a Source # Lift a => Lift (V1 a :: Type) Source # Instance detailsDefined in Linear.V1 Methodslift :: V1 a -> Q Exp #liftTyped :: V1 a -> Q (TExp (V1 a)) # Unbox a => Vector Vector (V1 a) Source # Instance detailsDefined in Linear.V1 MethodsbasicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) (V1 a) -> m (Vector (V1 a)) #basicUnsafeThaw :: PrimMonad m => Vector (V1 a) -> m (Mutable Vector (PrimState m) (V1 a)) #basicLength :: Vector (V1 a) -> Int #basicUnsafeSlice :: Int -> Int -> Vector (V1 a) -> Vector (V1 a) #basicUnsafeIndexM :: Monad m => Vector (V1 a) -> Int -> m (V1 a) #basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) (V1 a) -> Vector (V1 a) -> m () #elemseq :: Vector (V1 a) -> V1 a -> b -> b # Unbox a => MVector MVector (V1 a) Source # Instance detailsDefined in Linear.V1 MethodsbasicLength :: MVector s (V1 a) -> Int #basicUnsafeSlice :: Int -> Int -> MVector s (V1 a) -> MVector s (V1 a) #basicOverlaps :: MVector s (V1 a) -> MVector s (V1 a) -> Bool #basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) (V1 a)) #basicInitialize :: PrimMonad m => MVector (PrimState m) (V1 a) -> m () #basicUnsafeReplicate :: PrimMonad m => Int -> V1 a -> m (MVector (PrimState m) (V1 a)) #basicUnsafeRead :: PrimMonad m => MVector (PrimState m) (V1 a) -> Int -> m (V1 a) #basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) (V1 a) -> Int -> V1 a -> m () #basicClear :: PrimMonad m => MVector (PrimState m) (V1 a) -> m () #basicSet :: PrimMonad m => MVector (PrimState m) (V1 a) -> V1 a -> m () #basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) (V1 a) -> MVector (PrimState m) (V1 a) -> m () #basicUnsafeMove :: PrimMonad m => MVector (PrimState m) (V1 a) -> MVector (PrimState m) (V1 a) -> m () #basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) (V1 a) -> Int -> m (MVector (PrimState m) (V1 a)) # Num r => Coalgebra r (E V1) Source # Instance detailsDefined in Linear.Algebra Methodscomult :: (E V1 -> r) -> E V1 -> E V1 -> r Source #counital :: (E V1 -> r) -> r Source # Num r => Algebra r (E V1) Source # Instance detailsDefined in Linear.Algebra Methodsmult :: (E V1 -> E V1 -> r) -> E V1 -> r Source #unital :: r -> E V1 -> r Source # Bounded a => Bounded (V1 a) Source # Instance detailsDefined in Linear.V1 MethodsminBound :: V1 a #maxBound :: V1 a # Eq a => Eq (V1 a) Source # Instance detailsDefined in Linear.V1 Methods(==) :: V1 a -> V1 a -> Bool #(/=) :: V1 a -> V1 a -> Bool # Floating a => Floating (V1 a) Source # Instance detailsDefined in Linear.V1 Methodspi :: V1 a #exp :: V1 a -> V1 a #log :: V1 a -> V1 a #sqrt :: V1 a -> V1 a #(**) :: V1 a -> V1 a -> V1 a #logBase :: V1 a -> V1 a -> V1 a #sin :: V1 a -> V1 a #cos :: V1 a -> V1 a #tan :: V1 a -> V1 a #asin :: V1 a -> V1 a #acos :: V1 a -> V1 a #atan :: V1 a -> V1 a #sinh :: V1 a -> V1 a #cosh :: V1 a -> V1 a #tanh :: V1 a -> V1 a #asinh :: V1 a -> V1 a #acosh :: V1 a -> V1 a #atanh :: V1 a -> V1 a #log1p :: V1 a -> V1 a #expm1 :: V1 a -> V1 a #log1pexp :: V1 a -> V1 a #log1mexp :: V1 a -> V1 a # Fractional a => Fractional (V1 a) Source # Instance detailsDefined in Linear.V1 Methods(/) :: V1 a -> V1 a -> V1 a #recip :: V1 a -> V1 a # Data a => Data (V1 a) Source # Instance detailsDefined in Linear.V1 Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> V1 a -> c (V1 a) #gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (V1 a) #toConstr :: V1 a -> Constr #dataTypeOf :: V1 a -> DataType #dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (V1 a)) #dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (V1 a)) #gmapT :: (forall b. Data b => b -> b) -> V1 a -> V1 a #gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> V1 a -> r #gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> V1 a -> r #gmapQ :: (forall d. Data d => d -> u) -> V1 a -> [u] #gmapQi :: Int -> (forall d. Data d => d -> u) -> V1 a -> u #gmapM :: Monad m => (forall d. Data d => d -> m d) -> V1 a -> m (V1 a) #gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> V1 a -> m (V1 a) #gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> V1 a -> m (V1 a) # Num a => Num (V1 a) Source # Instance detailsDefined in Linear.V1 Methods(+) :: V1 a -> V1 a -> V1 a #(-) :: V1 a -> V1 a -> V1 a #(*) :: V1 a -> V1 a -> V1 a #negate :: V1 a -> V1 a #abs :: V1 a -> V1 a #signum :: V1 a -> V1 a # Ord a => Ord (V1 a) Source # Instance detailsDefined in Linear.V1 Methodscompare :: V1 a -> V1 a -> Ordering #(<) :: V1 a -> V1 a -> Bool #(<=) :: V1 a -> V1 a -> Bool #(>) :: V1 a -> V1 a -> Bool #(>=) :: V1 a -> V1 a -> Bool #max :: V1 a -> V1 a -> V1 a #min :: V1 a -> V1 a -> V1 a # Read a => Read (V1 a) Source # Instance detailsDefined in Linear.V1 MethodsreadsPrec :: Int -> ReadS (V1 a) #readList :: ReadS [V1 a] #readPrec :: ReadPrec (V1 a) # Show a => Show (V1 a) Source # Instance detailsDefined in Linear.V1 MethodsshowsPrec :: Int -> V1 a -> ShowS #show :: V1 a -> String #showList :: [V1 a] -> ShowS # Ix a => Ix (V1 a) Source # Instance detailsDefined in Linear.V1 Methodsrange :: (V1 a, V1 a) -> [V1 a] #index :: (V1 a, V1 a) -> V1 a -> Int #unsafeIndex :: (V1 a, V1 a) -> V1 a -> Int #inRange :: (V1 a, V1 a) -> V1 a -> Bool #rangeSize :: (V1 a, V1 a) -> Int #unsafeRangeSize :: (V1 a, V1 a) -> Int # Generic (V1 a) Source # Instance detailsDefined in Linear.V1 Associated Typestype Rep (V1 a) :: Type -> Type # Methodsfrom :: V1 a -> Rep (V1 a) x #to :: Rep (V1 a) x -> V1 a # Semigroup a => Semigroup (V1 a) Source # Instance detailsDefined in Linear.V1 Methods(<>) :: V1 a -> V1 a -> V1 a #sconcat :: NonEmpty (V1 a) -> V1 a #stimes :: Integral b => b -> V1 a -> V1 a # Monoid a => Monoid (V1 a) Source # Instance detailsDefined in Linear.V1 Methodsmempty :: V1 a #mappend :: V1 a -> V1 a -> V1 a #mconcat :: [V1 a] -> V1 a # Storable a => Storable (V1 a) Source # Instance detailsDefined in Linear.V1 MethodssizeOf :: V1 a -> Int #alignment :: V1 a -> Int #peekElemOff :: Ptr (V1 a) -> Int -> IO (V1 a) #pokeElemOff :: Ptr (V1 a) -> Int -> V1 a -> IO () #peekByteOff :: Ptr b -> Int -> IO (V1 a) #pokeByteOff :: Ptr b -> Int -> V1 a -> IO () #peek :: Ptr (V1 a) -> IO (V1 a) #poke :: Ptr (V1 a) -> V1 a -> IO () # Binary a => Binary (V1 a) Source # Instance detailsDefined in Linear.V1 Methodsput :: V1 a -> Put #get :: Get (V1 a) #putList :: [V1 a] -> Put # Serial a => Serial (V1 a) Source # Instance detailsDefined in Linear.V1 Methodsserialize :: MonadPut m => V1 a -> m () #deserialize :: MonadGet m => m (V1 a) # Serialize a => Serialize (V1 a) Source # Instance detailsDefined in Linear.V1 Methodsput :: Putter (V1 a) #get :: Get (V1 a) # NFData a => NFData (V1 a) Source # Instance detailsDefined in Linear.V1 Methodsrnf :: V1 a -> () # Hashable a => Hashable (V1 a) Source # Instance detailsDefined in Linear.V1 MethodshashWithSalt :: Int -> V1 a -> Int #hash :: V1 a -> Int # Unbox a => Unbox (V1 a) Source # Instance detailsDefined in Linear.V1 Ixed (V1 a) Source # Instance detailsDefined in Linear.V1 Methodsix :: Index (V1 a) -> Traversal' (V1 a) (IxValue (V1 a)) # Random a => Random (V1 a) Source # Instance detailsDefined in Linear.V1 MethodsrandomR :: RandomGen g => (V1 a, V1 a) -> g -> (V1 a, g) #random :: RandomGen g => g -> (V1 a, g) #randomRs :: RandomGen g => (V1 a, V1 a) -> g -> [V1 a] #randoms :: RandomGen g => g -> [V1 a] # Epsilon a => Epsilon (V1 a) Source # Instance detailsDefined in Linear.V1 MethodsnearZero :: V1 a -> Bool Source # Source # Instance detailsDefined in Linear.V1 Associated Typestype Rep1 V1 :: k -> Type # Methodsfrom1 :: forall (a :: k). V1 a -> Rep1 V1 a #to1 :: forall (a :: k). Rep1 V1 a -> V1 a # Source # Instance detailsDefined in Linear.V1 Methodsimap :: (E V1 -> a -> b) -> V1 a -> V1 b # Source # Instance detailsDefined in Linear.V1 MethodsifoldMap :: Monoid m => (E V1 -> a -> m) -> V1 a -> m #ifoldMap' :: Monoid m => (E V1 -> a -> m) -> V1 a -> m #ifoldr :: (E V1 -> a -> b -> b) -> b -> V1 a -> b #ifoldl :: (E V1 -> b -> a -> b) -> b -> V1 a -> b #ifoldr' :: (E V1 -> a -> b -> b) -> b -> V1 a -> b #ifoldl' :: (E V1 -> b -> a -> b) -> b -> V1 a -> b # Source # Instance detailsDefined in Linear.V1 Methodsitraverse :: Applicative f => (E V1 -> a -> f b) -> V1 a -> f (V1 b) # Each (V1 a) (V1 b) a b Source # Instance detailsDefined in Linear.V1 Methodseach :: Traversal (V1 a) (V1 b) a b # Field1 (V1 a) (V1 b) a b Source # Instance detailsDefined in Linear.V1 Methods_1 :: Lens (V1 a) (V1 b) a b # type Rep V1 Source # Instance detailsDefined in Linear.V1 type Rep V1 = E V1 type Size V1 Source # Instance detailsDefined in Linear.V1 type Size V1 = 1 type Diff V1 Source # Instance detailsDefined in Linear.Affine type Diff V1 = V1 newtype MVector s (V1 a) Source # Instance detailsDefined in Linear.V1 newtype MVector s (V1 a) = MV_V1 (MVector s a) type Rep (V1 a) Source # Instance detailsDefined in Linear.V1 type Rep (V1 a) = D1 ('MetaData "V1" "Linear.V1" "linear-1.21.5-5uvfBiyMlV6EAGnRIbT486" 'True) (C1 ('MetaCons "V1" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) newtype Vector (V1 a) Source # Instance detailsDefined in Linear.V1 newtype Vector (V1 a) = V_V1 (Vector a) type Index (V1 a) Source # Instance detailsDefined in Linear.V1 type Index (V1 a) = E V1 type IxValue (V1 a) Source # Instance detailsDefined in Linear.V1 type IxValue (V1 a) = a type Rep1 V1 Source # Instance detailsDefined in Linear.V1 type Rep1 V1 = D1 ('MetaData "V1" "Linear.V1" "linear-1.21.5-5uvfBiyMlV6EAGnRIbT486" 'True) (C1 ('MetaCons "V1" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1))

class R1 t where Source #

A space that has at least 1 basis vector _x.

Methods

_x :: Lens' (t a) a Source #

>>> V1 2 ^._x
2

>>> V1 2 & _x .~ 3
V1 3


#### Instances

Instances details
 Source # Instance detailsDefined in Linear.V1 Methods_x :: Lens' (Identity a) a Source # Source # Instance detailsDefined in Linear.V1 Methods_x :: Lens' (V1 a) a Source # Source # Instance detailsDefined in Linear.V2 Methods_x :: Lens' (V2 a) a Source # Source # Instance detailsDefined in Linear.V3 Methods_x :: Lens' (V3 a) a Source # Source # Instance detailsDefined in Linear.V4 Methods_x :: Lens' (V4 a) a Source # Source # Instance detailsDefined in Linear.Quaternion Methods_x :: Lens' (Quaternion a) a Source # R1 f => R1 (Point f) Source # Instance detailsDefined in Linear.Affine Methods_x :: Lens' (Point f a) a Source #

ex :: R1 t => E t Source #