数式ライブラリに構造型4x4行列があります。それらは構造体でなければなりません(ヒープ割り当てが多すぎる、ゴミが多すぎる)。参照でオペランドを取る乗算演算子
乗算演算子があります:、
Matrix4d DfromA = DfromC * CfromB * BfromA;
を書くことくらいです
今public Matrix4d Mult(ref Matrix4d rhs) {...}
:
public static Matrix4d operator *(Matrix4d lhs, Matrix4d rhs) {...}
はとrefで右側の行列をとるメンバ関数があります書き込みよりも読みやすい。
Matrix4d DfromB = DfromC.Mult(ref CfromB);
Matrix4d DfromA = DfromB.Mult(ref BfromA);
残念ながら、2番目のバージョンは2倍の速さです。
質問:
はなぜコンパイラが暗黙的に参照することにより*演算子の引数を取るために十分にスマートではないでしょうか?または、sizeof()が特定のしきい値より大きい場合、値型の引数をメソッドに一般的に参照で扱いますか?
2番目のオプションのパフォーマンスを最初のものから読み出す方法はありますか?