Trait tract_core::internal::DimLike
source · pub trait DimLike: Clone + Default + PartialEq + From<usize> + for<'a> TryFrom<&'a TDim, Error = Error> + Zero<Output = Self, Output = Self, Output = Self> + Debug + Display + Hash + Add + Add<usize> + for<'a> Add<&'a Self> + Sub<Output = Self, Output = Self, Output = Self> + Sub<usize> + for<'a> Sub<&'a Self> + Mul<Output = Self, Output = Self, Output = Self> + Mul<usize> + for<'a> Mul<&'a Self> + Div<usize, Output = Self> + Rem<usize, Output = Self> + Send + Sync + 'static + Sum + Product + ToDim {
// Required methods
fn maybe_div(&self, other: &Self) -> Result<(Self, u64), Error>;
fn to_i64(&self) -> Result<i64, Error>;
fn one() -> Self;
fn eval(&self, values: &SymbolValues) -> Self;
fn eval_to_i64(&self, values: &SymbolValues) -> Result<i64, Error>;
fn substitute(&self, from: &Symbol, to: &Self) -> Self;
// Provided methods
fn divceil(&self, other: usize) -> Self { ... }
fn to_usize(&self) -> Result<usize, Error> { ... }
fn to_isize(&self) -> Result<isize, Error> { ... }
fn to_i32(&self) -> Result<i32, Error> { ... }
}
Expand description
A super-trait for value acting as tensor dimensions in tract.
Implemented by:
usize
for regular dimensionsTDim
supporting regular and streaming dimensions
Required Methods§
fn maybe_div(&self, other: &Self) -> Result<(Self, u64), Error>
sourcefn eval(&self, values: &SymbolValues) -> Self
fn eval(&self, values: &SymbolValues) -> Self
Substitute as many symbols as possible in the dim value.
sourcefn eval_to_i64(&self, values: &SymbolValues) -> Result<i64, Error>
fn eval_to_i64(&self, values: &SymbolValues) -> Result<i64, Error>
Full evaluation of the symbol, failing if a symbol is missing
fn substitute(&self, from: &Symbol, to: &Self) -> Self
Provided Methods§
fn to_usize(&self) -> Result<usize, Error>
fn to_isize(&self) -> Result<isize, Error>
fn to_i32(&self) -> Result<i32, Error>
Object Safety§
This trait is not object safe.