15 #ifndef MLPACK_CORE_UTIL_PARAM_HPP 16 #define MLPACK_CORE_UTIL_PARAM_HPP 22 class IncrementPolicy;
24 template<
typename PolicyType>
49 #define PROGRAM_INFO(NAME, DESC) static mlpack::util::ProgramDoc \ 50 cli_programdoc_dummy_object = mlpack::util::ProgramDoc(NAME, DESC); 69 #define PARAM_FLAG(ID, DESC, ALIAS) \ 70 PARAM_IN(bool, ID, DESC, ALIAS, false, false); 93 #define PARAM_INT_IN(ID, DESC, ALIAS, DEF) \ 94 PARAM_IN(int, ID, DESC, ALIAS, DEF, false) 121 #define PARAM_INT_OUT(ID, DESC) \ 122 PARAM_IN(int, ID, DESC, "", 0, false) 145 #define PARAM_DOUBLE_IN(ID, DESC, ALIAS, DEF) \ 146 PARAM_IN(double, ID, DESC, ALIAS, DEF, false) 173 #define PARAM_DOUBLE_OUT(ID, DESC) \ 174 PARAM_OUT(double, ID, DESC, "", 0.0, false) 198 #define PARAM_STRING_IN(ID, DESC, ALIAS, DEF) \ 199 PARAM_IN(std::string, ID, DESC, ALIAS, DEF, false) 227 #define PARAM_STRING_OUT(ID, DESC, ALIAS) \ 228 PARAM_OUT(std::string, ID, DESC, ALIAS, "", false) 253 #define PARAM_MATRIX_IN(ID, DESC, ALIAS) \ 254 PARAM_MATRIX(ID, DESC, ALIAS, false, true, true) 279 #define PARAM_MATRIX_IN_REQ(ID, DESC, ALIAS) \ 280 PARAM_MATRIX(ID, DESC, ALIAS, true, true, true) 310 #define PARAM_MATRIX_OUT(ID, DESC, ALIAS) \ 311 PARAM_MATRIX(ID, DESC, ALIAS, false, true, false) 337 #define PARAM_TMATRIX_IN(ID, DESC, ALIAS) \ 338 PARAM_MATRIX(ID, DESC, ALIAS, false, false, true) 365 #define PARAM_TMATRIX_IN_REQ(ID, DESC, ALIAS) \ 366 PARAM_MATRIX(ID, DESC, ALIAS, true, false, true) 398 #define PARAM_TMATRIX_OUT(ID, DESC, ALIAS) \ 399 PARAM_MATRIX(ID, DESC, ALIAS, false, false, false) 424 #define PARAM_UMATRIX_IN(ID, DESC, ALIAS) \ 425 PARAM_UMATRIX(ID, DESC, ALIAS, false, true, true) 451 #define PARAM_UMATRIX_IN_REQ(ID, DESC, ALIAS) \ 452 PARAM_UMATRIX(ID, DESC, ALIAS, true, true, true) 483 #define PARAM_UMATRIX_OUT(ID, DESC, ALIAS) \ 484 PARAM_UMATRIX(ID, DESC, ALIAS, false, true, false) 507 #define PARAM_VECTOR_IN(T, ID, DESC, ALIAS) \ 508 PARAM_IN(std::vector<T>, ID, DESC, ALIAS, std::vector<T>(), false) 536 #define PARAM_VECTOR_OUT(T, ID) \ 537 PARAM_OUT(std::vector<T>, ID, DESC, "", std::vector<T>(), false) 573 #define TUPLE_TYPE std::tuple<mlpack::data::DatasetInfo, arma::mat> 574 #define PARAM_MATRIX_AND_INFO_IN(ID, DESC, ALIAS) \ 575 PARAM_IN(TUPLE_TYPE, ID, DESC, ALIAS, TUPLE_TYPE(), false) 606 #define PARAM_MODEL_IN(TYPE, ID, DESC, ALIAS) \ 607 PARAM_MODEL(TYPE, ID, DESC, ALIAS, false, true) 638 #define PARAM_MODEL_IN_REQ(TYPE, ID, DESC, ALIAS) \ 639 PARAM_MODEL(TYPE, ID, DESC, ALIAS, true, true) 661 #define PARAM_MODEL_OUT(TYPE, ID, DESC, ALIAS) \ 662 PARAM_MODEL(TYPE, ID, DESC, ALIAS, false, false) 683 #define PARAM_INT_IN_REQ(ID, DESC, ALIAS) \ 684 PARAM_IN(int, ID, DESC, ALIAS, 0, true) 705 #define PARAM_DOUBLE_IN_REQ(ID, DESC, ALIAS) \ 706 PARAM_IN(double, ID, DESC, ALIAS, 0.0d, true) 727 #define PARAM_STRING_IN_REQ(ID, DESC, ALIAS) \ 728 PARAM_IN(std::string, ID, DESC, ALIAS, "", true) 750 #define PARAM_VECTOR_IN_REQ(T, ID, DESC, ALIAS) \ 751 PARAM_IN(std::vector<T>, ID, DESC, ALIAS, std::vector<T>(), true); 760 #define JOIN(x, y) JOIN_AGAIN(x, y) 761 #define JOIN_AGAIN(x, y) x ## y 779 #define PARAM_IN(T, ID, DESC, ALIAS, DEF, REQ) \ 780 static mlpack::util::Option<T> \ 781 JOIN(cli_option_dummy_object_in_, __COUNTER__) \ 782 (DEF, ID, DESC, ALIAS, REQ, true, false); 784 #define PARAM_OUT(T, ID, DESC, ALIAS, DEF, REQ) \ 785 static mlpack::util::Option<T> \ 786 JOIN(cli_option_dummy_object_out_, __COUNTER__) \ 787 (DEF, ID, DESC, ALIAS, REQ, false, false); 789 #define PARAM_MATRIX(ID, DESC, ALIAS, REQ, TRANS, IN) \ 790 static mlpack::util::Option<arma::mat> \ 791 JOIN(cli_option_dummy_matrix_, __COUNTER__) \ 792 (arma::mat(), ID, DESC, ALIAS, REQ, IN, !TRANS); 794 #define PARAM_UMATRIX(ID, DESC, ALIAS, REQ, TRANS, IN) \ 795 static mlpack::util::Option<arma::Mat<size_t>> \ 796 JOIN(cli_option_dummy_umatrix_, __COUNTER__) \ 797 (arma::Mat<size_t>(), ID, DESC, ALIAS, REQ, IN, !TRANS); 801 #define PARAM_MODEL(TYPE, ID, DESC, ALIAS, REQ, IN) \ 802 static mlpack::util::Option<TYPE> \ 803 JOIN(cli_option_dummy_model_, __COUNTER__) \ 804 (TYPE(), ID, DESC, ALIAS, REQ, IN); 810 #define PARAM_IN(T, ID, DESC, ALIAS, DEF, REQ) \ 811 static mlpack::util::Option<T> \ 812 JOIN(JOIN(cli_option_dummy_object_in_, __LINE__), opt) \ 813 (DEF, ID, DESC, ALIAS, REQ, true, false); 815 #define PARAM_OUT(T, ID, DESC, ALIAS, DEF, REQ) \ 816 static mlpack::util::Option<T> \ 817 JOIN(JOIN(cli_option_dummy_object_out_, __LINE__), opt) \ 818 (DEF, ID, DESC, ALIAS, REQ, false, false); 820 #define PARAM_MATRIX(ID, DESC, ALIAS, REQ, TRANS, IN) \ 821 static mlpack::util::Option<arma::mat> \ 822 JOIN(JOIN(cli_option_dummy_object_matrix_, __LINE__), opt) \ 823 (arma::mat(), ID, DESC, ALIAS, REQ, IN, !TRANS); 825 #define PARAM_UMATRIX(ID, DESC, ALIAS, REQ, TRANS, IN) \ 826 static mlpack::util::Option<arma::Mat<size_t>> \ 827 JOIN(JOIN(cli_option_dummy_object_umatrix_, __LINE__), opt) \ 828 (arma::Mat<size_t>(), ID, DESC, ALIAS, REQ, IN, !TRANS); 830 #define PARAM_MODEL(TYPE, ID, DESC, ALIAS, REQ, IN) \ 831 static mlpack::util::Option<TYPE> \ 832 JOIN(JOIN(cli_option_dummy_object_model_, __LINE__), opt) \ 833 (TYPE(), ID, DESC, ALIAS, REQ, IN); Linear algebra utility functions, generally performed on matrices or vectors.
DatasetMapper< data::IncrementPolicy > DatasetInfo