gplib  1.0.0
C++ Gaussian Process Library
basic.hpp
Go to the documentation of this file.
1 #ifndef GPLIB_BASIC
2 #define GPLIB_BASIC
3 
4 /* Include the basic files for this machine learning library */
5 
6 #include <cmath>
7 #include <map>
8 #include <vector>
9 
10 namespace gplib {
11  //definition of basic constants
12  const double pi = std::acos(-1);
13 
14  arma::mat upper_triangular_inverse(const arma::mat &upper_t);
15 
21  arma::vec get_observed_only(const arma::vec &vec,
22  const std::vector<bool> &observed);
23 
28  void split_indices(const std::vector<bool> &predicates,
29  std::vector<arma::uword> &true_part,
30  std::vector<arma::uword> &false_part);
31 
35  bool all_true(const std::vector<bool> &vec);
36 
37 
41  bool check_symmetric(const arma::mat &A);
42 
47  arma::mat force_symmetric(const arma::mat &A);
48 
52  arma::mat force_diag(const arma::mat &A);
53 
57  arma::mat flatten(std::vector<arma::vec> &y);
58 
62  std::vector<double> flatten(std::vector<arma::mat> &M);
63 
68  std::vector<arma::mat> unflatten(std::vector<double> &M_params,
69  std::vector<arma::mat> &M);
70 
75  void split(const std::vector<double> &theta, std::vector<double> &kernel_params,
76  std::vector<double> &M_params);
77 };
78 
79 #endif
bool check_symmetric(const mat &A)
Definition: basic.cc:52
arma::vec get_observed_only(const arma::vec &vec, const vector< bool > &observed)
Takes a vector of real values and a boolean vector telling which dimensions are observed and returns ...
Definition: basic.cc:25
const double pi
Definition: basic.hpp:12
mat upper_triangular_inverse(const mat &upper_t)
Definition: basic.cc:7
mat force_symmetric(const mat &A)
Definition: basic.cc:62
Definition: basic.cc:6
void split(const vector< double > &theta, vector< double > &kernel_params, vector< double > &M_params)
Splits the params contained in 'theta' based on the size of kernel_params and M_params.
Definition: basic.cc:123
vector< mat > unflatten(vector< double > &M_params, vector< mat > &M)
Definition: basic.cc:109
void split_indices(const vector< bool > &predicates, vector< arma::uword > &true_part, vector< arma::uword > &false_part)
Splits the indices (zero indexed) on the ones where the pradicate is true and the part it is false...
Definition: basic.cc:34
mat force_diag(const mat &A)
Definition: basic.cc:66
bool all_true(const vector< bool > &vec)
Return true if all the values in the boolean vector are true.
Definition: basic.cc:45
mat flatten(vector< vec > &y)
Definition: basic.cc:87