Boost ublas のドキュメントには少し困惑しています。疎行列クラスと密行列クラスが共通の親クラスを共有していることは明らかではありません。これは設計によるものだと思います。しかし、疎行列または密行列のいずれかを受け入れることができる API を設計するにはどうすればよいでしょうか。たとえば、次のようなものです。
float doMatrixMath(matrix_base<float> m)
{
return m(1,1)+m(2,2);
}
おそらく、これについての私の考えは間違っています。ublas クラスのオブジェクト モデリングについてどのように考えるかについてのガイダンスをいただければ幸いです。