3 #include <boost/math/special_functions/polygamma.hpp> 13 if (m_B1DerivativeFlag)
17 if (m_B1DerivativeFlag)
23 double gammaValue = boost::math::gamma_p_derivative(shape, t / scale) / scale;
25 return m_DerivativeEPGVectors[t][
m_EchoNumber] * gammaValue;
33 double internalTerm = (2.0 * std::log(t / scale) - 2.0 * boost::math::digamma(shape) + 1.0) / scale - t /
m_GammaVariance;
34 double derivativeGammaValue = internalTerm * boost::math::gamma_p_derivative(shape, t / scale) / scale;
unsigned int m_EchoNumber
EPGVectorsMapType & m_EPGVectors
Since boost Gauss Legendre integration works on object copies, we need to keep a reference to EPG vec...
virtual double operator()(double const t) override
anima::EPGSignalSimulator & m_EPGSimulator
EPG signal simulator reference: instantiated outside.
RealVectorType & GetValue(double t1Value, double t2Value, double flipAngle, double m0Value)
Get EPG values at given point.
RealVectorType & GetFADerivative()
Get EPG derivative values at same point that was used for getting EPG values. Requires a run of GetVa...