Struct tract_hir::infer::ShapeFactoid
source · pub struct ShapeFactoid { /* private fields */ }
Expand description
Partial information about a shape.
A basic example of a shape fact is shapefactoid![1, 2]
, which corresponds to
the shape [1, 2]
in Arc_
in facts to denote unknown
dimensions (e.g. shapefactoid![1, 2, _]
corresponds to any shape [1, 2, k]
with k
a non-negative integer). We can also use ..
at the end of a fact
to only specify its first dimensions, so shapefactoid![1, 2; ..]
matches any
shape that starts with [1, 2]
(e.g. [1, 2, i]
or [1, 2, i, j]
), while
shapefactoid![..]
matches any shape.
Implementations§
source§impl ShapeFactoid
impl ShapeFactoid
sourcepub fn open(dims: TVec<DimFact>) -> ShapeFactoid
pub fn open(dims: TVec<DimFact>) -> ShapeFactoid
Constructs an open shape fact.
pub fn is_open(&self) -> bool
sourcepub fn closed(dims: TVec<DimFact>) -> ShapeFactoid
pub fn closed(dims: TVec<DimFact>) -> ShapeFactoid
Constructs a closed shape fact.
pub fn rank(&self) -> IntFactoid
pub fn ensure_rank_at_least(&mut self, n: usize) -> bool
pub fn dim(&self, i: usize) -> Option<DimFact>
pub fn set_dim(&mut self, i: usize, d: TDim) -> bool
pub fn dims(&self) -> impl Iterator<Item = &DimFact>
pub fn as_concrete_finite(&self) -> TractResult<Option<TVec<usize>>>
pub fn matches( &self, t: &Tensor, symbols: Option<&SymbolValues> ) -> TractResult<bool>
Trait Implementations§
source§impl Clone for ShapeFactoid
impl Clone for ShapeFactoid
source§fn clone(&self) -> ShapeFactoid
fn clone(&self) -> ShapeFactoid
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ShapeFactoid
impl Debug for ShapeFactoid
source§impl Default for ShapeFactoid
impl Default for ShapeFactoid
source§fn default() -> ShapeFactoid
fn default() -> ShapeFactoid
Returns the most general shape fact possible.
source§impl Factoid for ShapeFactoid
impl Factoid for ShapeFactoid
source§fn concretize(self: &ShapeFactoid) -> Option<TVec<TDim>>
fn concretize(self: &ShapeFactoid) -> Option<TVec<TDim>>
Tries to transform the fact into a Vec<usize>
, or returns None
.
source§fn unify(&self, other: &Self) -> TractResult<Self>
fn unify(&self, other: &Self) -> TractResult<Self>
Tries to unify the fact with another fact of the same type.
type Concrete = SmallVec<[TDim; 4]>
source§fn is_concrete(&self) -> bool
fn is_concrete(&self) -> bool
source§fn unify_with(&mut self, other: &Self) -> TractResult<bool>
fn unify_with(&mut self, other: &Self) -> TractResult<bool>
source§fn unify_with_mut(&mut self, other: &mut Self) -> TractResult<bool>
fn unify_with_mut(&mut self, other: &mut Self) -> TractResult<bool>
source§impl<D: ToDim, I: IntoIterator<Item = D>> From<I> for ShapeFactoid
impl<D: ToDim, I: IntoIterator<Item = D>> From<I> for ShapeFactoid
source§fn from(it: I) -> ShapeFactoid
fn from(it: I) -> ShapeFactoid
source§impl FromIterator<TDim> for ShapeFactoid
impl FromIterator<TDim> for ShapeFactoid
source§fn from_iter<I: IntoIterator<Item = TDim>>(iter: I) -> ShapeFactoid
fn from_iter<I: IntoIterator<Item = TDim>>(iter: I) -> ShapeFactoid
Converts an iterator over usize into a closed shape.
source§impl FromIterator<usize> for ShapeFactoid
impl FromIterator<usize> for ShapeFactoid
source§fn from_iter<I: IntoIterator<Item = usize>>(iter: I) -> ShapeFactoid
fn from_iter<I: IntoIterator<Item = usize>>(iter: I) -> ShapeFactoid
Converts an iterator over usize into a closed shape.
source§impl Hash for ShapeFactoid
impl Hash for ShapeFactoid
source§impl<'a> IntoExp<ShapeFactoid> for &'a ShapeProxy
impl<'a> IntoExp<ShapeFactoid> for &'a ShapeProxy
source§fn bex(self) -> Exp<ShapeFactoid>
fn bex(self) -> Exp<ShapeFactoid>
source§impl IntoExp<ShapeFactoid> for ShapeFactoid
impl IntoExp<ShapeFactoid> for ShapeFactoid
source§fn bex(self) -> Exp<ShapeFactoid>
fn bex(self) -> Exp<ShapeFactoid>
source§impl IntoExp<ShapeFactoid> for ShapeProxy
impl IntoExp<ShapeFactoid> for ShapeProxy
source§fn bex(self) -> Exp<ShapeFactoid>
fn bex(self) -> Exp<ShapeFactoid>
source§impl IntoExp<ShapeFactoid> for TVec<TDim>
impl IntoExp<ShapeFactoid> for TVec<TDim>
source§fn bex(self) -> Exp<ShapeFactoid>
fn bex(self) -> Exp<ShapeFactoid>
source§impl Output for ShapeFactoid
impl Output for ShapeFactoid
source§fn into_wrapped(source: Self) -> Wrapped
fn into_wrapped(source: Self) -> Wrapped
source§fn from_wrapped(wrapped: Wrapped) -> TractResult<ShapeFactoid>
fn from_wrapped(wrapped: Wrapped) -> TractResult<ShapeFactoid>
source§impl PartialEq for ShapeFactoid
impl PartialEq for ShapeFactoid
source§fn eq(&self, other: &ShapeFactoid) -> bool
fn eq(&self, other: &ShapeFactoid) -> bool
self
and other
values to be equal, and is used
by ==
.impl Eq for ShapeFactoid
impl StructuralPartialEq for ShapeFactoid
Auto Trait Implementations§
impl Freeze for ShapeFactoid
impl RefUnwindSafe for ShapeFactoid
impl Send for ShapeFactoid
impl Sync for ShapeFactoid
impl Unpin for ShapeFactoid
impl UnwindSafe for ShapeFactoid
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
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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> ⓘ
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> ⓘ
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