1 名前:デフォルトの名無しさん mailto:sage [2014/10/13(月) 15:13:20.18 ID:yFRqmPNp.net] ■公式 ttp://www.microsoft.com/japan/msdn/vstudio/default.aspx ■前スレ Visual Studio 2008 Part 21 peace.2ch.net/test/read.cgi/tech/1290969016/ ■リンク Visual Studio 2008に搭載された17の新機能 ttp://www.atmarkit.co.jp/fdotnet/special/visualstudio2008_01/visualstudio2008_01_01.html 5000個のバグと戦った、MSが「Visual Studio 2008」RTM出荷 ttp://www.atmarkit.co.jp/news/200711/20/vs.html ■関連 Visual Studio 2013 part4 peace.2ch.net/test/read.cgi/tech/1404333757/ Visual Studio 2012 Part8 peace.2ch.net/test/read.cgi/tech/1392639689/ Visual Studio 2010 Part21 peace.2ch.net/test/read.cgi/tech/1412136476/ Visual Studio 2005 Part 27 peace.2ch.net/test/read.cgi/tech/1291513609/ その他テンプレ>>2-5
103 名前:Office & Gamers @ 試験運用中(トリなしw mailto:アハ♪” uh huh [2016/07/14(木) 23:54:20.48 ID:6zz9Sabt.net] DarkGDK Part.2 echo.2ch.net/test/read.cgi/tech/1467514934/
104 名前:Office & Gamers @ 試験運用中(トリなしw mailto:アハ♪” uh huh [2016/07/14(木) 23:54:54.13 ID:6zz9Sabt.net] いちおう、ここも準・本スレ扱いw
105 名前:Office & Gamers @ 試験運用中(トリなしw mailto:アハ♪” uh huh [2016/07/14(木) 23:57:55.59 ID:6zz9Sabt.net] VS2008ExpressWithSP1は、本体が1GB未満とサイズが小さいから、インストールにもそれほど時間はかからない。
106 名前:Office & Gamers @ 試験運用中(トリなしw mailto:アハ♪” uh huh [2016/07/16(土) 12:24:10.86 ID:cScNFvUG.net] そしてランチタイム♪”
107 名前:デフォルトの名無しさん mailto:sage [2016/07/16(土) 13:28:43.61 ID:uoDFz9DZ.net] なにたべよー
108 名前:Office & Gamers @ 試験運用中(トリなしw mailto:アハ♪” uh huh [2016/07/23(土) 04:45:29.02 ID:SycPzxgL.net] あげ
109 名前:Office & Gamers @ 試験運用中(トリなしw mailto:アハ♪” uh huh [2016/08/17(水) 10:46:32.90 ID:+njSpS9N.net] よいしょ、っと♪(アハ♪” DarkGDK Part.3 echo.2ch.net/test/read.cgi/tech/1471397746/
110 名前:Office & Gamers @ 試験運用中(トリなしw mailto:アハ♪” uh huh [2016/08/21(日) 12:30:58.28 ID:0ruOe10Q.net] そしてランチタイム♪”
111 名前:デフォルトの名無しさん mailto:sage [2016/08/21(日) 12:47:10.76 ID:ONJlbRqy.net] なにたべよー
112 名前:Office & Gamers @ 試験運用中(トリなしw mailto:アハ♪” uh huh [2016/08/28(日) 12:19:13.90 ID:zR1ENZmn.net] そっそw
113 名前:Office & Gamers @ 試験運用中(トリなしw mailto:アハ♪” uh huh [2016/08/29(月) 03:30:44.79 ID:UdG9pR1y.net] スレ建て規制により、DarkGDK次スレが建つまでこちらへw [ お手軽3Dゲーム開発♪ ] DarkGDK Part.2 hayabusa6.2ch.net/test/read.cgi/pc2nanmin/1452964616/ [ お手軽2Dゲーム開発♪ ] 99BASIC Part.1 hayabusa6.2ch.net/test/read.cgi/pc2nanmin/1462503999/ [ MML / MIDI ] ゲーム開発用サウンド、BGMスレ hayabusa6.2ch.net/test/read.cgi/pc2nanmin/1453832565/ MenuetOS 64bit版 アセンブリ言語 プログラミング echo.2ch.net/test/read.cgi/tech/1460581443/ [EXEファイル可] JavaScript統合開発環境 DX Studio echo.2ch.net/test/read.cgi/tech/1423340731/ VC++ with DarkGDK and multi thread programming jbbs.shitaraba.net/bbs/read.cgi/computer/44261/1466446558/l100
114 名前:デフォルトの名無しさん mailto:sage [2016/10/01(土) 12:46:46.84 ID:dfnenJuX.net] もうないか・・・
115 名前:デフォルトの名無しさん mailto:sage [2016/10/24(月) 02:13:48.56 ID:d0/b/4pF.net] まだまだExpress使い続けるよ やはり2008 SP1が一番良いなと感じる
116 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 06:47:31.51 ID:z9wtE8t2.net] 光学メディアに焼いてインストールすれば Micorsoftに登録しなくても使えるって利点があるよね。 ネットワークから隔離した古い機械・古いOSで使える。
117 名前:デフォルトの名無しさん mailto:sage [2016/10/25(火) 13:51:32.89 ID:Gjmp6BYY.net] >>114 +1
118 名前:Office & Gamers @ 試験運用中(トリなしw mailto:アハ♪” uh huh [2016/11/04(金) 14:30:58.29 ID:7cL8AT5k.net] ageとくかw
119 名前:デフォルトの名無しさん mailto:sage [2016/11/04(金) 21:41:52.44 ID:lyUY8xNL.net] 2008も自動的に更新されますか?
120 名前:デフォルトの名無しさん mailto:sage [2016/11/05(土) 18:19:54.10 ID:WxLvBjbX.net] 反応なし
121 名前:デフォルトの名無しさん mailto:sage [2016/11/26(土) 01:54:18.31 ID:wbn1VWla.net] >>78 デバッグウィンドウのサイズを変えようとすると、 影が変なところに出てこない?
122 名前:デフォルトの名無しさん [2017/02/16(木) 22:00:42.08 ID:7GOAgwDK.net] Panda3D SDK 1.9.3をMicrosoft Visual C++ 2008 Express Edition で使いたいのですが、インクルードで躓いてます。 どうやるのか教えてください
123 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/02/16(木) 22:42:51.55 ID:soSRPnhw.net] >>121 汚い方法は、インクルードパスに必要なヘッダーファイルを貼り付けて、ライブラリパスにビルド済みのライブラリファイルを貼り付ける。 システムを汚さない方法はプロジェクトのプロパティでヘッダーファイルがある場所をインクルードパスに追加し、ビルド済みのライブラリファイルがある場所をライブラリパスに追加。 これでOK。
124 名前:デフォルトの名無しさん mailto:sage [2017/02/16(木) 22:45:45.89 ID:K2hmhl0o.net] https://www.panda3d.org/manual/index.php?title=Running_your_Program&language=cxx に2010(2015でも良い)って書いてあるけど、わざわざ苦行を求めるのか? 2008ではサポートされてないWindows7 SDKが必要らしいんで、できるとしても面倒くさい可能性大
125 名前:デフォルトの名無しさん mailto:sage [2017/02/16(木) 22:51:03.70 ID:KsbZvWE2.net] ttp://i.imgur.com/BeSeq2w.jpg
126 名前:デフォルトの名無しさん mailto:sage [2017/02/16(木) 22:59:24.65 ID:lXiZQpBh.net] print " とすると勝手に print ""になってエンターを押すと print " " っておかしくなります print "" | ってするにはどおするばよいですか? うまく伝えてられるかわかりませんがよろしくお願いします m(_ _)m
127 名前:デフォルトの名無しさん mailto:sage [2017/02/16(木) 23:24:34.28 ID:1tgOe9Xz.net] >>125 Endキーでも使うとか? 補完自体を殺すことも設定で可能だったと思うけど
128 名前:デフォルトの名無しさん [2017/02/17(金) 00:25:38.74 ID:NkX+r5wc.net] 回答 ありがとう
129 名前:デフォルトの名無しさん mailto:sage [2017/04/11(火) 14:18:08.96 ID:QtRG4BLX.net] End of Support for Visual Studio 2008 - in One Year https://blogs.msdn.microsoft.com/visualstudio/2017/04/10/end-of-support-for-visual-studio-2008-in-one-year/
130 名前:デフォルトの名無しさん [2017/05/18(木) 08:51:36.17 ID:thYMhZbz.net] >>61 コメント内容 試用期間 EEは無料
131 名前:デフォルトの名無しさん [2017/05/18(木) 08:52:36.67 ID:thYMhZbz.net] >>61 eメールのアカウントが必要
132 名前:デフォルトの名無しさん [2017/05/18(木) 09:02:35.23 ID:thYMhZbz.net] dll
133 名前:デフォルトの名無しさん [2017/05/18(木) 09:03:37.43 ID:thYMhZbz.net] >>125 コメント内容 パソコンの周りをきれい委にする。
134 名前:デフォルトの名無しさん [2017/05/18(木) 09:04:21.32 ID:thYMhZbz.net] 今の時代、パソコンでテレビが見れないとだめなのか。
135 名前:デフォルトの名無しさん [2017/05/18(木) 09:12:17.83 ID:thYMhZbz.net] .iso
136 名前:デフォルトの名無しさん mailto:sage [2017/06/03(土) 19:22:27.66 ID:cZuYHM9v.net] 古い奴だとお思いでしょうが、古い奴こそ新しいものを欲しがるもんでございます。 どこに新しいものがございましょう… 「傷だらけの人生」 藤田まさと作詞・吉田正作曲
137 名前:デフォルトの名無しさん [2017/06/15(木) 00:13:00.81 ID:0Bo/JfNC.net] KB957507って現在は入手不可能?
138 名前:デフォルトの名無しさん mailto:sage [2017/07/06(木) 07:11:13.84 ID:6wMkdZx/.net] 温故知新(おんこちしん)
139 名前:デフォルトの名無しさん [2017/10/03(火) 08:49:19.60 ID:dPWSl44k.net] >>136 https://support.microsoft.com/ja-jp/hotfix/kbhotfix?kbnum=957507&kbln=ja-jp 出典は lsair.html.xdomain.jp/a/e/list-of-vs2008-hotfix.html いつものHotFixの画面だったから大丈夫かと・・・ 試してはいないけどw
140 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 12:54:23.17 ID:bSTKludV.net] VC++2008にユーザプリプロセッサを噛ませる方法ってある? 関連質問は以下。 mevius.2ch.net/test/read.cgi/tech/1514025223/395 VC++2017相当のラムダをVC++2008で使いたい。 MSVCのプリプロセッサだけでは多分無理っぽい。 自前のプリプロセッサをまず通し、結果をVSでコンパイルすれば確実にいけるのだが、 これをやる方法ってある? (自前のプリプロセッサはスクリプト言語で書く)
141 名前:デフォルトの名無しさん [2018/01/20(土) 13:28:02.32 ID:5zEZap2N.net] .cppじゃなくて.cupみたいなソース書いて .cup->.cppにするならいける
142 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 13:37:19.70 ID:bSTKludV.net] >>140 多分カスタムビルドツールだよね?今それを見ていたところ。 https://msdn.microsoft.com/ja-jp/library/hefydhhy.aspx とりあえずこれから試してみる。ありがとう。
143 名前:デフォルトの名無しさん [2018/01/20(土) 13:44:14.42 ID:5zEZap2N.net] 最近の人はmake書いたこと無いんか
144 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 14:14:17.24 ID:bSTKludV.net] >>142 手動makeか。まあその手もあるか。
145 名前:デフォルトの名無しさん [2018/01/20(土) 14:25:54.52 ID:Hc/lJP5p.net] Makefile家や
146 名前:デフォルトの名無しさん [2018/01/20(土) 14:27:12.33 ID:4AOaXNlF.net] make書いたら負け
147 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 14:40:08.73 ID:bSTKludV.net] まあどっちでもいいと思うが。 Cマクロで出来れば一番簡単だが、どうやらこれは無理。 ならば次善策は自前でのスクリプティングであり、 主な手間はmakefile/カスタムビルドツール設定ではなく、 スクリプトを作成することなんだから、この際起動はどっちでもいいだろ。
148 名前:デフォルトの名無しさん [2018/01/20(土) 15:02:15.30 ID:4AOaXNlF.net] Dで書いてobjリンクする
149 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 15:57:47.74 ID:bSTKludV.net] ちなみに、以下確かに動くのだが、これってどうなん? https://stackoverflow.com/questions/472667/lambda-expressions-support-in-vs2008-sp1 (超絶簡単なソースしか試してないが) ・コンパイルは c:\windows\microsoft.net\framework\v2.0.50727\system.dll : warning C4945: が出つつも通る。 ・F5でのデバッグ実行が出来ない。「デバッガのプロトコルがデバッグされる対象と互換性がありません」 ・IntellisenseはVC++/CLIでも機能している。 >>147 なおラムダはGUIからの機能選択部で使うので、 結構な頻度で追加/書き換えしており、ソースは分離したくない。 普通に考えればVC++2017に上げればいいだけではあるが、 環境を変更すると色々他の問題が発生するかもしれないのでちょっと無理しようとしている。
150 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 16:02:31.52 ID:5zEZap2N.net] 本質と関係ない話題の方が盛り上がるのが2ch
151 名前:デフォルトの名無しさん [2018/01/20(土) 16:09:16.48 ID:5zEZap2N.net] >>148 >確かに動くのだが、これってどうなん? 動くならそれでいいんじゃない? 同じレス内で >環境を変更すると色々他の問題が発生するかもしれないので っていうのとは真逆の態度だとは思うが
152 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 23:47:48.29 ID:bSTKludV.net] まだカスタムビルドには組み込んでいないが、スクリプトを作成し、動作することを確認した。 知恵を絞ってくれた人はありがとう。現在の解決策は以下。 ・#define LAMBDA でインラインの展開を行う。 ・クラ
153 名前:X宣言部はスクリプトで作成し、これをincludeする。 VS2017に上げてもLAMBDAマクロ宣言部だけの変更(1行)で済む予定なので、まあまあかと。 とりあえずこれで様子見します。 [] [ここ壊れてます]
154 名前:デフォルトの名無しさん [2018/04/10(火) 07:51:46.77 ID:25Me0atb.net] 最終列車に乗り遅れるな VC++2008Expressサポート切れまであと1日。 2018年4月11日(水)でサポート終了。 修正パッチの入手の終わってない人は忘れないように。
155 名前:デフォルトの名無しさん [2018/04/10(火) 14:36:15.41 ID:JIHFaEMv.net] GJ
156 名前:デフォルトの名無しさん [2018/04/11(水) 01:33:09.61 ID:PizNPnSY.net] 必死だなぁw
157 名前:デフォルトの名無しさん mailto:sage [2018/04/11(水) 13:05:30.31 ID:Gexxa1fK.net] https://forest.watch.impress.co.jp/docs/news/1116235.html 「Microsoft Visual Studio 2008」のサポートが終了 〜無償版「Express Edition」も 「Microsoft SQL Server Compact 3.5」なども対象
158 名前:デフォルトの名無しさん [2018/04/11(水) 13:06:06.48 ID:bG1z7LTF.net] ああ終わったか 乙でした
159 名前:デフォルトの名無しさん [2018/04/11(水) 13:26:11.45 ID:bG1z7LTF.net] てst
160 名前:デフォルトの名無しさん [2018/04/12(木) 14:51:25.15 ID:nqXIWDjI.net] 《 後継開発環境のご案内 》 LinuxMintのダウンロードはこちらから。 Main Page - Linux Mint https://linuxmint.com/ https://linuxmint.com/download.php --------- AGK無料試用版の配布開始(リンク先にWindows、Mac、Linux版のファイルが直接置いてある) AppGameKit - Free Trial Version https://www.appgamekit.com/trial 無料試用版 AppGameKit無料トライアル版は、AppGameKitの主要な領域すべてにアクセスできるため、 完全に評価することができます。完全版の有料版には、次の主要機能が含まれています。 ・ Android、iOS、HTML5にプロジェクトをエクスポートする ・ アプリをデバイスに直接ブロードキャストする ・ コンパイルされたプロジェクトからウォーターマークを削除する
161 名前:デフォルトの名無しさん [2018/04/16(月) 00:56:57.36 ID:CadfvnK3.net] WineでPassmarkとHDbenchを試したところ、シングルスレッド性能はWindowsより若干高く、マルチコア性能は半分程度に留まった。 おそらくWine内部処理の都合と言うことにw また、DirectXテストは通らなかった。GDIクラスのみ。
162 名前:デフォルトの名無しさん [2018/04/22(日) 03:49:49.80 ID:CAx4oxnE.net] …って言う訳で、早速Linuxのパフォーマンステスト。 64x64ピクセルの2Dスプライトの表示枚数をカウントして、パフォーマンスを計測してみよう。 ダウンロードは以下のリンクからどうぞ。 upload.saloon.jp/src/up27011.zip Firefoxブラウザの右上にダウンロードマーク(↓)の付いたアイコンをクリックして、ファイル アイコンをクリックすると、zipファイルの入ったフォルダが表示されるので、右クリックして 「 Extract Here 」 を選ぶ。 次に、「 agk_sample 」 と言うフォルダが作成されるので、ダブルクリックする。 フォルダの中に 「 abc 」 と言う拡張子のないファイル、「 media 」 と言うランタイムの入った フォルダが作成されている。 「 abc 」 と言う拡張子のないファイルが、実行ファイルで、これを迷わずダブルクリックすれ ばよいw だいたい2分ぐらいで最大表示枚数が安定する。 プログラムの終了は [ ESC ] キー。 Celeron G1820 + Intel HD無印 で1500枚程度。
163 名前:デフォルトの名無しさん [2018/05/23(水) 19:42:34.90 ID:Au5e7VGg.net] 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 CRP7I
164 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 10:53:48.52 ID:cPlRxlDn.net] CRP7I
165 名前:デフォルトの名無しさん [2018/05/25(金) 19:20:37.97 ID:TsdeULHr.net] ではではw Intel Pentium G5 CoffeeLake 総合スレ anago.open 2ch.net/test/read.cgi/jisaku/1526884213/
166 名前:デフォルトの名無しさん [2018/07/04(水) 22:48:21.01 ID:gFgZc5FG.net] TJH
167 名前:デフォルトの名無しさん mailto:sage [2018/07/06(金) 12:24:57.09 ID:uTPDH9XV.net] TJH
168 名前:デフォルトの名無しさん mailto:sage [2018/08/23(木) 09:04:57.51 ID:by5uxKdK.net] VC9 SP1 Hotfix For The vector<function<FT>> Crash がダウンロードできないのですが、 どなたかアップロードしていただけないでしょうか? https://blogs.msdn.microsoft.com/vcblog/2008/12/17/vc9-sp1-hotfix-for-the-vectorfunctionft-crash/#9234449
169 名前:デフォルトの名無しさん mailto:sage [2018/09/13(木) 23:46:46.29 ID:MPXnmy/B.net] 起動の仕方で浮動小数点演算に誤差が発生するのだけど、理由が分かる人居ますか? 今のところ、 A. Debugビルドのバイナリをダブルクリックして起動 B. Releaseビルドのバイナリをダブルクリックで起動 C. DebugビルドまたはReleaseビルドでF5で起動 の3種類出来てる。それぞれ微妙な誤差だ。(doubleの下位ビット) AとBの違いについては諦めていたのだが、(なお両方とも/fp:precise) 実はCもあると気づいてしまった。 なお、バイナリをダブルクリックして起動、それにIDEをアタッチしても結果は変わらない。 それぞれAまたはCが出る。 何かIDEの設定を間違っているのだと思うのだけど…
170 名前:デフォルトの名無しさん [2018/09/14(金) 12:43:29.26 ID:5xDSXwp0.net] 0fillしてないんだろ
171 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 13:05:12.93 ID:XcO59d50.net] 再現性は100%なので、初期化のミスではない。(と思っている) 演算途中の結果を double なら16進16桁でテキストにダンプしている。 数値だけではないが500MB程度のファイルが出力され、 diff を取ることによりレグレッションテストをしている。 今のところ、A/B/Cの3種類しか出ない。 初期化忘れならこうはならない。(はず)
172 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 13:09:49.07 ID:Qw2nkUqU.net] MSのエンジニアを信じるか、再現可能なソースも示さず問題だ問題だ言ってるとこの馬の骨とも知れない奴を 信じるかって言われたら迷うことなく前者を信じるw
173 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 14:43:10.29 ID:XcO59d50.net] 俺はIDEのバグだとは思っていない。 何かIDEの設定があって、俺がそれを適切にやってないのだと思っている。 色々見た限り、俺は /fp:precise しか発見出来なかった。 ただしこれは一応適切に設定されている。 他にないかな?ということ。
174 名前:デフォルトの名無しさん [2018/09/14(金) 15:49:43.21 ID:cyu8WCuc.net] IDEじゃなくてコマンドラインからコンパイラで直接コンパイルしても一緒?
175 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 16:14:47.18 ID:XcO59d50.net] どういう意味? (どれとどれの違いにフォーカスしろと?) 俺はバイナリに問題があるとは思っていない。 何らかの理由で浮動小数点のモードが切り替えられたりしてないかを疑ってる。 だからIDEの設定とか、そっちを見てる。 Release/Debugのバイナリは当たり前だが違ってる。 /O2と/Od等だ。 ただそれでも /fp:precise の場合は 浮動小数点の演算順序を入れ替えない範囲で最適化される事になっている。 逆アセンブラは見たけどちょっとグチャグチャすぎてよく分からなかった。 (見た範囲では演算順序の入れ替えはないように思えた)
176 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 16:25:44.73 ID:2giHKuhd.net]
177 名前:="reply_link">>>167 double型を使っていても、SSEのXMMレジスタなどを使う場合、昔のfld, fst, fmulなどを使う場合より基本的には精度が落ちる。 丸めの方向も四捨五入、正負どちらかの方向への丸めや切り捨てなどの他、確か、精度を気にしない、なんてオプションもあった気がする。ゲームで使うことを想定しているらしい。 SSE用に最適化を掛けると、速度は上がるが精度は落ちるかも知れない。 [] [ここ壊れてます]
178 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 17:45:18.51 ID:XcO59d50.net] >>174 今の範囲ではSSEは使っていない(はず) 「拡張命令セットを有効にする」は「設定無し」になっている。(多分デフォのまま) 見た目全部x87が出てたし。 やっぱRelease/Debugの違いから攻めろって感じか? 俺もF5起動で結果が異なるってのは全く予想してなかったし。(ただしこちらの問題だろうけど) 演算部分は場合によってはSSEのアセンブラに差し替えるので、 問題になる場合には、Release/Debugの違いはこれで吸収するつもりだった。 (これは1ヶ月後にやるかも)
179 名前:デフォルトの名無しさん mailto:sage [2018/09/14(金) 17:48:23.40 ID:HVgt1gkj.net] 浮動小数点の誤差を考慮に入れてないというイージーな仕様バグですね。
180 名前:デフォルトの名無しさん [2018/09/14(金) 21:39:03.40 ID:fXySkelb.net] 再現するコードをみないとなにもわかるわけがない 低学歴知恵遅れが書くコードなんかなにをやってるか分からないからな ごちゃごちゃいってないで再現するコードをあげなさい
181 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 06:26:55.94 ID:/OsufeBT.net] 月並みな意見だけど、 「症状を再現できる最小のソースと初期データ、それとコンパイル環境」 まで切り詰めてみるのが早道じゃないかな。 ちょくちょく発生する事例なら、解決策を知ってる誰かが教えてくれてるかと。 週末、より多くの人が質問を見ることを期待して待つ手もあるけど。
182 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 08:56:57.28 ID:9ZmI9OgI.net] より基本に立ち返ろう そもそも誤差はあるのか? 計算結果を何を使ってどう出力しているかだけでもソースを見せてくれ
183 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 13:36:34.65 ID:heijdb7v.net] >>175 x87でも誤差を丸める方法を fpu control word で設定できる事は出来る。 四捨五入と切り捨てなどを切り替えられる。
184 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 13:42:47.95 ID:heijdb7v.net] fpu control word で、丸め方法と、精度の二つを独立に設定できる。 この精度の設定で、メモリ上の表現がdouble型でも、計算時のfpuの内部精度が変わってくる。 普通は64bit doubleに対して、fpu内部では80bitの精度で計算する。仮数部のbit数は、確か、それぞれ、53BIT、64BITだったかな。
185 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 14:05:09.61 ID:heijdb7v.net] Intel® 64 and IA-32 Architectures Software Developer’s Manual [Vol 1] 11.6.8 Compatibility of SIMD and x87 FPU Floating-Point Data Types SSE and SSE2 extensions operate on the same single-precision and double-precision floating-point data types that the x87 FPU operates on. However, when operating on these data types, the SSE and SSE2 extensions operate on them in their native format (single-precision or double-precision), in contrast to the x87 FPU which extends them to double extended-precision floating-point format to perform computations and then rounds the result back to a single-precision or double-precision format before writing results to memory. Because the x87 FPU operates on a higher precision format and then rounds the result to a lower precision format, it may return a slightly different result when performing the same operation on the same single-precision or double-precision floating-point values than is returned by the SSE and SSE2 extensions. The difference occurs only in the least-significant bits of the significand.
186 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 14:14:58.92 ID:heijdb7v.net] >>182 書いてある意味は、 「SSEやSSE2だと、float(32BIT)やdouble(64BIT)のまま計算するが、x87 fpuだと、もっと高い精度であるところの 『double extended-precision floating-point format(拡張倍精度浮動小数点フォーマット:80BIT)』 で計算を実行して、丸めてから、floatやdoubleに戻す。 そのため、SSE/SSE2 と x87 fpuでは結果が変わることがある。 しかし、その場合でも結果の違いは、仮数部の LSB (最も価値の小さいBIT)の1BITにだけ現れる。」 というような事。
187 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 16:09:28.75 ID:aC3C7hdp.net] 揚げ足取りだけどLSBを「最も価値が小さい」って直訳はいかがなものかなw 普通に最下位ビットじゃないの? ところで > the least-significant bits これ何で複数形なのかね
188 名前:デフォルトの名無しさん [2018/09/15(土) 16:14:15.89 ID:AVfR6YnT.net] 2の0乗だから実際価値が低い 上はMVBで
189 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 17:07:56.98 ID:UR1d6CKz.net] >>183 ありがとう。 ただ一応それは知ってて、その上で、IDEの環境設定等を疑っている。 >>178 とはいえ地道に辿って、同様の再現コードを作ることに成功しそうだ。 もう少し調べて、多分今晩か明日午前中に上げる。
190 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 17:12:32.47 ID:heijdb7v.net] >>184 「The difference occurs only in the least-significant bits of the significand.」 これは、SSE の場合の LSB と、x87 FPU の場合の FPU の2種類を頭の中に想定していると思われる。 SSE: a1 = 1.xxxxxxxxz * 10^b x87 : a2 = 1.yyyyyyyyw * 10^c つまり、LSB は、↑のように、z と w で、2つあるので、LSBs という英語になる。
191 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 17:15:04.14 ID:heijdb7v.net] 誤:これは、SSE の場合の LSB と、x87 FPU の場合の FPU の2種類を 正:これは、SSE の場合の LSB と、x87 FPU の場合の 2種類を
192 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 17:18:55.19 ID:heijdb7v.net] >>184 >揚げ足取りだけどLSBを「最も価値が小さい」って直訳はいかがなものかなw >普通に最下位ビットじゃないの? 整数の場合は、「最下位ビット」というと、本当にBITの位置が一番右にあるようなイメージもある。 一方、浮動小数点数の場合は、右にあるとかより、仮数部において、一番価値の小さいビット、というニュアンスを使えたかった。 IEEEでは、それは確かに一番右にあるビットであって、マシン語レベルの表現では、BIT0ではあるのだが。 ニュアンス的に。
193 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 17:29:56.92 ID:aC3C7hdp.net] >>187 それは俺も思ったけど、それならsignificandの方も複数じゃないとおかしいような...
194 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:35:40.44 ID:UR1d6CKz.net] 同様の症状を再現出来るようになったので上げる。 完全再現は出来てないが、使い物にはなるはず。興味がある人はよろしく。 症状: 単独で起動した場合と、IDEから起動した場合で、結果が異なる。 環境: VS++2008ExpressEdition 再現方法: 1. 新規プロジェクトを作成。(CLRコンソールアプリケーション。オプション等は全てデフォのまま) 2. mainを以下ソースと差し替える。 3. Releaseビルドで実行する。(Debugビルドでは再現しなかったので注意) 結果: 0.000000, 0x1ff68ddfb62221dd (IDEからの起動(F5)) 0.000000, 0x1ff68ddfb62221de (コマンドプロンプトからの起動) 最後の2bitが異なる。(誤差は1bit) 備考: 俺が遭遇しているのとはやや異なる。(俺の場合、Debugビルドでもこれが発生する) この再現状況だと、単に 「DebugとReleaseでバイナリが異なり、 IDEから起動した場合は常にDebugバイナリを掴んでいるだけでは?」 とも取れるが、こちらで確認した限りはちゃんとReleaseバイナリを掴んでいる。 理由は、 1. Debug/Releaseの両方のバイナリがない状態で実行した場合、 自動的に作成されるのはReleaseバイナリ。(当然だが) 結果は****ddとなる。(ブレークポイント等で止めて確認する) 2. そのReleaseバイナリをコマンドプロンプトから起動すると、****deの結果が得られる。
195 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:37:06.43 ID:UR1d6CKz.net] ソース: #include "stdafx.h" #include <math.h> using namespace System; template<typename T> static double calc_norm_and_regulate(int num, T* r, bool regulate){ // <float> for debug. double norm = 0; for (int i=0;i<num;i++) norm += (double)r[i] * (double)r[i]; norm = sqrt(norm); if (regulate) for (int i=0;i<num;i++) r[i] = (T)(r[i]/norm); return norm; } int main(array<System::String ^> ^args) { int count = 16; __int64 inputs_hex[16] = { 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x1fedb1530240aa54, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x1ff0af0d95025bc3, 0x1fc9353df6af376b, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000}; double* inputs = (double*)inputs_hex; double norm = calc_norm_and_regulate(count, inputs, false); Console::Write(String::Format("{0:F6}, 0x{1:x16}\r\n",norm, *(__int64*)&norm)); // Release build // 0.000000, 0x1ff68ddfb62221dd from IDE // 0.000000, 0x1ff68ddfb62221de from command prompt return 0; }
196 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:42:48.06 ID:UR1d6CKz.net] オプション等(コマンドライン):(全てデフォのままのはずだが一応) C/C++: /GL /D "WIN32" /D "NDEBUG" /D "_UNICODE" /D "UNICODE" /FD /EHa /MD /Yu"stdafx.h" /Fp"Release\test_floating_error4.pch" /Fo"Release\\" /Fd"Release\vc90.pdb" /W3 /nologo /c /Zi /clr /TP /errorReport:prompt /FU "c:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll" /FU "c:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Data.dll" /FU "c:\Windows\Microsoft.NET\Framework\v2.0.50727\System.XML.dll" リンカ: /OUT:"MYPATH\test_floating_error4\Release\test_floating_error4.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:"Release\test_floating_error4.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"MYPATH\test_floating_error4\Release\test_floating_error4.pdb" /LTCG /DYNAMICBASE /FIXED:No /NXCOMPAT /MACHINE:X86 /ERRORREPORT:PROMPT パスは$MYPATHと書き換えた。また、投稿の為に適宜改行を入れた。 このプロジェクト名は見れば分かるとおりtest_floating_error4。
197 名前:デフォルトの名無しさん mailto:sage [2018/09/15(土) 20:43:03.84 ID:UR1d6CKz.net] 備考2: なおこの方法で見える calc_norm_and_regulate 関数の『逆アセンブル』結果は 俺の環境での物とコールアドレス以外は一致していることを確認している。 一応、diff結果は以下。 8c8 < 0000000c cmp dword ptr ds:[00752E14h],0 --- > 0000000c cmp dword ptr ds:[007D2E14h],0 10c10 < 00000015 call 676F58B9 --- > 00000015 call 683C58B9 44c44 < 0000006a call FF0455E8 --- > 0000006a call FFD955E8
198 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 02:47:43.28 ID:wIV2HUNW.net] >>191 C++/CLR では、.Net を使っているから、起動方法が違うだけでも、 fpu control word の値や、使うCPU命令がx87 FPUなのか、SSE なのかが違ってくる可能性がある
199 名前:ゥもしれない。 fpu control word は、main()関数に入る前の start up codeの中で 初期化される。 [] [ここ壊れてます]
200 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 03:19:36.22 ID:wIV2HUNW.net] >>192 // Release build // 0.000000, 0x1ff68ddfb62221dd from IDE // 0.000000, 0x1ff68ddfb62221de from command prompt それにしても、随分小さな値だね。ちなみに、浮動小数点表示 の場合の有効数字の桁数を上げたら、どのようになる? 1.xxxe-yy 表示にして。
201 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 03:40:33.66 ID:wIV2HUNW.net] >>192 試しに、ソースの冒頭に #include <stdio.h> を追加してから、 Console::Write(String::Format("{0:F6}, 0x{1:x16}\r\n",norm, *(__int64*)&norm)); の部分を、 printf( "%30.30e, 0x%016X\n", norm, *(__int64*)&norm) ); としてみるとどうなる?
202 名前:デフォルトの名無しさん mailto:sage [2018/09/16(日) 03:42:01.82 ID:wIV2HUNW.net] >>197 誤: printf( "%30.30e, 0x%016X\n", norm, *(__int64*)&norm) ); 正: printf( "%30.30e, 0x%016X\n", norm, *(__int64*)&norm );
203 名前:デフォルトの名無しさん [2018/09/16(日) 07:27:22.50 ID:SOVIz+sV.net] > 0x1ff68ddfb62221dd(Debug) > 0x1ff68ddfb62221de(Release) VS 2010 VC++ Express でも再現した