0

I am trying to use the Boost bisection method described here.

I have seen a couple of examples of how to get this to work, e.g. How to use boost bisection?, but I don't understand how to apply these to my particular set-up.

Here is a sketch of some code that illustrates what I am trying to do.

class Model {
    double b;
    double root;
public:
    double func(double x, double c);
    void solve(void);
};


double Model::func(double x, double c) {
    return (x*x*x + (b*x) + c);
}

void Model::solve(void) {

    double c;

    b = 2.;
    c = 1.;

    // root = bisect(func(), from, to, ...);
    // where the first argument to func() is what we want to find the root over
    // and the second argument to func() is c

}

int main(void) {
    Model model;
    model.solve();
}

The member function solve() needs to find the root of the member function func(). func() has two important features:

  1. It relies on the class attribute b
  2. It has a second argument c that is determined in solve(). I want to hold this second argument fixed when finding the root

How would I implement the Boost bisection method in this context? This answer seems to suggest that boost::bind might solve part of the problem but I don't understand enough of it to know how to apply it to my problem.

Community
  • 1
  • 1
jms202
  • 51
  • 1
  • 3

0 Answers0