(((Sergey(not seresha))
Хоть контрибуть
Cat
кому контрибутить хочешь?
Cat
pub fn powf(self, n: f64) -> f64 { unsafe { intrinsics::powf64(self, n) } }
Sergey
Хоть контрибуть
и что должна возвращать функция?
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))
Ноль особое число
(((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
В каком случае 0^х != 0
нет, это другое
(((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 не значащее число
это ты теорию математики мне рассказываешь
Cat
а я говорю, что в машинном представлении 0.0 ≠ 0
(((Sergey(not seresha))
Так что тебе не нравится?
Cat
на этом можно закончить
Cat
Так что тебе не нравится?
что ты требуешь от функции над float не возвращать inf при делении на бесконечно малое
(((Sergey(not seresha))
Почему 0^-1 = 0/0?
(((Sergey(not seresha))
Это же 1/0
Cat
Почему 0^-1 = 0/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
короче, есть стандарт (набор соглашений), там написано 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
Αλεχ
https://github.com/dotnet/corefx/blob/master/src/Common/src/CoreLib/System/Double.cs#L40
(((Sergey(not seresha))
Ибо иначе ты не получишь результат
(((Sergey(not seresha))
Особенно в квантах
Αλεχ
во многих языкаэ это определение
Αλεχ
тупо
Cat
Ибо иначе ты не получишь результат
особенно, когда 0 возводишь в отрицательные степени
Cat
такой классный результат получается, каждый день готовлю его на ужин
Αλεχ
0^x не определен для x меньше 0
Αλεχ
привет
(((Sergey(not seresha))
Он в любой степени 0, ибо это модель, она подразумевает нулевой результат для нулей
(((Sergey(not seresha))
С чего он не 0
Αλεχ
то есть у тебя 0^x == o^-x?
(((Sergey(not seresha))
Нет
Αλεχ
ну а как же