pub struct CpuReferenceAccelerator { /* private fields */ }Expand description
CPU reference implementation of GPU-acceleratable operations
This implementation provides pure Rust versions of all GPU operations, serving as both a fallback when no GPU is available and a reference for correctness testing.
Implementations§
Trait Implementations§
Source§impl Default for CpuReferenceAccelerator
impl Default for CpuReferenceAccelerator
Source§impl GpuSolverAccelerator for CpuReferenceAccelerator
impl GpuSolverAccelerator for CpuReferenceAccelerator
Source§fn reset_stats(&mut self)
fn reset_stats(&mut self)
Reset statistics
Source§fn batch_unit_propagation(
&mut self,
watched_lists: &[Vec<(usize, bool)>],
assignments: &[bool],
) -> Result<BatchPropagationResult, GpuError>
fn batch_unit_propagation( &mut self, watched_lists: &[Vec<(usize, bool)>], assignments: &[bool], ) -> Result<BatchPropagationResult, GpuError>
Batch unit propagation Read more
Source§fn parallel_conflict_analysis(
&mut self,
conflict_clause: &[i32],
trail: &[(u32, usize)],
reasons: &[Option<usize>],
) -> Result<ConflictAnalysisResult, GpuError>
fn parallel_conflict_analysis( &mut self, conflict_clause: &[i32], trail: &[(u32, usize)], reasons: &[Option<usize>], ) -> Result<ConflictAnalysisResult, GpuError>
Parallel conflict analysis data structure update Read more
Auto Trait Implementations§
impl Freeze for CpuReferenceAccelerator
impl RefUnwindSafe for CpuReferenceAccelerator
impl Send for CpuReferenceAccelerator
impl Sync for CpuReferenceAccelerator
impl Unpin for CpuReferenceAccelerator
impl UnsafeUnpin for CpuReferenceAccelerator
impl UnwindSafe for CpuReferenceAccelerator
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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