mlpack  3.4.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
print_doc.hpp
Go to the documentation of this file.
1 
12 #ifndef MLPACK_BINDINGS_JULIA_PRINT_DOC_HPP
13 #define MLPACK_BINDINGS_JULIA_PRINT_DOC_HPP
14 
15 namespace mlpack {
16 namespace bindings {
17 namespace julia {
18 
19 template<typename T>
20 void PrintDoc(util::ParamData& d, const void* /* input */, void* output)
21 {
22  // "type" is a reserved keyword or function.
23  const std::string juliaName = (d.name == "type") ? "type_" : d.name;
24 
25  std::ostringstream& oss = *((std::ostringstream*) output);
26 
27  oss << "`" << juliaName << "::" << GetJuliaType<typename std::remove_pointer
28  <T>::type>(d) << "`: " << d.desc;
29 
30  // Print a default, if possible. Defaults aren't printed for matrix or model
31  // parameters.
32  if (!d.required)
33  {
34  if (d.cppType == "std::string" ||
35  d.cppType == "double" ||
36  d.cppType == "int" ||
37  d.cppType == "bool")
38  {
39  oss << " Default value `";
40  if (d.cppType == "std::string")
41  {
42  oss << boost::any_cast<std::string>(d.value);
43  }
44  else if (d.cppType == "double")
45  {
46  oss << boost::any_cast<double>(d.value);
47  }
48  else if (d.cppType == "int")
49  {
50  oss << boost::any_cast<int>(d.value);
51  }
52  else if (d.cppType == "bool")
53  {
54  oss << (boost::any_cast<bool>(d.value) ? "true" : "false");
55  }
56  oss << "`." << std::endl;
57  }
58  }
59 }
60 
61 } // namespace julia
62 } // namespace bindings
63 } // namespace mlpack
64 
65 #endif
boost::any value
The actual value that is held.
Definition: param_data.hpp:82
std::string desc
Description of this parameter, if any.
Definition: param_data.hpp:58
This structure holds all of the information about a single parameter, including its value (which is s...
Definition: param_data.hpp:52
if(NOT PYTHON_EXECUTABLE OR NOT PY_DISTUTILS OR NOT PY_CYTHON OR NOT PY_NUMPY OR NOT PY_PANDAS) if(NOT PYTHON_EXECUTABLE OR NOT PY_DISTUTILS OR NOT PY_CYTHON OR NOT PY_NUMPY OR NOT PY_PANDAS) set(BINDING_SOURCES default_param.hpp default_param_impl.hpp generate_pyx.hpp generate_pyx.cpp get_arma_type.hpp get_cython_type.hpp get_numpy_type.hpp get_numpy_type_char.hpp get_param.hpp get_printable_param.hpp get_python_type.hpp import_decl.hpp print_class_defn.hpp print_defn.hpp print_doc.hpp print_doc_functions.hpp print_doc_functions_impl.hpp print_input_processing.hpp print_output_processing.hpp print_pyx.hpp print_pyx.cpp print_type_doc.hpp print_type_doc_impl.hpp py_option.hpp strip_type.hpp mlpack/arma_util.hpp setup.cfg copy_artifacts.py) set(CYTHON_SOURCES mlpack/arma_numpy.pxd mlpack/arma_numpy.pyx mlpack/arma.pxd mlpack/arma_util.hpp mlpack/io.pxd mlpack/io_util.hpp mlpack/matrix_utils.py mlpack/serialization.hpp mlpack/serialization.pxd) set(TEST_SOURCES tests/dataset_info_test.py tests/test_python_binding.py) get_property(CYTHON_INCLUDE_DIRECTORIES DIRECTORY $
Definition: CMakeLists.txt:43
std::string name
Name of this parameter.
Definition: param_data.hpp:56
bool required
True if this option is required.
Definition: param_data.hpp:71
void PrintDoc(util::ParamData &d, const void *, void *output)
Definition: print_doc.hpp:20
std::string cppType
The true name of the type, as it would be written in C++.
Definition: param_data.hpp:84
string(REGEX REPLACE".*#define MLPACK_VERSION_MINOR ([0-9]+).*""\\1"MLPACK_VERSION_MINOR"${VERSION_HPP_CONTENTS}") string(REGEX REPLACE".* "\\1" MLPACK_VERSION_PATCH "$
Definition: CMakeLists.txt:56
julia
Definition: CMakeLists.txt:61
std::string GetJuliaType(util::ParamData &, 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)