新しいものを表示

オレンジ的には「内部のビット表現直接使ってこねくりまわしてどうのこうので出来ないか?><」って考えたけど、考えれば考えるほど「あれ?><; むしろどんどん処理増える?><;」ってなった><;

orange さんがブースト

普通に差をとって絶対値をみるしかないのよね

浮動小数点数同士が近いか?ってかなり重い処理だね><; 結局普通に引き算して固定の数値以下の差かを見るってするよりも早くやる方法って普通のPCのCPUの機能の範囲では困難あるいは無い?><;

ていうか、なんらかの2進数表現の精度を元にその基準を決める方式で人間の直感に反しないようにすること自体が困難でオレンジが思い付いた方式ダメっぽい気がしてきた><;

具体的にどうやったら作れるか考えたら、結構困難な気がしてきた><;

ガチガチにとにかく速度が必要な用途以外であればこれでわりと困らなそう?><
mstdn.nere9.help/@orange_in_sp
(単精度の差を半精度で も、単精度多用するのってゲームとかグラフィックじゃね?って考えるとちょうど良さそう?><)

この方式であればdouble同士じゃない場合にエラーに出来る(型チェックではじける)し、なんだったら半精度をサポートする環境(最新のC#とか)ならば単精度同士で半精度の誤差以下ならもできそう?><(それは危険?><;)

スレッドを表示

いま思いついたけど、倍精度同士で比較して単精度の誤差以下であればtrueを返す演算子であれば、範囲(精度)が固定でも混乱少ないかも?><

orange さんがブースト
orange さんがブースト

ないのかねぇ、近似的な比較演算子をもってるプログラミング言語って

スレッドを表示
orange さんがブースト

あーでも nearly なんとかを作ろうとすると全部の比較演算子で必要になっちまうのか

スレッドを表示
orange さんがブースト

個人的にはプログラミング言語に nearly equals 演算子みたいなものが欲しいとよく思う。

いやまぁ自分でインライン関数を書けばすむんだけどさ。

Intel BCD opcode - Wikipedia en.wikipedia.org/wiki/Intel_BC

decimal命令自体はx86にはあったけどAMD64では削除されたっぽい?><

orange さんがブースト

用途によるんじゃないかな

グラフィックス関連なんてfloatで充分だけど、MATLABの主用途は科学計算か。これも分野によりそう。

orange さんがブースト

普通のPCのCPUでは(たぶん)ネイティブ対応してなくて遅いのはわかるけど、でも、精度だいじょうぶなのか謎><;

orange さんがブースト

decimal ってCPUで直で扱えないんでは?

AdaはCOBOLと互換性があるdecimalが言語仕様で用意されてる><(さすが国防総省向けプログラミング言語><)

古いものを表示
:realtek:

思考の /dev/null