15 #ifndef MLPACK_CORE_UTIL_PARAM_HPP 16 #define MLPACK_CORE_UTIL_PARAM_HPP 22 class IncrementPolicy;
24 template<
typename PolicyType,
typename InputType>
27 using DatasetInfo = DatasetMapper<IncrementPolicy, std::string>;
45 #define SEE_ALSO(DESCRIPTION, LINK) {DESCRIPTION, LINK} 71 #define PROGRAM_INFO(NAME, SHORT_DESC, DESC, ...) \ 72 static mlpack::util::ProgramDoc \ 73 cli_programdoc_dummy_object = mlpack::util::ProgramDoc(NAME, SHORT_DESC, \ 74 []() { return DESC; }, { __VA_ARGS__ } ) 95 #define PARAM_FLAG(ID, DESC, ALIAS) \ 96 PARAM_IN(bool, ID, DESC, ALIAS, false, false); 122 #define PARAM_INT_IN(ID, DESC, ALIAS, DEF) \ 123 PARAM_IN(int, ID, DESC, ALIAS, DEF, false) 152 #define PARAM_INT_OUT(ID, DESC) \ 153 PARAM_OUT(int, ID, DESC, "", 0, false) 178 #define PARAM_DOUBLE_IN(ID, DESC, ALIAS, DEF) \ 179 PARAM_IN(double, ID, DESC, ALIAS, DEF, false) 208 #define PARAM_DOUBLE_OUT(ID, DESC) \ 209 PARAM_OUT(double, ID, DESC, "", 0.0, false) 235 #define PARAM_STRING_IN(ID, DESC, ALIAS, DEF) \ 236 PARAM_IN(std::string, ID, DESC, ALIAS, DEF, false) 266 #define PARAM_STRING_OUT(ID, DESC, ALIAS) \ 267 PARAM_OUT(std::string, ID, DESC, ALIAS, "", false) 294 #define PARAM_MATRIX_IN(ID, DESC, ALIAS) \ 295 PARAM_MATRIX(ID, DESC, ALIAS, false, true, true) 322 #define PARAM_MATRIX_IN_REQ(ID, DESC, ALIAS) \ 323 PARAM_MATRIX(ID, DESC, ALIAS, true, true, true) 355 #define PARAM_MATRIX_OUT(ID, DESC, ALIAS) \ 356 PARAM_MATRIX(ID, DESC, ALIAS, false, true, false) 384 #define PARAM_TMATRIX_IN(ID, DESC, ALIAS) \ 385 PARAM_MATRIX(ID, DESC, ALIAS, false, false, true) 414 #define PARAM_TMATRIX_IN_REQ(ID, DESC, ALIAS) \ 415 PARAM_MATRIX(ID, DESC, ALIAS, true, false, true) 449 #define PARAM_TMATRIX_OUT(ID, DESC, ALIAS) \ 450 PARAM_MATRIX(ID, DESC, ALIAS, false, false, false) 477 #define PARAM_UMATRIX_IN(ID, DESC, ALIAS) \ 478 PARAM_UMATRIX(ID, DESC, ALIAS, false, true, true) 506 #define PARAM_UMATRIX_IN_REQ(ID, DESC, ALIAS) \ 507 PARAM_UMATRIX(ID, DESC, ALIAS, true, true, true) 540 #define PARAM_UMATRIX_OUT(ID, DESC, ALIAS) \ 541 PARAM_UMATRIX(ID, DESC, ALIAS, false, true, false) 569 #define PARAM_COL_IN(ID, DESC, ALIAS) \ 570 PARAM_COL(ID, DESC, ALIAS, false, true, true) 597 #define PARAM_COL_IN_REQ(ID, DESC, ALIAS) \ 598 PARAM_COL(ID, DESC, ALIAS, true, true, true) 625 #define PARAM_ROW_IN(ID, DESC, ALIAS) \ 626 PARAM_ROW(ID, DESC, ALIAS, false, true, true) 653 #define PARAM_UCOL_IN(ID, DESC, ALIAS) \ 654 PARAM_UCOL(ID, DESC, ALIAS, false, true, true) 682 #define PARAM_UROW_IN(ID, DESC, ALIAS) \ 683 PARAM_UROW(ID, DESC, ALIAS, false, true, true) 715 #define PARAM_COL_OUT(ID, DESC, ALIAS) \ 716 PARAM_COL(ID, DESC, ALIAS, false, true, false) 748 #define PARAM_ROW_OUT(ID, DESC, ALIAS) \ 749 PARAM_ROW(ID, DESC, ALIAS, false, true, false) 781 #define PARAM_UCOL_OUT(ID, DESC, ALIAS) \ 782 PARAM_UCOL(ID, DESC, ALIAS, false, true, false) 814 #define PARAM_UROW_OUT(ID, DESC, ALIAS) \ 815 PARAM_UROW(ID, DESC, ALIAS, false, true, false) 840 #define PARAM_VECTOR_IN(T, ID, DESC, ALIAS) \ 841 PARAM_IN(std::vector<T>, ID, DESC, ALIAS, std::vector<T>(), false) 873 #define PARAM_VECTOR_OUT(T, ID, DESC, ALIAS) \ 874 PARAM_OUT(std::vector<T>, ID, DESC, ALIAS, std::vector<T>(), false) 912 #define TUPLE_TYPE std::tuple<mlpack::data::DatasetInfo, arma::mat> 913 #define PARAM_MATRIX_AND_INFO_IN(ID, DESC, ALIAS) \ 914 PARAM_IN(TUPLE_TYPE, ID, DESC, ALIAS, TUPLE_TYPE(), false) 944 #define PARAM_MODEL_IN(TYPE, ID, DESC, ALIAS) \ 945 PARAM_MODEL(TYPE, ID, DESC, ALIAS, false, true) 975 #define PARAM_MODEL_IN_REQ(TYPE, ID, DESC, ALIAS) \ 976 PARAM_MODEL(TYPE, ID, DESC, ALIAS, true, true) 1000 #define PARAM_MODEL_OUT(TYPE, ID, DESC, ALIAS) \ 1001 PARAM_MODEL(TYPE, ID, DESC, ALIAS, false, false) 1024 #define PARAM_INT_IN_REQ(ID, DESC, ALIAS) \ 1025 PARAM_IN(int, ID, DESC, ALIAS, 0, true) 1048 #define PARAM_DOUBLE_IN_REQ(ID, DESC, ALIAS) \ 1049 PARAM_IN(double, ID, DESC, ALIAS, 0.0, true) 1072 #define PARAM_STRING_IN_REQ(ID, DESC, ALIAS) \ 1073 PARAM_IN(std::string, ID, DESC, ALIAS, "", true) 1098 #define PARAM_VECTOR_IN_REQ(T, ID, DESC, ALIAS) \ 1099 PARAM_IN(std::vector<T>, ID, DESC, ALIAS, std::vector<T>(), true); 1108 #define JOIN(x, y) JOIN_AGAIN(x, y) 1109 #define JOIN_AGAIN(x, y) x ## y 1130 #define PARAM_IN(T, ID, DESC, ALIAS, DEF, REQ) \ 1131 static mlpack::util::Option<T> \ 1132 JOIN(cli_option_dummy_object_in_, __COUNTER__) \ 1133 (DEF, ID, DESC, ALIAS, #T, REQ, true, false, testName); 1135 #define PARAM_OUT(T, ID, DESC, ALIAS, DEF, REQ) \ 1136 static mlpack::util::Option<T> \ 1137 JOIN(cli_option_dummy_object_out_, __COUNTER__) \ 1138 (DEF, ID, DESC, ALIAS, #T, REQ, false, false, testName); 1140 #define PARAM_MATRIX(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1141 static mlpack::util::Option<arma::mat> \ 1142 JOIN(cli_option_dummy_matrix_, __COUNTER__) \ 1143 (arma::mat(), ID, DESC, ALIAS, "arma::mat", \ 1144 REQ, IN, !TRANS, testName); 1146 #define PARAM_UMATRIX(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1147 static mlpack::util::Option<arma::Mat<size_t>> \ 1148 JOIN(cli_option_dummy_umatrix_, __COUNTER__) \ 1149 (arma::Mat<size_t>(), ID, DESC, ALIAS, "arma::Mat<size_t>", \ 1150 REQ, IN, !TRANS, testName); 1152 #define PARAM_COL(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1153 static mlpack::util::Option<arma::vec> \ 1154 JOIN(cli_option_dummy_col_, __COUNTER__) \ 1155 (arma::vec(), ID, DESC, ALIAS, "arma::vec", \ 1156 REQ, IN, !TRANS, testName); 1158 #define PARAM_UCOL(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1159 static mlpack::util::Option<arma::Col<size_t>> \ 1160 JOIN(cli_option_dummy_ucol_, __COUNTER__) \ 1161 (arma::Col<size_t>(), ID, DESC, ALIAS, "arma::Col<size_t>", \ 1162 REQ, IN, !TRANS, testName); 1164 #define PARAM_ROW(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1165 static mlpack::util::Option<arma::rowvec> \ 1166 JOIN(cli_option_dummy_row_, __COUNTER__) \ 1167 (arma::rowvec(), ID, DESC, ALIAS, "arma::rowvec", \ 1168 REQ, IN, !TRANS, testName); 1170 #define PARAM_UROW(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1171 static mlpack::util::Option<arma::Row<size_t>> \ 1172 JOIN(cli_option_dummy_urow_, __COUNTER__) \ 1173 (arma::Row<size_t>(), ID, DESC, ALIAS, "arma::Row<size_t>", \ 1174 REQ, IN, !TRANS, testName); 1178 #define PARAM_MODEL(TYPE, ID, DESC, ALIAS, REQ, IN) \ 1179 static mlpack::util::Option<TYPE*> \ 1180 JOIN(cli_option_dummy_model_, __COUNTER__) \ 1181 (nullptr, ID, DESC, ALIAS, #TYPE, REQ, IN, false, testName); 1187 #define PARAM_IN(T, ID, DESC, ALIAS, DEF, REQ) \ 1188 static mlpack::util::Option<T> \ 1189 JOIN(JOIN(cli_option_dummy_object_in_, __LINE__), opt) \ 1190 (DEF, ID, DESC, ALIAS, #T, REQ, true, false, testName); 1192 #define PARAM_OUT(T, ID, DESC, ALIAS, DEF, REQ) \ 1193 static mlpack::util::Option<T> \ 1194 JOIN(JOIN(cli_option_dummy_object_out_, __LINE__), opt) \ 1195 (DEF, ID, DESC, ALIAS, #T, REQ, false, false, testName); 1197 #define PARAM_MATRIX(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1198 static mlpack::util::Option<arma::mat> \ 1199 JOIN(JOIN(cli_option_dummy_object_matrix_, __LINE__), opt) \ 1200 (arma::mat(), ID, DESC, ALIAS, "arma::mat", REQ, IN, !TRANS, \ 1203 #define PARAM_UMATRIX(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1204 static mlpack::util::Option<arma::Mat<size_t>> \ 1205 JOIN(JOIN(cli_option_dummy_object_umatrix_, __LINE__), opt) \ 1206 (arma::Mat<size_t>(), ID, DESC, ALIAS, "arma::Mat<size_t>", REQ, IN, \ 1209 #define PARAM_COL(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1210 static mlpack::util::Option<arma::vec> \ 1211 JOIN(cli_option_dummy_object_col_, __LINE__) \ 1212 (arma::vec(), ID, DESC, ALIAS, "arma::vec", REQ, IN, !TRANS, \ 1215 #define PARAM_UCOL(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1216 static mlpack::util::Option<arma::Col<size_t>> \ 1217 JOIN(cli_option_dummy_object_ucol_, __LINE__) \ 1218 (arma::Col<size_t>(), ID, DESC, ALIAS, "arma::Col<size_t>", REQ, IN, \ 1221 #define PARAM_ROW(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1222 static mlpack::util::Option<arma::rowvec> \ 1223 JOIN(cli_option_dummy_object_row_, __LINE__) \ 1224 (arma::rowvec(), ID, DESC, ALIAS, "arma::rowvec", REQ, IN, !TRANS, \ 1227 #define PARAM_UROW(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1228 static mlpack::util::Option<arma::Row<size_t>> \ 1229 JOIN(cli_option_dummy_object_urow_, __LINE__) \ 1230 (arma::Row<size_t>(), ID, DESC, ALIAS, "arma::Row<size_t>", REQ, IN, \ 1233 #define PARAM_MODEL(TYPE, ID, DESC, ALIAS, REQ, IN) \ 1234 static mlpack::util::Option<TYPE*> \ 1235 JOIN(JOIN(cli_option_dummy_object_model_, __LINE__), opt) \ 1236 (nullptr, ID, DESC, ALIAS, #TYPE, REQ, IN, false, \ Linear algebra utility functions, generally performed on matrices or vectors.
DatasetMapper< data::IncrementPolicy > DatasetInfo