#ifndef PROBROSENBROCK_H
#define PROBROSENBROCK_H

/*!
\brief Test problem. 
Global minimum at (1,1) of 0.
 */
class probrosenbrock01
{
public:

  /** Testing: count the number of function evaluations. */
  uint counter;

  double *xi;

  probrosenbrock01()
    : counter(0), xi(new double[2]) {}

  /** Evaluate the function to be minimized. */
  void operator () 
  (
    double & fval 
  ) 
  {
    double a = 1.0-xi[0];
    double b = xi[1]-xi[0]*xi[0];
    fval = a*a + b*b*105.0;
  }

};


#endif



