rstsr_core/device_cpu_serial/linalg/
vecdot.rs1use crate::prelude_dev::*;
2use num::Zero;
3
4impl<TA, TB, TC, DA, DB, DC> DeviceVecdotAPI<TA, TB, TC, DA, DB, DC> for DeviceCpuSerial
5where
6 TA: Clone,
7 TB: Clone,
8 TC: Clone + Zero,
9 DA: DimAPI,
10 DB: DimAPI,
11 DC: DimAPI,
12 TA: Mul<TB, Output = TC>,
13 TA: ExtNum,
14 Self: DeviceAPI<TA, Raw = Vec<TA>> + DeviceAPI<TB, Raw = Vec<TB>> + DeviceAPI<TC, Raw = Vec<TC>>,
15{
16 fn vecdot(
17 &self,
18 c: &mut Vec<MaybeUninit<TC>>,
19 lc: &Layout<DC>,
20 a: &Vec<TA>,
21 la: &Layout<DA>,
22 b: &Vec<TB>,
23 lb: &Layout<DB>,
24 axes_a: &[isize],
25 axes_b: &[isize],
26 ) -> Result<()> {
27 vecdot_naive_cpu_serial(c, lc, a, la, b, lb, axes_a, axes_b, self.default_order())
28 }
29}