pub struct EinsumNode {
pub op: OpType,
pub inputs: Vec<usize>,
pub outputs: Vec<usize>,
pub metadata: Option<Metadata>,
}Fields§
§op: OpType§inputs: Vec<usize>§outputs: Vec<usize>Tensor indices that this node produces/writes to. Most operations produce a single tensor, but some may produce multiple.
metadata: Option<Metadata>Optional metadata for debugging and provenance tracking
Implementations§
Source§impl EinsumNode
impl EinsumNode
pub fn new( spec: impl Into<String>, inputs: Vec<usize>, outputs: Vec<usize>, ) -> Self
pub fn einsum( spec: impl Into<String>, inputs: Vec<usize>, outputs: Vec<usize>, ) -> Self
pub fn elem_unary(op: impl Into<String>, input: usize, output: usize) -> Self
pub fn elem_binary( op: impl Into<String>, left: usize, right: usize, output: usize, ) -> Self
pub fn reduce( op: impl Into<String>, axes: Vec<usize>, input: usize, output: usize, ) -> Self
Sourcepub fn with_single_output(
spec: impl Into<String>,
inputs: Vec<usize>,
output_idx: usize,
) -> Self
pub fn with_single_output( spec: impl Into<String>, inputs: Vec<usize>, output_idx: usize, ) -> Self
Creates a node with automatic output tracking. The output tensor index should be provided by the caller after calling add_tensor(). This is a convenience method for the common case of single-output operations.
pub fn validate(&self, num_tensors: usize) -> Result<(), IrError>
Sourcepub fn primary_output(&self) -> Option<usize>
pub fn primary_output(&self) -> Option<usize>
Get the primary output tensor index (first output). Most operations produce a single tensor.
Sourcepub fn produces(&self, tensor_idx: usize) -> bool
pub fn produces(&self, tensor_idx: usize) -> bool
Check if this node produces a specific tensor.
Sourcepub fn parse_einsum_spec(&self) -> Result<Option<EinsumSpec>, IrError>
pub fn parse_einsum_spec(&self) -> Result<Option<EinsumSpec>, IrError>
Parse and validate the einsum spec if this is an Einsum operation.
Sourcepub fn operation_description(&self) -> String
pub fn operation_description(&self) -> String
Get a human-readable description of this node’s operation.
Sourcepub fn with_metadata(self, metadata: Metadata) -> Self
pub fn with_metadata(self, metadata: Metadata) -> Self
Attach metadata to this node.
Sourcepub fn get_metadata(&self) -> Option<&Metadata>
pub fn get_metadata(&self) -> Option<&Metadata>
Get the metadata if present.
Sourcepub fn set_metadata(&mut self, metadata: Metadata)
pub fn set_metadata(&mut self, metadata: Metadata)
Set the metadata for this node.
Trait Implementations§
Source§impl Clone for EinsumNode
impl Clone for EinsumNode
Source§fn clone(&self) -> EinsumNode
fn clone(&self) -> EinsumNode
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 Debug for EinsumNode
impl Debug for EinsumNode
Source§impl<'de> Deserialize<'de> for EinsumNode
impl<'de> Deserialize<'de> for EinsumNode
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for EinsumNode
impl Display for EinsumNode
Source§impl PartialEq for EinsumNode
impl PartialEq for EinsumNode
Source§impl Serialize for EinsumNode
impl Serialize for EinsumNode
impl StructuralPartialEq for EinsumNode
Auto Trait Implementations§
impl Freeze for EinsumNode
impl RefUnwindSafe for EinsumNode
impl Send for EinsumNode
impl Sync for EinsumNode
impl Unpin for EinsumNode
impl UnwindSafe for EinsumNode
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