(((Sergey(not seresha))
Хоть контрибуть
Cat
кому контрибутить хочешь?
Cat
pub fn powf(self, n: f64) -> f64 {
unsafe { intrinsics::powf64(self, n) }
}
Sergey
если бы были зависимые типы, то проблемы бы не было
Cat
(0.).powf(any) = inf
как воспроизвести? https://play.rust-lang.org/?gist=6e9bffd7b15c353ecc2fbacec2d0e43a&version=stable&mode=debug
(((Sergey(not seresha))
Ок
(((Sergey(not seresha))
Попробуй отрицательную степень
(((Sergey(not seresha))
-2.
Cat
эм
(((Sergey(not seresha))
Действительно не любая
Cat
а почему это неудобно?
Cat
что должно возвращать?
(((Sergey(not seresha))
Но ноль в любом случае даёт 0 в любой степени
Cat
0 ^ (-1) = ?
(((Sergey(not seresha))
0
Cat
X ^ (-1) = ?
Cat
короче
(((Sergey(not seresha))
Это не оо
Cat
0.0 ^ -1 = 1 / 0.0 —> inf
(((Sergey(not seresha))
Ноль особое число
Cat
(((Sergey(not seresha))
Такое что x + 0 = x
(((Sergey(not seresha))
Почему нет
Cat
https://en.wikipedia.org/wiki/IEEE_754 ?
(((Sergey(not seresha))
В каком случае 0^х != 0
(((Sergey(not seresha))
В чем польза?
Cat
(((Sergey(not seresha))
Почему нет
(((Sergey(not seresha))
Я использую язык для научных вычислений и хочу очевидного 0^х == х
Cat
эм..
Evgεny
че пацаны саенс
(((Sergey(not seresha))
Ага
Cat
а что, в математике уже определили 0^-1, 0/0 и прочее?
(((Sergey(not seresha))
Но чет пока не саенс(
Cat
итак
(((Sergey(not seresha))
0 не значащее число
(((Sergey(not seresha))
Оно определяется только из пространства
Cat
а я говорю, что в машинном представлении 0.0 ≠ 0
(((Sergey(not seresha))
Так что тебе не нравится?
Cat
на этом можно закончить
(((Sergey(not seresha))
Почему 0^-1 = 0/0?
(((Sergey(not seresha))
Это же 1/0
(((Sergey(not seresha))
Но вообще 0
(((Sergey(not seresha))
Иначе в этом смысла нет
Cat
https://en.wikipedia.org/wiki/IEEE_754
Cat
лень спорить, чат не профильный
Cat
Иначе в этом смысла нет
➜ ~ python3
>>> 0.0 ** -1
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: 0.0 cannot be raised to a negative power
>>> 0.0000000001 ** -1
10000000000.0
Cat
эт я намекаю
(((Sergey(not seresha))
Хммм
Viknet
Но вообще 0
http://www.wolframalpha.com/input/?i=x%5E-1
Cat
эт я намекаю
намекаю на вопрос: "эксепшн а питоне лучше, чем inf? а чем именно?"
(((Sergey(not seresha))
Эксепшен не лучше
Cat
а почему не лучше?
Αλεχ
Что не так с inf?
(((Sergey(not seresha))
Но в обоих случаях имеем ситуацию, которую нужно обраьатывать
Αλεχ
Если что это её определение в C# например
Cat
Cat
короче, есть стандарт (набор соглашений), там написано
Division by zero: an operation on finite operands gives an exact infinite result, e.g., 1/0 or log(0). Returns ±infinity by default.
(((Sergey(not seresha))
Что не так с inf?
0^n часто бывает в научных расчетах и это 0
Cat
Αλεχ
https://github.com/dotnet/corefx/blob/master/src/Common/src/CoreLib/System/Double.cs#L40
(((Sergey(not seresha))
Ибо иначе ты не получишь результат
Αλεχ
(((Sergey(not seresha))
Особенно в квантах
Αλεχ
во многих языкаэ это определение
Αλεχ
тупо
Cat
такой классный результат получается, каждый день готовлю его на ужин
Αλεχ
0^x не определен для x меньше 0
Αλεχ
привет
(((Sergey(not seresha))
Он в любой степени 0, ибо это модель, она подразумевает нулевой результат для нулей
Αλεχ
(((Sergey(not seresha))
С чего он не 0
Αλεχ
то есть у тебя 0^x == o^-x?
(((Sergey(not seresha))
Нет
Αλεχ
ну а как же