tract_core/ops/matmul/
mod.rs1pub mod de_block_quant;
2pub mod optimized;
3pub mod pack;
4pub mod quant;
5
6use crate::internal::*;
7
8pub fn output_type(input: DatumType) -> DatumType {
9 if input.is_float() {
10 input
11 } else {
12 i32::datum_type()
13 }
14}
15
16#[derive(Clone, Debug, Hash, PartialEq, Eq)]
17pub enum ModePicker {
18 Single,
19 VecVsMat,
20}
21
22impl ModePicker {
23 #[inline]
24 pub fn pick(&self, n: usize) -> TractResult<usize> {
25 match self {
26 ModePicker::Single => Ok(0),
27 ModePicker::VecVsMat => Ok((n > 1) as usize),
28 }
29 }
30}