| ------ | ------ | ------ | ------ | ------- | ------- | ------- | ------- |
| 0b00 | skip | offset | invxyz | permute | zdimsz | ydimsz | xdimsz |
| 0b01 | submode| offset | invxyz | submode2| rsvd | rsvd | xdimsz |
+| 0b00 | elwidth| offset | invxyz |0b110/0b111| SVGPR | ydimsz | xdimsz |
mode sets different behaviours (straight matrix multiply, FFT, DCT).
* **mode=0b00** sets straight Matrix Mode
+* **mode=0b00** with permute=0b110 or 0b111 sets Indexed Mode
* **mode=0b01** sets "FFT/DCT" mode and activates submodes
-**FFT/DCT mode**
+## FFT/DCT mode
submode2=0 is for FFT. For FFT submode the following schedules may be
selected:
* **submode=0b00** selects the ``j`` offset of the innermost for-loop,
* **submode=0b01** selects the ``j+1`` offset of the innermost for-loop,
-**Matrix Mode**
+## Matrix Mode
In Matrix Mode, skip allows dimensions to be skipped from being included
in the resultant output index. this allows sequences to be repeated:
| 011 | 1,2,0 | (ydim+1)(zdim+1)(xdim+1) |
| 100 | 2,0,1 | (zdim+1)(xdim+1)(ydim+1) |
| 101 | 2,1,0 | (zdim+1)(ydim+1)(xdim+1) |
+| 110 | 0,1 | Indexed (xdim+1)(ydim+1) |
+| 110 | 1,0 | Indexed (ydim+1)(xdim+1) |
In other words, the "permute" option changes the order in which
nested for-loops over the array would be done. See executable