iota
Safe HaskellNone
LanguageGHC2021

Data.UnionFind

Synopsis

Documentation

newtype UnionFind s Source #

Constructors

UF 

Fields

newUnionFind :: PrimMonad m => Int -> m (UnionFind (PrimState m)) Source #

freezeUnionFind :: PrimMonad m => UnionFind (PrimState m) -> m (Vector Int) Source #

findUF :: PrimMonad m => UnionFind (PrimState m) -> Int -> m Int Source #

sizeUF :: PrimMonad m => UnionFind (PrimState m) -> Int -> m Int Source #

uniteUF :: PrimMonad m => UnionFind (PrimState m) -> Int -> Int -> m Bool Source #

>>> uf <- newUnionFind 3
>>> uniteUF uf 0 1
True
>>> uniteUF uf 0 1
False
>>> uniteUF uf 0 2
True
>>> uniteUF uf 1 2
False

uniteUF_ :: PrimMonad m => UnionFind (PrimState m) -> Int -> Int -> m () Source #

equivUF :: PrimMonad m => UnionFind (PrimState m) -> Int -> Int -> m Bool Source #

countGroupUF :: PrimMonad m => UnionFind (PrimState m) -> m Int Source #

O(n)