(&mut self, idx: usize)
| 2236 | } |
| 2237 | |
| 2238 | unsafe fn row_mut(&mut self, idx: usize) -> Vec<*mut C64> { |
| 2239 | assert!(idx < self.row, "Index out of range"); |
| 2240 | match self.shape { |
| 2241 | Shape::Row => { |
| 2242 | let mut v: Vec<*mut C64> = vec![&mut Complex::zero(); self.col]; |
| 2243 | let start_idx = idx * self.col; |
| 2244 | let p = self.mut_ptr(); |
| 2245 | for (i, j) in (start_idx..start_idx + v.len()).enumerate() { |
| 2246 | v[i] = p.add(j); |
| 2247 | } |
| 2248 | v |
| 2249 | } |
| 2250 | Shape::Col => { |
| 2251 | let mut v: Vec<*mut C64> = vec![&mut Complex::zero(); self.col]; |
| 2252 | let p = self.mut_ptr(); |
| 2253 | for (i, slot) in v.iter_mut().enumerate() { |
| 2254 | *slot = p.add(idx + i * self.row); |
| 2255 | } |
| 2256 | v |
| 2257 | } |
| 2258 | } |
| 2259 | } |
| 2260 | |
| 2261 | unsafe fn swap(&mut self, idx1: usize, idx2: usize, shape: Shape) { |
| 2262 | match shape { |
no test coverage detected