У меня есть следующая функция, и я попытался избежать отрицательных значений, добавив оператор if, но это не помогло.... предложения о том, как я могу это исправить ...
double G(double S, double X, double r, double div, double k, double T)
{
double g=0;
g=Phi(d1(S,X,r,div,k,T))/(exp(-div*T)*S*k*sqrt(T));
if((isnan)(g) || (isinf)(g) || (g<0)) g=0;
return g;
}