toy-lib-0.1.0.0
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Core.SemigroupAction

Description

Semigroup action * is an operator where \(s_2 * (s_1 * a) == (s_2 \diamond s_1) * a\) holds.

Synopsis

Documentation

class SemigroupAction s a where #

Right semigroup aciton.

Methods

sact :: s -> a -> a #

Right semigroup aciton

Instances

Instances details
SemigroupAction IndexMap Int #

Int as target

Instance details

Defined in Data.BinaryLifting

Methods

sact :: IndexMap -> Int -> Int #

SemigroupAction Permutation Int #

Int as target

Instance details

Defined in Data.BinaryLifting

Methods

sact :: Permutation -> Int -> Int #

Semigroup a => SemigroupAction a a # 
Instance details

Defined in Data.Core.SemigroupAction

Methods

sact :: a -> a -> a #

SemigroupAction Permutation (Vector Int) #

U.Vector Int as target

Instance details

Defined in Data.BinaryLifting

SemigroupAction (Product Int) Int # 
Instance details

Defined in Data.BinaryLifting

Methods

sact :: Product Int -> Int -> Int #

Unbox a => SemigroupAction (IndexMapWithAction a) Int #

Int as target

Instance details

Defined in Data.BinaryLifting

Methods

sact :: IndexMapWithAction a -> Int -> Int #

Num a => SemigroupAction (Affine2d a) a #

Limited to length 1

Instance details

Defined in Data.Instances.Affine2d

Methods

sact :: Affine2d a -> a -> a #

Num a => SemigroupAction (Affine2d a) (V2 a) # 
Instance details

Defined in Data.Instances.Affine2d

Methods

sact :: Affine2d a -> V2 a -> V2 a #

Num a => SemigroupAction (Mat2x2 a) (V2 a) # 
Instance details

Defined in Data.Instances.Affine2d

Methods

sact :: Mat2x2 a -> V2 a -> V2 a #

(Num a, Unbox a) => SemigroupAction (Mat a) (Col a) # 
Instance details

Defined in Math.Matrix

Methods

sact :: Mat a -> Col a -> Col a #

KnownNat p => SemigroupAction (Product (ModInt p)) (ModInt p) # 
Instance details

Defined in Data.ModInt

Methods

sact :: Product (ModInt p) -> ModInt p -> ModInt p #

(Unbox a, SemigroupAction a b) => SemigroupAction (IndexMapWithAction a) (Int, b) #

b as target

Instance details

Defined in Data.BinaryLifting

Methods

sact :: IndexMapWithAction a -> (Int, b) -> (Int, b) #

sactTimes :: (Semigroup s, SemigroupAction s a) => Int -> s -> a -> a #

Performs sact with the binary lifting technique. Prefer the binary lifting module if the cache takes effect.