RowMajorStrides returns strides for sizes where the first dimension is outer-most and subsequent dimensions are progressively inner.
(sizes []int)
| 173 | // RowMajorStrides returns strides for sizes where the first dimension is outer-most |
| 174 | // and subsequent dimensions are progressively inner. |
| 175 | func RowMajorStrides(sizes []int) []int { |
| 176 | rem := int(1) |
| 177 | for _, v := range sizes { |
| 178 | rem *= v |
| 179 | } |
| 180 | |
| 181 | if rem == 0 { |
| 182 | strides := make([]int, len(sizes)) |
| 183 | rem := int(1) |
| 184 | for i := range strides { |
| 185 | strides[i] = rem |
| 186 | } |
| 187 | return strides |
| 188 | } |
| 189 | |
| 190 | strides := make([]int, len(sizes)) |
| 191 | for i, v := range sizes { |
| 192 | rem /= v |
| 193 | strides[i] = rem |
| 194 | } |
| 195 | return strides |
| 196 | } |
| 197 | |
| 198 | // ColMajorStrides returns strides for sizes where the first dimension is inner-most |
| 199 | // and subsequent dimensions are progressively outer |