12,944,121 members (52,297 online)

# Algorithms

 Re: Puzzle 8 Solving with bfs Alan Balkany26-Sep-12 4:27 Alan Balkany 26-Sep-12 4:27
 Re: Puzzle 8 Solving with bfs Alan Balkany26-Sep-12 4:42 Alan Balkany 26-Sep-12 4:42
 Re: Puzzle 8 Solving with bfs Alan Balkany26-Sep-12 5:09 Alan Balkany 26-Sep-12 5:09
 Bit Interleaver Skippums24-Sep-12 16:07 Skippums 24-Sep-12 16:07
 I am wondering if anyone knows of a more efficient algorithm to perform a bit-interleave/deinterleave that takes 256-bits and interleaves every 64-th bit in the output. For example, I want: ```// NOTE: The order of the bits is inconsequential, as long as each string of 4 bits comes from a different 64-bit block output = (bit[ 0] << 255) | (bit[ 64] << 254) | (bit[128] << 253) | (bit[192] << 252) | (bit[ 1] << 251) | (bit[ 65] << 250) | (bit[129] << 249) | (bit[193] << 248) | ... | (bit[63] << 3) | (bit[127] << 2) | (bit[191] << 1) | (bit[255])```So far, I have the following algorithms (presented in untested C++): ```// Interleave __uint16 *data = new __uint16[32 / sizeof(__uint16)]; // Data to interleave __uint64 *result = new __uint64[32 / sizeof(__uint64)]();   for (int resIdx = 0; resIdx < 4; ++resIdx) { for (int dataIdx = resIdx; dataIdx < 16; dataIdx += 4) { __uint64 temp = data[dataIdx]; temp |= temp << 24; temp |= temp << 12; temp &= 0x000F000F000F000FULL; temp |= temp << 6; temp |= temp << 3; temp &= 0x1111111111111111ULL; result[resIdx] |= temp << (dataIdx & 3); } }``` ```// Deinterleave __uint64 *data = new __uint64[32 / sizeof(__uint64)]; // Data to deinterleave __uint16 *result = new __uint16[32 / sizeof(__uint16)]; for (int dataIdx = 0; dataIdx < 4; ++dataIdx) { for (int resIdx = dataIdx; resIdx < 16; resIdx += 4) { __uint64 temp = data[dataIdx] >> (resIdx >> 2); temp &= 0x1111111111111111ULL; temp |= temp >> 3; temp |= temp >> 6; temp &= 0x000F000F000F000FULL; temp |= temp >> 12; temp |= temp >> 24; result[resIdx] = (__uint16)temp; } }``` Sounds like somebody's got a case of the Mondays -Jeff
 Image processing fabio_antonio23-Sep-12 8:25 fabio_antonio 23-Sep-12 8:25
 Re: Image processing Alan Balkany24-Sep-12 4:46 Alan Balkany 24-Sep-12 4:46
 Checking the network en41115-Sep-12 7:24 en411 15-Sep-12 7:24
 linkRe: Checking the network YvesDaoust21-Sep-12 0:11 YvesDaoust 21-Sep-12 0:11
 an optimal elevator-use algorithm BillWoodruff13-Sep-12 3:38 BillWoodruff 13-Sep-12 3:38
 Re: an optimal elevator-use algorithm Alan Balkany13-Sep-12 4:41 Alan Balkany 13-Sep-12 4:41
 Re: an optimal elevator-use algorithm BillWoodruff19-Sep-12 4:35 BillWoodruff 19-Sep-12 4:35
 Please, poke holes in my cryptographic function... SixOfTheClock13-Sep-12 0:52 SixOfTheClock 13-Sep-12 0:52
 What kind of checksum can this be? GrooverFromHolland9-Sep-12 9:18 GrooverFromHolland 9-Sep-12 9:18
 Re: What kind of checksum can this be? Alan N9-Sep-12 11:55 Alan N 9-Sep-12 11:55
 Re: What kind of checksum can this be? GrooverFromHolland9-Sep-12 22:15 GrooverFromHolland 9-Sep-12 22:15
 Linear Regression Most Efficient algorithm calc Line of Best Fit A*****4-Sep-12 19:24 A***** 4-Sep-12 19:24
 Re: Linear Regression Most Efficient algorithm calc Line of Best Fit Peter_in_27804-Sep-12 20:17 Peter_in_2780 4-Sep-12 20:17
 Re: Running out of Memory - Maths Check Andrei Straut3-Sep-12 9:03 Andrei Straut 3-Sep-12 9:03