А учитывались суточные колебания температуры, которые приводят к колебаниям плотности воздуха, которые, в свою очередь, приводят к колебаниям силы Архимеда? (если не ошибся, получается как раз около 2мг для ΔT~20°C и постоянного давления).
Да, похоже, что они при помощи нейронной сети нашли способ переставить местами cmov'ы а коде так, что число тактов действительно немного сократилось (окончательный код можно посмотреть в Supplementary information). Но исходным алгоритмом как была сеть сортировки (для 3, 4 и 5 элементов), так и осталась. Так что заголовок "Нейросеть помогла разработать улучшенный алгоритм сортировки" не совсем верен.
В Фортране эта переменная должна была быть объявлена до использования, иначе ошибка синтаксиса.
В Fortran переменные объявлять не обязательно, если вас устраивает тип по умолчанию (в те времена была даже популярна шутка "God is real unless declared integer").
В Ростове-на-Дону, как это обычно бывает в крупных городах. есть улицы «N-я линия» (где N меняется от 1 до 49), а вот перед ними расположены улица «Нижненольная» и «Верхненольная», которые по логике должны были бы быть «нулевой линией» и «минус первой линией», соответственно.
А зачем вы везде корень квадратный таскаете (даже в расте)? Там же достаточно сразу сравнивать с квадратом расстояния
max_dist2 = max_dist**2
return [poly for poly in polygon_subset if np.dot(v := poly.center - point, v) < max_dist2]
И зачем хранить x и y в отдельных объектах, когда можно завести двумерный массив и, если действительно нужен доступ к отдельно x и y, то сделать их через "слайсы" (вроде self.x = points[:,0])?
Мне кажется, там нужно не смещать узел вдоль вектора нормали на заданную величину, а находить точку пересечения прямых, параллельных ребрам, но отстоящих от них на заданную величину. Например, для вот такого треугольника с узкой выемкой
Наверное как-то так:
Я правильно читаю между строк?
Там для
countдаже отдельный опкод, поэтому и накладные расходы на вызов функции сведены к минимуму. Но чтение переменной всё-равно быстрее.А учитывались суточные колебания температуры, которые приводят к колебаниям плотности воздуха, которые, в свою очередь, приводят к колебаниям силы Архимеда? (если не ошибся, получается как раз около 2мг для ΔT~20°C и постоянного давления).
Да, похоже, что они при помощи нейронной сети нашли способ переставить местами cmov'ы а коде так, что число тактов действительно немного сократилось (окончательный код можно посмотреть в Supplementary information). Но исходным алгоритмом как была сеть сортировки (для 3, 4 и 5 элементов), так и осталась. Так что заголовок "Нейросеть помогла разработать улучшенный алгоритм сортировки" не совсем верен.
Можно сказать, что он поставил крест на Twitter.
-
И runtime_error при ошибке чтения (например, нет прав) тоже можно не обратывать?
Да boost в некоторых случаях может filesystem_error выбросить.
И то, что GetRelative не проверяет, что path действительно начинается c dir, тоже ок? (хотя, скорее всего за пределами он не используется)
Симлинки специально пропускаете?
В Fortran переменные объявлять не обязательно, если вас устраивает тип по умолчанию (в те времена была даже популярна шутка "God is real unless declared integer").
Увеличиваем стоимость прошлогодней версии продукта на 27% и выпускаем новую мажорную версию за 3x цену. Делов-то.
А зачем вы везде корень квадратный таскаете (даже в расте)? Там же достаточно сразу сравнивать с квадратом расстояния
И зачем хранить
xиyв отдельных объектах, когда можно завести двумерный массив и, если действительно нужен доступ к отдельноxиy, то сделать их через "слайсы" (вродеself.x = points[:,0])?Вот с этим у Ecsypno/SCNR есть проблема.
С другой стороны, ваш вариант дает немного нестандартный "ломаный" эффект, и именно этим привлекает к себе внимание.
Мне кажется, там нужно не смещать узел вдоль вектора нормали на заданную величину, а находить точку пересечения прямых, параллельных ребрам, но отстоящих от них на заданную величину. Например, для вот такого треугольника с узкой выемкой
видно, что вдоль сторон треугольника ширина обводки меньше, чем у основания.
Обычно результат еще умножают на 1+1/(12n). См. ряд Стирлинга для гамма-функции.
Тогда зависимость действительно не до конца понятна.
Скорее всего потому, что Hyper-Threading есть и у Intel, и у Эльбруса.