pub enum SolverImpls<C: SolverConfig = DynamicConfig> {
Dpll(Box<Dpll<C>>),
Cdcl(Box<Cdcl<C>>),
}Expand description
An enum representing different implementations of SAT solvers.
Variants§
Trait Implementations§
Source§impl<C: Clone + SolverConfig> Clone for SolverImpls<C>
impl<C: Clone + SolverConfig> Clone for SolverImpls<C>
Source§fn clone(&self) -> SolverImpls<C>
fn clone(&self) -> SolverImpls<C>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<C: Debug + SolverConfig> Debug for SolverImpls<C>
impl<C: Debug + SolverConfig> Debug for SolverImpls<C>
Source§impl<C: SolverConfig> Solver<C> for SolverImpls<C>
impl<C: SolverConfig> Solver<C> for SolverImpls<C>
Source§fn new<L: Literal, S: LiteralStorage<L>>(cnf: Cnf<L, S>) -> Self
fn new<L: Literal, S: LiteralStorage<L>>(cnf: Cnf<L, S>) -> Self
Creates a new instance of the solver, initialised with the given CNF formula. Read more
Source§fn from_parts<L: Literal, S: LiteralStorage<L>>(
cnf: Cnf<L, S>,
assignment: C::Assignment,
manager: C::ClauseManager,
propagator: C::Propagator,
restarter: C::Restarter,
selector: C::VariableSelector,
) -> Self
fn from_parts<L: Literal, S: LiteralStorage<L>>( cnf: Cnf<L, S>, assignment: C::Assignment, manager: C::ClauseManager, propagator: C::Propagator, restarter: C::Restarter, selector: C::VariableSelector, ) -> Self
Creates a solver instance from its components. Read more
Source§fn solve(&mut self) -> Option<Solutions>
fn solve(&mut self) -> Option<Solutions>
Attempts to solve the CNF formula provided at construction. Read more
Source§fn solutions(&self) -> Solutions
fn solutions(&self) -> Solutions
Returns the current satisfying assignment if one has been found. Read more
Source§fn stats(&self) -> SolutionStats
fn stats(&self) -> SolutionStats
Returns statistics about the solver’s last execution of
solve().Auto Trait Implementations§
impl<C> Freeze for SolverImpls<C>
impl<C> RefUnwindSafe for SolverImpls<C>where
<C as SolverConfig>::Assignment: RefUnwindSafe,
<C as SolverConfig>::VariableSelector: RefUnwindSafe,
<C as SolverConfig>::Propagator: RefUnwindSafe,
<C as SolverConfig>::Restarter: RefUnwindSafe,
<C as SolverConfig>::ClauseManager: RefUnwindSafe,
<C as SolverConfig>::LiteralStorage: RefUnwindSafe,
<C as SolverConfig>::Literal: RefUnwindSafe,
impl<C = DynamicConfig> !Send for SolverImpls<C>
impl<C = DynamicConfig> !Sync for SolverImpls<C>
impl<C> Unpin for SolverImpls<C>
impl<C> UnwindSafe for SolverImpls<C>where
<C as SolverConfig>::Assignment: UnwindSafe,
<C as SolverConfig>::VariableSelector: UnwindSafe,
<C as SolverConfig>::Propagator: UnwindSafe,
<C as SolverConfig>::Restarter: UnwindSafe,
<C as SolverConfig>::ClauseManager: UnwindSafe,
<C as SolverConfig>::LiteralStorage: RefUnwindSafe + UnwindSafe,
<C as SolverConfig>::Literal: UnwindSafe + RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more