15 #ifndef MLPACK_CORE_UTIL_PARAM_HPP 16 #define MLPACK_CORE_UTIL_PARAM_HPP 22 class IncrementPolicy;
24 template<
typename PolicyType,
typename InputType>
39 #define JOIN(x, y) JOIN_AGAIN(x, y) 40 #define JOIN_AGAIN(x, y) x ## y 57 #define BINDING_NAME(NAME) static \ 58 mlpack::util::ProgramName \ 59 io_programname_dummy_object = mlpack::util::ProgramName(NAME); 76 #define BINDING_SHORT_DESC(SHORT_DESC) static \ 77 mlpack::util::ShortDescription \ 78 io_programshort_desc_dummy_object = mlpack::util::ShortDescription( \ 98 #define BINDING_LONG_DESC(LONG_DESC) static \ 99 mlpack::util::LongDescription \ 100 io_programlong_desc_dummy_object = mlpack::util::LongDescription( \ 101 []() { return std::string(LONG_DESC); }); 121 #define BINDING_EXAMPLE(EXAMPLE) static \ 122 mlpack::util::Example \ 123 JOIN(io_programexample_dummy_object_, __COUNTER__) = \ 124 mlpack::util::Example( \ 125 []() { return(std::string(EXAMPLE)); }); 127 #define BINDING_EXAMPLE(EXAMPLE) static \ 128 mlpack::util::Example \ 129 JOIN(JOIN(io_programexample_dummy_object_, __LINE__), opt) = \ 130 mlpack::util::Example( \ 131 []() { return(std::string(EXAMPLE)); }); 158 #define BINDING_SEE_ALSO(DESCRIPTION, LINK) static \ 159 mlpack::util::SeeAlso \ 160 JOIN(io_programsee_also_dummy_object_, __COUNTER__) = \ 161 mlpack::util::SeeAlso(DESCRIPTION, LINK); 163 #define BINDING_SEE_ALSO(DESCRIPTION, LINK) static \ 164 mlpack::util::SeeAlso \ 165 JOIN(JOIN(io_programsee_also_dummy_object_, __LINE__), opt) = \ 166 mlpack::util::SeeAlso(DESCRIPTION, LINK); 189 #define PARAM_FLAG(ID, DESC, ALIAS) \ 190 PARAM_IN(bool, ID, DESC, ALIAS, false, false); 217 #define PARAM_INT_IN(ID, DESC, ALIAS, DEF) \ 218 PARAM_IN(int, ID, DESC, ALIAS, DEF, false) 248 #define PARAM_INT_OUT(ID, DESC) \ 249 PARAM_OUT(int, ID, DESC, "", 0, false) 275 #define PARAM_DOUBLE_IN(ID, DESC, ALIAS, DEF) \ 276 PARAM_IN(double, ID, DESC, ALIAS, DEF, false) 306 #define PARAM_DOUBLE_OUT(ID, DESC) \ 307 PARAM_OUT(double, ID, DESC, "", 0.0, false) 335 #define PARAM_STRING_IN(ID, DESC, ALIAS, DEF) \ 336 PARAM_IN(std::string, ID, DESC, ALIAS, DEF, false) 367 #define PARAM_STRING_OUT(ID, DESC, ALIAS) \ 368 PARAM_OUT(std::string, ID, DESC, ALIAS, "", false) 395 #define PARAM_MATRIX_IN(ID, DESC, ALIAS) \ 396 PARAM_MATRIX(ID, DESC, ALIAS, false, true, true) 423 #define PARAM_MATRIX_IN_REQ(ID, DESC, ALIAS) \ 424 PARAM_MATRIX(ID, DESC, ALIAS, true, true, true) 456 #define PARAM_MATRIX_OUT(ID, DESC, ALIAS) \ 457 PARAM_MATRIX(ID, DESC, ALIAS, false, true, false) 485 #define PARAM_TMATRIX_IN(ID, DESC, ALIAS) \ 486 PARAM_MATRIX(ID, DESC, ALIAS, false, false, true) 515 #define PARAM_TMATRIX_IN_REQ(ID, DESC, ALIAS) \ 516 PARAM_MATRIX(ID, DESC, ALIAS, true, false, true) 550 #define PARAM_TMATRIX_OUT(ID, DESC, ALIAS) \ 551 PARAM_MATRIX(ID, DESC, ALIAS, false, false, false) 578 #define PARAM_UMATRIX_IN(ID, DESC, ALIAS) \ 579 PARAM_UMATRIX(ID, DESC, ALIAS, false, true, true) 607 #define PARAM_UMATRIX_IN_REQ(ID, DESC, ALIAS) \ 608 PARAM_UMATRIX(ID, DESC, ALIAS, true, true, true) 641 #define PARAM_UMATRIX_OUT(ID, DESC, ALIAS) \ 642 PARAM_UMATRIX(ID, DESC, ALIAS, false, true, false) 670 #define PARAM_COL_IN(ID, DESC, ALIAS) \ 671 PARAM_COL(ID, DESC, ALIAS, false, true, true) 698 #define PARAM_COL_IN_REQ(ID, DESC, ALIAS) \ 699 PARAM_COL(ID, DESC, ALIAS, true, true, true) 726 #define PARAM_ROW_IN(ID, DESC, ALIAS) \ 727 PARAM_ROW(ID, DESC, ALIAS, false, true, true) 754 #define PARAM_UCOL_IN(ID, DESC, ALIAS) \ 755 PARAM_UCOL(ID, DESC, ALIAS, false, true, true) 783 #define PARAM_UROW_IN(ID, DESC, ALIAS) \ 784 PARAM_UROW(ID, DESC, ALIAS, false, true, true) 816 #define PARAM_COL_OUT(ID, DESC, ALIAS) \ 817 PARAM_COL(ID, DESC, ALIAS, false, true, false) 849 #define PARAM_ROW_OUT(ID, DESC, ALIAS) \ 850 PARAM_ROW(ID, DESC, ALIAS, false, true, false) 882 #define PARAM_UCOL_OUT(ID, DESC, ALIAS) \ 883 PARAM_UCOL(ID, DESC, ALIAS, false, true, false) 915 #define PARAM_UROW_OUT(ID, DESC, ALIAS) \ 916 PARAM_UROW(ID, DESC, ALIAS, false, true, false) 942 #define PARAM_VECTOR_IN(T, ID, DESC, ALIAS) \ 943 PARAM_IN(std::vector, ID, DESC, ALIAS, std::vector(), false) 976 #define PARAM_VECTOR_OUT(T, ID, DESC, ALIAS) \ 977 PARAM_OUT(std::vector, ID, DESC, ALIAS, std::vector(), false) 1016 #define TUPLE_TYPE std::tuple 1017 #define PARAM_MATRIX_AND_INFO_IN(ID, DESC, ALIAS) \ 1018 PARAM_IN(TUPLE_TYPE, ID, DESC, ALIAS, TUPLE_TYPE(), false) 1048 #define PARAM_MODEL_IN(TYPE, ID, DESC, ALIAS) \ 1049 PARAM_MODEL(TYPE, ID, DESC, ALIAS, false, true) 1079 #define PARAM_MODEL_IN_REQ(TYPE, ID, DESC, ALIAS) \ 1080 PARAM_MODEL(TYPE, ID, DESC, ALIAS, true, true) 1104 #define PARAM_MODEL_OUT(TYPE, ID, DESC, ALIAS) \ 1105 PARAM_MODEL(TYPE, ID, DESC, ALIAS, false, false) 1129 #define PARAM_INT_IN_REQ(ID, DESC, ALIAS) \ 1130 PARAM_IN(int, ID, DESC, ALIAS, 0, true) 1154 #define PARAM_DOUBLE_IN_REQ(ID, DESC, ALIAS) \ 1155 PARAM_IN(double, ID, DESC, ALIAS, 0.0, true) 1179 #define PARAM_STRING_IN_REQ(ID, DESC, ALIAS) \ 1180 PARAM_IN(std::string, ID, DESC, ALIAS, "", true) 1206 #define PARAM_VECTOR_IN_REQ(T, ID, DESC, ALIAS) \ 1207 PARAM_IN(std::vector, ID, DESC, ALIAS, std::vector(), true); 1226 #define PARAM_IN(T, ID, DESC, ALIAS, DEF, REQ) \ 1227 static mlpack::util::Option \ 1228 JOIN(io_option_dummy_object_in_, __COUNTER__) \ 1229 (DEF, ID, DESC, ALIAS, #T, REQ, true, false, testName); 1231 #define PARAM_OUT(T, ID, DESC, ALIAS, DEF, REQ) \ 1232 static mlpack::util::Option \ 1233 JOIN(io_option_dummy_object_out_, __COUNTER__) \ 1234 (DEF, ID, DESC, ALIAS, #T, REQ, false, false, testName); 1236 #define PARAM_MATRIX(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1237 static mlpack::util::Option \ 1238 JOIN(io_option_dummy_matrix_, __COUNTER__) \ 1239 (arma::mat(), ID, DESC, ALIAS, "arma::mat", \ 1240 REQ, IN, !TRANS, testName); 1242 #define PARAM_UMATRIX(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1243 static mlpack::util::Option> \ 1244 JOIN(io_option_dummy_umatrix_, __COUNTER__) \ 1245 (arma::Mat(), ID, DESC, ALIAS, "arma::Mat", \ 1246 REQ, IN, !TRANS, testName); 1248 #define PARAM_COL(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1249 static mlpack::util::Option \ 1250 JOIN(io_option_dummy_col_, __COUNTER__) \ 1251 (arma::vec(), ID, DESC, ALIAS, "arma::vec", \ 1252 REQ, IN, !TRANS, testName); 1254 #define PARAM_UCOL(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1255 static mlpack::util::Option> \ 1256 JOIN(io_option_dummy_ucol_, __COUNTER__) \ 1257 (arma::Col(), ID, DESC, ALIAS, "arma::Col", \ 1258 REQ, IN, !TRANS, testName); 1260 #define PARAM_ROW(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1261 static mlpack::util::Option \ 1262 JOIN(io_option_dummy_row_, __COUNTER__) \ 1263 (arma::rowvec(), ID, DESC, ALIAS, "arma::rowvec", \ 1264 REQ, IN, !TRANS, testName); 1266 #define PARAM_UROW(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1267 static mlpack::util::Option> \ 1268 JOIN(io_option_dummy_urow_, __COUNTER__) \ 1269 (arma::Row(), ID, DESC, ALIAS, "arma::Row", \ 1270 REQ, IN, !TRANS, testName); 1274 #define PARAM_MODEL(TYPE, ID, DESC, ALIAS, REQ, IN) \ 1275 static mlpack::util::Option \ 1276 JOIN(io_option_dummy_model_, __COUNTER__) \ 1277 (nullptr, ID, DESC, ALIAS, #TYPE, REQ, IN, false, testName); 1283 #define PARAM_IN(T, ID, DESC, ALIAS, DEF, REQ) \ 1284 static mlpack::util::Option \ 1285 JOIN(JOIN(io_option_dummy_object_in_, __LINE__), opt) \ 1286 (DEF, ID, DESC, ALIAS, #T, REQ, true, false, testName); 1288 #define PARAM_OUT(T, ID, DESC, ALIAS, DEF, REQ) \ 1289 static mlpack::util::Option \ 1290 JOIN(JOIN(io_option_dummy_object_out_, __LINE__), opt) \ 1291 (DEF, ID, DESC, ALIAS, #T, REQ, false, false, testName); 1293 #define PARAM_MATRIX(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1294 static mlpack::util::Option \ 1295 JOIN(JOIN(io_option_dummy_object_matrix_, __LINE__), opt) \ 1296 (arma::mat(), ID, DESC, ALIAS, "arma::mat", REQ, IN, !TRANS, \ 1299 #define PARAM_UMATRIX(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1300 static mlpack::util::Option> \ 1301 JOIN(JOIN(io_option_dummy_object_umatrix_, __LINE__), opt) \ 1302 (arma::Mat(), ID, DESC, ALIAS, "arma::Mat", REQ, IN, \ 1305 #define PARAM_COL(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1306 static mlpack::util::Option \ 1307 JOIN(io_option_dummy_object_col_, __LINE__) \ 1308 (arma::vec(), ID, DESC, ALIAS, "arma::vec", REQ, IN, !TRANS, \ 1311 #define PARAM_UCOL(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1312 static mlpack::util::Option> \ 1313 JOIN(io_option_dummy_object_ucol_, __LINE__) \ 1314 (arma::Col(), ID, DESC, ALIAS, "arma::Col", REQ, IN, \ 1317 #define PARAM_ROW(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1318 static mlpack::util::Option \ 1319 JOIN(io_option_dummy_object_row_, __LINE__) \ 1320 (arma::rowvec(), ID, DESC, ALIAS, "arma::rowvec", REQ, IN, !TRANS, \ 1323 #define PARAM_UROW(ID, DESC, ALIAS, REQ, TRANS, IN) \ 1324 static mlpack::util::Option> \ 1325 JOIN(io_option_dummy_object_urow_, __LINE__) \ 1326 (arma::Row(), ID, DESC, ALIAS, "arma::Row", REQ, IN, \ 1329 #define PARAM_MODEL(TYPE, ID, DESC, ALIAS, REQ, IN) \ 1330 static mlpack::util::Option \ 1331 JOIN(JOIN(io_option_dummy_object_model_, __LINE__), opt) \ 1332 (nullptr, ID, DESC, ALIAS, #TYPE, REQ, IN, false, \ Linear algebra utility functions, generally performed on matrices or vectors.
DatasetMapper< data::IncrementPolicy > DatasetInfo