(array: *mut PyArrayObject)
| 430 | } |
| 431 | |
| 432 | fn gcd_strides(array: *mut PyArrayObject) -> isize { |
| 433 | let nd = unsafe { (*array).nd } as usize; |
| 434 | |
| 435 | if nd == 0 { |
| 436 | return 1; |
| 437 | } |
| 438 | |
| 439 | let strides = unsafe { from_raw_parts((*array).strides, nd) }; |
| 440 | |
| 441 | strides.iter().copied().reduce(gcd).unwrap_or(1) |
| 442 | } |
| 443 | |
| 444 | #[cfg(test)] |
| 445 | mod tests { |