Skip to content

Commit c7bb4f0

Browse files
committed
Memory optimisations
1 parent 787248e commit c7bb4f0

1 file changed

Lines changed: 4 additions & 6 deletions

File tree

bsym/symmetry_group.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -258,22 +258,20 @@ def get_numeric_equivalents(self, configuration: Configuration) -> set[bytes]:
258258
"""
259259
Get byte representations of all symmetry-equivalent configurations.
260260
261-
This method is optimized to avoid creating intermediate Configuration objects,
262-
using fast byte representation for hashing and deduplication.
261+
Uses uint8 for memory efficiency (supports up to 256 species).
263262
264263
Args:
265264
configuration: The configuration to transform.
266265
267266
Returns:
268267
set[bytes]: Set of byte representations of all equivalent configurations.
269268
"""
270-
# Apply all unique operations at once using batched indexing
271269
transformed_vectors = configuration.vector[self.unique_index_mappings]
272-
273-
# Convert to bytes (fast and overflow-safe)
270+
transformed_uint8 = transformed_vectors.astype(np.uint8)
274271
byte_equivalents = set(
275-
vec.tobytes() for vec in transformed_vectors
272+
vec.tobytes() for vec in transformed_uint8
276273
)
277274

278275
return byte_equivalents
276+
279277

0 commit comments

Comments
 (0)