id summary reporter owner description type status priority milestone component resolution keywords cc merged author reviewer upstream work_issues branch commit dependencies stopgaps
30549 Remove all the bitset access from cython files in combinatorial polyhedron gh-kliem "This goal of this ticket is to use `data_structures/biteset.pxi` for the bitset stuff in combinatorial polyhedron and cleanly seperate algorithm and data structure.
This ticket is mostly resolved in smaller tickets:
- #30596: Outsource functions in bitset.pxi that can be optimized by intrinsics
- #30597: Define a sparse bitset structure
- #30601: Move bitset.pxi to bitset_base.pxd
- #30598: Define a new data structure for a combinatorial face
- #30599: Define a new data structure for a list of combinatorial faces -
Changes are:
1. Move functions optimizable by intrinsics to a seperate file (` src/sage/data_structures/bitset_intrinsics.h`). (See #27103 and #27122.)
2. Allow most functions in `bitset.pxi` for fuzed types [https://cython.readthedocs.io/en/latest/src/userguide/fusedtypes.html, fuzed types], such that an (yet to be enriched) bitset data structure specialized for combinatorial faces can use it.
3. Move `bitset.pxi` to `bitset_base.pxd`.
4. Define a data structure `face_s` that gathers properties of a face and corresponding functions.
5. Define a data structure `face_list_s` that gathers properties of a list of faces and corresponding functions.
6. The two flavors of the algorithm (simple and standard) are set up as templates by abusing fuzed types. This makes the code much easier to read. Only the changes will be seperated in the code while the compiler compiles two seperate branches for both flavors.
The features of those changes are mainly:
- Less involved signatures of functions.
- Removing duplications of code.
- New flavors of the algorithm can be implemented without messing up all the files.
- We may enrich `face_s` without changing all our code.
- Intrinsics can easily applied to bitsets in general." enhancement closed major sage-9.3 geometry fixed combinatorial polyhedron, bitsets Jean-Philippe Labbé Laith Rastanawi Travis Scrimshaw Jonathan Kliem Travis Scrimshaw N/A 82a747d6fabf5cf8d366851d2dfbcbf7cd57eabc 82a747d6fabf5cf8d366851d2dfbcbf7cd57eabc #30529