[−][src]Struct splr::cdb::ClauseDB
Clause database
use crate::{splr::config::Config, splr::types::*}; use crate::splr::cdb::ClauseDB; let cdb = ClauseDB::instantiate(&Config::default(), &CNFDescription::default());
Fields
bin_watcher: Vec<Vec<Watch>>
container of watch literals for binary clauses
watcher: Vec<Vec<Watch>>
container of watch literals
certified: Vec<(CertifiedRecord, Vec<i32>)>
clause history to make certification
during_vivification: bool
eliminated_permanent: Vec<Vec<Lit>>
Trait Implementations
impl ActivityIF for ClauseDB
[src]
type Ix = ClauseId
type for index
type Inc = ()
an extra parameter for bumping
pub fn activity(&mut self, ci: Self::Ix) -> f64
[src]
pub fn set_activity(&mut self, ci: Self::Ix, val: f64)
[src]
pub fn bump_activity(&mut self, cid: Self::Ix, _: Self::Inc)
[src]
pub fn scale_activity(&mut self)
[src]
impl ClauseDBIF for ClauseDB
[src]
pub fn len(&self) -> usize
[src]
pub fn is_empty(&self) -> bool
[src]
pub fn iter(&self) -> Iter<'_, Clause>
[src]
pub fn iter_mut(&mut self) -> IterMut<'_, Clause>
[src]
pub fn watcher_list(&self, l: Lit) -> &[Watch]
[src]
pub fn bin_watcher_lists(&self) -> &[Vec<Watch>]
[src]
pub fn watcher_lists_mut(&mut self) -> &mut [Vec<Watch>]
[src]
pub fn garbage_collect(&mut self)
[src]
pub fn registered_bin_clause(&self, l0: Lit, l1: Lit) -> bool
[src]
pub fn new_clause<A>(
&mut self,
asg: &mut A,
vec: &mut Vec<Lit>,
mut learnt: bool,
level_sort: bool
) -> ClauseId where
A: AssignIF,
[src]
&mut self,
asg: &mut A,
vec: &mut Vec<Lit>,
mut learnt: bool,
level_sort: bool
) -> ClauseId where
A: AssignIF,
pub fn mark_clause_as_used<A>(&mut self, asg: &mut A, cid: ClauseId) -> bool where
A: AssignIF,
[src]
A: AssignIF,
pub fn count(&self) -> usize
[src]
pub fn countf(&self, mask: Flag) -> usize
[src]
pub fn detach(&mut self, cid: ClauseId)
[src]
Warning
this function is the only function that turns Flag::DEAD
on without calling
garbage_collect
which erases all the DEAD
flags. So you must care about how and when
garbage_collect
is called.
pub fn check_and_reduce<A>(&mut self, asg: &A, nc: usize) -> bool where
A: AssignIF,
[src]
A: AssignIF,
pub fn reset(&mut self)
[src]
pub fn certificate_add(&mut self, vec: &[Lit])
[src]
pub fn certificate_delete(&mut self, vec: &[Lit])
[src]
pub fn touch_var(&mut self, vi: VarId)
[src]
pub fn check_size(&self) -> Result<bool, SolverError>
[src]
pub fn validate(&self, model: &[Option<bool>], strict: bool) -> Option<ClauseId>
[src]
pub fn strengthen(&mut self, cid: ClauseId, p: Lit) -> bool
[src]
pub fn minimize_with_biclauses<A>(&mut self, asg: &A, vec: &mut Vec<Lit>) where
A: AssignIF,
[src]
A: AssignIF,
impl Debug for ClauseDB
[src]
impl Default for ClauseDB
[src]
impl Export<(usize, usize, usize, usize, usize, usize), bool> for ClauseDB
[src]
pub fn exports(&self) -> (usize, usize, usize, usize, usize, usize)
[src]
exports:
- the number of active clauses
- the number of binary clauses
- the number of binary learnt clauses
- the number of clauses which LBDs are 2
- the number of learnt clauses
- the number of clause reductions
use crate::{splr::config::Config, splr::types::*}; use crate::splr::cdb::ClauseDB; let cdb = ClauseDB::instantiate(&Config::default(), &CNFDescription::default()); let (_active, _bi_clause, _bi_learnt, _lbd2, _learnt, _reduction) = cdb.exports();
pub fn mode(&self) -> bool
[src]
return the value of use_chan_seok
impl Index<&'_ ClauseId> for ClauseDB
[src]
type Output = Clause
The returned type after indexing.
pub fn index(&self, cid: &ClauseId) -> &Clause
[src]
impl Index<ClauseId> for ClauseDB
[src]
type Output = Clause
The returned type after indexing.
pub fn index(&self, cid: ClauseId) -> &Clause
[src]
impl Index<Range<usize>> for ClauseDB
[src]
type Output = [Clause]
The returned type after indexing.
pub fn index(&self, r: Range<usize>) -> &[Clause]
[src]
impl Index<RangeFrom<usize>> for ClauseDB
[src]
type Output = [Clause]
The returned type after indexing.
pub fn index(&self, r: RangeFrom<usize>) -> &[Clause]
[src]
impl IndexMut<&'_ ClauseId> for ClauseDB
[src]
impl IndexMut<ClauseId> for ClauseDB
[src]
impl IndexMut<Range<usize>> for ClauseDB
[src]
impl IndexMut<RangeFrom<usize>> for ClauseDB
[src]
impl Instantiate for ClauseDB
[src]
pub fn instantiate(config: &Config, cnf: &CNFDescription) -> ClauseDB
[src]
pub fn handle(&mut self, e: SolverEvent)
[src]
impl LBDIF for ClauseDB
[src]
Auto Trait Implementations
impl RefUnwindSafe for ClauseDB
[src]
impl Send for ClauseDB
[src]
impl Sync for ClauseDB
[src]
impl Unpin for ClauseDB
[src]
impl UnwindSafe for ClauseDB
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,