pub struct Evaluator { /* private fields */ }Expand description
位并行求值器:把表达式在全部 3^n 组赋值上求值。
Implementations§
Source§impl Evaluator
impl Evaluator
Sourcepub fn assignment_count(&self) -> Result<u64, LimitError>
pub fn assignment_count(&self) -> Result<u64, LimitError>
赋值总数 3^n;3^n 超出 u64 时返回 LimitError::CountOverflow。
Sourcepub fn chunk_planes(&self, base: u64) -> Result<Vec<TriBit>, LimitError>
pub fn chunk_planes(&self, base: u64) -> Result<Vec<TriBit>, LimitError>
构造一个 64 组分块中各变量的位平面。
base 是该分块首个赋值的编号,必须是 64 的倍数且 base + 63 不溢出;
否则返回 LimitError::ChunkBase。变量 i 的取值由赋值编号的第 i
个三进制位决定(0 → 0,1 → 1,2 → X)。
Sourcepub fn evaluate<F>(&self, f: F) -> Result<TruthTable, LimitError>
pub fn evaluate<F>(&self, f: F) -> Result<TruthTable, LimitError>
在全部 3^n 组赋值上求值(默认预算)。
内部按 64 组一块做位并行计算,再展开为逐组结果。
Sourcepub fn evaluate_within<F>(
&self,
f: F,
limits: Limits,
) -> Result<TruthTable, LimitError>
pub fn evaluate_within<F>( &self, f: F, limits: Limits, ) -> Result<TruthTable, LimitError>
同 Evaluator::evaluate,但可指定变量数与行数预算。
预算在分配结果表之前检查:3^n 用 checked 计算,行数先与
Limits::max_rows 比较,再做可失败转换与分配。
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Evaluator
impl RefUnwindSafe for Evaluator
impl Send for Evaluator
impl Sync for Evaluator
impl Unpin for Evaluator
impl UnsafeUnpin for Evaluator
impl UnwindSafe for Evaluator
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