get_printable_type.hpp
Go to the documentation of this file.
1 
13 #ifndef MLPACK_BINDINGS_R_GET_PRINTABLE_TYPE_HPP
14 #define MLPACK_BINDINGS_R_GET_PRINTABLE_TYPE_HPP
15 
16 #include <mlpack/prereqs.hpp>
18 
19 namespace mlpack {
20 namespace bindings {
21 namespace r {
22 
23 template<typename T>
24 inline std::string GetPrintableType(
25  util::ParamData& /* d */,
26  const typename std::enable_if<!util::IsStdVector<T>::value>::type* = 0,
27  const typename std::enable_if<!data::HasSerialize<T>::value>::type* = 0,
28  const typename std::enable_if<!arma::is_arma_type<T>::value>::type* = 0,
29  const typename std::enable_if<!std::is_same<T,
30  std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0);
31 
32 template<>
33 inline std::string GetPrintableType<int>(
34  util::ParamData& /* d */,
35  const typename std::enable_if<!util::IsStdVector<int>::value>::type*,
36  const typename std::enable_if<!data::HasSerialize<int>::value>::type*,
37  const typename std::enable_if<!arma::is_arma_type<int>::value>::type*,
38  const typename std::enable_if<!std::is_same<int,
39  std::tuple<data::DatasetInfo, arma::mat>>::value>::type*);
40 
41 template<>
42 inline std::string GetPrintableType<double>(
43  util::ParamData& /* d */,
44  const typename std::enable_if<!util::IsStdVector<double>::value>::type*,
45  const typename std::enable_if<!data::HasSerialize<double>::value>::type*,
46  const typename std::enable_if<!arma::is_arma_type<double>::value>::type*,
47  const typename std::enable_if<!std::is_same<double,
48  std::tuple<data::DatasetInfo, arma::mat>>::value>::type*);
49 
50 template<>
51 inline std::string GetPrintableType<std::string>(
52  util::ParamData& /* d */,
53  const typename std::enable_if<
55  const typename std::enable_if<
57  const typename std::enable_if<
58  !arma::is_arma_type<std::string>::value>::type*,
59  const typename std::enable_if<
60  !std::is_same<std::string,
61  std::tuple<data::DatasetInfo, arma::mat>>::value>::type*);
62 
63 template<>
64 inline std::string GetPrintableType<size_t>(
65  util::ParamData& /* d */,
66  const typename std::enable_if<!util::IsStdVector<size_t>::value>::type*,
67  const typename std::enable_if<!data::HasSerialize<size_t>::value>::type*,
68  const typename std::enable_if<!arma::is_arma_type<size_t>::value>::type*,
69  const typename std::enable_if<!std::is_same<size_t,
70  std::tuple<data::DatasetInfo, arma::mat>>::value>::type*);
71 
72 template<>
73 inline std::string GetPrintableType<bool>(
74  util::ParamData& /* d */,
75  const typename std::enable_if<!util::IsStdVector<bool>::value>::type*,
76  const typename std::enable_if<!data::HasSerialize<bool>::value>::type*,
77  const typename std::enable_if<!arma::is_arma_type<bool>::value>::type*,
78  const typename std::enable_if<!std::is_same<bool,
79  std::tuple<data::DatasetInfo, arma::mat>>::value>::type*);
80 
81 template<typename T>
82 inline std::string GetPrintableType(
83  util::ParamData& d,
84  const typename std::enable_if<util::IsStdVector<T>::value>::type* = 0,
85  const typename std::enable_if<!std::is_same<T,
86  std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0);
87 
88 template<typename T>
89 inline std::string GetPrintableType(
90  util::ParamData& /* d */,
91  const typename std::enable_if<arma::is_arma_type<T>::value>::type* = 0,
92  const typename std::enable_if<!std::is_same<T,
93  std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0);
94 
95 template<typename T>
96 inline std::string GetPrintableType(
97  util::ParamData& /* d */,
98  const typename std::enable_if<std::is_same<T,
99  std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0);
100 
101 template<typename T>
102 inline std::string GetPrintableType(
103  util::ParamData& d,
104  const typename std::enable_if<!arma::is_arma_type<T>::value>::type* = 0,
105  const typename std::enable_if<data::HasSerialize<T>::value>::type* = 0,
106  const typename std::enable_if<!std::is_same<T,
107  std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0);
108 
109 template<typename T>
110 void GetPrintableType(util::ParamData& d,
111  const void* /* input */,
112  void* output)
113 {
114  *((std::string*) output) =
115  GetPrintableType<typename std::remove_pointer<T>::type>(d);
116 }
117 
118 } // namespace r
119 } // namespace bindings
120 } // namespace mlpack
121 
122 #include "get_printable_type_impl.hpp"
123 
124 #endif
static const bool value
Linear algebra utility functions, generally performed on matrices or vectors.
std::string GetPrintableType< int >(util::ParamData &, const typename std::enable_if<!util::IsStdVector< int >::value >::type *, const typename std::enable_if<!data::HasSerialize< int >::value >::type *, const typename std::enable_if<!arma::is_arma_type< int >::value >::type *, const typename std::enable_if<!std::is_same< int, std::tuple< data::DatasetInfo, arma::mat >>::value >::type *)
The core includes that mlpack expects; standard C++ includes and Armadillo.
std::string GetPrintableType< bool >(util::ParamData &, const typename std::enable_if<!util::IsStdVector< bool >::value >::type *, const typename std::enable_if<!data::HasSerialize< bool >::value >::type *, const typename std::enable_if<!arma::is_arma_type< bool >::value >::type *, const typename std::enable_if<!std::is_same< bool, std::tuple< data::DatasetInfo, arma::mat >>::value >::type *)
std::string GetPrintableType< double >(util::ParamData &, const typename std::enable_if<!util::IsStdVector< double >::value >::type *, const typename std::enable_if<!data::HasSerialize< double >::value >::type *, const typename std::enable_if<!arma::is_arma_type< double >::value >::type *, const typename std::enable_if<!std::is_same< double, std::tuple< data::DatasetInfo, arma::mat >>::value >::type *)
std::string GetPrintableType< size_t >(util::ParamData &, const typename std::enable_if<!util::IsStdVector< size_t >::value >::type *, const typename std::enable_if<!data::HasSerialize< size_t >::value >::type *, const typename std::enable_if<!arma::is_arma_type< size_t >::value >::type *, const typename std::enable_if<!std::is_same< size_t, std::tuple< data::DatasetInfo, arma::mat >>::value >::type *)
std::string GetPrintableType(util::ParamData &, const typename std::enable_if<!util::IsStdVector< T >::value >::type *=0, const typename std::enable_if<!data::HasSerialize< T >::value >::type *=0, const typename std::enable_if<!arma::is_arma_type< T >::value >::type *=0, const typename std::enable_if<!std::is_same< T, std::tuple< data::DatasetInfo, arma::mat >>::value >::type *=0)