[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