Skip to main content

unify_dim

Function unify_dim 

Source
pub fn unify_dim(a: &Dim, b: &Dim) -> Option<Dim>
Expand description

Unify two dimensions according to shape inference rules:

  • Known(n) + Known(n) -> Known(n) (match)
  • Known(n) + Dynamic -> Known(n) (concrete wins)
  • Dynamic + Known(n) -> Known(n) (concrete wins)
  • Dynamic + Dynamic -> Dynamic
  • Symbolic(s) + Symbolic(s) -> Symbolic(s) (same name matches)
  • Symbolic(s) + Dynamic -> Symbolic(s) (named wins)
  • Known(1) + any -> broadcast (returns the other)

Returns None if the dimensions are incompatible (e.g. Known(3) vs Known(5)).