юля инфа инфа разные результаты - PullRequest
0 голосов
/ 07 сентября 2018

Я совсем новичок в Юлии - версия 1.0.0 для Windows. документация гласит следующее

julia> Inf / Inf
NaN

Но когда я выполняю следующее, я получаю разные результаты

julia> 1/0
Inf

julia> 1/0 / 1/0  # this should be NaN right, tried (1/0)/(1/0) as well
Inf

julia> 1/0
Inf

julia> ans/ans
NaN

Почему 1/0 / 1/0 не является NaN, тогда как ans/ans является?

1 Ответ

0 голосов
/ 07 сентября 2018

У вас действительно есть:

julia> (1/0)/(1/0)
NaN

так что это соответствует.

Теперь относительно:

julia> 1/0 / 1/0
Inf

Пожалуйста, обратите внимание, как это оценивается:

julia> :(1/0 / 1/0)
:(((1 / 0) / 1) / 0)

поэтому мы получаем стандартную оценку слева направо (как и следовало ожидать). И вы получите:

julia> 1/0
Inf

julia> (1/0)/1
Inf

julia> ((1/0)/1)/0
Inf

И все в порядке.

На самом деле здесь у вас есть одна особая вещь для наблюдения (это не имеет прямого отношения к вашему вопросу, но полезно знать, как это может возникнуть в качестве следующего вопроса):

julia> Inf / 0
Inf

julia> Inf / (-0)
Inf

julia> Inf / (0.0)
Inf

julia> Inf / (-0.0)
-Inf

Причина в том, что целое число 0 совпадает с -0:

julia> 0 === -0
true

, но с плавающей точкой несет бит знака:

julia> 0.0 === -0.0
false
...