12,360,321 members (58,262 online)

# Algorithms

 Re: Splitting up multiple readings... glennPattonWork9-Oct-12 4:34 glennPattonWork 9-Oct-12 4:34
 Re: Splitting up multiple readings... Jochen Arndt9-Oct-12 4:45 Jochen Arndt 9-Oct-12 4:45
 Re: Splitting up multiple readings... glennPattonWork9-Oct-12 5:15 glennPattonWork 9-Oct-12 5:15
 Re: Splitting up multiple readings... Jochen Arndt9-Oct-12 5:55 Jochen Arndt 9-Oct-12 5:55
 Re: Splitting up multiple readings... glennPattonWork9-Oct-12 4:45 glennPattonWork 9-Oct-12 4:45
 Re: Splitting up multiple readings... Eddy Vluggen22-Oct-12 6:24 Eddy Vluggen 22-Oct-12 6:24
 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
 Re: Running out of Memory - Maths Check Andrei Straut3-Sep-12 10:56 Andrei Straut 3-Sep-12 10:56
 Re: Running out of Memory - Maths Check harold aptroot3-Sep-12 21:54 harold aptroot 3-Sep-12 21:54
 Re: Running out of Memory - Maths Check YvesDaoust3-Sep-12 23:21 YvesDaoust 3-Sep-12 23:21
 Re: Running out of Memory - Maths Check Member 91314964-Sep-12 1:56 Member 9131496 4-Sep-12 1:56
 Re: Running out of Memory - Maths Check Member 91314965-Sep-12 2:00 Member 9131496 5-Sep-12 2:00
 Re: Running out of Memory - Maths Check Jeremy David Thomson5-Sep-12 1:36 Jeremy David Thomson 5-Sep-12 1:36
 Re: Running out of Memory - Maths Check Member 31409626-Sep-12 20:36 Member 3140962 6-Sep-12 20:36
 Re: Running out of Memory - Maths Check Stefan_Lang7-Sep-12 4:29 Stefan_Lang 7-Sep-12 4:29
 Re: Running out of Memory - Maths Check Stefan_Lang7-Sep-12 4:49 Stefan_Lang 7-Sep-12 4:49
 Re: Running out of Memory - Maths Check Stefan_Lang10-Sep-12 0:53 Stefan_Lang 10-Sep-12 0:53
 Re: Running out of Memory - Maths Check Stefan_Lang11-Sep-12 22:46 Stefan_Lang 11-Sep-12 22:46
 Last Visit: 31-Dec-99 18:00     Last Update: 1-Jul-16 12:59 Refresh « Prev1...13141516171819202122 Next »

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Web02 | 2.8.160621.1 | Last Updated 30 Jun 2016