Эх... придется все-таки компилить... :) HoShiMin, В функции MaybeIntersects должно быть && (range->value <= end) Так же, раз нам экстремальные...
UbIvItS, А, ну то есть, твой мотор решает какую-то твою, не имеющую никакого отношения к ТС задачу. Ясно, понятно :)
Непонятно, чему должны быть равны M1 ,M2, min_domain, max_domain, D, tst, sub, чтобы определить принадлежность элементов множества 1100 1101 1110...
Пока я не узрел, что он вообще способен решить поставленную задачу. Больше смахивает на какую-то псевдонаучную х.ету :)
А, ну тогда понятно :)
UbIvItS, а теперь конкретные нули и единички проставь вместо переменных для множества выше, чтобы видно было, что оно работает :)
UbIvItS, Не возопят, ведь критичные к производительности модули всегда пишут на сишечке. Никакими авейтами и асинками в ядрах 3д моделлеров и не...
UbIvItS, Ну, давай, обгони мой пример по скорости. А то я вообще не понимаю, что такое "тормознутая маска" и как изменить ее принцип :) Можно...
Там в цикле надо minValue и maxValue местами поменять или условие изменить на result > 0: if (result < 0) minValue = value;...
HoShiMin, Добавь еще в начало intersects, что если mask == 0, то сразу return true.
В последнем примере, что я дал, сложность O(log2(2^N)), где N - количество нулей в маске. 64 сравнения в худшем случае для uint64_t. Вообще без...
Ну, по крайней мере, если функция вернет false, диапазоны точно не пересекаются :) Можешь оставить ее как maybe_intersects() для быстрой проверки...
HoShiMin, Я пофиксил там. Надо OR с инвертированной маской и AND с обычной.
HoShiMin, Проверка диапазонов на пересечение, это (min <= end && max >= begin), вообще-то. Это вам не расты с петонами хвалить на форумах :)...
static int sum (const int* values, int count) { int i, result; for (i=0, result=0; i<count; i++) result += values[i]; return...
А все и не нужно, достаточно экстремальные. Если у нас маска x??x???x, то x00x000x - это минимальное число в этом множестве, а x11x111x -...
Использовать begin..end как диапазон и проверять принадлежность ему всех валидных value. Например, при использовании указанной маски ?110_1??1,...
Я настолько обратной совместимостью не страдаю :)
Rockphorr, GetModuleHandleEx возвращает базу модуля по адресу.
Имена участников (разделяйте запятой).