[mlpack-git] master: Merge branch 'master' into pkgconfig (3f13053)
gitdub at mlpack.org
gitdub at mlpack.org
Tue Sep 13 11:24:04 EDT 2016
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/12a10f428c07dd409d52684932655842a8eddb29...8d6d3919faf8596778b6db8c8865262fec9c394b
>---------------------------------------------------------------
commit 3f13053aaec96c3b02d595ca005f566da4e5517d
Merge: 31eb9b0 e801f30
Author: Ryan Curtin <ryan at ratml.org>
Date: Tue Sep 13 11:24:04 2016 -0400
Merge branch 'master' into pkgconfig
>---------------------------------------------------------------
3f13053aaec96c3b02d595ca005f566da4e5517d
.appveyor.yml | 24 +-
.gitignore | 5 -
CMake/CXX11.cmake | 2 +-
CMake/FindMathJax.cmake | 21 +
CMake/GenerateDoxyfile.cmake | 35 +-
CMake/NewCXX11.cmake | 17 +
CMake/mlpack_coverage.in | 133 ++
CMakeLists.txt | 120 +-
COPYRIGHT.txt | 5 +
Doxyfile | 9 +-
HISTORY.md | 40 +-
LICENSE.txt | 12 +-
README.md | 18 +-
doc/doxygen/extra-stylesheet.css | 7 +
doc/doxygen/footer.html | 16 +
doc/guide/build.hpp | 51 +-
doc/tutorials/README.md | 48 +-
doc/tutorials/kmeans/kmeans.txt | 28 +-
src/mlpack/CMakeLists.txt | 6 +
src/mlpack/core.hpp | 14 +-
src/mlpack/core/arma_extend/CMakeLists.txt | 5 +-
src/mlpack/core/arma_extend/Mat_extra_bones.hpp | 10 +
src/mlpack/core/arma_extend/Mat_extra_meat.hpp | 10 +
src/mlpack/core/arma_extend/README.md | 23 +
src/mlpack/core/arma_extend/SpMat_extra_bones.hpp | 40 +-
src/mlpack/core/arma_extend/SpMat_extra_meat.hpp | 323 +---
src/mlpack/core/arma_extend/arma_extend.hpp | 6 +-
src/mlpack/core/arma_extend/fn_ind2sub.hpp | 78 +
src/mlpack/core/arma_extend/hdf5_misc.hpp | 11 +
src/mlpack/core/arma_extend/operator_minus.hpp | 10 +
src/mlpack/core/arma_extend/promote_type.hpp | 50 -
src/mlpack/core/arma_extend/restrictors.hpp | 22 -
src/mlpack/core/arma_extend/traits.hpp | 49 -
src/mlpack/core/arma_extend/typedef.hpp | 30 -
src/mlpack/core/boost_backport/LICENSE.txt | 23 +
src/mlpack/core/boost_backport/README.md | 21 +-
src/mlpack/core/boost_backport/bernoulli.hpp | 176 +++
src/mlpack/core/boost_backport/boost_backport.hpp | 42 +
.../boost_backport/detail/bernoulli_details.hpp | 660 ++++++++
.../core/boost_backport/detail/polygamma.hpp | 558 +++++++
.../boost_backport/detail/unchecked_bernoulli.hpp | 700 +++++++++
src/mlpack/core/boost_backport/math_fwd.hpp | 1586 ++++++++++++++++++++
src/mlpack/core/boost_backport/policy.hpp | 1042 +++++++++++++
src/mlpack/core/boost_backport/polygamma.hpp | 94 ++
src/mlpack/core/boost_backport/trigamma.hpp | 469 ++++++
.../unordered_collections_load_imp.hpp | 3 +
.../unordered_collections_save_imp.hpp | 3 +
src/mlpack/core/boost_backport/unordered_map.hpp | 5 +-
src/mlpack/core/data/CMakeLists.txt | 6 +-
src/mlpack/core/data/binarize.hpp | 99 ++
src/mlpack/core/data/dataset_info.hpp | 114 --
src/mlpack/core/data/dataset_info_impl.hpp | 100 --
src/mlpack/core/data/dataset_mapper.hpp | 164 ++
src/mlpack/core/data/dataset_mapper_impl.hpp | 151 ++
.../data/imputation_methods}/CMakeLists.txt | 6 +-
.../data/imputation_methods/custom_imputation.hpp | 77 +
.../data/imputation_methods/listwise_deletion.hpp | 69 +
.../data/imputation_methods/mean_imputation.hpp | 99 ++
.../data/imputation_methods/median_imputation.hpp | 88 ++
src/mlpack/core/data/imputer.hpp | 90 ++
src/mlpack/core/data/load.hpp | 18 +-
src/mlpack/core/data/load_arff.hpp | 4 +-
src/mlpack/core/data/load_arff_impl.hpp | 6 +-
src/mlpack/core/data/load_impl.hpp | 55 +-
.../data/map_policies}/CMakeLists.txt | 3 +-
src/mlpack/core/data/map_policies/datatype.hpp | 28 +
.../core/data/map_policies/increment_policy.hpp | 131 ++
.../core/data/map_policies/missing_policy.hpp | 151 ++
src/mlpack/core/dists/CMakeLists.txt | 2 +
src/mlpack/core/dists/gamma_distribution.cpp | 210 +++
src/mlpack/core/dists/gamma_distribution.hpp | 214 +++
src/mlpack/core/dists/gaussian_distribution.hpp | 2 +-
src/mlpack/core/math/random.hpp | 38 +
src/mlpack/core/metrics/ip_metric.hpp | 2 +-
src/mlpack/core/metrics/ip_metric_impl.hpp | 10 +-
src/mlpack/core/metrics/lmetric.hpp | 3 +-
src/mlpack/core/metrics/lmetric_impl.hpp | 57 +-
src/mlpack/core/optimizers/lbfgs/lbfgs.hpp | 4 +-
src/mlpack/core/optimizers/lbfgs/lbfgs_impl.hpp | 19 +-
src/mlpack/core/tree/CMakeLists.txt | 58 +
src/mlpack/core/tree/address.hpp | 262 ++++
src/mlpack/core/tree/ballbound_impl.hpp | 2 -
src/mlpack/core/tree/binary_space_tree.hpp | 4 +
.../tree/binary_space_tree/binary_space_tree.hpp | 52 +-
.../binary_space_tree/binary_space_tree_impl.hpp | 185 ++-
.../core/tree/binary_space_tree/mean_split.hpp | 97 +-
.../tree/binary_space_tree/mean_split_impl.hpp | 201 +--
.../core/tree/binary_space_tree/midpoint_split.hpp | 96 +-
.../tree/binary_space_tree/midpoint_split_impl.hpp | 193 +--
.../core/tree/binary_space_tree/perform_split.hpp | 147 ++
.../tree/binary_space_tree/rp_tree_max_split.hpp | 143 ++
.../binary_space_tree/rp_tree_max_split_impl.hpp | 82 +
.../tree/binary_space_tree/rp_tree_mean_split.hpp | 174 +++
.../binary_space_tree/rp_tree_mean_split_impl.hpp | 140 ++
src/mlpack/core/tree/binary_space_tree/traits.hpp | 184 +++
src/mlpack/core/tree/binary_space_tree/typedef.hpp | 160 ++
.../core/tree/binary_space_tree/ub_tree_split.hpp | 114 ++
.../tree/binary_space_tree/ub_tree_split_impl.hpp | 236 +++
.../tree/binary_space_tree/vantage_point_split.hpp | 171 +++
.../binary_space_tree/vantage_point_split_impl.hpp | 83 +
src/mlpack/core/tree/bounds.hpp | 2 +
src/mlpack/core/tree/cellbound.hpp | 309 ++++
src/mlpack/core/tree/cellbound_impl.hpp | 993 ++++++++++++
src/mlpack/core/tree/cosine_tree/cosine_tree.cpp | 43 +-
src/mlpack/core/tree/cover_tree/cover_tree.hpp | 41 +-
.../core/tree/cover_tree/cover_tree_impl.hpp | 214 ++-
src/mlpack/core/tree/cover_tree/traits.hpp | 11 +
.../core/tree/greedy_single_tree_traverser.hpp | 52 +
.../tree/greedy_single_tree_traverser_impl.hpp | 47 +
src/mlpack/core/tree/hollow_ball_bound.hpp | 229 +++
src/mlpack/core/tree/hollow_ball_bound_impl.hpp | 441 ++++++
src/mlpack/core/tree/hrectbound.hpp | 20 +
src/mlpack/core/tree/hrectbound_impl.hpp | 250 ++-
src/mlpack/core/tree/rectangle_tree.hpp | 16 +-
.../tree/rectangle_tree/discrete_hilbert_value.hpp | 284 ++++
.../rectangle_tree/discrete_hilbert_value_impl.hpp | 527 +++++++
.../tree/rectangle_tree/dual_tree_traverser.hpp | 7 +-
.../rectangle_tree/dual_tree_traverser_impl.hpp | 24 +-
.../hilbert_r_tree_auxiliary_information.hpp | 145 ++
.../hilbert_r_tree_auxiliary_information_impl.hpp | 188 +++
.../hilbert_r_tree_descent_heuristic.hpp | 53 +
.../hilbert_r_tree_descent_heuristic_impl.hpp | 49 +
.../tree/rectangle_tree/hilbert_r_tree_split.hpp | 94 ++
.../rectangle_tree/hilbert_r_tree_split_impl.hpp | 347 +++++
.../tree/rectangle_tree/minimal_coverage_sweep.hpp | 97 ++
.../rectangle_tree/minimal_coverage_sweep_impl.hpp | 194 +++
.../rectangle_tree/minimal_splits_number_sweep.hpp | 73 +
.../minimal_splits_number_sweep_impl.hpp | 112 ++
.../rectangle_tree/no_auxiliary_information.hpp | 145 ++
.../r_plus_plus_tree_auxiliary_information.hpp | 161 ++
...r_plus_plus_tree_auxiliary_information_impl.hpp | 140 ++
.../r_plus_plus_tree_descent_heuristic.hpp | 48 +
.../r_plus_plus_tree_descent_heuristic_impl.hpp | 48 +
.../r_plus_plus_tree_split_policy.hpp | 74 +
.../r_plus_tree_descent_heuristic.hpp | 48 +
.../r_plus_tree_descent_heuristic_impl.hpp | 103 ++
.../core/tree/rectangle_tree/r_plus_tree_split.hpp | 129 ++
.../tree/rectangle_tree/r_plus_tree_split_impl.hpp | 376 +++++
.../rectangle_tree/r_plus_tree_split_policy.hpp | 74 +
.../r_star_tree_descent_heuristic.hpp | 16 +-
.../r_star_tree_descent_heuristic_impl.hpp | 50 +-
.../core/tree/rectangle_tree/r_star_tree_split.hpp | 47 +-
.../tree/rectangle_tree/r_star_tree_split_impl.hpp | 315 ++--
.../rectangle_tree/r_tree_descent_heuristic.hpp | 4 +-
.../r_tree_descent_heuristic_impl.hpp | 32 +-
.../core/tree/rectangle_tree/r_tree_split.hpp | 29 +-
.../core/tree/rectangle_tree/r_tree_split_impl.hpp | 147 +-
.../core/tree/rectangle_tree/rectangle_tree.hpp | 148 +-
.../tree/rectangle_tree/rectangle_tree_impl.hpp | 654 +++++---
.../tree/rectangle_tree/single_tree_traverser.hpp | 7 +-
.../rectangle_tree/single_tree_traverser_impl.hpp | 20 +-
src/mlpack/core/tree/rectangle_tree/traits.hpp | 77 +-
src/mlpack/core/tree/rectangle_tree/typedef.hpp | 103 +-
.../x_tree_auxiliary_information.hpp | 235 +++
.../core/tree/rectangle_tree/x_tree_split.hpp | 85 +-
.../core/tree/rectangle_tree/x_tree_split_impl.hpp | 402 ++---
src/mlpack/core/tree/space_split/hyperplane.hpp | 151 ++
.../core/tree/space_split/mean_space_split.hpp | 45 +
.../tree/space_split/mean_space_split_impl.hpp | 45 +
.../core/tree/space_split/midpoint_space_split.hpp | 45 +
.../tree/space_split/midpoint_space_split_impl.hpp | 40 +
.../core/tree/space_split/projection_vector.hpp | 149 ++
src/mlpack/core/tree/space_split/space_split.hpp | 67 +
.../core/tree/space_split/space_split_impl.hpp | 103 ++
src/mlpack/core/tree/spill_tree.hpp | 21 +
src/mlpack/core/tree/spill_tree/is_spill_tree.hpp | 38 +
.../spill_dual_tree_traverser.hpp} | 35 +-
.../spill_tree/spill_dual_tree_traverser_impl.hpp | 412 +++++
.../spill_single_tree_traverser.hpp} | 29 +-
.../spill_single_tree_traverser_impl.hpp | 122 ++
src/mlpack/core/tree/spill_tree/spill_tree.hpp | 479 ++++++
.../core/tree/spill_tree/spill_tree_impl.hpp | 818 ++++++++++
src/mlpack/core/tree/spill_tree/traits.hpp | 68 +
src/mlpack/core/tree/spill_tree/typedef.hpp | 119 ++
src/mlpack/core/tree/tree_traits.hpp | 13 +-
src/mlpack/core/util/CMakeLists.txt | 3 +-
src/mlpack/core/util/backtrace.cpp | 11 +-
src/mlpack/core/util/backtrace.hpp | 7 -
src/mlpack/core/util/cli.cpp | 165 +-
src/mlpack/core/util/cli.hpp | 365 +----
src/mlpack/core/util/cli_impl.hpp | 66 +-
src/mlpack/core/util/deprecated.hpp | 20 +
src/mlpack/core/util/option.hpp | 20 +-
src/mlpack/core/util/option_impl.hpp | 11 +-
src/mlpack/core/util/param.hpp | 426 ++++++
src/mlpack/core/util/prefixedoutstream.hpp | 1 -
src/mlpack/core/util/string_util.cpp | 47 -
src/mlpack/core/util/string_util.hpp | 23 -
src/mlpack/methods/CMakeLists.txt | 2 +
src/mlpack/methods/adaboost/adaboost_impl.hpp | 2 +-
src/mlpack/methods/adaboost/adaboost_main.cpp | 37 +-
src/mlpack/methods/amf/init_rules/CMakeLists.txt | 1 +
src/mlpack/methods/amf/init_rules/given_init.hpp | 75 +
.../simple_tolerance_termination.hpp | 8 +-
.../validation_RMSE_termination.hpp | 10 +-
.../svd_complete_incremental_learning.hpp | 8 +-
.../svd_incomplete_incremental_learning.hpp | 6 +-
src/mlpack/methods/ann/CMakeLists.txt | 1 -
.../ann/activation_functions/logistic_function.hpp | 2 +-
src/mlpack/methods/ann/cnn.hpp | 3 +
src/mlpack/methods/ann/cnn_impl.hpp | 13 +-
src/mlpack/methods/ann/ffn.hpp | 24 +-
src/mlpack/methods/ann/layer/dropconnect_layer.hpp | 28 +-
src/mlpack/methods/ann/layer/one_hot_layer.hpp | 2 +-
src/mlpack/methods/ann/layer/pooling_layer.hpp | 37 +-
.../methods/ann/layer/vr_class_reward_layer.hpp | 2 +-
src/mlpack/methods/ann/rnn.hpp | 20 +-
src/mlpack/methods/ann/trainer/trainer.hpp | 310 ----
src/mlpack/methods/cf/cf.cpp | 75 +-
src/mlpack/methods/cf/cf.hpp | 24 +-
src/mlpack/methods/cf/cf_main.cpp | 44 +-
src/mlpack/methods/cf/svd_wrapper_impl.hpp | 4 +-
.../methods/decision_stump/decision_stump_main.cpp | 23 +-
src/mlpack/methods/det/det_main.cpp | 39 +-
src/mlpack/methods/emst/dtb_rules.hpp | 28 -
src/mlpack/methods/emst/dtb_rules_impl.hpp | 46 -
src/mlpack/methods/emst/emst_main.cpp | 31 +-
src/mlpack/methods/fastmks/fastmks.hpp | 21 +-
src/mlpack/methods/fastmks/fastmks_impl.hpp | 107 +-
src/mlpack/methods/fastmks/fastmks_main.cpp | 33 +-
src/mlpack/methods/fastmks/fastmks_rules.hpp | 69 +-
src/mlpack/methods/fastmks/fastmks_rules_impl.hpp | 101 +-
src/mlpack/methods/gmm/gmm_generate_main.cpp | 20 +-
src/mlpack/methods/gmm/gmm_impl.hpp | 2 +-
src/mlpack/methods/gmm/gmm_probability_main.cpp | 26 +-
src/mlpack/methods/gmm/gmm_train_main.cpp | 26 +-
src/mlpack/methods/hmm/hmm_generate_main.cpp | 31 +-
src/mlpack/methods/hmm/hmm_loglik_main.cpp | 8 +-
src/mlpack/methods/hmm/hmm_regression_impl.hpp | 2 +-
src/mlpack/methods/hmm/hmm_train_main.cpp | 26 +-
src/mlpack/methods/hmm/hmm_viterbi_main.cpp | 17 +-
.../hoeffding_trees/hoeffding_tree_main.cpp | 73 +-
src/mlpack/methods/kernel_pca/kernel_pca_main.cpp | 31 +-
src/mlpack/methods/kmeans/CMakeLists.txt | 1 +
src/mlpack/methods/kmeans/allow_empty_clusters.hpp | 15 +-
.../methods/kmeans/dual_tree_kmeans_impl.hpp | 20 +-
src/mlpack/methods/kmeans/elkan_kmeans_impl.hpp | 2 -
src/mlpack/methods/kmeans/hamerly_kmeans_impl.hpp | 2 -
..._empty_clusters.hpp => kill_empty_clusters.hpp} | 25 +-
src/mlpack/methods/kmeans/kmeans_main.cpp | 61 +-
src/mlpack/methods/kmeans/naive_kmeans.hpp | 5 +-
src/mlpack/methods/kmeans/naive_kmeans_impl.hpp | 2 -
.../methods/kmeans/pelleg_moore_kmeans_impl.hpp | 6 +-
src/mlpack/methods/lars/lars_main.cpp | 82 +-
.../linear_regression/linear_regression_main.cpp | 97 +-
.../local_coordinate_coding_main.cpp | 32 +-
.../logistic_regression_main.cpp | 48 +-
src/mlpack/methods/lsh/lsh_main.cpp | 72 +-
src/mlpack/methods/lsh/lsh_search.hpp | 145 +-
src/mlpack/methods/lsh/lsh_search_impl.hpp | 689 +++++++--
src/mlpack/methods/mean_shift/mean_shift_main.cpp | 80 +-
src/mlpack/methods/mvu/mvu_main.cpp | 24 +-
src/mlpack/methods/naive_bayes/nbc_main.cpp | 17 +-
src/mlpack/methods/nca/nca_main.cpp | 49 +-
src/mlpack/methods/neighbor_search/CMakeLists.txt | 32 +-
src/mlpack/methods/neighbor_search/kfn_main.cpp | 217 ++-
src/mlpack/methods/neighbor_search/knn_main.cpp | 235 ++-
.../methods/neighbor_search/neighbor_search.hpp | 338 ++++-
.../neighbor_search/neighbor_search_impl.hpp | 907 ++++++++---
.../neighbor_search/neighbor_search_rules.hpp | 86 +-
.../neighbor_search/neighbor_search_rules_impl.hpp | 129 +-
.../neighbor_search/neighbor_search_stat.hpp | 11 +
src/mlpack/methods/neighbor_search/ns_model.hpp | 325 +++-
.../methods/neighbor_search/ns_model_impl.hpp | 719 +++++----
.../sort_policies/furthest_neighbor_sort.cpp | 27 -
.../sort_policies/furthest_neighbor_sort.hpp | 80 +-
.../sort_policies/nearest_neighbor_sort.cpp | 27 -
.../sort_policies/nearest_neighbor_sort.hpp | 74 +-
src/mlpack/methods/neighbor_search/typedef.hpp | 29 +
src/mlpack/methods/nmf/nmf_main.cpp | 36 +-
src/mlpack/methods/pca/CMakeLists.txt | 4 +-
.../decomposition_policies}/CMakeLists.txt | 5 +-
.../decomposition_policies/exact_svd_method.hpp | 72 +
.../pca/decomposition_policies/quic_svd_method.hpp | 92 ++
.../randomized_svd_method.hpp | 97 ++
src/mlpack/methods/pca/pca.hpp | 85 +-
src/mlpack/methods/pca/{pca.cpp => pca_impl.hpp} | 118 +-
src/mlpack/methods/pca/pca_main.cpp | 95 +-
src/mlpack/methods/perceptron/perceptron_impl.hpp | 2 +-
src/mlpack/methods/perceptron/perceptron_main.cpp | 47 +-
src/mlpack/methods/preprocess/CMakeLists.txt | 4 +-
.../preprocess/preprocess_binarize_main.cpp | 85 ++
.../preprocess/preprocess_describe_main.cpp | 226 +++
.../methods/preprocess/preprocess_imputer_main.cpp | 174 +++
.../methods/preprocess/preprocess_split_main.cpp | 109 +-
src/mlpack/methods/quic_svd/CMakeLists.txt | 2 +-
.../quic_svd/{quic_svd_impl.hpp => quic_svd.cpp} | 7 +-
src/mlpack/methods/quic_svd/quic_svd.hpp | 7 +-
src/mlpack/methods/radical/radical.cpp | 2 +-
src/mlpack/methods/radical/radical_main.cpp | 67 +-
.../{quic_svd => randomized_svd}/CMakeLists.txt | 4 +-
.../methods/randomized_svd/randomized_svd.cpp | 128 ++
.../methods/randomized_svd/randomized_svd.hpp | 133 ++
.../methods/range_search/range_search_impl.hpp | 2 +-
.../methods/range_search/range_search_main.cpp | 47 +-
.../methods/range_search/range_search_rules.hpp | 8 +-
src/mlpack/methods/range_search/rs_model.cpp | 135 +-
src/mlpack/methods/range_search/rs_model.hpp | 26 +-
src/mlpack/methods/range_search/rs_model_impl.hpp | 98 ++
src/mlpack/methods/rann/CMakeLists.txt | 20 +-
.../rann/{allkrann_main.cpp => krann_main.cpp} | 53 +-
src/mlpack/methods/rann/ra_model.hpp | 14 +-
src/mlpack/methods/rann/ra_model_impl.hpp | 218 ++-
src/mlpack/methods/rann/ra_search_impl.hpp | 46 +-
src/mlpack/methods/rann/ra_search_rules.hpp | 79 +-
src/mlpack/methods/rann/ra_search_rules_impl.hpp | 138 +-
src/mlpack/methods/rann/ra_typedef.hpp | 43 +-
src/mlpack/methods/rann/ra_util.cpp | 16 -
.../regularized_svd/regularized_svd_function.cpp | 2 +-
src/mlpack/methods/rmva/rmva_main.cpp | 37 +-
.../softmax_regression/softmax_regression_main.cpp | 111 +-
.../methods/sparse_coding/sparse_coding_main.cpp | 56 +-
src/mlpack/prereqs.hpp | 9 +-
src/mlpack/tests/CMakeLists.txt | 20 +-
src/mlpack/tests/activation_functions_test.cpp | 2 +-
src/mlpack/tests/ada_delta_test.cpp | 2 +-
src/mlpack/tests/adaboost_test.cpp | 5 +-
src/mlpack/tests/adam_test.cpp | 2 +-
src/mlpack/tests/akfn_test.cpp | 240 +++
src/mlpack/tests/aknn_test.cpp | 470 ++++++
src/mlpack/tests/arma_extend_test.cpp | 2 +-
src/mlpack/tests/armadillo_svd_test.cpp | 2 +-
src/mlpack/tests/aug_lagrangian_test.cpp | 2 +-
src/mlpack/tests/binarize_test.cpp | 66 +
src/mlpack/tests/cf_test.cpp | 2 +-
src/mlpack/tests/cli_test.cpp | 4 +-
src/mlpack/tests/convolution_test.cpp | 2 +-
src/mlpack/tests/convolutional_network_test.cpp | 8 +-
src/mlpack/tests/cosine_tree_test.cpp | 2 +-
src/mlpack/tests/decision_stump_test.cpp | 2 +-
src/mlpack/tests/det_test.cpp | 2 +-
src/mlpack/tests/distribution_test.cpp | 266 +++-
src/mlpack/tests/emst_test.cpp | 2 +-
src/mlpack/tests/fastmks_test.cpp | 2 +-
src/mlpack/tests/feedforward_network_test.cpp | 2 +-
src/mlpack/tests/gmm_test.cpp | 40 +-
src/mlpack/tests/hmm_test.cpp | 2 +-
src/mlpack/tests/hoeffding_tree_test.cpp | 2 +-
src/mlpack/tests/hyperplane_test.cpp | 135 ++
src/mlpack/tests/imputation_test.cpp | 266 ++++
src/mlpack/tests/ind2sub_test.cpp | 30 +
src/mlpack/tests/init_rules_test.cpp | 2 +-
src/mlpack/tests/kernel_pca_test.cpp | 2 +-
src/mlpack/tests/kernel_test.cpp | 2 +-
src/mlpack/tests/kernel_traits_test.cpp | 2 +-
src/mlpack/tests/kfn_test.cpp | 48 +-
src/mlpack/tests/kmeans_test.cpp | 3 +-
src/mlpack/tests/knn_test.cpp | 201 ++-
...krann_search_test.cpp => krann_search_test.cpp} | 26 +-
src/mlpack/tests/lars_test.cpp | 2 +-
src/mlpack/tests/layer_traits_test.cpp | 2 +-
src/mlpack/tests/lbfgs_test.cpp | 2 +-
src/mlpack/tests/lin_alg_test.cpp | 2 +-
src/mlpack/tests/linear_regression_test.cpp | 2 +-
src/mlpack/tests/load_save_test.cpp | 4 +-
src/mlpack/tests/local_coordinate_coding_test.cpp | 2 +-
src/mlpack/tests/log_test.cpp | 2 +-
src/mlpack/tests/logistic_regression_test.cpp | 2 +-
src/mlpack/tests/lrsdp_test.cpp | 2 +-
src/mlpack/tests/lsh_test.cpp | 510 ++++++-
src/mlpack/tests/lstm_peephole_test.cpp | 2 +-
src/mlpack/tests/math_test.cpp | 2 +-
src/mlpack/tests/matrix_completion_test.cpp | 2 +-
src/mlpack/tests/maximal_inputs_test.cpp | 2 +-
src/mlpack/tests/mean_shift_test.cpp | 3 +-
src/mlpack/tests/metric_test.cpp | 6 +-
src/mlpack/tests/minibatch_sgd_test.cpp | 2 +-
src/mlpack/tests/mlpack_test.cpp | 2 +-
src/mlpack/tests/nbc_test.cpp | 2 +-
src/mlpack/tests/nca_test.cpp | 2 +-
src/mlpack/tests/network_util_test.cpp | 2 +-
src/mlpack/tests/nmf_test.cpp | 17 +-
src/mlpack/tests/nystroem_method_test.cpp | 2 +-
src/mlpack/tests/pca_test.cpp | 125 +-
src/mlpack/tests/perceptron_test.cpp | 2 +-
src/mlpack/tests/performance_functions_test.cpp | 2 +-
src/mlpack/tests/pooling_rules_test.cpp | 2 +-
src/mlpack/tests/quic_svd_test.cpp | 45 +-
src/mlpack/tests/radical_test.cpp | 2 +-
src/mlpack/tests/randomized_svd_test.cpp | 62 +
src/mlpack/tests/range_search_test.cpp | 40 +-
src/mlpack/tests/rectangle_tree_test.cpp | 812 ++++++++--
src/mlpack/tests/recurrent_network_test.cpp | 109 +-
src/mlpack/tests/regularized_svd_test.cpp | 2 +-
src/mlpack/tests/rmsprop_test.cpp | 2 +-
src/mlpack/tests/sa_test.cpp | 2 +-
src/mlpack/tests/sdp_primal_dual_test.cpp | 2 +-
src/mlpack/tests/serialization.hpp | 2 +-
src/mlpack/tests/serialization_test.cpp | 4 +-
src/mlpack/tests/sgd_test.cpp | 2 +-
src/mlpack/tests/softmax_regression_test.cpp | 2 +-
src/mlpack/tests/sort_policy_test.cpp | 74 +-
src/mlpack/tests/sparse_autoencoder_test.cpp | 2 +-
src/mlpack/tests/sparse_coding_test.cpp | 2 +-
src/mlpack/tests/spill_tree_test.cpp | 306 ++++
src/mlpack/tests/split_data_test.cpp | 2 +-
src/mlpack/tests/svd_batch_test.cpp | 2 +-
src/mlpack/tests/svd_incremental_test.cpp | 2 +-
src/mlpack/tests/termination_policy_test.cpp | 2 +-
...d_boost_test_definitions.hpp => test_tools.hpp} | 14 +-
src/mlpack/tests/tree_test.cpp | 281 +++-
src/mlpack/tests/tree_traits_test.cpp | 2 +-
src/mlpack/tests/ub_tree_test.cpp | 350 +++++
src/mlpack/tests/union_find_test.cpp | 42 +-
src/mlpack/tests/vantage_point_tree_test.cpp | 283 ++++
405 files changed, 31928 insertions(+), 6075 deletions(-)
diff --cc CMakeLists.txt
index 45be0b0,1c5d98e..bc50bf7
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@@ -62,22 -79,52 +74,56 @@@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL
endif()
endif()
- set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lm")
- set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -lm")
- set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -lm")
+ # Link everything with -lm.
- set(COMPILER_SUPPORT_LIBRARIES ${COMPILER_SUPPORT_LIBRARIES} "m")
+ set(MLPACK_LIBRARIES ${MLPACK_LIBRARIES} "m")
endif()
+ # Setup build for test coverage
+ if(BUILD_WITH_COVERAGE)
+ # Currently coverage only works with GNU g++
+ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+ # Find gcov and lcov
+ find_program(GCOV gcov)
+ find_program(LCOV lcov)
+
+ if(NOT GCOV)
+ message(FATAL_ERROR
+ "gcov not found! gcov is required when BUILD_WITH_COVERAGE=ON.")
+ endif()
+
- set(COMPILER_MLPACK_SUPPORT_LIBRARIES
- ${COMPILER_SUPPORT_MLPACK_LIBRARIES} "supc++")
++ set(MLPACK_LIBRARIES ${MLPACK_LIBRARIES} "supc++")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage -fno-inline -fno-inline-small-functions -fno-default-inline -fprofile-arcs -fkeep-inline-functions")
+ message(STATUS "Adding debug compile options for code coverage.")
+ # Remove optimizations for better line coverage
+ set(DEBUG ON)
+
+ if(LCOV)
+ configure_file(CMake/mlpack_coverage.in mlpack_coverage @ONLY)
+ add_custom_target(mlpack_coverage DEPENDS mlpack_test COMMAND ${PROJECT_BINARY_DIR}/mlpack_coverage)
+ else()
+ message(WARNING "'lcov' not found; local coverage report is disabled. "
+ "Install 'lcov' and rerun cmake to generate local coverage report.")
+ endif()
+ else()
+ message(FATAL_ERROR "BUILD_WITH_COVERAGE can only work with GNU environment.")
+ endif()
+ endif()
+
+# For clock_gettime().
+if (UNIX AND NOT APPLE)
+ set(MLPACK_LIBRARIES ${MLPACK_LIBRARIES} "rt")
+endif ()
+
# Debugging CFLAGS. Turn optimizations off; turn debugging symbols on.
if(DEBUG)
- add_definitions(-DDEBUG)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -ftemplate-backtrace-limit=0")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -g -O0")
+ if (NOT MSVC)
+ add_definitions(-DDEBUG)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O0 -ftemplate-backtrace-limit=0")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -g -O0")
+ else()
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj")
+ endif()
+
# mlpack uses it's own mlpack::backtrace class based on Binary File Descriptor
# <bfd.h> and linux Dynamic Loader <libdl.h> and more portable version in future
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
@@@ -410,57 -474,3 +480,55 @@@ if (UNIX
DESTINATION share/man/man1/)
endif ()
endif ()
+
+# Create the pkg-config file, if we have pkg-config.
+find_package(PkgConfig)
+if (PKG_CONFIG_FOUND)
+ # mlpack.pc must be generated as a separate target, otherwise it is possible
+ # that the given version could be out of date. We don't need to worry about
+ # the library or include directories changing, because CMake will re-run this
+ # portion of the code whenever any of those changes. But the version must be
+ # re-extracted every time the library is built.
+
+ # So, we have to parse our list of library directories, libraries, and include
+ # directories in order to get the correct line to give to pkg-config.
+ # Next, adapt the list of include directories.
+ foreach (incldir ${MLPACK_INCLUDE_DIRS})
+ # Filter out some obviously unnecessary directories.
+ if ("${incldir}" STREQUAL "/usr/include")
+ continue()
+ endif ()
+
+ set(MLPACK_INCLUDE_DIRS_STRING "${MLPACK_INCLUDE_DIRS_STRING} -I${incldir}")
+ endforeach ()
+
+ # Create the list of link directories.
+ foreach (linkdir ${MLPACK_LIBRARY_DIRS})
+ set(MLPACK_LIBRARIES_STRING "${MLPACK_LIBRARIES_STRING} -L${linkdir}")
+ endforeach ()
+
+ foreach(lib ${MLPACK_LIBRARIES})
- message("lib is ${lib}")
-
+ string(SUBSTRING "${lib}" 0 1 first)
+ if ("${first}" STREQUAL "/")
+ set(MLPACK_LIBRARIES_STRING "${MLPACK_LIBRARIES_STRING} -L${lib}")
+ else ()
+ set(MLPACK_LIBRARIES_STRING "${MLPACK_LIBRARIES_STRING} -l${lib}")
+ endif ()
+ endforeach ()
+
+ # Do first stage of configuration.
+ configure_file(
+ ${CMAKE_CURRENT_SOURCE_DIR}/CMake/mlpack.pc.in
+ ${CMAKE_BINARY_DIR}/CMake/mlpack.pc.in.partial @ONLY)
+
+ add_custom_target(pkgconfig ALL
+ ${CMAKE_COMMAND}
+ -D MLPACK_SOURCE_DIR="${CMAKE_BINARY_DIR}/include/"
+ -P "${CMAKE_CURRENT_SOURCE_DIR}/CMake/GeneratePkgConfig.cmake"
+ DEPENDS mlpack_headers
+ COMMENT "Generating mlpack.pc (pkg-config) file.")
+
+ # Do we need a different directory?
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/lib/pkgconfig/mlpack.pc
+ DESTINATION ${libdir}/pkgconfig/)
+endif ()
diff --cc src/mlpack/CMakeLists.txt
index 73f7e88,94cfecb..82663a1
--- a/src/mlpack/CMakeLists.txt
+++ b/src/mlpack/CMakeLists.txt
@@@ -19,10 -19,14 +19,15 @@@ if (BUILD_TESTS
add_subdirectory(tests)
endif ()
-# MLPACK_SRCS is set in the subdirectories.
+# MLPACK_SRCS is set in the subdirectories. The dependencies (MLPACK_LIBRARIES)
+# are set in the root CMakeLists.txt.
add_library(mlpack ${MLPACK_SRCS})
+ if (NOT (${CMAKE_MAJOR_VERSION} LESS 3 OR
+ (${CMAKE_MAJOR_VERSION} EQUAL 3 AND ${CMAKE_MINOR_VERSION} LESS 1)))
+ include(../../CMake/NewCXX11.cmake)
+ endif ()
+
# Generate export symbols for Windows, instead of adding __declspec(dllimport)
# and __declspec(dllexport) everywhere. However, those modifiers are still
# necessary for global variables (of which there are a few in mlpack).
@@@ -34,7 -38,13 +39,8 @@@ if (NOT BUILD_SHARED_LIBS
endif ()
target_link_libraries(mlpack
- ${ARMADILLO_LIBRARIES}
- ${Boost_LIBRARIES}
- ${LIBXML2_LIBRARIES}
- ${COMPILER_SUPPORT_LIBRARIES}
- ${COMPILER_MLPACK_SUPPORT_LIBRARIES}
-)
+ ${MLPACK_LIBRARIES})
+
set_target_properties(mlpack
PROPERTIES
VERSION 2.0
More information about the mlpack-git
mailing list