Simplified 8x1 bit transpose (inline version)
- Parameters
-
| A | Input array (8 bytes) |
| B | Output array (8 bytes, transposed) |
- Examples
- /home/runner/work/FastLED/FastLED/src/fl/math/transposition.h.
Definition at line 116 of file transposition.h.
116 {
118
119
121 x = *(fl::u32*)(A+4);
122
123
124 t = (
x ^ (
x >> 7)) & 0x00AA00AA;
x =
x ^
t ^ (
t << 7);
125 t = (
x ^ (
x >>14)) & 0x0000CCCC;
x =
x ^
t ^ (
t <<14);
126
127
128 t = (
y ^ (
y >> 7)) & 0x00AA00AA;
y =
y ^
t ^ (
t << 7);
129 t = (
y ^ (
y >>14)) & 0x0000CCCC;
y =
y ^
t ^ (
t <<14);
130
131
132 t = (
x & 0xF0F0F0F0) | ((
y >> 4) & 0x0F0F0F0F);
133 y = ((
x << 4) & 0xF0F0F0F0) | (
y & 0x0F0F0F0F);
135
138}
FL_DISABLE_WARNING_PUSH unsigned char * B
References B, FASTLED_FORCE_INLINE, FL_NOEXCEPT, t, x, and y.