1

C++ で、やや一般的な単一変数の統合ルーチンを作成しようとしています。次のように、単一の変数関数へのポインターを受け入れる適応求積法を作成しました。

typedef complex<double> cd;
cd GaussIntegrate(cd (*f) (cd),cd zmin,cd zmax);

しかし、それを一般的な多変量関数に拡張したいと考えています。統合は依然として単一の変数になりますが、関数が複数の変数に依存できるようにしたいと思います。

cd GaussIntegrate(cd (*f) (cd, ...),cd zmin,cd zmax);

たとえば、 func(cd) または func(cd,double,int) を統合関数として使用できます。

ただし、そのようなテンプレートを作成する最善の方法が何であるかはわかりません。残りのパラメーターを指定する方法があるはずなので、代わりに

GaussIntegrate(&function,zmin,zmax);

私も次のようなものを書くことができるはずです

GaussIntegrate(&function(param2,param3),zmin,zmax);

現在、ブリッジ 1 変数関数を使用してこれを行っており、残りのパラメーターをグローバルとして指定していますが、これは非常に洗練されていないソリューションです。誰かが私にもっと良いものをくれますか?

ありがとう、

1月

4

1 に答える 1