12 #ifndef MLPACK_BINDINGS_JULIA_GET_JULIA_TYPE_HPP
13 #define MLPACK_BINDINGS_JULIA_GET_JULIA_TYPE_HPP
24 const typename std::enable_if<!arma::is_arma_type<T>::value>::type* = 0,
25 const typename std::enable_if<!std::is_same<T,
26 std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0,
34 const typename std::enable_if<!util::IsStdVector<bool>::value>::type*,
35 const typename std::enable_if<!arma::is_arma_type<bool>::value>::type*,
36 const typename std::enable_if<!std::is_same<bool,
37 std::tuple<data::DatasetInfo, arma::mat>>::value>::type*,
38 const typename std::enable_if<!data::HasSerialize<bool>::value>::type*)
45 const typename std::enable_if<!util::IsStdVector<int>::value>::type*,
46 const typename std::enable_if<!arma::is_arma_type<int>::value>::type*,
47 const typename std::enable_if<!std::is_same<int,
48 std::tuple<data::DatasetInfo, arma::mat>>::value>::type*,
49 const typename std::enable_if<!data::HasSerialize<int>::value>::type*)
56 const typename std::enable_if<!util::IsStdVector<size_t>::value>::type*,
57 const typename std::enable_if<!arma::is_arma_type<size_t>::value>::type*,
58 const typename std::enable_if<!std::is_same<size_t,
59 std::tuple<data::DatasetInfo, arma::mat>>::value>::type*,
60 const typename std::enable_if<!data::HasSerialize<size_t>::value>::type*)
67 const typename std::enable_if<!util::IsStdVector<double>::value>::type*,
68 const typename std::enable_if<!arma::is_arma_type<double>::value>::type*,
69 const typename std::enable_if<!std::is_same<double,
70 std::tuple<data::DatasetInfo, arma::mat>>::value>::type*,
71 const typename std::enable_if<!data::HasSerialize<double>::value>::type*)
79 const typename std::enable_if<
81 const typename std::enable_if<
82 !arma::is_arma_type<std::string>::value>::type*,
83 const typename std::enable_if<!std::is_same<
std::string,
84 std::tuple<data::DatasetInfo, arma::mat>>::value>::type*,
85 const typename std::enable_if<
94 const typename std::enable_if<!std::is_same<T,
95 std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0,
96 const typename std::enable_if<!arma::is_arma_type<T>::value>::type* = 0)
98 return "Vector{" + GetJuliaType<typename T::value_type>() +
"}";
104 const typename std::enable_if<!std::is_same<T,
105 std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0,
106 const typename std::enable_if<arma::is_arma_type<T>::value>::type* = 0)
110 if (std::is_same<typename T::elem_type, size_t>::value)
111 return std::string(
"Array{Int, ") + (T::is_col || T::is_row ?
"1" :
"2")
114 return "Array{" + GetJuliaType<typename T::elem_type>() +
", "
115 + (T::is_col || T::is_row ?
"1" :
"2") +
"}";
120 const typename std::enable_if<std::is_same<T,
121 std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0)
123 return "Tuple{Array{Bool, 1}, Array{Float64, 2}}";
130 const typename std::enable_if<!arma::is_arma_type<T>::value>::type* = 0,
134 return "Ptr{Nothing}";
std::string GetJuliaType< bool >(const typename std::enable_if<!util::IsStdVector< 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 *, const typename std::enable_if<!data::HasSerialize< bool >::value >::type *)
std::string GetJuliaType< int >(const typename std::enable_if<!util::IsStdVector< 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 *, const typename std::enable_if<!data::HasSerialize< int >::value >::type *)
The core includes that mlpack expects; standard C++ includes and Armadillo.
std::string GetJuliaType< double >(const typename std::enable_if<!util::IsStdVector< 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 *, const typename std::enable_if<!data::HasSerialize< double >::value >::type *)
Metaprogramming structure for vector detection.
std::string GetJuliaType< size_t >(const typename std::enable_if<!util::IsStdVector< 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 *, const typename std::enable_if<!data::HasSerialize< size_t >::value >::type *)
std::string GetJuliaType(const typename std::enable_if<!util::IsStdVector< 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, const typename std::enable_if<!data::HasSerialize< T >::value >::type *=0)
string(REGEX REPLACE".*#define MLPACK_VERSION_MINOR ([0-9]+).*""\\1"MLPACK_VERSION_MINOR"${VERSION_HPP_CONTENTS}") string(REGEX REPLACE".* "\\1" MLPACK_VERSION_PATCH "$