On 10/30/2016 12:29 PM, Larry Evans wrote:
On 10/30/2016 10:40 AM, Larry Evans wrote:
On 10/30/2016 07:45 AM, Larry Evans wrote:
Michael, the latest revision of the code, when run, aborts when running the SSEopt_vec method, as detailed here:
https://github.com/cppljevans/soa/blob/master/soa_compare.benchmark.cpp#L953
Would you have some idea what's causing that?
[snip] After rebooting, the SSEopt_vec method now runs without problem. I've no idea what was causing errors before the reboot :(
I suspect the problem was a wrong bit_vector definition. Hopefully the lastest push will solve problem.
Was going to suggest that bit_vector might be the problem I'm not sure
where the alternative implementation came from but it needs to be
something about like this as a minimum.
#ifdef HAVE_GOON_BIT_VECTOR
using goon::bit_vector;
#else
struct bit_vector {
void resize( size_t num_bits, bool value = false )
{
size_t num_blocks = (num_bits + 63) / 64;
constexpr uint64_t block_none = 0;
constexpr uint64_t block_all = ~block_none;
data_m.resize( num_blocks, value ? block_all : block_none );
num_bits_m = num_bits;
}
uint64_t * data() { return data_m.data(); }
std::size_t size() const { return num_bits_m; }
std::vector