私は、プログラムをCERNROOTの深さからPythonに変換しようとするのはやや不幸な立場にあります。ROOTコード(CINT自体は忌まわしいimoです)では、ROOTがこれらを「文字列」として定義する方法により、数学関数を「文字列」として格納し、フィッティングやプロットなどのためにROOTに渡すことができます。
現時点では、数学関数は1行として単純なテキストファイルに保存されています。
(1+[1])^(1+[1])/TMath::Gamma(1+[1]) * x^[1]/[0]^(1+[1]) * exp(-(1+[1])*x/[0])
そして、ファイルを読み込むときにC++によって文字列として抽出されます。Pythonに似たようなものはありますか?私はnumexprを知っていますが、上記と同等のもので動作させることができないようです。
(1+p[1])**(1+p[1])/scipy.special.Gamma(1+p[1]) * x**p[1]/p[0]**(1+p[1]) * numpy.exp(-(1+p[1])*x/p[0])
よろしくお願いします。