12 #ifndef MLPACK_BINDINGS_JULIA_GET_JULIA_TYPE_HPP
13 #define MLPACK_BINDINGS_JULIA_GET_JULIA_TYPE_HPP
25 const typename std::enable_if<!arma::is_arma_type<T>::value>::type* = 0,
26 const typename std::enable_if<!std::is_same<T,
27 std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0,
37 const typename std::enable_if<!arma::is_arma_type<bool>::value>::type*,
38 const typename std::enable_if<!std::is_same<
bool,
39 std::tuple<data::DatasetInfo, arma::mat>>::value>::type*,
49 const typename std::enable_if<!arma::is_arma_type<int>::value>::type*,
50 const typename std::enable_if<!std::is_same<
int,
51 std::tuple<data::DatasetInfo, arma::mat>>::value>::type*,
61 const typename std::enable_if<!arma::is_arma_type<size_t>::value>::type*,
62 const typename std::enable_if<!std::is_same<
size_t,
63 std::tuple<data::DatasetInfo, arma::mat>>::value>::type*,
73 const typename std::enable_if<!arma::is_arma_type<double>::value>::type*,
74 const typename std::enable_if<!std::is_same<
double,
75 std::tuple<data::DatasetInfo, arma::mat>>::value>::type*,
83 inline std::string GetJuliaType<std::string>(
85 const typename std::enable_if<
87 const typename std::enable_if<
88 !arma::is_arma_type<std::string>::value>::type*,
89 const typename std::enable_if<!std::is_same<std::string,
90 std::tuple<data::DatasetInfo, arma::mat>>::value>::type*,
91 const typename std::enable_if<
101 const typename std::enable_if<!std::is_same<T,
102 std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0,
103 const typename std::enable_if<!arma::is_arma_type<T>::value>::type* = 0)
105 return "Vector{" + GetJuliaType<typename T::value_type>(d) +
"}";
112 const typename std::enable_if<!std::is_same<T,
113 std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0,
114 const typename std::enable_if<arma::is_arma_type<T>::value>::type* = 0)
118 if (std::is_same<typename T::elem_type, size_t>::value)
119 return std::string(
"Array{Int, ") + (T::is_col || T::is_row ?
"1" :
"2")
122 return "Array{" + GetJuliaType<typename T::elem_type>(d) +
", "
123 + (T::is_col || T::is_row ?
"1" :
"2") +
"}";
129 const typename std::enable_if<std::is_same<T,
130 std::tuple<data::DatasetInfo, arma::mat>>::value>::type* = 0)
132 return "Tuple{Array{Bool, 1}, Array{Float64, 2}}";
140 const typename std::enable_if<!arma::is_arma_type<T>::value>::type* = 0,
146 std::ostringstream oss;