C++相談室 part62 ..
[2ch|▼Menu]
854:デフォルトの名無しさん
08/07/21 16:09:12
現在ublasを使っていて少しつまづいてしまったので教えていただきたいことがあるのですけど
教えていただけないでしょうか?

ある行列を多くの行列演算の和として計算したいのですが、
代入を繰り返すことでおそくなってしまいます。
例えば以下のような例です。
for(i=0;i<100;i++){
MAT1+=some_matrix;
}
some_matrixには毎回べつの行列が計算されてはいります。

expression template でこれを高速可できるということですが、
for文の中で毎回代入していまうとその時点で式が評価されてしまうので遅くなってしまうようです。
式そのものを変数として保持しておくような事はできるのでしょうか?

初歩的な質問ですみませんがどなたかお願いします。

855:デフォルトの名無しさん
08/07/21 16:15:30
autoやdecltypeがあればいいんだがなぁ。

856:デフォルトの名無しさん
08/07/21 16:36:33
draw_mark = rand() % 4 + 1;
draw_digit = rand() % 13 + 1;

if(h) {
printf("%sの%s\n", mark[draw_mark-1], digit[draw_digit-1]);
}
r = total[draw_digit-1];
この文の+1と-1はあってもなくても結果は同じですよね? 気になったので教えてください

857:デフォルトの名無しさん
08/07/21 16:46:49
他の場所で使ってなければ同じ。

858:デフォルトの名無しさん
08/07/21 18:23:52
結果は同じでも、可読性が違う。
乱数の結果が+1してあれば「乱数値を1オリジンに変換している」というニュアンスが伝わるし、
配列のインデックスが-1してあれば「カード番号を0オリジンに変換している」というニュアンスが伝わる。

859:デフォルトの名無しさん
08/07/21 18:34:07
一方、ロシアは0オリジンで乱数値を扱った。

860:デフォルトの名無しさん
08/07/21 18:39:15
>>859
そういう無意味な書き込みして楽しい?
そうかぁ、寂しい青春送っているんだね。

861:デフォルトの名無しさん
08/07/21 18:49:41
>>860
>>860


最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4783日前に更新/209 KB
担当:undef