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

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

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

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 имеет лучшую производительность.

Источник: ledsshop.ru

Стиль жизни - Здоровье!