linear-1.21.1: Linear Algebra

Linear.V

Description

n-D Vectors

Synopsis

# Documentation

newtype V n a Source #

Constructors

 V FieldstoVector :: Vector a
Instances
 Source # Instance detailsDefined in Linear.V Methodsimap :: (Int -> a -> b) -> V n a -> V n b #imapped :: IndexedSetter Int (V n a) (V n b) a b # Source # Instance detailsDefined in Linear.V MethodsifoldMap :: Monoid m => (Int -> a -> m) -> V n a -> m #ifolded :: IndexedFold Int (V n a) a #ifoldr :: (Int -> a -> b -> b) -> b -> V n a -> b #ifoldl :: (Int -> b -> a -> b) -> b -> V n a -> b #ifoldr' :: (Int -> a -> b -> b) -> b -> V n a -> b #ifoldl' :: (Int -> b -> a -> b) -> b -> V n a -> b # Source # Instance detailsDefined in Linear.V Methodsitraverse :: Applicative f => (Int -> a -> f b) -> V n a -> f (V n b) #itraversed :: IndexedTraversal Int (V n a) (V n b) a b # (Dim n, Unbox a) => Vector Vector (V n a) Source # Instance detailsDefined in Linear.V MethodsbasicUnsafeFreeze :: PrimMonad m => Mutable Vector (PrimState m) (V n a) -> m (Vector (V n a)) #basicUnsafeThaw :: PrimMonad m => Vector (V n a) -> m (Mutable Vector (PrimState m) (V n a)) #basicLength :: Vector (V n a) -> Int #basicUnsafeSlice :: Int -> Int -> Vector (V n a) -> Vector (V n a) #basicUnsafeIndexM :: Monad m => Vector (V n a) -> Int -> m (V n a) #basicUnsafeCopy :: PrimMonad m => Mutable Vector (PrimState m) (V n a) -> Vector (V n a) -> m () #elemseq :: Vector (V n a) -> V n a -> b -> b # (Dim n, Unbox a) => MVector MVector (V n a) Source # Instance detailsDefined in Linear.V MethodsbasicLength :: MVector s (V n a) -> Int #basicUnsafeSlice :: Int -> Int -> MVector s (V n a) -> MVector s (V n a) #basicOverlaps :: MVector s (V n a) -> MVector s (V n a) -> Bool #basicUnsafeNew :: PrimMonad m => Int -> m (MVector (PrimState m) (V n a)) #basicInitialize :: PrimMonad m => MVector (PrimState m) (V n a) -> m () #basicUnsafeReplicate :: PrimMonad m => Int -> V n a -> m (MVector (PrimState m) (V n a)) #basicUnsafeRead :: PrimMonad m => MVector (PrimState m) (V n a) -> Int -> m (V n a) #basicUnsafeWrite :: PrimMonad m => MVector (PrimState m) (V n a) -> Int -> V n a -> m () #basicClear :: PrimMonad m => MVector (PrimState m) (V n a) -> m () #basicSet :: PrimMonad m => MVector (PrimState m) (V n a) -> V n a -> m () #basicUnsafeCopy :: PrimMonad m => MVector (PrimState m) (V n a) -> MVector (PrimState m) (V n a) -> m () #basicUnsafeMove :: PrimMonad m => MVector (PrimState m) (V n a) -> MVector (PrimState m) (V n a) -> m () #basicUnsafeGrow :: PrimMonad m => MVector (PrimState m) (V n a) -> Int -> m (MVector (PrimState m) (V n a)) # Generic1 (V n :: Type -> Type) Source # Instance detailsDefined in Linear.V Associated Typestype Rep1 (V n) :: k -> Type # Methodsfrom1 :: V n a -> Rep1 (V n) a #to1 :: Rep1 (V n) a -> V n a # Dim n => Dim (V n a :: Type) Source # Instance detailsDefined in Linear.V MethodsreflectDim :: p (V n a) -> Int Source # Dim n => Monad (V n) Source # Instance detailsDefined in Linear.V Methods(>>=) :: V n a -> (a -> V n b) -> V n b #(>>) :: V n a -> V n b -> V n b #return :: a -> V n a #fail :: String -> V n a # Functor (V n) Source # Instance detailsDefined in Linear.V Methodsfmap :: (a -> b) -> V n a -> V n b #(<) :: a -> V n b -> V n a # Dim n => MonadFix (V n) Source # Instance detailsDefined in Linear.V Methodsmfix :: (a -> V n a) -> V n a # Dim n => Applicative (V n) Source # Instance detailsDefined in Linear.V Methodspure :: a -> V n a #(<*>) :: V n (a -> b) -> V n a -> V n b #liftA2 :: (a -> b -> c) -> V n a -> V n b -> V n c #(*>) :: V n a -> V n b -> V n b #(<*) :: V n a -> V n b -> V n a # Foldable (V n) Source # Instance detailsDefined in Linear.V Methodsfold :: Monoid m => V n m -> m #foldMap :: Monoid m => (a -> m) -> V n a -> m #foldr :: (a -> b -> b) -> b -> V n a -> b #foldr' :: (a -> b -> b) -> b -> V n a -> b #foldl :: (b -> a -> b) -> b -> V n a -> b #foldl' :: (b -> a -> b) -> b -> V n a -> b #foldr1 :: (a -> a -> a) -> V n a -> a #foldl1 :: (a -> a -> a) -> V n a -> a #toList :: V n a -> [a] #null :: V n a -> Bool #length :: V n a -> Int #elem :: Eq a => a -> V n a -> Bool #maximum :: Ord a => V n a -> a #minimum :: Ord a => V n a -> a #sum :: Num a => V n a -> a #product :: Num a => V n a -> a # Traversable (V n) Source # Instance detailsDefined in Linear.V Methodstraverse :: Applicative f => (a -> f b) -> V n a -> f (V n b) #sequenceA :: Applicative f => V n (f a) -> f (V n a) #mapM :: Monad m => (a -> m b) -> V n a -> m (V n b) #sequence :: Monad m => V n (m a) -> m (V n a) # Dim n => Distributive (V n) Source # Instance detailsDefined in Linear.V Methodsdistribute :: Functor f => f (V n a) -> V n (f a) #collect :: Functor f => (a -> V n b) -> f a -> V n (f b) #distributeM :: Monad m => m (V n a) -> V n (m a) #collectM :: Monad m => (a -> V n b) -> m a -> V n (m b) # Dim n => Representable (V n) Source # Instance detailsDefined in Linear.V Associated Typestype Rep (V n) :: Type # Methodstabulate :: (Rep (V n) -> a) -> V n a #index :: V n a -> Rep (V n) -> a # Eq1 (V n) Source # Instance detailsDefined in Linear.V MethodsliftEq :: (a -> b -> Bool) -> V n a -> V n b -> Bool # Ord1 (V n) Source # Instance detailsDefined in Linear.V MethodsliftCompare :: (a -> b -> Ordering) -> V n a -> V n b -> Ordering # Dim n => Read1 (V n) Source # Instance detailsDefined in Linear.V MethodsliftReadsPrec :: (Int -> ReadS a) -> ReadS [a] -> Int -> ReadS (V n a) #liftReadList :: (Int -> ReadS a) -> ReadS [a] -> ReadS [V n a] #liftReadPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec (V n a) #liftReadListPrec :: ReadPrec a -> ReadPrec [a] -> ReadPrec [V n a] # Show1 (V n) Source # Instance detailsDefined in Linear.V MethodsliftShowsPrec :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> Int -> V n a -> ShowS #liftShowList :: (Int -> a -> ShowS) -> ([a] -> ShowS) -> [V n a] -> ShowS # Dim n => MonadZip (V n) Source # Instance detailsDefined in Linear.V Methodsmzip :: V n a -> V n b -> V n (a, b) #mzipWith :: (a -> b -> c) -> V n a -> V n b -> V n c #munzip :: V n (a, b) -> (V n a, V n b) # Dim n => Serial1 (V n) Source # Instance detailsDefined in Linear.V MethodsserializeWith :: MonadPut m => (a -> m ()) -> V n a -> m () #deserializeWith :: MonadGet m => m a -> m (V n a) # Dim n => Hashable1 (V n) Source # Instance detailsDefined in Linear.V MethodsliftHashWithSalt :: (Int -> a -> Int) -> Int -> V n a -> Int # Apply (V n) Source # Instance detailsDefined in Linear.V Methods(<.>) :: V n (a -> b) -> V n a -> V n b #(.>) :: V n a -> V n b -> V n b #(<.) :: V n a -> V n b -> V n a #liftF2 :: (a -> b -> c) -> V n a -> V n b -> V n c # Bind (V n) Source # Instance detailsDefined in Linear.V Methods(>>-) :: V n a -> (a -> V n b) -> V n b #join :: V n (V n a) -> V n a # Dim n => Additive (V n) Source # Instance detailsDefined in Linear.V Methodszero :: Num a => V n a Source #(^+^) :: Num a => V n a -> V n a -> V n a Source #(^-^) :: Num a => V n a -> V n a -> V n a Source #lerp :: Num a => a -> V n a -> V n a -> V n a Source #liftU2 :: (a -> a -> a) -> V n a -> V n a -> V n a Source #liftI2 :: (a -> b -> c) -> V n a -> V n b -> V n c Source # Dim n => Metric (V n) Source # Instance detailsDefined in Linear.V Methodsdot :: Num a => V n a -> V n a -> a Source #quadrance :: Num a => V n a -> a Source #qd :: Num a => V n a -> V n a -> a Source #distance :: Floating a => V n a -> V n a -> a Source #norm :: Floating a => V n a -> a Source #signorm :: Floating a => V n a -> V n a Source # Finite (V n) Source # Instance detailsDefined in Linear.V Associated Typestype Size (V n) :: Nat Source # MethodstoV :: V n a -> V (Size (V n)) a Source #fromV :: V (Size (V n)) a -> V n a Source # Dim n => Trace (V n) Source # Instance detailsDefined in Linear.Trace Methodstrace :: Num a => V n (V n a) -> a Source #diagonal :: V n (V n a) -> V n a Source # Dim n => Affine (V n) Source # Instance detailsDefined in Linear.Affine Associated Typestype Diff (V n) :: Type -> Type Source # Methods(.-.) :: Num a => V n a -> V n a -> Diff (V n) a Source #(.+^) :: Num a => V n a -> Diff (V n) a -> V n a Source #(.-^) :: Num a => V n a -> Diff (V n) a -> V n a Source # (Bounded a, Dim n) => Bounded (V n a) Source # Instance detailsDefined in Linear.V MethodsminBound :: V n a #maxBound :: V n a # Eq a => Eq (V n a) Source # Instance detailsDefined in Linear.V Methods(==) :: V n a -> V n a -> Bool #(/=) :: V n a -> V n a -> Bool # (Dim n, Floating a) => Floating (V n a) Source # Instance detailsDefined in Linear.V Methodspi :: V n a #exp :: V n a -> V n a #log :: V n a -> V n a #sqrt :: V n a -> V n a #(**) :: V n a -> V n a -> V n a #logBase :: V n a -> V n a -> V n a #sin :: V n a -> V n a #cos :: V n a -> V n a #tan :: V n a -> V n a #asin :: V n a -> V n a #acos :: V n a -> V n a #atan :: V n a -> V n a #sinh :: V n a -> V n a #cosh :: V n a -> V n a #tanh :: V n a -> V n a #asinh :: V n a -> V n a #acosh :: V n a -> V n a #atanh :: V n a -> V n a #log1p :: V n a -> V n a #expm1 :: V n a -> V n a #log1pexp :: V n a -> V n a #log1mexp :: V n a -> V n a # (Dim n, Fractional a) => Fractional (V n a) Source # Instance detailsDefined in Linear.V Methods(/) :: V n a -> V n a -> V n a #recip :: V n a -> V n a #fromRational :: Rational -> V n a # (Typeable (V n), Typeable (V n a), Dim n, Data a) => Data (V n a) Source # Instance detailsDefined in Linear.V Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> V n a -> c (V n a) #gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (V n a) #toConstr :: V n a -> Constr #dataTypeOf :: V n a -> DataType #dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (V n a)) #dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (V n a)) #gmapT :: (forall b. Data b => b -> b) -> V n a -> V n a #gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> V n a -> r #gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> V n a -> r #gmapQ :: (forall d. Data d => d -> u) -> V n a -> [u] #gmapQi :: Int -> (forall d. Data d => d -> u) -> V n a -> u #gmapM :: Monad m => (forall d. Data d => d -> m d) -> V n a -> m (V n a) #gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> V n a -> m (V n a) #gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> V n a -> m (V n a) # (Dim n, Num a) => Num (V n a) Source # Instance detailsDefined in Linear.V Methods(+) :: V n a -> V n a -> V n a #(-) :: V n a -> V n a -> V n a #(*) :: V n a -> V n a -> V n a #negate :: V n a -> V n a #abs :: V n a -> V n a #signum :: V n a -> V n a #fromInteger :: Integer -> V n a # Ord a => Ord (V n a) Source # Instance detailsDefined in Linear.V Methodscompare :: V n a -> V n a -> Ordering #(<) :: V n a -> V n a -> Bool #(<=) :: V n a -> V n a -> Bool #(>) :: V n a -> V n a -> Bool #(>=) :: V n a -> V n a -> Bool #max :: V n a -> V n a -> V n a #min :: V n a -> V n a -> V n a # Read a => Read (V n a) Source # Instance detailsDefined in Linear.V MethodsreadsPrec :: Int -> ReadS (V n a) #readList :: ReadS [V n a] #readPrec :: ReadPrec (V n a) #readListPrec :: ReadPrec [V n a] # Show a => Show (V n a) Source # Instance detailsDefined in Linear.V MethodsshowsPrec :: Int -> V n a -> ShowS #show :: V n a -> String #showList :: [V n a] -> ShowS # Generic (V n a) Source # Instance detailsDefined in Linear.V Associated Typestype Rep (V n a) :: Type -> Type # Methodsfrom :: V n a -> Rep (V n a) x #to :: Rep (V n a) x -> V n a # (Dim n, Semigroup a) => Semigroup (V n a) Source # Instance detailsDefined in Linear.V Methods(<>) :: V n a -> V n a -> V n a #sconcat :: NonEmpty (V n a) -> V n a #stimes :: Integral b => b -> V n a -> V n a # (Dim n, Monoid a) => Monoid (V n a) Source # Instance detailsDefined in Linear.V Methodsmempty :: V n a #mappend :: V n a -> V n a -> V n a #mconcat :: [V n a] -> V n a # (Dim n, Storable a) => Storable (V n a) Source # Instance detailsDefined in Linear.V MethodssizeOf :: V n a -> Int #alignment :: V n a -> Int #peekElemOff :: Ptr (V n a) -> Int -> IO (V n a) #pokeElemOff :: Ptr (V n a) -> Int -> V n a -> IO () #peekByteOff :: Ptr b -> Int -> IO (V n a) #pokeByteOff :: Ptr b -> Int -> V n a -> IO () #peek :: Ptr (V n a) -> IO (V n a) #poke :: Ptr (V n a) -> V n a -> IO () # (Dim n, Binary a) => Binary (V n a) Source # Instance detailsDefined in Linear.V Methodsput :: V n a -> Put #get :: Get (V n a) #putList :: [V n a] -> Put # (Dim n, Serial a) => Serial (V n a) Source # Instance detailsDefined in Linear.V Methodsserialize :: MonadPut m => V n a -> m () #deserialize :: MonadGet m => m (V n a) # (Dim n, Serialize a) => Serialize (V n a) Source # Instance detailsDefined in Linear.V Methodsput :: Putter (V n a) #get :: Get (V n a) # NFData a => NFData (V n a) Source # Instance detailsDefined in Linear.V Methodsrnf :: V n a -> () # Hashable a => Hashable (V n a) Source # Instance detailsDefined in Linear.V MethodshashWithSalt :: Int -> V n a -> Int #hash :: V n a -> Int # (Dim n, Unbox a) => Unbox (V n a) Source # Instance detailsDefined in Linear.V Ixed (V n a) Source # Instance detailsDefined in Linear.V Methodsix :: Index (V n a) -> Traversal' (V n a) (IxValue (V n a)) # (Dim n, Random a) => Random (V n a) Source # Instance detailsDefined in Linear.V MethodsrandomR :: RandomGen g => (V n a, V n a) -> g -> (V n a, g) #random :: RandomGen g => g -> (V n a, g) #randomRs :: RandomGen g => (V n a, V n a) -> g -> [V n a] #randoms :: RandomGen g => g -> [V n a] # (Dim n, Epsilon a) => Epsilon (V n a) Source # Instance detailsDefined in Linear.V MethodsnearZero :: V n a -> Bool Source # Each (V n a) (V n b) a b Source # Instance detailsDefined in Linear.V Methodseach :: Traversal (V n a) (V n b) a b # 1 <= n => Field1 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_1 :: Lens (V n a) (V n a) a a # 2 <= n => Field2 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_2 :: Lens (V n a) (V n a) a a # 3 <= n => Field3 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_3 :: Lens (V n a) (V n a) a a # 4 <= n => Field4 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_4 :: Lens (V n a) (V n a) a a # 5 <= n => Field5 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_5 :: Lens (V n a) (V n a) a a # 6 <= n => Field6 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_6 :: Lens (V n a) (V n a) a a # 7 <= n => Field7 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_7 :: Lens (V n a) (V n a) a a # 8 <= n => Field8 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_8 :: Lens (V n a) (V n a) a a # 9 <= n => Field9 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_9 :: Lens (V n a) (V n a) a a # 10 <= n => Field10 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_10 :: Lens (V n a) (V n a) a a # 11 <= n => Field11 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_11 :: Lens (V n a) (V n a) a a # 12 <= n => Field12 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_12 :: Lens (V n a) (V n a) a a # 13 <= n => Field13 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_13 :: Lens (V n a) (V n a) a a # 14 <= n => Field14 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_14 :: Lens (V n a) (V n a) a a # 15 <= n => Field15 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_15 :: Lens (V n a) (V n a) a a # 16 <= n => Field16 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_16 :: Lens (V n a) (V n a) a a # 17 <= n => Field17 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_17 :: Lens (V n a) (V n a) a a # 18 <= n => Field18 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_18 :: Lens (V n a) (V n a) a a # 19 <= n => Field19 (V n a) (V n a) a a Source # Instance detailsDefined in Linear.V Methods_19 :: Lens (V n a) (V n a) a a # data MVector s (V n a) Source # Instance detailsDefined in Linear.V data MVector s (V n a) = MV_VN !Int !(MVector s a) type Rep1 (V n :: Type -> Type) Source # Instance detailsDefined in Linear.V type Rep1 (V n :: Type -> Type) = D1 (MetaData "V" "Linear.V" "linear-1.21.1-2kTUWOoCULICKXSQVtRGz7" True) (C1 (MetaCons "V" PrefixI True) (S1 (MetaSel (Just "toVector") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec1 Vector))) type Rep (V n) Source # Instance detailsDefined in Linear.V type Rep (V n) = Int type Size (V n) Source # Instance detailsDefined in Linear.V type Size (V n) = n type Diff (V n) Source # Instance detailsDefined in Linear.Affine type Diff (V n) = V n type Rep (V n a) Source # Instance detailsDefined in Linear.V type Rep (V n a) = D1 (MetaData "V" "Linear.V" "linear-1.21.1-2kTUWOoCULICKXSQVtRGz7" True) (C1 (MetaCons "V" PrefixI True) (S1 (MetaSel (Just "toVector") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Vector a)))) data Vector (V n a) Source # Instance detailsDefined in Linear.V data Vector (V n a) = V_VN !Int !(Vector a) type Index (V n a) Source # Instance detailsDefined in Linear.V type Index (V n a) = Int type IxValue (V n a) Source # Instance detailsDefined in Linear.V type IxValue (V n a) = a int :: Int -> TypeQ # This can be used to generate a template haskell splice for a type level version of a given int. This does not use GHC TypeLits, instead it generates a numeric type by hand similar to the ones used in the "Functional Pearl: Implicit Configurations" paper by Oleg Kiselyov and Chung-Chieh Shan. instance Num (Q Exp) provided in this package allows writing (3) instead of \$(int 3). Sometimes the two will produce the same representation (if compiled without the -DUSE_TYPE_LITS preprocessor directive).

dim :: forall n a. Dim n => V n a -> Int Source #

class Dim n where Source #

Methods

reflectDim :: p n -> Int Source #

Instances
 KnownNat n => Dim (n :: Nat) Source # Instance detailsDefined in Linear.V MethodsreflectDim :: p n -> Int Source # Dim n => Dim (V n a :: Type) Source # Instance detailsDefined in Linear.V MethodsreflectDim :: p (V n a) -> Int Source #

reifyDim :: Int -> (forall (n :: *). Dim n => Proxy n -> r) -> r Source #

reifyVector :: forall a r. Vector a -> (forall (n :: *). Dim n => V n a -> r) -> r Source #

reifyDimNat :: Int -> (forall (n :: Nat). KnownNat n => Proxy n -> r) -> r Source #

reifyVectorNat :: forall a r. Vector a -> (forall (n :: Nat). KnownNat n => V n a -> r) -> r Source #

fromVector :: forall n a. Dim n => Vector a -> Maybe (V n a) Source #

class Finite v where Source #

Minimal complete definition

fromV

Associated Types

type Size (v :: * -> *) :: Nat Source #

Methods

toV :: v a -> V (Size v) a Source #

toV :: Foldable v => v a -> V (Size v) a Source #

fromV :: V (Size v) a -> v a Source #

Instances
 Source # Instance detailsDefined in Linear.V Associated Typestype Size Complex :: Nat Source # MethodstoV :: Complex a -> V (Size Complex) a Source #fromV :: V (Size Complex) a -> Complex 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.V2 Associated Typestype Size V2 :: Nat Source # MethodstoV :: V2 a -> V (Size V2) a Source #fromV :: V (Size V2) a -> V2 a Source # Source # Instance detailsDefined in Linear.V3 Associated Typestype Size V3 :: Nat Source # MethodstoV :: V3 a -> V (Size V3) a Source #fromV :: V (Size V3) a -> V3 a Source # Source # Instance detailsDefined in Linear.V4 Associated Typestype Size V4 :: Nat Source # MethodstoV :: V4 a -> V (Size V4) a Source #fromV :: V (Size V4) a -> V4 a Source # Source # Instance detailsDefined in Linear.V0 Associated Typestype Size V0 :: Nat Source # MethodstoV :: V0 a -> V (Size V0) a Source #fromV :: V (Size V0) a -> V0 a Source # Source # Instance detailsDefined in Linear.Quaternion Associated Typestype Size Quaternion :: Nat Source # MethodstoV :: Quaternion a -> V (Size Quaternion) a Source #fromV :: V (Size Quaternion) a -> Quaternion a Source # Source # Instance detailsDefined in Linear.Plucker Associated Typestype Size Plucker :: Nat Source # MethodstoV :: Plucker a -> V (Size Plucker) a Source #fromV :: V (Size Plucker) a -> Plucker a Source # Finite f => Finite (Point f) Source # Instance detailsDefined in Linear.Affine Associated Typestype Size (Point f) :: Nat Source # MethodstoV :: Point f a -> V (Size (Point f)) a Source #fromV :: V (Size (Point f)) a -> Point f a Source # Finite (V n) Source # Instance detailsDefined in Linear.V Associated Typestype Size (V n) :: Nat Source # MethodstoV :: V n a -> V (Size (V n)) a Source #fromV :: V (Size (V n)) a -> V n a Source #

_V :: (Finite u, Finite v) => Iso (V (Size u) a) (V (Size v) b) (u a) (v b) Source #

_V' :: Finite v => Iso (V (Size v) a) (V (Size v) b) (v a) (v b) Source #