#Julia言語 個人的に印象に残っているバグは、二項分布モデルや超幾何分布モデルでのP値を計算する函数でのバグ。
浮動小数点数の世界では、≤ や < は信用できず、⪅ や ⪉ を使わないと、特殊な場合における丸め誤差のせいでおかしな値になる。
グラフをプロットしているうちに気付いた。
#Julia言語 1つ前のツイートで言及したようなバグの発見を完全自動化するのは無理だと思う。
一方、Juliaで自動的にできて欲しいことに、完璧でなくてもよいので、「長時間計算した後にno method matchingでエラーが出て止まる可能性がある場合」を見つけることがある。
たまにやらかしてへこむ。
#Julia言語 そういう方向への1つの試みが Shuhei Kadowaki さんによる
github.com/aviatesk/TypeP…
です。明らかにパイオニア的な試み。
フランス語圏でもその情報が捕捉されて紹介されていた(笑)
pnavaro.github.io/NouvellesJulia…
#Julia言語 「長時間計算した後にno method matchingでエラーが出て止まる可能性がある場合」を見つけるために役に立ちそうなこと。
f(x, y) = x > 0 ? x : exp(x)
と定義すると、f(-1, "a")でエラーになるのですが、
@ code_typed f(1, "a")
とすると、Union{}やらunreachableが出る。
#Julia言語 このスレの最初に紹介したバグの話に戻る。
そのようなバグが出ないように、Juliaから #R言語 を使えることを利用して、私が書いた函数とRでの枯れた信頼できそうな函数の値がぴったり一致することを幾つかの場合に確認してありました。
その幾つかの場合が足りなかったのだ!
Share this Scrolly Tale with your friends.
A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.
