Вопросы

Использование `\` вместо `/` в Юлии

Для скаляров оператор \ (решение линейной системы) эквивалентен оператору деления /. Похоже по производительности?

Я спрашиваю, потому что сейчас в моем коде есть строка вроде

x = (1 / alpha) * averylongfunctionname(input1, input2, input3)

Визуально важно, чтобы деление на alpha происходило слева, поэтому я рассматриваю возможность замены этого на

x = alpha \ averylongfunctionname(input1, input2, input3)

Как лучше всего поступить в этой ситуации с точки зрения стиля и производительности?

Вот некоторые озадачивающие результаты тестов:

julia> using BenchmarkTools
[ Info: Precompiling BenchmarkTools [6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf]

julia> @btime x[1]\sum(x) setup=(x=rand(100))
  15.014 ns (0 allocations: 0 bytes)
56.23358979466163

julia> @btime (1/x[1]) * sum(x) setup=(x=rand(100))
  13.312 ns (0 allocations: 0 bytes)
257.4552413802698

julia> @btime sum(x)/x[1] setup=(x=rand(100))
  14.929 ns (0 allocations: 0 bytes)
46.25209548841374

Все они примерно одинаковы, но я удивлен, что подход (1 / x) * foo имеет лучшую производительность.

Читать:
PyCall не может найти scipy в Юлии

Похожие записи

Как отправить событие adb для длительного нажатия клавиши

admin

Настройка заголовка авторизации — приложение Flask с использованием запросов Python и JWT

admin

Компоновщик платформы бота не может опубликовать в Azure LUIS ошибка

admin

Как настроить расширение vscode phpunit для запуска теста с помощью docker-compose

admin

Создание ТОЛЬКО помеченных версий с CruiseControl.net или TeamCity

admin

github не может использовать пользовательский ssh-ключ

admin