HalleyChebyAD
 All Classes Files Functions Variables Friends
ConjugateGradients.h
1 #include <adolc/adolc.h>
2 #include "SimpleVector.hpp"
3 
4 template < class Vector>
6  public:
7  enum { BELOW_TOLERANCE, REACHED_MAX_ITER, NOT_FINISHED, NEGATIVE_CURVATURE, ZERO_CURVATURE };
8  string EnumStrings[5]; // = { "REACHED_MAX_ITER", "BELOW_TOLERANCE", "NOT_FINISHED"};
9  string getTextForEnum( int enumVal )
10  {
11  return EnumStrings[enumVal];
12  }
13  int iterations;
14  const int max_iterations;
15  double tol;
16  double resid;
17  Vector x;
18  ConjugateGradients(const int _max_iterations, const double _tol, const Vector &Ax, const Vector &_x,const Vector &b, Vector &p, bool print_system_solve);
20  int step(Vector &Ax, Vector &p);
21  void print();
22  void activate_printing(bool b);
23  int get_state() const{ return(state);}
24  private:
25  ConjugateGradients( ConjugateGradients& other ); //Prohibit copy construct.
26  int state;
27  int print_multiple;
28  int print_count;
29  bool print_on;
30  double normr0;
31  Vector b;
32  Vector r;
33  Vector temp;
34 };
35 
Definition: ConjugateGradients.h:5