Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
CartesianMultifunc.hh
Go to the documentation of this file.
1 // -*- mode:c++;tab-width:2;indent-tabs-mode:t;show-trailing-whitespace:t;rm-trailing-spaces:t -*-
2 // vi: set ts=2 noet:
3 //
4 // (c) Copyright Rosetta Commons Member Institutions.
5 // (c) This file is part of the Rosetta software suite and is made available under license.
6 // (c) The Rosetta software is developed by the contributing members of the Rosetta Commons.
7 // (c) For more information, see http://www.rosettacommons.org. Questions about this can be
8 // (c) addressed to University of Washington UW TechTransfer, email: license@u.washington.edu.
9 
10 /// @file core/optimization/CartesianMultifunc.hh
11 /// @brief
12 /// @author Frank DiMaio
13 
14 
15 #ifndef INCLUDED_core_optimization_CartesianMultifunc_hh
16 #define INCLUDED_core_optimization_CartesianMultifunc_hh
17 
18 // Package headers
21 // AUTO-REMOVED #include <core/optimization/CartesianMinimizerMap.hh>
23 
24 // Project headers
25 #include <core/pose/Pose.fwd.hh>
27 
29 #include <utility/vector1.hh>
30 
31 
32 namespace core {
33 namespace optimization {
34 
35 /// @brief Atom tree multifunction class
36 class CartesianMultifunc : public Multifunc {
37 
38 public: // Creation
39 
40  // c-tor
42  pose::Pose & pose_in,
43  CartesianMinimizerMap & min_map_in,
44  scoring::ScoreFunction const & scorefxn_in,
45  bool const deriv_check_in = false,
46  bool const deriv_check_verbose_in = false
47  );
48 
49  /// @brief Destructor
50  virtual ~CartesianMultifunc();
51 
52 public: // Methods
53 
54  // func
55  virtual
56  Real
57  operator ()( Multivec const & vars ) const;
58 
59  // dfunc
60  virtual
61  void
62  dfunc( Multivec const & vars, Multivec & dE_dvars ) const;
63 
64  void set_deriv_check_result( NumericalDerivCheckResultOP deriv_check_result );
65 
66  /// @brief Error state reached -- derivative does not match gradient
67  virtual
68  void
69  dump( Multivec const & vars, Multivec const & vars2 ) const;
70 
71 protected: // accessors for subclasses
72  /// non-const since pose_ is modified by calls to operator()
73  pose::Pose & pose() const;
74 
75  CartesianMinimizerMap const & min_map() const;
76 
77  scoring::ScoreFunction const & score_function() const;
78 
79 private: // data
80 
81  /// non-const since pose_ is modified by calls to operator()
83 
84  /// non-const since min_map_ is modified by calls to dfunc()
86 
88 
92 
93 }; // CartesianMultifunc
94 
95 
96 } // namespace optimization
97 } // namespace core
98 
99 
100 #endif // INCLUDED_core_optimization_CartesianMultifunc_HH