rings-0.1.1.1: Ring-like objects.

Safe HaskellSafe
LanguageHaskell2010

Data.Semimodule

Contents

Synopsis

Types

type Basis b f = (Free f, Rep f ~ b, Eq b) Source #

type Basis2 b c f g = (Basis b f, Basis c g) Source #

type Basis3 b c d f g h = (Basis b f, Basis c g, Basis d h) Source #

type FreeModule a f = (Free f, Bimodule a a (f a)) Source #

type FreeSemimodule a f = (Free f, Bisemimodule a a (f a)) Source #

Left modules

class (Semiring l, (Additive - Monoid) a) => LeftSemimodule l a where Source #

Left semimodule over a commutative semiring.

All instances must satisfy the following identities:

lscale s (x + y) = lscale s x + lscale s y
lscale (s1 + s2) x = lscale s1 x + lscale s2 x
lscale (s1 * s2) = lscale s1 . lscale s2
lscale zero = zero

When the ring of coefficients s is unital we must additionally have: lscale one = id

See the properties module for a detailed specification of the laws.

Methods

lscale :: l -> a -> a Source #

Left-multiply by a scalar.

Instances
LeftSemimodule Bool Bool Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Bool -> Bool -> Bool Source #

LeftSemimodule Double Double Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Double -> Double -> Double Source #

LeftSemimodule Float Float Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Float -> Float -> Float Source #

LeftSemimodule Int Int Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Int -> Int -> Int Source #

LeftSemimodule Int8 Int8 Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Int8 -> Int8 -> Int8 Source #

LeftSemimodule Int16 Int16 Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Int16 -> Int16 -> Int16 Source #

LeftSemimodule Int32 Int32 Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Int32 -> Int32 -> Int32 Source #

LeftSemimodule Int64 Int64 Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Int64 -> Int64 -> Int64 Source #

((Additive - Monoid) a, (Additive - Group) a) => LeftSemimodule Integer a Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Integer -> a -> a Source #

(Additive - Monoid) a => LeftSemimodule Natural a Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Natural -> a -> a Source #

LeftSemimodule Word Word Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Word -> Word -> Word Source #

LeftSemimodule Word8 Word8 Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Word8 -> Word8 -> Word8 Source #

LeftSemimodule Word16 Word16 Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Word16 -> Word16 -> Word16 Source #

LeftSemimodule Word32 Word32 Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Word32 -> Word32 -> Word32 Source #

LeftSemimodule Word64 Word64 Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Word64 -> Word64 -> Word64 Source #

(Additive - Monoid) a => LeftSemimodule () a Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: () -> a -> a Source #

Semiring l => LeftSemimodule l () Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: l -> () -> () Source #

LeftSemimodule Uni Uni Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Uni -> Uni -> Uni Source #

LeftSemimodule Deci Deci Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Deci -> Deci -> Deci Source #

LeftSemimodule Centi Centi Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Centi -> Centi -> Centi Source #

LeftSemimodule Milli Milli Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Milli -> Milli -> Milli Source #

LeftSemimodule Micro Micro Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Micro -> Micro -> Micro Source #

LeftSemimodule Nano Nano Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Nano -> Nano -> Nano Source #

LeftSemimodule Pico Pico Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Pico -> Pico -> Pico Source #

LeftSemimodule CFloat CFloat Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: CFloat -> CFloat -> CFloat Source #

LeftSemimodule CDouble CDouble Source # 
Instance details

Defined in Data.Semimodule

Ring a => LeftSemimodule a (Complex a) Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: a -> Complex a -> Complex a Source #

Semiring a => LeftSemimodule a (Ratio a) Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: a -> Ratio a -> Ratio a Source #

Semiring a => LeftSemimodule a (V4 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: a -> V4 a -> V4 a Source #

Semiring a => LeftSemimodule a (V3 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: a -> V3 a -> V3 a Source #

Semiring a => LeftSemimodule a (V2 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: a -> V2 a -> V2 a Source #

Semiring a => LeftSemimodule a (V1 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: a -> V1 a -> V1 a Source #

(LeftSemimodule l a, LeftSemimodule l b) => LeftSemimodule l (a, b) Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: l -> (a, b) -> (a, b) Source #

LeftSemimodule l a => LeftSemimodule l (e -> a) Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: l -> (e -> a) -> e -> a Source #

LeftSemimodule r s => LeftSemimodule r (Dual s m) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

lscale :: r -> Dual s m -> Dual s m Source #

(LeftSemimodule l a, LeftSemimodule l b, LeftSemimodule l c) => LeftSemimodule l (a, b, c) Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: l -> (a, b, c) -> (a, b, c) Source #

LeftSemimodule r s => LeftSemimodule r (Tran s b m) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

lscale :: r -> Tran s b m -> Tran s b m Source #

LeftSemimodule (Ratio Integer) (Ratio Integer) Source # 
Instance details

Defined in Data.Semimodule

LeftSemimodule (Ratio Natural) (Ratio Natural) Source # 
Instance details

Defined in Data.Semimodule

Ring a => LeftSemimodule (Complex a) (Complex a) Source # 
Instance details

Defined in Data.Semimodule

Methods

lscale :: Complex a -> Complex a -> Complex a Source #

Semiring a => LeftSemimodule (M44 a) (M44 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M44 a -> M44 a -> M44 a Source #

Semiring a => LeftSemimodule (M44 a) (M43 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M44 a -> M43 a -> M43 a Source #

Semiring a => LeftSemimodule (M44 a) (M42 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M44 a -> M42 a -> M42 a Source #

Semiring a => LeftSemimodule (M44 a) (M41 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M44 a -> M41 a -> M41 a Source #

Semiring a => LeftSemimodule (M33 a) (M34 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M33 a -> M34 a -> M34 a Source #

Semiring a => LeftSemimodule (M33 a) (M33 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M33 a -> M33 a -> M33 a Source #

Semiring a => LeftSemimodule (M33 a) (M32 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M33 a -> M32 a -> M32 a Source #

Semiring a => LeftSemimodule (M33 a) (M31 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M33 a -> M31 a -> M31 a Source #

Semiring a => LeftSemimodule (M22 a) (M24 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M22 a -> M24 a -> M24 a Source #

Semiring a => LeftSemimodule (M22 a) (M23 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M22 a -> M23 a -> M23 a Source #

Semiring a => LeftSemimodule (M22 a) (M22 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M22 a -> M22 a -> M22 a Source #

Semiring a => LeftSemimodule (M22 a) (M21 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M22 a -> M21 a -> M21 a Source #

Semiring a => LeftSemimodule (M11 a) (M14 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M11 a -> M14 a -> M14 a Source #

Semiring a => LeftSemimodule (M11 a) (M13 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M11 a -> M13 a -> M13 a Source #

Semiring a => LeftSemimodule (M11 a) (M12 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M11 a -> M12 a -> M12 a Source #

Semiring a => LeftSemimodule (M11 a) (M11 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

lscale :: M11 a -> M11 a -> M11 a Source #

Counital r m => LeftSemimodule (Dual r m) (Dual r m) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

lscale :: Dual r m -> Dual r m -> Dual r m Source #

Counital a m => LeftSemimodule (Tran a b m) (Tran a b m) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

lscale :: Tran a b m -> Tran a b m -> Tran a b m Source #

(*.) :: LeftSemimodule l a => l -> a -> a infixr 7 Source #

Left-multiply a module element by a scalar.

(/.) :: Semifield a => Functor f => a -> f a -> f a infixr 7 Source #

Right-divide a vector by a scalar (on the left).

(\.) :: Semifield a => Functor f => a -> f a -> f a infixr 7 Source #

Left-divide a vector by a scalar.

lerp :: LeftModule r a => r -> a -> a -> a Source #

Linearly interpolate between two vectors.

>>> u = V3 (1 :% 1) (2 :% 1) (3 :% 1) :: V3 Rational
>>> v = V3 (2 :% 1) (4 :% 1) (6 :% 1) :: V3 Rational
>>> r = 1 :% 2 :: Rational
>>> lerp r u v
V3 (6 % 4) (12 % 4) (18 % 4)

lscaleDef :: Semiring a => Functor f => a -> f a -> f a Source #

Default definition of lscale for a free module.

negateDef :: LeftModule Integer a => a -> a Source #

Default definition of << for a commutative group.

Right modules

class (Semiring r, (Additive - Monoid) a) => RightSemimodule r a where Source #

Right semimodule over a commutative semiring.

The laws for right semimodules are analagous to those of left semimodules.

See the properties module for a detailed specification.

Methods

rscale :: r -> a -> a Source #

Right-multiply by a scalar.

Instances
RightSemimodule Bool Bool Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Bool -> Bool -> Bool Source #

RightSemimodule Double Double Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Double -> Double -> Double Source #

RightSemimodule Float Float Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Float -> Float -> Float Source #

RightSemimodule Int Int Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Int -> Int -> Int Source #

RightSemimodule Int8 Int8 Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Int8 -> Int8 -> Int8 Source #

RightSemimodule Int16 Int16 Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Int16 -> Int16 -> Int16 Source #

RightSemimodule Int32 Int32 Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Int32 -> Int32 -> Int32 Source #

RightSemimodule Int64 Int64 Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Int64 -> Int64 -> Int64 Source #

((Additive - Monoid) a, (Additive - Group) a) => RightSemimodule Integer a Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Integer -> a -> a Source #

(Additive - Monoid) a => RightSemimodule Natural a Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Natural -> a -> a Source #

RightSemimodule Word Word Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Word -> Word -> Word Source #

RightSemimodule Word8 Word8 Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Word8 -> Word8 -> Word8 Source #

RightSemimodule Word16 Word16 Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Word16 -> Word16 -> Word16 Source #

RightSemimodule Word32 Word32 Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Word32 -> Word32 -> Word32 Source #

RightSemimodule Word64 Word64 Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Word64 -> Word64 -> Word64 Source #

(Additive - Monoid) a => RightSemimodule () a Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: () -> a -> a Source #

Semiring r => RightSemimodule r () Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: r -> () -> () Source #

RightSemimodule Uni Uni Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Uni -> Uni -> Uni Source #

RightSemimodule Deci Deci Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Deci -> Deci -> Deci Source #

RightSemimodule Centi Centi Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Centi -> Centi -> Centi Source #

RightSemimodule Milli Milli Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Milli -> Milli -> Milli Source #

RightSemimodule Micro Micro Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Micro -> Micro -> Micro Source #

RightSemimodule Nano Nano Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Nano -> Nano -> Nano Source #

RightSemimodule Pico Pico Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Pico -> Pico -> Pico Source #

RightSemimodule CFloat CFloat Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: CFloat -> CFloat -> CFloat Source #

RightSemimodule CDouble CDouble Source # 
Instance details

Defined in Data.Semimodule

Ring a => RightSemimodule a (Complex a) Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: a -> Complex a -> Complex a Source #

Semiring a => RightSemimodule a (Ratio a) Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: a -> Ratio a -> Ratio a Source #

Semiring a => RightSemimodule a (V4 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: a -> V4 a -> V4 a Source #

Semiring a => RightSemimodule a (V3 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: a -> V3 a -> V3 a Source #

Semiring a => RightSemimodule a (V2 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: a -> V2 a -> V2 a Source #

Semiring a => RightSemimodule a (V1 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: a -> V1 a -> V1 a Source #

(RightSemimodule r a, RightSemimodule r b) => RightSemimodule r (a, b) Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: r -> (a, b) -> (a, b) Source #

RightSemimodule r a => RightSemimodule r (e -> a) Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: r -> (e -> a) -> e -> a Source #

RightSemimodule r s => RightSemimodule r (Dual s m) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

rscale :: r -> Dual s m -> Dual s m Source #

(RightSemimodule r a, RightSemimodule r b, RightSemimodule r c) => RightSemimodule r (a, b, c) Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: r -> (a, b, c) -> (a, b, c) Source #

RightSemimodule r s => RightSemimodule r (Tran s b m) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

rscale :: r -> Tran s b m -> Tran s b m Source #

RightSemimodule (Ratio Integer) (Ratio Integer) Source # 
Instance details

Defined in Data.Semimodule

RightSemimodule (Ratio Natural) (Ratio Natural) Source # 
Instance details

Defined in Data.Semimodule

Ring a => RightSemimodule (Complex a) (Complex a) Source # 
Instance details

Defined in Data.Semimodule

Methods

rscale :: Complex a -> Complex a -> Complex a Source #

Semiring a => RightSemimodule (M44 a) (M44 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M44 a -> M44 a -> M44 a Source #

Semiring a => RightSemimodule (M44 a) (M34 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M44 a -> M34 a -> M34 a Source #

Semiring a => RightSemimodule (M44 a) (M24 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M44 a -> M24 a -> M24 a Source #

Semiring a => RightSemimodule (M44 a) (M14 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M44 a -> M14 a -> M14 a Source #

Semiring a => RightSemimodule (M33 a) (M43 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M33 a -> M43 a -> M43 a Source #

Semiring a => RightSemimodule (M33 a) (M33 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M33 a -> M33 a -> M33 a Source #

Semiring a => RightSemimodule (M33 a) (M23 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M33 a -> M23 a -> M23 a Source #

Semiring a => RightSemimodule (M33 a) (M13 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M33 a -> M13 a -> M13 a Source #

Semiring a => RightSemimodule (M22 a) (M42 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M22 a -> M42 a -> M42 a Source #

Semiring a => RightSemimodule (M22 a) (M32 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M22 a -> M32 a -> M32 a Source #

Semiring a => RightSemimodule (M22 a) (M22 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M22 a -> M22 a -> M22 a Source #

Semiring a => RightSemimodule (M22 a) (M12 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M22 a -> M12 a -> M12 a Source #

Semiring a => RightSemimodule (M11 a) (M41 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M11 a -> M41 a -> M41 a Source #

Semiring a => RightSemimodule (M11 a) (M31 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M11 a -> M31 a -> M31 a Source #

Semiring a => RightSemimodule (M11 a) (M21 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M11 a -> M21 a -> M21 a Source #

Semiring a => RightSemimodule (M11 a) (M11 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

rscale :: M11 a -> M11 a -> M11 a Source #

Counital r m => RightSemimodule (Dual r m) (Dual r m) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

rscale :: Dual r m -> Dual r m -> Dual r m Source #

Counital a m => RightSemimodule (Tran a b m) (Tran a b m) Source # 
Instance details

Defined in Data.Semimodule.Transform

Methods

rscale :: Tran a b m -> Tran a b m -> Tran a b m Source #

(.*) :: RightSemimodule r a => a -> r -> a infixl 7 Source #

Right-multiply a module element by a scalar.

(./) :: Semifield a => Functor f => f a -> a -> f a infixl 7 Source #

Right-divide a vector by a scalar.

(.\) :: Semifield a => Functor f => f a -> a -> f a infixl 7 Source #

Left-divide a vector by a scalar (on the right).

rscaleDef :: Semiring a => Functor f => a -> f a -> f a Source #

Default definition of rscale for a free module.

Bimodules

type Bimodule l r a = (LeftModule l a, RightModule r a, Bisemimodule l r a) Source #

class (LeftSemimodule l a, RightSemimodule r a) => Bisemimodule l r a where Source #

Bisemimodule over a commutative semiring.

lscale l . rscale r = rscale r . lscale l

Minimal complete definition

Nothing

Methods

discale :: l -> r -> a -> a Source #

Left and right-multiply by two scalars.

Instances
Bisemimodule Bool Bool Bool Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Bool -> Bool -> Bool -> Bool Source #

Bisemimodule Double Double Double Source # 
Instance details

Defined in Data.Semimodule

Bisemimodule Float Float Float Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Float -> Float -> Float -> Float Source #

Bisemimodule Int Int Int Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Int -> Int -> Int -> Int Source #

Bisemimodule Int8 Int8 Int8 Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Int8 -> Int8 -> Int8 -> Int8 Source #

Bisemimodule Int16 Int16 Int16 Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Int16 -> Int16 -> Int16 -> Int16 Source #

Bisemimodule Int32 Int32 Int32 Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Int32 -> Int32 -> Int32 -> Int32 Source #

Bisemimodule Int64 Int64 Int64 Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Int64 -> Int64 -> Int64 -> Int64 Source #

Bisemimodule Word Word Word Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Word -> Word -> Word -> Word Source #

Bisemimodule Word8 Word8 Word8 Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Word8 -> Word8 -> Word8 -> Word8 Source #

Bisemimodule Word16 Word16 Word16 Source # 
Instance details

Defined in Data.Semimodule

Bisemimodule Word32 Word32 Word32 Source # 
Instance details

Defined in Data.Semimodule

Bisemimodule Word64 Word64 Word64 Source # 
Instance details

Defined in Data.Semimodule

Semiring r => Bisemimodule r r () Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: r -> r -> () -> () Source #

Bisemimodule Uni Uni Uni Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Uni -> Uni -> Uni -> Uni Source #

Bisemimodule Deci Deci Deci Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Deci -> Deci -> Deci -> Deci Source #

Bisemimodule Centi Centi Centi Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Centi -> Centi -> Centi -> Centi Source #

Bisemimodule Milli Milli Milli Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Milli -> Milli -> Milli -> Milli Source #

Bisemimodule Micro Micro Micro Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Micro -> Micro -> Micro -> Micro Source #

Bisemimodule Nano Nano Nano Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Nano -> Nano -> Nano -> Nano Source #

Bisemimodule Pico Pico Pico Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Pico -> Pico -> Pico -> Pico Source #

Bisemimodule CFloat CFloat CFloat Source # 
Instance details

Defined in Data.Semimodule

Bisemimodule CDouble CDouble CDouble Source # 
Instance details

Defined in Data.Semimodule

Ring a => Bisemimodule a a (Complex a) Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: a -> a -> Complex a -> Complex a Source #

Semiring a => Bisemimodule a a (Ratio a) Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: a -> a -> Ratio a -> Ratio a Source #

Semiring a => Bisemimodule a a (V4 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: a -> a -> V4 a -> V4 a Source #

Semiring a => Bisemimodule a a (V3 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: a -> a -> V3 a -> V3 a Source #

Semiring a => Bisemimodule a a (V2 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: a -> a -> V2 a -> V2 a Source #

Semiring a => Bisemimodule a a (V1 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: a -> a -> V1 a -> V1 a Source #

(Bisemimodule r r a, Bisemimodule r r b) => Bisemimodule r r (a, b) Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: r -> r -> (a, b) -> (a, b) Source #

Bisemimodule r r a => Bisemimodule r r (e -> a) Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: r -> r -> (e -> a) -> e -> a Source #

(Bisemimodule r r a, Bisemimodule r r b, Bisemimodule r r c) => Bisemimodule r r (a, b, c) Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: r -> r -> (a, b, c) -> (a, b, c) Source #

Bisemimodule (Ratio Integer) (Ratio Integer) (Ratio Integer) Source # 
Instance details

Defined in Data.Semimodule

Bisemimodule (Ratio Natural) (Ratio Natural) (Ratio Natural) Source # 
Instance details

Defined in Data.Semimodule

Ring a => Bisemimodule (Complex a) (Complex a) (Complex a) Source # 
Instance details

Defined in Data.Semimodule

Methods

discale :: Complex a -> Complex a -> Complex a -> Complex a Source #

Semiring a => Bisemimodule (M44 a) (M44 a) (M44 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M44 a -> M44 a -> M44 a -> M44 a Source #

Semiring a => Bisemimodule (M44 a) (M33 a) (M43 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M44 a -> M33 a -> M43 a -> M43 a Source #

Semiring a => Bisemimodule (M44 a) (M22 a) (M42 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M44 a -> M22 a -> M42 a -> M42 a Source #

Semiring a => Bisemimodule (M44 a) (M11 a) (M41 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M44 a -> M11 a -> M41 a -> M41 a Source #

Semiring a => Bisemimodule (M33 a) (M44 a) (M34 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M33 a -> M44 a -> M34 a -> M34 a Source #

Semiring a => Bisemimodule (M33 a) (M33 a) (M33 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M33 a -> M33 a -> M33 a -> M33 a Source #

Semiring a => Bisemimodule (M33 a) (M22 a) (M32 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M33 a -> M22 a -> M32 a -> M32 a Source #

Semiring a => Bisemimodule (M33 a) (M11 a) (M31 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M33 a -> M11 a -> M31 a -> M31 a Source #

Semiring a => Bisemimodule (M22 a) (M44 a) (M24 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M22 a -> M44 a -> M24 a -> M24 a Source #

Semiring a => Bisemimodule (M22 a) (M33 a) (M23 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M22 a -> M33 a -> M23 a -> M23 a Source #

Semiring a => Bisemimodule (M22 a) (M22 a) (M22 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M22 a -> M22 a -> M22 a -> M22 a Source #

Semiring a => Bisemimodule (M22 a) (M11 a) (M21 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M22 a -> M11 a -> M21 a -> M21 a Source #

Semiring a => Bisemimodule (M11 a) (M44 a) (M14 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M11 a -> M44 a -> M14 a -> M14 a Source #

Semiring a => Bisemimodule (M11 a) (M33 a) (M13 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M11 a -> M33 a -> M13 a -> M13 a Source #

Semiring a => Bisemimodule (M11 a) (M22 a) (M12 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M11 a -> M22 a -> M12 a -> M12 a Source #

Semiring a => Bisemimodule (M11 a) (M11 a) (M11 a) Source # 
Instance details

Defined in Data.Semimodule.Free

Methods

discale :: M11 a -> M11 a -> M11 a -> M11 a Source #