[][src]Struct varisat::analyze_conflict::AnalyzeConflict

pub struct AnalyzeConflict {
    clause: Vec<Lit>,
    current_level_count: usize,
    var_flags: Vec<bool>,
    to_clean: Vec<Var>,
    involved: Vec<ClauseRef>,
    clause_hashes: Vec<ClauseHash>,
    unordered_clause_hashes: Vec<(LitIdx, ClauseHash)>,
    stack: Vec<Lit>,
}

Temporaries for conflict analysis

Fields

clause: Vec<Lit>

This is the learned clause after analysis finishes.

current_level_count: usize

Number of literals in the current clause at the current level.

var_flags: Vec<bool>

Variables in the current clause.

to_clean: Vec<Var>

Entries to clean in var_flags.

involved: Vec<ClauseRef>

Clauses to bump.

clause_hashes: Vec<ClauseHash>

Hashes of all involved clauses needed to proof the minimized clause.

unordered_clause_hashes: Vec<(LitIdx, ClauseHash)>

Clause hashes paired with the trail depth of the propagated lit.

stack: Vec<Lit>

Stack for recursive minimization.

Methods

impl AnalyzeConflict[src]

pub fn set_var_count(&mut self, count: usize)[src]

Update structures for a new variable count.

pub fn clause(&self) -> &[Lit][src]

The learned clause.

pub fn involved(&self) -> &[ClauseRef][src]

Long clauses involved in the conflict.

pub fn clause_hashes(&self) -> &[ClauseHash][src]

Hashes of clauses involved in the proof of the learned clause.

Hashes are in clause propagation order.

Trait Implementations

impl Default for AnalyzeConflict[src]

Auto Trait Implementations

impl Send for AnalyzeConflict

impl Sync for AnalyzeConflict

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<Reference, Outer, OuterFieldType, Inner> HasPart<Nested<Outer, Inner>> for Reference where
    Inner: Part,
    Outer: Part<PartType = Field<OuterFieldType>>,
    OuterFieldType: HasPart<Inner, RawTarget = OuterFieldType> + PartialRefTarget + ?Sized,
    Reference: HasPart<Outer> + ?Sized