Trait tract_pulse::internal::TypedOp  [−]
pub trait TypedOp: 'static + Op + Debug + DynClone + Send + Sync + Downcast + EvalOp + DynHash {}Show methods
fn as_op(&self) -> &(dyn Op + 'static); fn as_op_mut(&mut self) -> &mut (dyn Op + 'static); fn output_facts(
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>; fn invariants(
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error> { ... } fn fuse(
&self,
_model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error> { ... } fn declutter(
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error> { ... } fn cost(
&self,
_inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error> { ... } fn suggested_axis_changes(
&self
) -> Result<SmallVec<[(InOut, AxisOp); 4]>, Error> { ... } fn change_axes(
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
io: InOut,
change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error> { ... } fn slice_output(
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
patch: &mut ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>,
output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> Result<Option<OutletId>, Error> { ... } fn quantize(
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
dt: DatumType,
scale: f32,
zero_point: i32
) -> Result<Option<Box<dyn TypedOp + 'static, Global>>, Error> { ... } fn concretize_dims(
&self,
source: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
target: &mut Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
mapping: &HashMap<OutletId, OutletId, RandomState>,
values: &SymbolValues
) -> Result<SmallVec<[OutletId; 4]>, Error> { ... } fn codegen(
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error> { ... } fn nested_model_multipliers(
&self,
inputs: &[&TypedFact]
) -> Vec<(Cow<'_, str>, f64), Global>ⓘ { ... }
Required methods
Provided methods
fn invariants(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
fn invariants(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>fn fuse(
    &self, 
    _model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
fn fuse(
    &self, 
    _model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>Fuse op after codegen to deal with local optimisations.
fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>Declutter the op to the tract_core operator set as much as possible.
fn cost(
    &self, 
    _inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
fn cost(
    &self, 
    _inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>Computes a cost hint of the operation.
Each pair is a type of operation and a number per call on eval.
fn suggested_axis_changes(
    &self
) -> Result<SmallVec<[(InOut, AxisOp); 4]>, Error>
fn suggested_axis_changes(
    &self
) -> Result<SmallVec<[(InOut, AxisOp); 4]>, Error>fn change_axes(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    io: InOut, 
    change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
fn change_axes(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    io: InOut, 
    change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>fn slice_output(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    patch: &mut ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    output_slot: usize, 
    axis: usize, 
    start: usize, 
    end: usize
) -> Result<Option<OutletId>, Error>
fn slice_output(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    patch: &mut ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    output_slot: usize, 
    axis: usize, 
    start: usize, 
    end: usize
) -> Result<Option<OutletId>, Error>fn quantize(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    dt: DatumType, 
    scale: f32, 
    zero_point: i32
) -> Result<Option<Box<dyn TypedOp + 'static, Global>>, Error>
fn quantize(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    dt: DatumType, 
    scale: f32, 
    zero_point: i32
) -> Result<Option<Box<dyn TypedOp + 'static, Global>>, Error>Transforms the op in an equivalent one, operating on dt (i8 or u8).
Returns None if the op can not be translated.
fn concretize_dims(
    &self, 
    source: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    target: &mut Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    mapping: &HashMap<OutletId, OutletId, RandomState>, 
    values: &SymbolValues
) -> Result<SmallVec<[OutletId; 4]>, Error>
fn concretize_dims(
    &self, 
    source: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    target: &mut Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    mapping: &HashMap<OutletId, OutletId, RandomState>, 
    values: &SymbolValues
) -> Result<SmallVec<[OutletId; 4]>, Error>Transform the op into by providing a value to one or more symbols.
fn codegen(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
fn codegen(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>Translate the op into the most efficient form possible for execution.
This transformation is supposed to be final, no more pass are expected to be run on the codegen networks.
Trait Implementations
Implementations on Foreign Types
Implementors
impl TypedOp for AxisOp
impl TypedOp for AxisOppub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
pub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn invariants(
    &self, 
    _model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
&self,
_model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn suggested_axis_changes(
    &self
) -> Result<SmallVec<[(InOut, AxisOp); 4]>, Error>
&self
) -> Result<SmallVec<[(InOut, AxisOp); 4]>, Error>
pub fn change_axes(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    io: InOut, 
    change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
io: InOut,
change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
pub fn concretize_dims(
    &self, 
    _source: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    target: &mut Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    mapping: &HashMap<OutletId, OutletId, RandomState>, 
    values: &SymbolValues
) -> Result<SmallVec<[OutletId; 4]>, Error>
&self,
_source: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
target: &mut Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
mapping: &HashMap<OutletId, OutletId, RandomState>,
values: &SymbolValues
) -> Result<SmallVec<[OutletId; 4]>, Error>
impl TypedOp for ConstantOfShape
impl TypedOp for ConstantOfShapepub fn output_facts(
    &self, 
    _inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
_inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for FiniteReshape
impl TypedOp for FiniteReshapeimpl TypedOp for Gather
impl TypedOp for Gatherpub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
pub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
impl TypedOp for GatherElements
impl TypedOp for GatherElementsimpl TypedOp for GatherNd
impl TypedOp for GatherNdpub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
pub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
impl TypedOp for MultiBroadcastTo
impl TypedOp for MultiBroadcastTopub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn concretize_dims(
    &self, 
    _source: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    target: &mut Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    mapping: &HashMap<OutletId, OutletId, RandomState>, 
    values: &SymbolValues
) -> Result<SmallVec<[OutletId; 4]>, Error>
&self,
_source: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
target: &mut Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
mapping: &HashMap<OutletId, OutletId, RandomState>,
values: &SymbolValues
) -> Result<SmallVec<[OutletId; 4]>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for OneHot
impl TypedOp for OneHotpub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn invariants(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for Pad
impl TypedOp for Padpub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
pub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
impl TypedOp for ScatterElements
impl TypedOp for ScatterElementsimpl TypedOp for Slice
impl TypedOp for Slicepub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn invariants(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
pub fn change_axes(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _io: InOut, 
    change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_io: InOut,
change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn slice_output(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    patch: &mut ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _output_slot: usize, 
    axis: usize, 
    start: usize, 
    end: usize
) -> Result<Option<OutletId>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
patch: &mut ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> Result<Option<OutletId>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for TypedConcat
impl TypedOp for TypedConcatpub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
pub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn invariants(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
pub fn change_axes(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _io: InOut, 
    change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_io: InOut,
change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
pub fn slice_output(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    patch: &mut ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _output_slot: usize, 
    axis: usize, 
    start: usize, 
    end: usize
) -> Result<Option<OutletId>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
patch: &mut ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> Result<Option<OutletId>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
impl TypedOp for MergeOpUnicast
impl TypedOp for MergeOpUnicastpub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn cost(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for TypedBinOp
impl TypedOp for TypedBinOppub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn change_axes(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _io: InOut, 
    change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_io: InOut,
change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
pub fn invariants(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
pub fn cost(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
pub fn slice_output(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    patch: &mut ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _output_slot: usize, 
    axis: usize, 
    start: usize, 
    end: usize
) -> Result<Option<OutletId>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
patch: &mut ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> Result<Option<OutletId>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn codegen(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for UnaryOp
impl TypedOp for UnaryOppub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn invariants(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
pub fn slice_output(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    patch: &mut ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _output_slot: usize, 
    axis: usize, 
    start: usize, 
    end: usize
) -> Result<Option<OutletId>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
patch: &mut ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> Result<Option<OutletId>, Error>
pub fn cost(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn change_axes(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _io: InOut, 
    change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_io: InOut,
change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for Im2Col
impl TypedOp for Im2Colpub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
pub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
impl TypedOp for ConvUnary
impl TypedOp for ConvUnarypub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn invariants(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn cost(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
pub fn change_axes(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _io: InOut, 
    change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_io: InOut,
change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
pub fn codegen(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for DeconvUnary
impl TypedOp for DeconvUnarypub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn codegen(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for MaxPool
impl TypedOp for MaxPoolpub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn codegen(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for SumPool
impl TypedOp for SumPoolpub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn codegen(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for ElementWiseOp
impl TypedOp for ElementWiseOppub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn change_axes(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _io: InOut, 
    change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_io: InOut,
change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn invariants(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
pub fn cost(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
pub fn quantize(
    &self, 
    _model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    dt: DatumType, 
    scale: f32, 
    zero_point: i32
) -> Result<Option<Box<dyn TypedOp + 'static, Global>>, Error>
&self,
_model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
dt: DatumType,
scale: f32,
zero_point: i32
) -> Result<Option<Box<dyn TypedOp + 'static, Global>>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for Identity
impl TypedOp for Identitypub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn fuse(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for LirMatMulUnary
impl TypedOp for LirMatMulUnarypub fn output_facts(
    &self, 
    _inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
_inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn cost(
    &self, 
    _inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
&self,
_inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
pub fn fuse(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for MatMatMulPack
impl TypedOp for MatMatMulPackimpl TypedOp for MatMul
impl TypedOp for MatMulpub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn cost(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for MatMulUnary
impl TypedOp for MatMulUnarypub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn invariants(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
pub fn change_axes(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _io: InOut, 
    change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_io: InOut,
change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn slice_output(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    patch: &mut ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _output_slot: usize, 
    axis: usize, 
    start: usize, 
    end: usize
) -> Result<Option<OutletId>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
patch: &mut ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_output_slot: usize,
axis: usize,
start: usize,
end: usize
) -> Result<Option<OutletId>, Error>
pub fn cost(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
pub fn codegen(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for QMatMul
impl TypedOp for QMatMulpub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn cost(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[(Cost, TDim); 4]>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for Reduce
impl TypedOp for Reducepub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
pub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn invariants(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
pub fn change_axes(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _io: InOut, 
    change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_io: InOut,
change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
impl TypedOp for DequantizeLinearF32
impl TypedOp for DequantizeLinearF32pub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn invariants(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
pub fn change_axes(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _io: InOut, 
    change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_io: InOut,
change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    dequant: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
dequant: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for Scan
impl TypedOp for Scanpub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
pub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn invariants(
    &self, 
    _model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
&self,
_model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Invariants, Error>
pub fn change_axes(
    &self, 
    _model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    io: InOut, 
    change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
&self,
_model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
io: InOut,
change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
pub fn concretize_dims(
    &self, 
    _source: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    target: &mut Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    mapping: &HashMap<OutletId, OutletId, RandomState>, 
    values: &SymbolValues
) -> Result<SmallVec<[OutletId; 4]>, Error>
&self,
_source: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
target: &mut Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
mapping: &HashMap<OutletId, OutletId, RandomState>,
values: &SymbolValues
) -> Result<SmallVec<[OutletId; 4]>, Error>
pub fn codegen(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
impl TypedOp for TypedSource
impl TypedOp for TypedSourcepub fn output_facts(
    &self, 
    _inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
_inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn change_axes(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _io: InOut, 
    change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_io: InOut,
change: &AxisOp
) -> Result<Option<AxisChangeConsequence>, Error>
pub fn concretize_dims(
    &self, 
    _source: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    target: &mut Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    _mapping: &HashMap<OutletId, OutletId, RandomState>, 
    values: &SymbolValues
) -> Result<SmallVec<[OutletId; 4]>, Error>
&self,
_source: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>,
target: &mut Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
_mapping: &HashMap<OutletId, OutletId, RandomState>,
values: &SymbolValues
) -> Result<SmallVec<[OutletId; 4]>, Error>
pub fn as_op(&self) -> &(dyn Op + 'static)
pub fn as_op_mut(&mut self) -> &mut (dyn Op + 'static)
impl TypedOp for Downsample
impl TypedOp for Downsamplepub fn output_facts(
    &self, 
    inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
pub fn declutter(
    &self, 
    model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>, 
    node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>
&self,
model: &Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp + 'static, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp + 'static, Global>>>, Error>