INMOST
A toolkit for distributed mathematical modeling
inmost_nonlinear.h
1 #ifndef INMOST_NONLINEAR_INCLUDED
2 #define INMOST_NONLINEAR_INCLUDED
3 
4 #include "inmost_common.h"
5 #include "inmost_autodiff.h"
6 
7 #if defined(USE_NONLINEAR)
8 namespace INMOST
9 {
10 
11  typedef INMOST_DATA_BULK_TYPE RequestedAction;
12 
13  static const RequestedAction COMPUTE_FUNCTION = 0x01;
14  static const RequestedAction COMPUTE_JACOBIAN = 0x02;
15  static const RequestedAction COMPUTE_HESSIAN = 0x04;
16  static const RequestedAction FINISHED = 0x08;
17 
19  {
20  //Automatizator & aut;
21  public:
22  //NonlinearSolver(Automatizator & aut) : aut(aut) {}
23  NonlinearSolver() {}
24  NonlinearSolver(const NonlinearSolver & b) /*: aut(b.aut)*/ {(void)b;}
25  NonlinearSolver & operator =(NonlinearSolver const & b) {(void)b;/*aut = b.aut;*/ return *this;}
26  ~NonlinearSolver() {}
27 
28  RequestedAction GetAction() const;
29  INMOST_DATA_REAL_TYPE GetResidual() const;
30  INMOST_DATA_ENUM_TYPE GetIterations() const;
31  std::string GetReason() const;
32  };
33 
34 }
35 #endif
36 
37 #endif //INMOST_NONLINEAR_INCLUDED