2005-04-24から1日間の記事一覧

検証用テストコード (C++)

#include <cmath> #include <iostream> void Test1(); void Test2(); int main() { #if !defined(WIN64) _control87( _PC_53, _MCW_PC ); #endif Test1(); Test2(); return 0; } void Test1() { const __int64 l1 = 0x7fe0000000000000; double d1 = * reinterpret_cast<const double*>( &l1 </const></iostream></cmath>…

検証用テストコード (C#)

using System; using System.Diagnostics; class FPStrictTest { static void Main(string[] args) { Test1(); Test2(); } unsafe static void Test1() { long l1 = 0x7fe0000000000000; double d1 = *(double*)(&l1); double d2 = *(double*)(&l1); d1 += d…

FP-strict 問題

x87 FPU と決別したことで従来可能だった 80-bit 精度計算に比べて計算精度が悪化する場合もある.しかし業界標準的には SSE/SSE2 が FP-strict 準拠のためありがたい面もある.もちろん従来の x87 環境と計算結果が変わってしまう可能性があるので,ゲーム…

インラインアセンブラ

Microsoft の 64-bit 環境向けコンパイラがインラインアセンブラをサポートしなくなった.既存ソースの移植作業で注意. In-line assembly code is not supported with the Microsoft C/C++ compiler and libraries so you have to put the assembly code in…

SSE/SSE2 への完全移行

いわゆる x64 Edition な Windows では,浮動小数点演算が SSE/SSE2 に完全移行することになる.コンパイラは x87 FPU, MMX, 3DNow! 命令を含むコードを出力しない.ただしこれは 64-bit アプリケーションに要求される仕様で,WOW 上で実行される 32-bit ア…

floating point on x64

まとめ間に合いませんでした.(id:NyaRuRu:20050423#p8) また今週末まで引っ張るのもあれなので,とりあえずざっと資料を列挙しておきます.裏付けの取り方が甘い情報も混ざっておりますので,くれぐれもご利用は計画的に.