Могу ли я испортить хеш-семя GCC unordered_map?Linux

Ответить
Anonymous
 Могу ли я испортить хеш-семя GCC unordered_map?

Сообщение Anonymous »

Итак, в настоящее время я исследую случайную проблему и обнаружил, что причина заключается в том, что во время цикла и накопления плавающих чисел в неупорядоченном контейнере перемещение разницы в порядке приводит к тому, что числовой результат отличается из-за плавающего округления, см. ниже игрушечный код Python для интуитивной демонстрации:

Код: Выделить всё

a = 0.016836150909
b = 0.018234567891
c = 0.015432109876

result1 = (a + b) + c
result2 = (a + c) + b

print(f"(a + b) + c = {result1}")
print(f"(a + c) + b = {result2}")
print(f"Equal? {result1 == result2}") # print False
Теперь мне интересно, есть ли способ для пользователя GCC в Linux поиграть с хеш-семенем, с помощью которого определяется порядок цикла undered_map? То есть я хочу иметь возможность воспроизводить числовые различия, вызванные несоответствием порядка, без изменений исходного кода.
N.B. Однажды я узнал, что GCC предлагает Tunables, которые позволяют разработчикам изменять поведение во время выполнения. Смогут ли здесь помочь какие-нибудь настройки?

Подробнее здесь: https://stackoverflow.com/questions/798 ... rdered-map
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»