Rosetta 3.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PcsDataLanthanide.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  /// @begin
11  ///
12  /// @file protocols/scoring/methods/pcs2/PcsDataLanthanide.hh
13  ///
14  /// @brief
15  ///
16  /// @detailed
17  ///
18  /// @param
19  ///
20  /// @return
21  ///
22  /// @remarks
23  ///
24  /// @references
25  ///
26  /// @authorsv Christophe Schmitz
27  ///
28  /// @last_modified February 2010
29  ////////////////////////////////////////////////
30 
31 #ifndef INCLUDED_protocols_scoring_methods_pcs2_PcsDataLanthanide_hh
32 #define INCLUDED_protocols_scoring_methods_pcs2_PcsDataLanthanide_hh
33 
34 
35 // Package headers
38 
39 // Project headers
40 #include <core/types.hh>
41 
42 // Utility headers
43 #include <utility/vector1.hh>
44 
45 // Basic headers
46 #include <basic/svd/SVD_Solver.hh>
47 
48 // ObjexxFCL headers
49 #include <ObjexxFCL/FArray2D.hh>
50 #include <ObjexxFCL/FArray1D.hh>
51 
52 // c++ headers
53 
54 //#define LOGPCS
55 
56 namespace protocols{
57 namespace scoring{
58 namespace methods{
59 namespace pcs2{
60 
62 private:
65 
67  utility::vector1<core::Size> A_index_; //index on the giant matrix A to build all the smalls matrix A_
68  //// ObjexxFCL::FArray2D< core::Real > fstyle_A_; //We are going to SVD Ax = b
69  //// ObjexxFCL::FArray1D< core::Real > fstyle_b_; //I should make this one const
73  basic::svd::SVD_Solver svd_s_;
74  core::Real normalization_1_; // SQRT(SUMi( PCS(calc,i)^2 ) )
75  core::Real normalization_2_; // Standard deviation
76  core::Real normalization_3_; // SQRT(SUMi( PCS(calc,i)^2 )/N )
80 
81 public:
82 
83 
84  void
86 
87  PcsDataLanthanide(); //construct
88 
89  ~PcsDataLanthanide(); //destruct
90 
91  PcsDataLanthanide(PcsDataLanthanide const &other); //copy
92 
94  operator=( PcsDataLanthanide const & other ); //=
95 
97 
98  /// @brief Set a value of the A_index_ vector
99  void
100  set_A_index(core::Size j, core::Size n_pcs_spin_);
101 
102  /// @brief update the A matrix given A_all matrix.
103  /// Dimensions of A_all >= dimension of A.
104  /// A_all is common to all the lanthanide sharing the same center
105  void
107 
108  /// @brief give me the weight associated with this PCS data
109  core::Real
110  get_weight() const;
111 
112  core::Real
113  get_individual_scale() const;
114 
115 
116  /// @brief give me the normalization factor associated with this PCS data
117  core::Real
118  get_normalization_factor() const;
119 
120  /// @brief give me the normalization factor associated with this PCS data
121  core::Real
123 
124 
125  /// @brief give me the filename associated with this PCS data
127  get_filename() const;
128 
129  /// @brief give me the number of PCS data
130  core::Size
131  get_n_pcs() const;
132 
133  /// @brief Give me the A_index_ vector
135  get_A_index() const;
136 
137  /// @brief return the b vector in FArray1D format
138  /*
139  ObjexxFCL::FArray1D< core::Real > const &
140  get_fstyle_b() const;
141 
142  ObjexxFCL::FArray2D< core::Real > const &
143  get_fstyle_A() const;
144  */
145 
147  get_cstyle_A() const;
148 
150  get_cstyle_b() const;
151 
154 
155  /// @Print me
156  friend
157  std::ostream &
158  operator << ( std::ostream& out, const PcsDataLanthanide &me );
159 
160  /// @This return the score and populate the PcsTensor with svd.
161  core::Real
163 
164  core::Real
166 
167 
168  /// @This populate the PcsTensor with svd.
169  void
171 
172  void
174 
175 
176  /*
177  core::Real
178  calculate_tensor_and_cost_with_svd_precalc(PcsTensor &pcs_t);
179  */
180 };
181 
182 bool
184 
185 
186 }//namespace pcs2
187 }//namespace methods
188 }//namespace scoring
189 }//namespace protocols
190 #endif