I had problems with this , but now it somehow works.
Now I have a problem. I need to bind values to a member function before I call boost :: bisect with the same function. I found a pretty good tutorial and I followed it, but it seems like I'm still doing something wrong.
First I created a test class, where I got the following work:
std::pair<double, double> result = bisect(&Func, 0.0, 1.0, TerminationCondition());
double root = (result.first + result.second) / 2;
After that, I added the snap "on the fly, as I thought it might work"
std::pair<double, double> result = bisect(boost::bind(&CLASS::Function,this, _1), 0.0, 1.000000, TerminationCondition());
The result of this was a mistake. Error: ending the call after calling the instance "boost :: exception_detail :: clone_impl>" what (): Error in the function boost :: math :: tools :: bisect: Without changing the sign in boost :: math :: tools :: bisect, either there is no root to search, or in the interval there are several roots (f (min) = -0.003291672909090909091).
In any case, there is a :: function class, which for some reason does not work as a member function with a binding. I tested it as a non-member and it works
double CLASS::Function(double c)
{
normal norm;
double temp = m_d*sqrt(c);
double total = ((1-boost::math::pdf(norm,(m_a*c+m_b)/temp))-(1 - m_c)+boost::math::pdf(norm,(m_a*c+m_b)/temp));
return (total - m_minus);
}