1

Boost ublas のドキュメントには少し困惑しています。疎行列クラスと密行列クラスが共通の親クラスを共有していることは明らかではありません。これは設計によるものだと思います。しかし、疎行列または密行列のいずれかを受け入れることができる API を設計するにはどうすればよいでしょうか。たとえば、次のようなものです。

float doMatrixMath(matrix_base<float> m) 
{
  return m(1,1)+m(2,2);
}

おそらく、これについての私の考えは間違っています。ublas クラスのオブジェクト モデリングについてどのように考えるかについてのガイダンスをいただければ幸いです。

4

1 に答える 1

1

残念ながらテンプレ。非常に一般的な型を使用するか、掘り下げてより具体的なものを見つけることができますが、一般的な考え方は次のとおりです。

template< typename MatrixType >
float doMatrixMath(MatrixType m) 
{
  return m(1,1)+m(2,2);
}

もちろん、これはより具体的な型と戻り値の検出で強化できます...

于 2011-09-03T14:23:52.940 に答える