Safe HaskellNone

LSC.KGGGP

Documentation

balanceFactor :: Rational Source #

type NetArray = Vector IntSet Source #

type CellArray = Vector IntSet Source #

data Gain s a Source #

Constructors

Gain String (STRef s Int, MVector s IntSet) (Vector (MVector s Int)) (Vector (HashTable s Int [a])) 

type Displacement = (Int, Int) Source #

data Move Source #

Constructors

Move Int Int 

Instances

Instances details
Show Move Source # 
Instance details

Defined in LSC.KGGGP

Methods

showsPrec :: Int -> Move -> ShowS

show :: Move -> String

showList :: [Move] -> ShowS

type Partitioning = Vector IntSet Source #

type MPartitioning s = MVector s IntSet Source #

cutSizes :: V -> Partitioning -> [Int] Source #

type Clustering = Vector IntSet Source #

type Permutation = Vector Int Source #

data Heu s Source #

Constructors

Heu 

Fields

Instances

Instances details
HasParts (Heu s) (MPartitioning s) Source # 
Instance details

Defined in LSC.KGGGP

Methods

parts :: Lens' (Heu s) (MPartitioning s) Source #

HasFreeCells (Heu s) (STRef s IntSet) Source # 
Instance details

Defined in LSC.KGGGP

Methods

freeCells :: Lens' (Heu s) (STRef s IntSet) Source #

class HasFreeCells s a | s -> a where Source #

Methods

freeCells :: Lens' s a Source #

Instances

Instances details
HasFreeCells (Heu s) (STRef s IntSet) Source # 
Instance details

Defined in LSC.KGGGP

Methods

freeCells :: Lens' (Heu s) (STRef s IntSet) Source #

class HasParts s a | s -> a where Source #

Methods

parts :: Lens' s a Source #

Instances

Instances details
HasParts (Heu s) (MPartitioning s) Source # 
Instance details

Defined in LSC.KGGGP

Methods

parts :: Lens' (Heu s) (MPartitioning s) Source #

type KGGGP s = ReaderT (Heu s) (ST s) Source #

runKGGGP :: KGGGP s a -> ST s a Source #

st :: ST s a -> KGGGP s a Source #

balanceConstraint :: V -> Int -> Int -> KGGGP s Bool Source #

connectivityConstraint :: V -> Int -> Int -> KGGGP s Bool Source #

emptyGains :: Gain s a -> ST s Bool Source #

maximumGain :: Gain s Int -> ST s (Int, Int) Source #

moveDisplacement :: Displacement -> Gain s Int -> Gain s Int -> ST s () Source #

newGains :: V -> String -> Int -> ST s (Gain s Int) Source #

initialDisplacements :: (V, E) -> String -> Partitioning -> ST s (Gain s Int) Source #

update :: (V, E) -> Int -> Int -> IntSet -> Gain s Int -> ST s () Source #

removeGain :: Int -> Int -> Gain s Int -> ST s (Maybe Int) Source #

insertGain :: Int -> Int -> Int -> Gain s Int -> ST s () Source #

modifyGain :: Int -> Int -> (Int -> Int) -> Gain s Int -> ST s () Source #

inputRoutine :: Foldable f => Int -> Int -> f (Int, Int) -> ST s (V, E) Source #