Struct tract_pulse::internal::tract_core::ops::scan::Scan
pub struct Scan {
pub skip: usize,
pub body: Graph<TypedFact, Box<dyn TypedOp, Global>>,
pub input_mapping: Vec<InputMapping, Global>,
pub output_mapping: Vec<OutputMapping<TDim>, Global>,
/* private fields */
}
Fields§
§skip: usize
§body: Graph<TypedFact, Box<dyn TypedOp, Global>>
§input_mapping: Vec<InputMapping, Global>
§output_mapping: Vec<OutputMapping<TDim>, Global>
Implementations§
§impl Scan
impl Scan
pub fn to_codegen_op(&self, optimize_inner: bool) -> Result<LirScan, Error>
pub fn new( body: Graph<TypedFact, Box<dyn TypedOp, Global>>, input_mapping: Vec<InputMapping, Global>, output_mapping: Vec<OutputMapping<TDim>, Global>, skip: usize ) -> Result<Scan, Error>
pub fn iteration_count(&self, inputs: &[&TypedFact]) -> Option<TDim>
Trait Implementations§
§impl Op for Scan
impl Op for Scan
fn name(&self) -> Cow<'_, str>
§fn info(&self) -> Result<Vec<String, Global>, Error>
fn info(&self) -> Result<Vec<String, Global>, Error>
Short (one-line) strings giving hints on internal implementation or
important configuration details to be displayed in dumps.
§fn validation(&self) -> Validation
fn validation(&self) -> Validation
The kind of accuracy check that should be performed on operation when
testing them.
fn as_typed(&self) -> Option<&(dyn TypedOp + 'static)>
source§impl PulsedOp for Scan
impl PulsedOp for Scan
source§fn pulsed_output_facts(
&self,
inputs: &[&PulsedFact]
) -> TractResult<TVec<PulsedFact>>
fn pulsed_output_facts( &self, inputs: &[&PulsedFact] ) -> TractResult<TVec<PulsedFact>>
Deduce output facts from input facts.
§impl TypedOp for Scan
impl TypedOp for Scan
§fn output_facts(
&self,
inputs: &[&TypedFact]
) -> Result<SmallVec<[TypedFact; 4]>, Error>
fn output_facts( &self, inputs: &[&TypedFact] ) -> Result<SmallVec<[TypedFact; 4]>, Error>
Deduce output facts from input facts.
fn axes_mapping( &self, inputs: &[&TypedFact], outputs: &[&TypedFact] ) -> Result<AxesMapping, Error>
fn suggested_axis_changes( &self ) -> Result<SmallVec<[(InOut, AxisOp); 4]>, Error>
fn change_axes( &self, model: &Graph<TypedFact, Box<dyn TypedOp, Global>>, node: &Node<TypedFact, Box<dyn TypedOp, Global>>, io: InOut, change: &AxisOp ) -> Result<Option<AxisChangeConsequence>, Error>
§fn declutter_with_session(
&self,
session: &mut OptimizerSession<'_>,
model: &Graph<TypedFact, Box<dyn TypedOp, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp, Global>>>, Error>
fn declutter_with_session( &self, session: &mut OptimizerSession<'_>, model: &Graph<TypedFact, Box<dyn TypedOp, Global>>, node: &Node<TypedFact, Box<dyn TypedOp, Global>> ) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp, Global>>>, Error>
Declutter the op to the tract_core operator set as much as possible.
§fn concretize_dims(
&self,
_source: &Graph<TypedFact, Box<dyn TypedOp, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp, Global>>,
target: &mut Graph<TypedFact, Box<dyn TypedOp, Global>>,
mapping: &HashMap<OutletId, OutletId, RandomState>,
values: &SymbolValues
) -> Result<SmallVec<[OutletId; 4]>, Error>
fn concretize_dims( &self, _source: &Graph<TypedFact, Box<dyn TypedOp, Global>>, node: &Node<TypedFact, Box<dyn TypedOp, Global>>, target: &mut Graph<TypedFact, Box<dyn TypedOp, 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, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp, Global>>>, Error>
fn codegen( &self, model: &Graph<TypedFact, Box<dyn TypedOp, Global>>, node: &Node<TypedFact, Box<dyn TypedOp, Global>> ) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp, Global>>>, Error>
Translate the op into the most efficient form possible for execution. Read more
§fn fuse(
&self,
_model: &Graph<TypedFact, Box<dyn TypedOp, Global>>,
_node: &Node<TypedFact, Box<dyn TypedOp, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp, Global>>>, Error>
fn fuse( &self, _model: &Graph<TypedFact, Box<dyn TypedOp, Global>>, _node: &Node<TypedFact, Box<dyn TypedOp, Global>> ) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp, Global>>>, Error>
Fuse op after codegen to deal with local optimisations.
§fn declutter(
&self,
model: &Graph<TypedFact, Box<dyn TypedOp, Global>>,
node: &Node<TypedFact, Box<dyn TypedOp, Global>>
) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp, Global>>>, Error>
fn declutter( &self, model: &Graph<TypedFact, Box<dyn TypedOp, Global>>, node: &Node<TypedFact, Box<dyn TypedOp, Global>> ) -> Result<Option<ModelPatch<TypedFact, Box<dyn TypedOp, 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. Read more
fn slice( &self, patch: &mut ModelPatch<TypedFact, Box<dyn TypedOp, Global>>, prefix: &str, inputs: &[OutletId], output_axis: usize, start: usize, end: usize ) -> Result<Option<SmallVec<[OutletId; 4]>>, Error>
Auto Trait Implementations§
impl !RefUnwindSafe for Scan
impl Send for Scan
impl Sync for Scan
impl Unpin for Scan
impl !UnwindSafe for Scan
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
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
source§fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
Convert
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>
Convert
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)
Convert
&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)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.