diff --git a/cpp/locality/NeighborList.cc b/cpp/locality/NeighborList.cc index 248225c66..b4a8dbe16 100644 --- a/cpp/locality/NeighborList.cc +++ b/cpp/locality/NeighborList.cc @@ -11,26 +11,24 @@ namespace freud { namespace locality { -NeighborList::NeighborList() : m_num_query_points(0), m_num_points(0), m_segments_counts_updated(false) -{ - m_neighbors = std::make_shared>(); - m_distances = std::make_shared>(); - m_weights = std::make_shared>(); - m_vectors = std::make_shared>>(); - m_segments = std::make_shared>(); - m_counts = std::make_shared>(); -} +NeighborList::NeighborList() : m_num_query_points(0), m_num_points(0), m_segments_counts_updated(false), + m_neighbors(std::make_shared>()), + m_distances(std::make_shared>()), + m_weights(std::make_shared>()), + m_vectors(std::make_shared>>()), + m_segments(std::make_shared>()), + m_counts(std::make_shared>()) +{} NeighborList::NeighborList(unsigned int num_bonds) - : m_num_query_points(0), m_num_points(0), m_segments_counts_updated(false) -{ - m_neighbors = std::make_shared>(std::vector {num_bonds, 2}); - m_distances = std::make_shared>(num_bonds); - m_weights = std::make_shared>(num_bonds); - m_vectors = std::make_shared>>(num_bonds); - m_segments = std::make_shared>(); - m_counts = std::make_shared>(); -} + : m_num_query_points(0), m_num_points(0), m_segments_counts_updated(false), + m_neighbors(std::make_shared>(std::vector {num_bonds, 2})), + m_distances(std::make_shared>(num_bonds)), + m_weights(std::make_shared>(num_bonds)), + m_vectors(std::make_shared>>(num_bonds)), + m_segments(std::make_shared>()), + m_counts(std::make_shared>()) +{} NeighborList::NeighborList(const NeighborList& other) : m_num_query_points(other.m_num_query_points), m_num_points(other.m_num_points), @@ -42,14 +40,14 @@ NeighborList::NeighborList(const NeighborList& other) NeighborList::NeighborList(unsigned int num_bonds, const unsigned int* query_point_index, unsigned int num_query_points, const unsigned int* point_index, unsigned int num_points, const vec3* vectors, const float* weights) - : m_num_query_points(num_query_points), m_num_points(num_points), m_segments_counts_updated(false) + : m_num_query_points(num_query_points), m_num_points(num_points), m_segments_counts_updated(false), + m_neighbors(std::make_shared>(std::vector {num_bonds, 2})), + m_distances(std::make_shared>(num_bonds)), + m_weights(std::make_shared>(num_bonds)), + m_vectors(std::make_shared>>(num_bonds)), + m_segments(std::make_shared>(num_query_points)), + m_counts(std::make_shared>(num_query_points)) { - m_neighbors = std::make_shared>(std::vector {num_bonds, 2}); - m_distances = std::make_shared>(num_bonds); - m_weights = std::make_shared>(num_bonds); - m_vectors = std::make_shared>>(num_bonds); - m_segments = std::make_shared>(num_query_points); - m_counts = std::make_shared>(num_query_points); unsigned int last_index(0); for (unsigned int i = 0; i < num_bonds; i++) { @@ -75,7 +73,9 @@ NeighborList::NeighborList(unsigned int num_bonds, const unsigned int* query_poi NeighborList::NeighborList(const vec3* points, const vec3* query_points, const box::Box& box, const bool exclude_ii, const unsigned int num_points, const unsigned int num_query_points) - : m_num_points(num_points), m_num_query_points(num_query_points), m_segments_counts_updated(false) + : m_num_points(num_points), m_num_query_points(num_query_points), m_segments_counts_updated(false), + m_segments(std::make_shared>(num_query_points)), + m_counts(std::make_shared>(num_query_points)) { // prepare member arrays const unsigned int num_ii = (exclude_ii ? std::min(num_points, num_query_points) : 0); @@ -85,8 +85,6 @@ NeighborList::NeighborList(const vec3* points, const vec3* query_p m_distances = std::make_shared>(num_bonds); m_weights = std::make_shared>(num_bonds); m_vectors = std::make_shared>>(num_bonds); - m_segments = std::make_shared>(num_query_points); - m_counts = std::make_shared>(num_query_points); util::forLoopWrapper(0, num_query_points, [&](size_t begin, size_t end) { for (unsigned int i = begin; i < end; ++i) @@ -118,19 +116,17 @@ NeighborList::NeighborList(const vec3* points, const vec3* query_p }); } -NeighborList::NeighborList(std::vector bonds) +NeighborList::NeighborList(std::vector bonds) : + m_distances(std::make_shared>(bonds.size())), + m_vectors(std::make_shared>>(bonds.size())), + m_weights(std::make_shared>(bonds.size())), + m_neighbors(std::make_shared>(std::vector {bonds.size(), 2})) { // keep track of maximum indices using MaxIndex = tbb::enumerable_thread_specific; MaxIndex max_idx_query = 0; MaxIndex max_idx_point = 0; - // prep arrays to populate - m_distances = std::make_shared>(bonds.size()); - m_vectors = std::make_shared>>(bonds.size()); - m_weights = std::make_shared>(bonds.size()); - m_neighbors = std::make_shared>(std::vector {bonds.size(), 2}); - // fill arrays in parallel util::forLoopWrapper(0, bonds.size(), [&](size_t begin, size_t end) { MaxIndex::reference max_point_idx(max_idx_point.local()); diff --git a/cpp/util/ManagedArray.h b/cpp/util/ManagedArray.h index 922216120..a6e0023ff 100644 --- a/cpp/util/ManagedArray.h +++ b/cpp/util/ManagedArray.h @@ -68,9 +68,9 @@ template class ManagedArray /** * Copy constructor * */ - ManagedArray(const ManagedArray& other) : m_shape(other.m_shape), m_size(other.m_size) + ManagedArray(const ManagedArray& other) : m_shape(other.m_shape), m_size(other.m_size), + m_data(std::vector(other.m_size)) { - m_data = std::vector(other.m_size); for (unsigned int i = 0; i < m_size; ++i) { m_data[i] = other.m_data[i]; diff --git a/cpp/util/VectorMath.h b/cpp/util/VectorMath.h index c842bdaee..1eb45e8c7 100644 --- a/cpp/util/VectorMath.h +++ b/cpp/util/VectorMath.h @@ -34,9 +34,11 @@ template struct vec3 constexpr vec3(const Real& _x, const Real& _y, const Real& _z) : x(_x), y(_y), z(_z) {} //! Implicit cast from vec3 to the current Real + // cppcheck-suppress noExplicitConstructor constexpr vec3(const vec3& a) : x(a.x), y(a.y), z(a.z) {} //! Implicit cast from vec3 to the current Real + // cppcheck-suppress noExplicitConstructor constexpr vec3(const vec3& a) : x(a.x), y(a.y), z(a.z) {} //! Default construct a 0 vector diff --git a/cpp/util/export_Vector.h b/cpp/util/export_Vector.h index 5678c2aea..abc42601b 100644 --- a/cpp/util/export_Vector.h +++ b/cpp/util/export_Vector.h @@ -21,7 +21,6 @@ template struct VectorWrapper { std::vector* self_cpp = nanobind::cast*>(self); auto dims = {self_cpp->size()}; - auto ndim = 1; auto data_ptr = self_cpp->data(); return nanobind::ndarray((void*) data_ptr, dims, self); } @@ -37,7 +36,6 @@ template struct VectorWrapper> // get array data like before size_t size = self_cpp->size(); std::initializer_list dims = {size, 3}; - auto ndim = 2; auto data_ptr = self_cpp->data(); // now return the array