-
Notifications
You must be signed in to change notification settings - Fork 32
Open
Labels
Description
I have a piece of code where I try to slice a xframe object by rows and columns indexes. using 3 dynamic integer thresholds. When I try to slice with either xf::iselect or xf::ilocate I get random segmentation faults at
xt::xkeep_slice<long>::operator()(long) const
This is the code where I perform the slicing:
const auto data_value = m_data.data().value();
const auto row_sums = xt::sum(xt::greater(data_value, threshold1), 1);
const auto row_indexes = xt::ravel_indices<xt::ravel_vector_tag>(
xt::argwhere(xt::equal(row_sums > threshold_2, 1)), row_sums.shape());
const auto col_sums = xt::sum(xt::greater(data_value, threshold_1), 0);
const auto col_indexes = xt::ravel_indices<xt::ravel_vector_tag>(
xt::argwhere(xt::equal(col_sums > threshold_3, 1)), col_sums.shape());
variable_type data = xf::ilocate(m_data, xf::ikeep(row_indexes), xf::ikeep(col_indexes));
I am using the latest version of xframe (0.2.0) and xtensor (0.20.7)
Sometimes I get the segmentation fault the first time sometimes it happens the 4th or 5th time I apply the slicing.
I can provide the data frame if requested.