gnuplot: каким должен быть sgn (NaN)? - PullRequest
1 голос
/ 10 апреля 2020

Я только что наткнулся на следующее:

Если вы наберете

print sgn(NaN)

Результат будет 0.

Справка gnuplot гласит:

Функция sgn (x) возвращает 1, если ее аргумент положительный, -1, если ее аргумент отрицательный, и 0, если ее аргумент равен 0. Если аргумент является комплексным значением, мнимый компонент игнорируется.

Однако NaN не является положительным, не отрицательным и не 0. Я бы ожидал результат NaN. Кто-нибудь может это прокомментировать и объяснить?

1 Ответ

1 голос
/ 10 апреля 2020

Как комментирует @Ethan, если не может быть общего стандарта, вероятно, каждый определяет это для своих нужд. Ну, тогда я просто должен определить свою собственную функцию sgn (x).

Это подводит меня к тому, как сравнить с NaN, см. gnuplot: Как сравнить с NaN?

Код:

mysgn(x) = x==x ? sgn(x) : NaN

print mysgn(999)
print mysgn(0)
print mysgn(-999)
print mysgn(NaN)

Результат:

1
0
-1
NaN
...