SML#実数丸めバグを確認して力尽きた様子

roundがおかしいことだけ報告しました。 https://github.com/smlsharp/smlsharp/issues/17 NJに死角無しですね。
1
ELD-R-ESH-2 @eldesh

@keita44_f4 手元にあるならSML'97の仕様について教えて欲しいです。Real.roundの仕様を確認出来ませんか? これ> http://t.co/BJQdQ27O3J が正しいのかが問題です。 #smlsharp

2013-10-26 23:26:11
よんた @keita44_f4

@eldesh smlsharp 1.2.0で確認.# round 5.5 ---> val it 5 : int , round 5.6 ---> val it 5 : int,6にならないwwwあかんやつやwwwww

2013-10-26 23:49:30
ELD-R-ESH-2 @eldesh

@keita44_f4 あ。言いたいこと全部伝わってましたかw ダメですよね? njでは偶数に丸めますし。

2013-10-26 23:58:42
よんた @keita44_f4

@eldesh ちなみに黄色い本にはBasis Libraryについての内容は載ってませんでした.[18]参照→Reppyさんのリファレンスマニュアル(準備中)を参照になってました.

2013-10-27 00:01:18
よんた @keita44_f4

@eldesh NJはちゃんと近い方にまるめてくれますね..5のときはちゃんと偶数ですし.# はそもそも間違えてtruncを呼んでしまっているので,すべて切り捨てになりますね.

2013-10-27 00:02:02
ELD-R-ESH-2 @eldesh

@keita44_f4 ただ、Real.realRoundの方はnearest toなのでそっちを呼ぶだけではだめなんじゃないでしょうか?

2013-10-27 00:03:59
ELD-R-ESH-2 @eldesh

@keita44_f4 おやそうなんですか。分かりました。ありがとうございます。

2013-10-27 00:05:14
ELD-R-ESH-2 @eldesh

@keita44_f4 _import "round" でもだめっぽいので、C言語側を調べているのですが、ポータブルに最近接遇数丸めを実装する方法に確信が持てない状況です(rintっぽい気はする)。

2013-10-27 00:10:26
ELD-R-ESH-2 @eldesh

roundを実行する前後でrintの振る舞いが異なる気がする…

2013-10-27 00:24:33
ELD-R-ESH-2 @eldesh

[ゆる募] C言語でポータブルに最近接遇数丸めをする方法。もしくはrint(3)がそうなる根拠。

2013-10-27 00:30:10
よんた @keita44_f4

@eldesh val testRound = _import "round" : real -> real; したら正しく動くように見えるのですが.環境差?例えば1.4 -> 1.0, 1.5 -> 2.0, 1.6 -> 2.0, と正しく帰ってきます

2013-10-27 00:31:52
よんた @keita44_f4

@eldesh Real.smlとReal32.smlの中身を見てると,floor,ceil,round,truncの_importとその次の関数定義で4つの順番が入れ違っている.この順番の入れ違いで間違えた予感…

2013-10-27 00:33:47
ELD-R-ESH-2 @eldesh

@keita44_f4 round 1.5=2, round 2.5=2になるはずですよね?

2013-10-27 00:37:49
よんた @keita44_f4

@eldesh おお,ほんとだ!2.5で3が帰ってきた.すいません,確認不足でした.1.5前後でやって満足してました(´・∀・`)

2013-10-27 00:38:40
よんた @keita44_f4

@eldesh ちなみにrintを_importすると,round実行前後に限らず正しく動いているように私の手元では見えるのですが.そちらではなにか問題が?

2013-10-27 00:40:06
ELD-R-ESH-2 @eldesh

@keita44_f4 信じがたいことに、round 1.5;を評価してから_import "rint";rint 1.5;するのとrepl開始直後にimportしてrint 1.5;すると、それぞれ1.0, 2.0となります。

2013-10-27 00:47:02
ELD-R-ESH-2 @eldesh

#mathpro (2)の動画見たせいでSML処理系の怪しげな実数処理見つけて数学どころじゃない

2013-10-27 00:53:03
ELD-R-ESH-2 @eldesh

@no_maddojjjjjj そんなことよりIEEE754について勉強する気ありませんか?

2013-10-27 00:55:24
よんた @keita44_f4

@eldesh ふおおおおおおおwwwwwwSML# のround使ってからrintするとおかしくなるうううううううう.再現しました.これはわけがわからない…!

2013-10-27 00:57:02
立派プログラマ @no_maddo

@eldesh え、浮動小数点演算の周りいじってるんですか?w 何がお手伝い出来る事があればやりますがーーー

2013-10-27 00:57:41
ELD-R-ESH-2 @eldesh

@no_maddojjjjjj 私とよんたさんで実数丸めバグの(どこが間違ってるのか)確認しようとしてるのですが、あるべき挙動に自信が持てないのです。

2013-10-27 01:01:03
立派プログラマ @no_maddo

@eldesh なるほどー、ちょっと過去のツイット見てみます

2013-10-27 01:01:56
ELD-R-ESH-2 @eldesh

@keita44_f4 あとは任せた… ('、3)_ヽ)_

2013-10-27 01:05:12
よんた @keita44_f4

@eldesh MVOptimizationが怪しいけど,幅80行を越えるコードがわんさか出てきて泣きそう

2013-10-27 01:08:15