Bug: Derive from regina::boost::noncopyable where appropriate.
Feature (long-term): Enhance the test suite for the calculation engine.
Feature: Add support for symbols of differing case.
Optimise: Insist that sizeof(Piece) is a power of two, and replace expensive division/mod operations with cheap bit operations.
unsigned long
. See how this affects NDiscSetTetData also. Optimise (long-term): When generating face pairings, do some checking to eliminate cases in which tetrahedron (k > 0) can be swapped with tetrahedron 0 to produce a smaller representation of the same pairing.
Feature: Allow cancellation of face pairing generation.
Feature: Allow cancellation of permutation set generation.
Feature (long-term): Make this simplification more effective.
Feature (long-term): Make this recognition more effective.
Feature: Calculation of Euler characteristic and orientability for non-compact surfaces.
Feature (long-term): Determine which faces in the solution space a normal surface belongs to.
Have some error flag so we can barf politely if the resulting number of tetrahedra is going to be too large to handle.
Optimise (urgent): Use maximisation of Euler characteristic to make this routine much faster than a plain vertex enumeration.
Optimise: Use maximisation of Euler characteristic to make this routine much faster than a plain vertex enumeration.
Optimise: Cache results.
Bug: Check for absurdly large numbers of discs and bail accordingly.
Bug: Check for absurdly large numbers of discs and bail accordingly.
Optimise: Cache results.
Optimise: Cache results.
Bug: Check for absurdly large numbers of discs and bail accordingly.
Optimise: Cache results.
Optimise: Cache results.
Feature: Allow custom matching equations.
Feature: Allow enumeration with some coordinates explicitly set to zero.
Feature: Allow generating only closed surfaces.
Feature: Generate facets of the solution space representing embedded surfaces.
Feature: Allow picking up the first ``interesting'' surface and bailing en route.
Feature (long-term): Determine the faces of the normal solution space.
Feature (long-term): Allow either subsets of normal surface lists or allow deletion of surfaces from lists.
Optimise (long-term): Investigate using sparse vectors for storage.
Bug: Allow modification of the vector by overwriting setValue(); this will require documentation changes in both this class and in NNormalSurfaceVector.
Optimise: Add a version that does not return the factors by value.
Optimise: Implement this routine natively to avoid the overhead of the temporary primeDecomp() vector.
Optimise: Add a version that does not return the factors by value.
Feature (long-term): Implement recognition of more common names.
Feature (long-term): Implement triangulation construction and homology calculation for more Seifert fibred spaces.
Feature: Is the boundary incompressible?
Feature (long-term): Am I obviously a handlebody? (Simplify and see if there is nothing left). Am I obviously not a handlebody? (Compare homology with boundary homology).
Feature (long-term): Is the triangulation Haken?
Feature (long-term): What is the Heegaard genus?
Feature (long-term): Have a subcomplex as a child packet of a triangulation. Include routines to crush a subcomplex or to expand a subcomplex to a normal surface.
Feature (long-term): Implement writeTextLong() for skeletal objects.
Optimise (long-term): Have this routine only use as many tetrahedra as are necessary, leaving finite vertices alone.
Optimise: Include random 2-3 moves to get out of wells.
Optimise: Improve the complexity by choosing a tetrahedron mapping from each component and following gluings to determine the others.