packages feed

sym 0.12.1 → 0.13.0

raw patch · 3 files changed

+157/−2 lines, 3 files

Files

Sym.hs view
@@ -91,7 +91,7 @@     -- > unst w == w `act` idperm (P.size w)     --      -- and this is the default implementation.-    unst :: Permutation a => Perm -> a+    unst :: Perm -> a     unst w = w `act` idperm (P.size w)  instance Permutation Perm where
+ Sym/Perm/STAT.hs view
@@ -0,0 +1,154 @@+-- |+-- Copyright   : Anders Claesson 2017+-- Maintainer  : Anders Claesson <anders.claesson@gmail.com>+--+-- Common permutation statistics. Most of these are "set" versions of+-- those in Sym.Perm.Stat+--++module Sym.Perm.STAT+    (+      asc         -- list of ascent+    , ascIx       -- ascent indices+    , ascTops     -- ascent tops+    , ascBots     -- ascent bottoms+    , des         -- descents+    , desIx       -- descent indices+    , desTops     -- descent tops+    , desBots     -- descent bottoms+    , exc         -- excedances+    , fp          -- fixed points+    -- , sfp         -- strong fixed points+    -- , cyc         -- cycles+    -- , inv         -- inversions+    -- , peak        -- peaks+    -- , vall        -- valleys+    -- , dasc        -- double ascents+    -- , ddes        -- double descents+    -- , lmin        -- left-to-right minima+    -- , lmax        -- left-to-right maxima+    -- , rmin        -- right-to-left minima+    -- , rmax        -- right-to-left maxima+    -- , comp        -- components+    -- , scomp       -- skew components+    -- , asc0        -- small ascents+    , des0        -- list small descents+    , des0Ix      -- indices of small descents+    , des0Tops    -- small descents tops+    , des0Bots    -- small descents bottoms+    -- , lis         -- longest increasing subsequence+    -- , lds         -- longest decreasing subsequence+    ) where++import Prelude hiding (head, last)+import Sym.Perm+import qualified Sym.Perm.SSYT as Y+import qualified Sym.Perm.D8 as D8++asc :: Perm -> [(Int, Int, Int)]+asc w =+    [ (i,x,y)+    | (i,x,y) <- zip3 [0..] ys (drop 1 ys)+    , x < y+    ]+  where+    ys = toList w++ascIx :: Perm -> [Int]+ascIx w = [ i | (i,_,_) <- asc w ]++ascBots :: Perm -> [Int]+ascBots w = [ x | (_,x,_) <- asc w ]++ascTops :: Perm -> [Int]+ascTops w = [ y | (_,_,y) <- asc w ]++des :: Perm -> [(Int, Int, Int)]+des w =+    [ (i,x,y)+    | (i,x,y) <- zip3 [0..] ys (drop 1 ys)+    , x > y+    ]+  where+    ys = toList w++desIx :: Perm -> [Int]+desIx w = [ i | (i,_,_) <- des w ]++desBots :: Perm -> [Int]+desBots w = [ x | (_,x,_) <- des w ]++desTops :: Perm -> [Int]+desTops w = [ y | (_,_,y) <- des w ]++exc :: Perm -> [Int]+exc w = [ i | i <- [0 .. size w - 1], w `at` i > i ]++fp :: Perm -> [Int]+fp w = [ i | i <- [0 .. size w - 1], w `at` i == i ]++-- sfp :: Perm -> [Int]+-- sfp = undefined++-- cyc :: Perm -> [[Int]]+-- cyc = undefined++-- inv :: Perm -> [(Int, Int)]+-- inv = undefined++-- peak :: Perm -> [Int]+-- peak = undefined++-- vall :: Perm -> [Int]+-- vall = undefined++-- dasc :: Perm -> [Int]+-- dasc = undefined++-- ddes :: Perm -> [Int]+-- ddes = undefined++-- lmin :: Perm -> [Int]+-- lmin = undefined++-- lmax :: Perm -> [Int]+-- lmax = undefined++-- rmin :: Perm -> [Int]+-- rmin = undefined++-- rmax :: Perm -> [Int]+-- rmax = undefined++-- comp :: Perm -> [Perm]+-- comp = undefined++-- scomp :: Perm -> [Perm]+-- scomp = undefined++-- asc0 :: Perm -> [Int]+-- asc0 = undefined++des0 :: Perm -> [(Int, Int, Int)]+des0 w =+    [ (i,x,y)+    | (i,x,y) <- zip3 [0..] ys (drop 1 ys)+    , x == y + 1+    ]+  where+    ys = toList w++des0Ix :: Perm -> [Int]+des0Ix w = [ i | (i,_,_) <- des0 w ]++des0Bots :: Perm -> [Int]+des0Bots w = [ x | (_,x,_) <- des0 w ]++des0Tops :: Perm -> [Int]+des0Tops w = [ y | (_,_,y) <- des0 w ]++-- lis :: Perm -> [Int]+-- lis = undefined++-- lds :: Perm -> [Int]+-- lds = undefined
sym.cabal view
@@ -1,5 +1,5 @@ name:                sym-version:             0.12.1+version:             0.13.0 synopsis:            Permutations, patterns, and statistics description:   Definitions for permutations with an emphasis on permutation@@ -29,6 +29,7 @@                        Sym.Perm.Group                        Sym.Perm.Bijection                        Sym.Perm.Stat+                       Sym.Perm.STAT                        Sym.Perm.Sort                        Sym.Perm.Simple                        Sym.Perm.Pattern