Submit Search
Upload
Hokkaido pm 8 LT
•
0 likes
•
1,511 views
M
moznion
Follow
Hokkaido.pm #8 向けのLT 資料です 浮動小数点数のテストについて (?)
Read less
Read more
Report
Share
Report
Share
1 of 82
Download now
Download to read offline
Recommended
Namba.pm #0
Namba.pm #0
moznion
typemap in Perl/XS
typemap in Perl/XS
charsbar
What you need to remember when you upload to CPAN
What you need to remember when you upload to CPAN
charsbar
好き好き大好きWhitespace
好き好き大好きWhitespace
moznion
みんなだいすきサスペンダー
みんなだいすきサスペンダー
moznion
Hachioji pm 41
Hachioji pm 41
moznion
Hachioji pm 25
Hachioji pm 25
moznion
Currying in perl
Currying in perl
Masahiro Honma
Recommended
Namba.pm #0
Namba.pm #0
moznion
typemap in Perl/XS
typemap in Perl/XS
charsbar
What you need to remember when you upload to CPAN
What you need to remember when you upload to CPAN
charsbar
好き好き大好きWhitespace
好き好き大好きWhitespace
moznion
みんなだいすきサスペンダー
みんなだいすきサスペンダー
moznion
Hachioji pm 41
Hachioji pm 41
moznion
Hachioji pm 25
Hachioji pm 25
moznion
Currying in perl
Currying in perl
Masahiro Honma
YAPC::AsiaとHokkaido.pm
YAPC::AsiaとHokkaido.pm
Yoshihiro Sasaki
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
Ryosuke IWANAGA
Use Carton
Use Carton
Yoshihiro Sasaki
PHPカンファレンス北海道_20160416
PHPカンファレンス北海道_20160416
Yoshihiro Sasaki
Using Dancer
Using Dancer
Yoshihiro Sasaki
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
goccy
Takao.mt 2013
Takao.mt 2013
moznion
テーマ「最適化」
テーマ「最適化」
technocat
Plack::Request with Encoding
Plack::Request with Encoding
moznion
理解したつもりになるGit入門
理解したつもりになるGit入門
Yoshihiro Sasaki
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
moznion
テーマ「なんでもないようなこと」
テーマ「なんでもないようなこと」
technocat
YAPCレポートの舞台裏
YAPCレポートの舞台裏
Masahiro Honma
Asset Pipeline for Perl
Asset Pipeline for Perl
Yoshihiro Sasaki
Google trends to_irc
Google trends to_irc
rarere
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
鉄次 尾形
CPAN/便利モジュール
CPAN/便利モジュール
Yoshihiro Sasaki
変数、リファレンス
変数、リファレンス
charsbar
Perl 非同期プログラミング
Perl 非同期プログラミング
lestrrat
cpanfile
cpanfile
Yoshihiro Sasaki
Static analysis for perl
Static analysis for perl
moznion
Yet Another Perl Cooking
Yet Another Perl Cooking
moznion
More Related Content
Viewers also liked
YAPC::AsiaとHokkaido.pm
YAPC::AsiaとHokkaido.pm
Yoshihiro Sasaki
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
Ryosuke IWANAGA
Use Carton
Use Carton
Yoshihiro Sasaki
PHPカンファレンス北海道_20160416
PHPカンファレンス北海道_20160416
Yoshihiro Sasaki
Using Dancer
Using Dancer
Yoshihiro Sasaki
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
goccy
Takao.mt 2013
Takao.mt 2013
moznion
テーマ「最適化」
テーマ「最適化」
technocat
Plack::Request with Encoding
Plack::Request with Encoding
moznion
理解したつもりになるGit入門
理解したつもりになるGit入門
Yoshihiro Sasaki
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
moznion
テーマ「なんでもないようなこと」
テーマ「なんでもないようなこと」
technocat
YAPCレポートの舞台裏
YAPCレポートの舞台裏
Masahiro Honma
Asset Pipeline for Perl
Asset Pipeline for Perl
Yoshihiro Sasaki
Google trends to_irc
Google trends to_irc
rarere
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
鉄次 尾形
CPAN/便利モジュール
CPAN/便利モジュール
Yoshihiro Sasaki
変数、リファレンス
変数、リファレンス
charsbar
Perl 非同期プログラミング
Perl 非同期プログラミング
lestrrat
cpanfile
cpanfile
Yoshihiro Sasaki
Viewers also liked
(20)
YAPC::AsiaとHokkaido.pm
YAPC::AsiaとHokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
"Ops Tools with Perl" 2012/05/12 Hokkaido.pm
Use Carton
Use Carton
PHPカンファレンス北海道_20160416
PHPカンファレンス北海道_20160416
Using Dancer
Using Dancer
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
Takao.mt 2013
Takao.mt 2013
テーマ「最適化」
テーマ「最適化」
Plack::Request with Encoding
Plack::Request with Encoding
理解したつもりになるGit入門
理解したつもりになるGit入門
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
YAPC::Asia 2013 - CPAN Testers Reports の情報を上手に使う
テーマ「なんでもないようなこと」
テーマ「なんでもないようなこと」
YAPCレポートの舞台裏
YAPCレポートの舞台裏
Asset Pipeline for Perl
Asset Pipeline for Perl
Google trends to_irc
Google trends to_irc
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
Games::* - Perlで 「ゲーム」しよう #hokkaidopm
CPAN/便利モジュール
CPAN/便利モジュール
変数、リファレンス
変数、リファレンス
Perl 非同期プログラミング
Perl 非同期プログラミング
cpanfile
cpanfile
More from moznion
Static analysis for perl
Static analysis for perl
moznion
Yet Another Perl Cooking
Yet Another Perl Cooking
moznion
Jesque robust-worker-pool
Jesque robust-worker-pool
moznion
Hachioji persec
Hachioji persec
moznion
Inner world of Perl::Lint
Inner world of Perl::Lint
moznion
命名の話
命名の話
moznion
Hachiojipm 44
Hachiojipm 44
moznion
Perl::Lint is over, for the present
Perl::Lint is over, for the present
moznion
Perl::Lint - Yet Another Perl Source Code Linter
Perl::Lint - Yet Another Perl Source Code Linter
moznion
Hachioji.pm 40
Hachioji.pm 40
moznion
Hachioji.pm #39
Hachioji.pm #39
moznion
Talking About Japanese Area Code of Phone
Talking About Japanese Area Code of Phone
moznion
Hachioji.pm 38
Hachioji.pm 38
moznion
Hokkaido.pm #11
Hokkaido.pm #11
moznion
Hachiojipm 36
Hachiojipm 36
moznion
Net stalking with-lastfm
Net stalking with-lastfm
moznion
Perl beginners #08
Perl beginners #08
moznion
Hachiojipm 28
Hachiojipm 28
moznion
Hachiojipm 26
Hachiojipm 26
moznion
You Can Be a CPAN Auhor
You Can Be a CPAN Auhor
moznion
More from moznion
(20)
Static analysis for perl
Static analysis for perl
Yet Another Perl Cooking
Yet Another Perl Cooking
Jesque robust-worker-pool
Jesque robust-worker-pool
Hachioji persec
Hachioji persec
Inner world of Perl::Lint
Inner world of Perl::Lint
命名の話
命名の話
Hachiojipm 44
Hachiojipm 44
Perl::Lint is over, for the present
Perl::Lint is over, for the present
Perl::Lint - Yet Another Perl Source Code Linter
Perl::Lint - Yet Another Perl Source Code Linter
Hachioji.pm 40
Hachioji.pm 40
Hachioji.pm #39
Hachioji.pm #39
Talking About Japanese Area Code of Phone
Talking About Japanese Area Code of Phone
Hachioji.pm 38
Hachioji.pm 38
Hokkaido.pm #11
Hokkaido.pm #11
Hachiojipm 36
Hachiojipm 36
Net stalking with-lastfm
Net stalking with-lastfm
Perl beginners #08
Perl beginners #08
Hachiojipm 28
Hachiojipm 28
Hachiojipm 26
Hachiojipm 26
You Can Be a CPAN Auhor
You Can Be a CPAN Auhor
Hokkaido pm 8 LT
1.
Hokkaido.pm #8
Lightning Talk Hachioji.pm / Kokusaitenjijomae.pm @moznion Sunday, December 23, 12
2.
@moznion
大学生 アルバイトソフトウェア エンジニア 2年前まで道民でした 2日前に論文が リジェクトされたので ブルー入ってます Sunday, December 23, 12
3.
クリスマスらしく
Acme の話…… Sunday, December 23, 12
4.
クリスマスらしく
Acme の話…… はしません Sunday, December 23, 12
5.
皆さん
Perl で数値計算してますか!? Sunday, December 23, 12
6.
数値計算してると
クソ面倒なアイツがいますよね Sunday, December 23, 12
7.
浮動小数点数 Sunday, December 23,
12
8.
浮動小数点数
めんどい Sunday, December 23, 12
9.
浮動小数点数
めんどい 今日はこれについて Sunday, December 23, 12
10.
さて
拙作のモジュールで ハマったこと Sunday, December 23, 12
11.
浮動小数点数を
こんな感じでテスト すると死ねます Sunday, December 23, 12
12.
Sunday, December 23,
12
13.
見るからにやばそう Sunday, December 23,
12
14.
こういう事をすると
テストがズッコケる 環境が出てくる Sunday, December 23, 12
15.
ぐぬぬ… Sunday, December 23,
12
16.
ありがたいことに
ISSUE が来る (@syohex さんありがとうございます) Sunday, December 23, 12
17.
ISSUE が来る
(ありがたいことに) https://github.com/moznion/Math--PhaseOnlyCorrelation/issues/1 Sunday, December 23, 12
18.
浮動小数は色々めんどいから
普通に比較するとダメよ、 とのこと † 以下が詳しい x86における浮動小数点演算の精度の制御と、 80bit 浮動小数点演算問題 http://www.takeoka.org/~take/cpu/num/float80bit.html Sunday, December 23, 12
19.
あと
CPAN Testers Daily Summary Reportからも 毎日メールが来る (深夜に) Sunday, December 23, 12
20.
そして
夜も眠れない!! CPAN Testers Daily Summary Reportから (Report はありがたいんですが) 毎日メールが来る Sunday, December 23, 12
21.
夜は眠りたいので
直しましょう Sunday, December 23, 12
22.
方法 1 Sunday, December
23, 12
23.
小数点以下を切り捨てて
整数にしてからテストをする Sunday, December 23, 12
24.
e.g.
TODO こんなかんじ Sunday, December 23, 12
25.
e.g.
まさに外道!!! TODO こんなかんじ Sunday, December 23, 12
26.
悪党な方法過ぎて駄目
そもそもテストの正当性が 失われている Sunday, December 23, 12
27.
方法 2 Sunday, December
23, 12
28.
$var * 10
^ $num してから小数点以下を 切り捨ててテストする Sunday, December 23, 12
29.
e.g. Sunday, December 23,
12
30.
$num 桁までの精度は
保証される ただ、ちょっとダサい (主観) Sunday, December 23, 12
31.
あと、整数桁数が
莫大に増えたら それもそれで問題な気が Sunday, December 23, 12
32.
方法 3 Sunday, December
23, 12
33.
採択域を設定して、
両者の差がその範囲内かを テストする Sunday, December 23, 12
34.
e.g.
TODO こんなかんじ Sunday, December 23, 12
35.
割と良い感じ。
拙作のモジュールでも 一時期 (3日くらい) やってた Sunday, December 23, 12
36.
方法 4 Sunday, December
23, 12
37.
正規表現でバツンと切って
小数桁数を制限する Sunday, December 23, 12
38.
e.g. Sunday, December 23,
12
39.
結構メイジャーな方法っぽい
(特にPhysics のモジュールで) けど、なんかやだ (主観) Sunday, December 23, 12
40.
方法 5 Sunday, December
23, 12
41.
sprintf(“%.${num}f”, $var)
を使って桁数を制限する Sunday, December 23, 12
42.
e.g. Sunday, December 23,
12
43.
これが一番しっくり来た。
なんか良い感じ (Math のモジュールで 良く見かける) Sunday, December 23, 12
44.
方法 6 Sunday, December
23, 12
45.
Acme::Test を使う Sunday, December
23, 12
46.
Sunday, December 23,
12
47.
例とか無いです Sunday, December 23,
12
48.
とまあ
こんな感じで Sunday, December 23, 12
49.
浮動小数点数
めんどい Sunday, December 23, 12
50.
ただ Sunday, December 23,
12
51.
浮動小数点数
めんどい Sunday, December 23, 12
52.
浮動小数点数
めんどい テストめんどい Sunday, December 23, 12
53.
浮動小数点数
めんどい こうなるとまずい テストめんどい Sunday, December 23, 12
54.
「テストこけるけど動くから
大丈夫だよー」 「めんどいからテストしなくて もいいよー」 「“cpanm -f Foo::Bar” でおk」 Sunday, December 23, 12
55.
「テストこけるけど動くから
大丈夫だよー」 破滅待ったなし 「めんどいからテストしなくて もいいよー」 「“cpanm -f Foo::Bar” でおk」 Sunday, December 23, 12
56.
テストを
ろにしてはならない Sunday, December 23, 12
57.
その為には? Sunday, December 23,
12
58.
1 Sunday, December 23,
12
59.
テストがすぐ実行できて軽いこと
こまめにテストを走らせられる (物理的 | 心理的)環境を整える Sunday, December 23, 12
60.
2 Sunday, December 23,
12
61.
テストが書きやすいこと
書きやすければ書きやすい程 テストの習慣は定着する Sunday, December 23, 12
62.
テストの書きやすさ、
マジ重要! Sunday, December 23, 12
63.
というわけで、
浮動小数点のテストを支える モジュールが有るとハッピー Sunday, December 23, 12
64.
例えば
Test::Number::Delta Sunday, December 23, 12
65.
方法3 として挙げた
採択域うんぬんのテストを サポートしてくれる Sunday, December 23, 12
66.
e.g.
TODO こんなかんじ (デフォルトだと1-e6 が採択域) Sunday, December 23, 12
67.
Cool ! Sunday, December
23, 12
68.
名前的に
Test::Float もイケそうだけど 使ったことないです Sunday, December 23, 12
69.
あと今
Test::LimitDecimalPlaces というモジュールを 書いてます https://github.com/moznion/Test--LimitDecimalPlaces Sunday, December 23, 12
70.
方法5 として挙げた
sprintf() を使って テスト出来るモジュールです (ヘルパーメソッド的な) Sunday, December 23, 12
71.
こんな感じで使えます Sunday, December 23,
12
72.
内部的にはこんな感じ Sunday, December 23,
12
73.
ただ問題が Sunday, December 23,
12
74.
Test::LimitDecimalPlaces Sunday, December 23,
12
75.
Test::LimitDecimalPlaces
名前がダサい Sunday, December 23, 12
76.
limit_ok
limit_ok_by limit_not_ok limit_not_ok_by Sunday, December 23, 12
77.
limit_ok
limit_ok_by limit_not_ok limit_not_ok_by メソッド名がダサい Sunday, December 23, 12
78.
limit_ok
limit_ok_by limit_not_ok limit_not_ok_by メソッド名がダサい そもそも英文法的に怪しい Sunday, December 23, 12
79.
とりあえず
PrePAN に投げて反応を 待とうかと思っています Sunday, December 23, 12
80.
アドバイス
目下募集中です よろしくお願いします。 Sunday, December 23, 12
81.
あと、他にも浮動小数点数
周りの良いテストモジュール があれば教えてください Sunday, December 23, 12
82.
了 Sunday, December 23,
12
Download now