diff options
author | Ulrich Bauer <ulrich.bauer@tum.de> | 2016-08-02 10:43:09 +0200 |
---|---|---|
committer | Ulrich Bauer <ulrich.bauer@tum.de> | 2016-08-02 10:43:09 +0200 |
commit | 3e8f2c31f133e4424f1874ba1ab4ef38237f26ea (patch) | |
tree | a0ff0100c3dc129e82085fe8f077bb1a534e9f29 | |
parent | add9683ad8066e73d11d3f41ed6b6554c4790912 (diff) |
move constructor for distance matrices
-rw-r--r-- | ripser.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
@@ -294,8 +294,8 @@ public: void init_rows(); - compressed_distance_matrix(std::vector<value_t> _distances) - : distances(std::move(_distances)), rows((1 + std::sqrt(1 + 8 * distances.size())) / 2) { + compressed_distance_matrix(std::vector<value_t>&& _distances) + : distances(_distances), rows((1 + std::sqrt(1 + 8 * distances.size())) / 2) { assert(distances.size() == size() * (size() - 1) / 2); init_rows(); } @@ -309,8 +309,7 @@ class euclidean_distance_matrix { public: std::vector<std::vector<value_t>> points; - euclidean_distance_matrix(std::vector<std::vector<value_t>> _points) - : points(std::move(_points)) {} + euclidean_distance_matrix(std::vector<std::vector<value_t>>&& _points) : points(_points) {} value_t operator()(const index_t i, const index_t j) const { return std::sqrt(std::inner_product( @@ -779,7 +778,7 @@ int main(int argc, char** argv) { if (!point.empty()) points.push_back(point); } - euclidean_distance_matrix dist(points); + euclidean_distance_matrix dist(std::move(points)); index_t n = dist.size(); std::cout << "point cloud with " << n << " points" << std::endl; @@ -795,7 +794,7 @@ int main(int argc, char** argv) { input_stream.ignore(); } - compressed_lower_distance_matrix dist(distances); + compressed_lower_distance_matrix dist(std::move(distances)); index_t n = dist.size(); @@ -812,7 +811,7 @@ int main(int argc, char** argv) { input_stream.ignore(); } - compressed_upper_distance_matrix dist(distances); + compressed_upper_distance_matrix dist(std::move(distances)); index_t n = dist.size(); @@ -843,7 +842,7 @@ int main(int argc, char** argv) { else read<double>(input_stream); - compressed_lower_distance_matrix dist(distances); + compressed_lower_distance_matrix dist(std::move(distances)); std::cout << "distance matrix with " << n << " points" << std::endl; |