Я нахожусь в несколько неудачном положении, пытаясь преобразовать программу из глубин CERN ROOT в python. В ROOT-коде (CINT сам по себе является мерзостью imo) можно хранить математические функции как «строку» и передавать их в ROOT для подгонки, построения графика и т. Д. Из-за того, как ROOT определяет их как «строки».
В настоящий момент математические функции хранятся в простых текстовых файлах в виде строк, то есть
(1+[1])^(1+[1])/TMath::Gamma(1+[1]) * x^[1]/[0]^(1+[1]) * exp(-(1+[1])*x/[0])
, а затем извлекаются как строки C ++ при чтении в файл. Есть ли что-то подобное в питоне? Я знаю 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])
Заранее большое спасибо.