faer/operator/operator_impl/
csr_matown.rs1use super::*;
2impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> LinOp<T>
3 for SparseRowMat<I, ViewT>
4{
5 #[inline]
6 fn nrows(&self) -> usize {
7 self.rb().nrows()
8 }
9
10 #[inline]
11 fn ncols(&self) -> usize {
12 self.rb().ncols()
13 }
14
15 #[inline]
16 fn apply_scratch(&self, rhs_ncols: usize, par: ParShape) -> StackReq {
17 self.rb().apply_scratch(rhs_ncols, par)
18 }
19
20 #[inline]
21 #[track_caller]
22 fn apply(
23 &self,
24 out: MatMut<'_, T>,
25 rhs: MatRef<'_, T>,
26 par: Par,
27 stack: &mut MemStack,
28 ) {
29 self.rb().apply(out, rhs, par, stack)
30 }
31
32 #[inline]
33 #[track_caller]
34 fn conj_apply(
35 &self,
36 out: MatMut<'_, T>,
37 rhs: MatRef<'_, T>,
38 par: Par,
39 stack: &mut MemStack,
40 ) {
41 self.rb().conj_apply(out, rhs, par, stack)
42 }
43}
44impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> BiLinOp<T>
45 for SparseRowMat<I, ViewT>
46{
47 #[inline]
48 fn transpose_apply_scratch(&self, rhs_ncols: usize, par: ParShape) -> StackReq {
49 self.rb().transpose_apply_scratch(rhs_ncols, par)
50 }
51
52 #[inline]
53 #[track_caller]
54 fn transpose_apply(
55 &self,
56 out: MatMut<'_, T>,
57 rhs: MatRef<'_, T>,
58 par: Par,
59 stack: &mut MemStack,
60 ) {
61 self.rb().transpose_apply(out, rhs, par, stack)
62 }
63
64 #[inline]
65 #[track_caller]
66 fn adjoint_apply(
67 &self,
68 out: MatMut<'_, T>,
69 rhs: MatRef<'_, T>,
70 par: Par,
71 stack: &mut MemStack,
72 ) {
73 self.rb().adjoint_apply(out, rhs, par, stack)
74 }
75}
76impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> Precond<T>
77 for SparseRowMat<I, ViewT>
78{
79}
80impl<I: Index, T: ComplexField, ViewT: Conjugate<Canonical = T>> BiPrecond<T>
81 for SparseRowMat<I, ViewT>
82{
83}