pub struct LutNode<NodeId> { /* private fields */ }Expand description
Step of a boolean chain. The operator implemented by the step is represented by a truth-table.
Implementations§
Source§impl<NodeId> LutNode<NodeId>
impl<NodeId> LutNode<NodeId>
Sourcepub fn new(truth_table: SmallTruthTable, inputs: SmallVec<[NodeId; 6]>) -> Self
pub fn new(truth_table: SmallTruthTable, inputs: SmallVec<[NodeId; 6]>) -> Self
Create a new k-LUT node. The node function is specified by the truth_table.
Trait Implementations§
Source§impl<NodeId> IntoIterator for LutNode<NodeId>
impl<NodeId> IntoIterator for LutNode<NodeId>
Source§impl<NodeId: IdType + EdgeWithInversion> MutNetworkNodeWithReferenceCount for LutNode<NodeId>
impl<NodeId: IdType + EdgeWithInversion> MutNetworkNodeWithReferenceCount for LutNode<NodeId>
Source§impl<NodeId: IdType + EdgeWithInversion> NetworkNode for LutNode<NodeId>
impl<NodeId: IdType + EdgeWithInversion> NetworkNode for LutNode<NodeId>
Source§fn num_inputs(&self) -> usize
fn num_inputs(&self) -> usize
Get the number of inputs into this node.
Source§fn function(&self) -> SmallTruthTable
fn function(&self) -> SmallTruthTable
Get the logic function of the node.
Source§fn normalized(self) -> SimplifyResult<Self, Self::NodeId>
fn normalized(self) -> SimplifyResult<Self, Self::NodeId>
Bring the node into a canonical form by reordering and inverting the inputs (if possible).
This increases the effectiveness of structural hashing. Read more
Source§impl<NodeId: IdType + EdgeWithInversion> NetworkNodeWithReferenceCount for LutNode<NodeId>
impl<NodeId: IdType + EdgeWithInversion> NetworkNodeWithReferenceCount for LutNode<NodeId>
Source§fn num_references(&self) -> usize
fn num_references(&self) -> usize
Get the number of references to this node.
impl<NodeId: Eq> Eq for LutNode<NodeId>
impl<NodeId> StructuralPartialEq for LutNode<NodeId>
Auto Trait Implementations§
impl<NodeId> Freeze for LutNode<NodeId>where
NodeId: Freeze,
impl<NodeId> RefUnwindSafe for LutNode<NodeId>where
NodeId: RefUnwindSafe,
impl<NodeId> Send for LutNode<NodeId>where
NodeId: Send,
impl<NodeId> Sync for LutNode<NodeId>where
NodeId: Sync,
impl<NodeId> Unpin for LutNode<NodeId>where
NodeId: Unpin,
impl<NodeId> UnwindSafe for LutNode<NodeId>where
NodeId: RefUnwindSafe + UnwindSafe,
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