MLPACK  1.0.11
radical.hpp
Go to the documentation of this file.
1 
24 #ifndef __MLPACK_METHODS_RADICAL_RADICAL_HPP
25 #define __MLPACK_METHODS_RADICAL_RADICAL_HPP
26 
27 #include <mlpack/core.hpp>
28 
29 namespace mlpack {
30 namespace radical {
31 
53 class Radical
54 {
55  public:
69  Radical(const double noiseStdDev = 0.175,
70  const size_t replicates = 30,
71  const size_t angles = 150,
72  const size_t sweeps = 0,
73  const size_t m = 0);
74 
84  void DoRadical(const arma::mat& matX, arma::mat& matY, arma::mat& matW);
85 
92  double Vasicek(arma::vec& x) const;
93 
99  void CopyAndPerturb(arma::mat& xNew, const arma::mat& x) const;
100 
102  double DoRadical2D(const arma::mat& matX);
103 
105  double NoiseStdDev() const { return noiseStdDev; }
107  double& NoiseStdDev() { return noiseStdDev; }
108 
110  size_t Replicates() const { return replicates; }
112  size_t& Replicates() { return replicates; }
113 
115  size_t Angles() const { return angles; }
117  size_t& Angles() { return angles; }
118 
120  size_t Sweeps() const { return sweeps; }
122  size_t& Sweeps() { return sweeps; }
123 
124  // Returns a string representation of this object.
125  std::string ToString() const;
126 
127  private:
130  double noiseStdDev;
131 
133  size_t replicates;
134 
136  size_t angles;
137 
140  size_t sweeps;
141 
143  size_t m;
144 
146  arma::mat perturbed;
148  arma::mat candidate;
149 };
150 
151 void WhitenFeatureMajorMatrix(const arma::mat& matX,
152  arma::mat& matXWhitened,
153  arma::mat& matWhitening);
154 
155 }; // namespace radical
156 }; // namespace mlpack
157 
158 #endif