set-cover-0.0.9: Solve exact set cover problems like Sudoku, 8 Queens, Soma Cube, Tetris Cube

Safe HaskellSafe
LanguageHaskell98

Math.SetCover.Bit

Synopsis

Documentation

class Ord bits => C bits where Source #

This class is similar to the Bits class from the base package but adds keepMinimum and misses the rotation stuff.

Minimal complete definition

empty, complement, keepMinimum, xor, (.&.), (.|.)

Methods

empty :: bits Source #

complement :: bits -> bits Source #

keepMinimum :: bits -> bits Source #

xor :: bits -> bits -> bits Source #

(.&.) :: bits -> bits -> bits infixl 7 Source #

(.|.) :: bits -> bits -> bits infixl 5 Source #

Instances

C Integer Source # 
C Word8 Source # 
C Word16 Source # 
C Word32 Source # 
C Word64 Source # 
(C a, C b) => C (Sum a b) Source # 

Methods

empty :: Sum a b Source #

complement :: Sum a b -> Sum a b Source #

keepMinimum :: Sum a b -> Sum a b Source #

xor :: Sum a b -> Sum a b -> Sum a b Source #

(.&.) :: Sum a b -> Sum a b -> Sum a b Source #

(.|.) :: Sum a b -> Sum a b -> Sum a b Source #

difference :: C bits => bits -> bits -> bits Source #

data Sum a b Source #

Constructors

Sum !a !b 

Instances

(Eq b, Eq a) => Eq (Sum a b) Source # 

Methods

(==) :: Sum a b -> Sum a b -> Bool #

(/=) :: Sum a b -> Sum a b -> Bool #

(Ord b, Ord a) => Ord (Sum a b) Source # 

Methods

compare :: Sum a b -> Sum a b -> Ordering #

(<) :: Sum a b -> Sum a b -> Bool #

(<=) :: Sum a b -> Sum a b -> Bool #

(>) :: Sum a b -> Sum a b -> Bool #

(>=) :: Sum a b -> Sum a b -> Bool #

max :: Sum a b -> Sum a b -> Sum a b #

min :: Sum a b -> Sum a b -> Sum a b #

(Show b, Show a) => Show (Sum a b) Source # 

Methods

showsPrec :: Int -> Sum a b -> ShowS #

show :: Sum a b -> String #

showList :: [Sum a b] -> ShowS #

(C a, C b) => C (Sum a b) Source # 

Methods

empty :: Sum a b Source #

complement :: Sum a b -> Sum a b Source #

keepMinimum :: Sum a b -> Sum a b Source #

xor :: Sum a b -> Sum a b -> Sum a b Source #

(.&.) :: Sum a b -> Sum a b -> Sum a b Source #

(.|.) :: Sum a b -> Sum a b -> Sum a b Source #

(Integral a, C a, C b) => C (Sum a b) Source #

Instantiating a with Integer will end badly because it has no fixed size!

Methods

bit :: Int -> Sum a b

bitPositionPlain :: Sum a b -> Int

unpack :: Set (Sum a b) -> [Int] Source #

bitLeft :: (Bits a, C b) => Int -> Sum a b Source #

bitRight :: (C a, Bits b) => Int -> Sum a b Source #