Struct splr::cdb::ClauseDB [−][src]
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
lbd_of_dp_ema: Ema
EMA of LBD of clauses used in conflict analysis (dependency graph)
during_vivification: bool
eliminated_permanent: Vec<Vec<Lit>>
Trait Implementations
impl ActivityIF<ClauseId> for ClauseDB
[src]
fn activity(&mut self, cid: ClauseId) -> f64
[src]
fn average_activity(&self) -> f64
[src]
fn set_activity(&mut self, cid: ClauseId, val: f64)
[src]
fn reward_at_analysis(&mut self, cid: ClauseId)
[src]
fn update_rewards(&mut self)
[src]
fn reward_at_assign(&mut self, _ix: Ix)
[src]
fn reward_at_propagation(&mut self, _ix: Ix)
[src]
fn reward_at_unassign(&mut self, _ix: Ix)
[src]
fn update_activity_decay(&mut self, _index: Option<usize>)
[src]
impl ClauseDBIF for ClauseDB
[src]
fn len(&self) -> usize
[src]
fn is_empty(&self) -> bool
[src]
fn iter(&self) -> Iter<'_, Clause>
[src]
fn iter_mut(&mut self) -> IterMut<'_, Clause>
[src]
fn watcher_list(&self, l: Lit) -> &[Watch]
[src]
fn bin_watcher_lists(&self) -> &[Vec<Watch>]
[src]
fn watcher_lists_mut(&mut self) -> &mut [Vec<Watch>]
[src]
fn garbage_collect(&mut self)
[src]
fn registered_bin_clause(&self, l0: Lit, l1: Lit) -> bool
[src]
fn new_clause<A>(
&mut self,
asg: &mut A,
vec: &mut Vec<Lit>,
learnt: bool,
level_sort: bool
) -> ClauseId where
A: AssignIF,
[src]
&mut self,
asg: &mut A,
vec: &mut Vec<Lit>,
learnt: bool,
level_sort: bool
) -> ClauseId where
A: AssignIF,
fn mark_clause_as_used<A>(&mut self, asg: &mut A, cid: ClauseId) -> bool where
A: AssignIF,
[src]
A: AssignIF,
fn count(&self) -> usize
[src]
fn countf(&self, mask: Flag) -> usize
[src]
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.
fn reduce<A>(&mut self, asg: &mut A, nc: usize) -> bool where
A: AssignIF,
[src]
A: AssignIF,
fn reset(&mut self)
[src]
fn certificate_add(&mut self, vec: &[Lit])
[src]
fn certificate_delete(&mut self, vec: &[Lit])
[src]
fn touch_var(&mut self, vi: VarId)
[src]
fn check_size(&self) -> Result<bool, SolverError>
[src]
fn validate(&self, model: &[Option<bool>], strict: bool) -> Option<ClauseId>
[src]
fn strengthen(&mut self, cid: ClauseId, p: Lit) -> bool
[src]
fn minimize_with_biclauses<A>(&mut self, asg: &A, vec: &mut Vec<Lit>) where
A: AssignIF,
[src]
A: AssignIF,
impl Clone for ClauseDB
[src]
impl Debug for ClauseDB
[src]
impl Default for ClauseDB
[src]
impl Index<&'_ ClauseId> for ClauseDB
[src]
type Output = Clause
The returned type after indexing.
fn index(&self, cid: &ClauseId) -> &Clause
[src]
impl Index<ClauseId> for ClauseDB
[src]
type Output = Clause
The returned type after indexing.
fn index(&self, cid: ClauseId) -> &Clause
[src]
impl Index<Range<usize>> for ClauseDB
[src]
type Output = [Clause]
The returned type after indexing.
fn index(&self, r: Range<usize>) -> &[Clause]
[src]
impl Index<RangeFrom<usize>> for ClauseDB
[src]
type Output = [Clause]
The returned type after indexing.
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]
fn instantiate(config: &Config, cnf: &CNFDescription) -> ClauseDB
[src]
fn handle(&mut self, e: SolverEvent)
[src]
impl PropertyDereference<Tf64, f64> for ClauseDB
[src]
impl PropertyDereference<Tusize, usize> for ClauseDB
[src]
Auto Trait Implementations
impl RefUnwindSafe for ClauseDB
impl Send for ClauseDB
impl Sync for ClauseDB
impl Unpin for ClauseDB
impl UnwindSafe for ClauseDB
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> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
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>,