| 367 | } |
| 368 | |
| 369 | void InvTranspose(ByteArray& data, size_t record_size) { |
| 370 | if (record_size == 0) { |
| 371 | return; |
| 372 | } |
| 373 | ByteArray temp(data); |
| 374 | const size_t rows = data.size() / record_size; |
| 375 | const size_t columns = record_size; |
| 376 | for (size_t row = 0; row < rows; ++row) { |
| 377 | for (size_t column = 0; column < columns; ++column) { |
| 378 | const size_t to = row * columns + column; |
| 379 | const size_t from = column * rows + row; |
| 380 | data[to] = temp[from]; |
| 381 | } |
| 382 | } |
| 383 | } |
| 384 | |
| 385 | } // namespace mdf |