<   2007年 09月 ( 6 )   > この月の画像一覧

e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

Whois

最近のWhoisのサービスでは、メールアドレスの表示が画像になっているんですね。
道理でスパムがこない訳だ。
[PR]
by isoq | 2007-09-28 16:21 | Web
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

オオクワ

新入りとベビーと

最近、オオクワガタが土から出てきません。
早くも冬眠か???
[PR]
by isoq | 2007-09-28 13:51 | 観察日記
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

float の悪夢。。。 3

float の悪夢。。。 2

やはり最適化が原因でした。
最適化のありなしで、次のようにコードが変わります。

--- DEBUG ---
float c = a / (b / 1000.0f);
00411CC9 fld dword ptr [b (42EB44h)]
00411CCF fdiv dword ptr [__real@447a0000 (42A0CCh)]
00411CD5 fdivr dword ptr [a (42EB40h)]
00411CDB fstp dword ptr [c]
00411CDE fld dword ptr [c]
00411CE4 fstp qword ptr [esp]


--- RELEASE ---
float c = a / (b / 1000.0f);
00401019 fld dword ptr [b (40B044h)]
00401022 fmul dword ptr [__real@3a83126f (409100h)]
00401028 fdivr dword ptr [a (40B040h)]
0040102E fstp qword ptr [esp]


うーん、、、
なかなか最適化されていますな。
。。。

結局、#pragma で演算部分だけを別関数にして最適化を無効にする事で解決。

#pragma optimize("", off)
inline float calc(float d, float e)
{
return d / (b / 1000.0f);
}
#pragma optimize("", on)


もっと根本的な解決方法は無いものか。。。
[PR]
by isoq | 2007-09-28 10:42 | C/C++/Win32
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

float の悪夢。。。 2

float の悪夢。。。の続き。

再現するコードができました。


float a = 10;
float b = 10;
void CcalcfloatDlg::OnBnClickedOk()
{
FILE* f = fop en ("c:\\debug.txt", "a+");
if(f)
{
#ifdef _DEBUG
fprintf(f, "DEBUG\n");
#else
fprintf(f, "RELEASE\n");
#endif
float c = a / (b / 1000.0f);
fprintf(f, "%f\n", c);
fclose(f);
}
}


ちなみに、a, b をローカル変数にした場合は、問題が出ませんでした。
これの結果は、以下のとおり

RELEASE
999.999953
DEBUG
1000.000000


原因は最適化ですかね?
最適化を無効にすると、DEBUGと同じ結果となります。
困るな~
最適じゃないじゃん。
[PR]
by isoq | 2007-09-27 18:47 | C/C++/Win32
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

float の悪夢。。。

float の割り算などをする処理で、
まったく同じ入力を与えているにもかかわらず、DEBUGモードとRELEASEモードで結果が違う。。。
違いはごくわずかですが、違うんです。

DEBUGでは、 0.009999999776482582100...
RELEASEでは、0.010000000474974513000...

0.0000000006 の違いながら、その後の処理に影響しちゃうんですよ。。。

どうなってんだい!プロセッサのバグなのかな。。。

でも、同じ計算を再現性の確認のために作った別のプログラムで動かすと、問題なく、まともな結果を示すんだよね。
環境は、Pentium4 世代の Xeon 3.06GHz。
不思議だ。。。

その後の処理では、この値で数値を割り、結果を整数として利用する予定なので、あまり細かい数値は問題ないのですが、ずばりの境界がDEBUGとRELEASEでずれてしまうので、かなり困ったことになります。

とりあえず、途中結果に 0.001 を足してつじつまを合わせて ^^;

くそー、本当に不可解だ。。。
[PR]
by isoq | 2007-09-27 18:30 | C/C++/Win32
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇

PDFCreator 日本語化まとめ

1.PDFCreator 0.9.3 をダウンロードし、インストールする。
pdfforge.org

2.PDFCreator 0.9.3 Japanese patch fix2 をダウンロードし、PDFCreator.exe のみを上書きコピーする。
PDFCreatorてきとーな日本語対応版を配ってるところ

3.PDFCreator v0.9.2用 日本語化iniファイル をダウンロードし、language フォルダを上書きコピーする。
にっき (n-yoshi@lares) | PDFCreatorの日本語化 (PDFCreator v0.9.2)

4.PDFCreator.exe を実行して、Printer -> Options メニューを選択。

5.Program font をクリックして、MS GUI Gothic と、128, Japanese を選択する。

6.Save をクリックする。

7.Language メニューから Japanese(日本語)[0.9.2]を選択する。

8.ここで、リストヘッダが日本語になっていれば完了。

9.リストヘッダが文字化けしていたなら、もう一度 Printer -> Options メニューを選択。

10.Program font をクリックして、日本語フォントを選択し Test ボタンをクリック。
  これで、日本語化が完了。

バグですかね。
[PR]
by isoq | 2007-09-11 00:55 | フリーウェア
e87.com(千趣会イイハナ) 花を贈るなら日比谷花壇