mios-1.5.4: A Minisat-based CDCL SAT solver in Haskell

Safe HaskellTrustworthy
LanguageHaskell2010

SAT.Mios.Clause

Contents

Description

(This is a part of MIOS.) Clause, supporting pointer-based equality

Synopsis

Documentation

data Clause Source #

Fig. 7.(p.11) normal, null (and binary) clause. This matches both of Clause and GClause in MiniSat.

Constructors

Clause 

Fields

  • rank :: !Int'

    goodness like LBD; computed in Ranking

  • activity :: !Double'

    activity of this clause , protected :: !Bool' -- ^ protected from reduce

  • lits :: !Stack

    which this clause consists of

NullClause 

Instances

Eq Clause Source #

The equality on Clause is defined with reallyUnsafePtrEquality.

Methods

(==) :: Clause -> Clause -> Bool #

(/=) :: Clause -> Clause -> Bool #

Show Clause Source # 
StackFamily Clause Lit Source #

Clause is a Stackfamilyon literals since literals in it will be discared if satisifed at level = 0.

StackFamily ClauseExtManager Clause Source #

ClauseExtManager is a StackFamily on clauses.

StackFamily ClauseSimpleManager Clause Source #

ClauseSimpleManager is a StackFamily on clauses.

SingleStorage Clause Int Source #

Clause is a SingleStorage on the number of literals in it.

Methods

new' :: Int -> IO Clause Source #

get' :: Clause -> IO Int Source #

set' :: Clause -> Int -> IO () Source #

modify' :: Clause -> (Int -> Int) -> IO () Source #

VecFamily ClauseVector Clause Source #

ClauseVector is a vector of Clause.

VecFamily Clause Lit Source #

Clause is a VecFamily of Lit.

Methods

getNth :: Clause -> Int -> IO Lit Source #

setNth :: Clause -> Int -> Lit -> IO () Source #

reset :: Clause -> IO () Source #

swapBetween :: Clause -> Int -> Int -> IO () Source #

modifyNth :: Clause -> (Lit -> Lit) -> Int -> IO () Source #

newVec :: Int -> Lit -> IO Clause Source #

setAll :: Clause -> Lit -> IO () Source #

growBy :: Clause -> Int -> IO Clause Source #

asList :: Clause -> IO [Lit] Source #

VecFamily WatcherList Clause Source #

WatcherList is an Lit-indexed collection of Clause.

VecFamily ClauseExtManager Clause Source #

ClauseExtManager is a collection of Clause

newClauseFromStack :: Bool -> Stack -> IO Clause Source #

copies vec and return a new Clause. Since 1.0.100 DIMACS reader should use a scratch buffer allocated statically.

Vector of Clause

type ClauseVector = IOVector Clause Source #

Mutable Clause Vector