tract_hir/ops/
cast.rs

1use tract_core::internal::*;
2use crate::infer::*;
3
4use tract_core::ops::cast::Cast;
5pub use tract_core::ops::cast::cast;
6
7impl InferenceRulesOp for Cast {
8    fn rules<'r, 'p: 'r, 's: 'r>(
9        &'s self,
10        s: &mut Solver<'r>,
11        inputs: &'p [TensorProxy],
12        outputs: &'p [TensorProxy],
13    ) -> InferenceResult {
14        check_input_arity(inputs, 1)?;
15        check_output_arity(outputs, 1)?;
16        s.equals(&inputs[0].shape, &outputs[0].shape)?;
17        s.equals(&outputs[0].datum_type, self.to)?;
18        Ok(())
19    }
20
21    as_op!();
22    to_typed!();
23}