Todo List

Class regina::NAbelianGroup
Optimise (long-term): Look at using sparse matrices for storage of SNF and the like.

Member regina::NCensus::findAllCompletions (NPacket *parent, NTriangulation *base, NBoolSet finiteness, NBoolSet orientability, AcceptTriangulation sieve=0, void *sieveArgs=0, NProgressManager *manager=0)
Bug (urgent): This routine currently does nothing!

Class regina::NDiscSetTet
Bug (long-term): Have some error flag so we can barf politely if the number of normal discs of a given type does not fit into an unsigned long. See how this affects NDiscSetTetData also.

Member regina::NFacePairing::findAllPairings (unsigned nTetrahedra, NBoolSet boundary, int nBdryFaces, UseFacePairing use, void *useArgs=0, bool newThread=false)
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.

Member regina::NFacePairing::findAllPairings (unsigned nTetrahedra, NBoolSet boundary, int nBdryFaces, UseFacePairing use, void *useArgs=0, bool newThread=false)
Feature: Allow cancellation of face pairing generation.

Member regina::NGluingPermSearcher::runSearch (long maxDepth=-1)
Feature: Allow cancellation of permutation set generation.

Class regina::NGraphLoop
Optimise: Speed up homology calculations involving orientable base spaces by adding rank afterwards, instead of adding generators for genus into the presentation matrix.

Class regina::NGraphPair
Optimise: Speed up homology calculations involving orientable base spaces by adding rank afterwards, instead of adding generators for genus into the presentation matrix.

Class regina::NGraphTriple
Optimise: Speed up homology calculations involving orientable base spaces by adding rank afterwards, instead of adding generators for genus into the presentation matrix.

Class regina::NGroupPresentation
Optimise (long-term): The simplification routines really need work!

Member regina::NGroupPresentation::intelligentSimplify ()
Feature (long-term): Make this simplification more effective.

Member regina::NGroupPresentation::recogniseGroup () const
Feature (long-term): Make this recognition more effective.

Class regina::NIsomorphism
Feature: Composition of isomorphisms.

Class regina::NNormalSurface
Feature: Calculation of Euler characteristic and orientability for non-compact surfaces.

Class regina::NNormalSurface
Feature (long-term): Determine which faces in the solution space a normal surface belongs to.

Member regina::NNormalSurface::isVertexLinking () const
Optimise: Cache results.

Member regina::NNormalSurface::isVertexLink () const
Optimise: Cache results.

Member regina::NNormalSurface::isThinEdgeLink () const
Optimise: Cache results.

Member regina::NNormalSurface::isSplitting () const
Optimise: Cache results.

Member regina::NNormalSurface::isCentral () const
Optimise: Cache results.

Member regina::NNormalSurface::cutAlong () const
Feature: Implement this routine.

Member regina::NNormalSurface::knownCanCrush () const
Feature: Implement this routine! At least for embedded 2-spheres.

Member regina::NNormalSurface::findNonTrivialSphere (NTriangulation *tri)
Optimise (urgent): Use maximisation of Euler characteristic to make this routine much faster than a plain vertex enumeration.

Member regina::NNormalSurface::findVtxOctAlmostNormalSphere (NTriangulation *tri)
Optimise (urgent): Use maximisation of Euler characteristic to make this routine much faster than a plain vertex enumeration.

Class regina::NNormalSurfaceList
Feature: Allow custom matching equations.

Class regina::NNormalSurfaceList
Feature: Allow enumeration with some coordinates explicitly set to zero.

Class regina::NNormalSurfaceList
Feature: Allow generating only closed surfaces.

Class regina::NNormalSurfaceList
Feature: Generate facets of the solution space representing embedded surfaces.

Member regina::NNormalSurfaceList::enumerate (NTriangulation *owner, int newFlavour, bool embeddedOnly=true, NProgressManager *manager=0)
Feature: Allow picking up the first ``interesting'' surface and bailing en route.

Member regina::NNormalSurfaceList::enumerate (NTriangulation *owner, int newFlavour, bool embeddedOnly=true, NProgressManager *manager=0)
Feature (long-term): Determine the faces of the normal solution space.

Member regina::NNormalSurfaceList::enumerate (NTriangulation *owner, int newFlavour, bool embeddedOnly=true, NProgressManager *manager=0)
Feature (long-term): Allow either subsets of normal surface lists or allow deletion of surfaces from lists.

Member regina::NNormalSurfaceList::enumerate (NTriangulation *owner, int newFlavour, bool embeddedOnly=true, NProgressManager *manager=0)
Optimise: Investigate obvious compressions.

Member regina::NNormalSurfaceList::enumerate (NTriangulation *owner, int newFlavour, bool embeddedOnly=true, NProgressManager *manager=0)
Optimise: Investigate monte carlo methods.

Class regina::NNormalSurfaceVector
Feature: Implement quad-oct space.

Class regina::NNormalSurfaceVector
Optimise (long-term): Investigate using sparse vectors for storage.

Class regina::NNormalSurfaceVectorMirrored
Bug: Allow modification of the vector by overwriting setValue(); this will require documentation changes in both this class and in NNormalSurfaceVector.

Class regina::NPacket
Feature: Provide automatic name selection/specification upon child packet insertion.

Member regina::NPillowTwoSphere::reduceTriangulation () const
Bug (urgent): This routine currently does nothing!

Member regina::NPillowTwoSphere::getReducedTriangulation (const NTriangulation *original) const
Bug (urgent): This routine currently does nothing!

Class regina::NSatRegion
Have this class track the boundary components properly, with annuli grouped and oriented according to the region boundaries (as opposed to individual block boundaries).

Class regina::NSFSpace
Implement recognition of more common names.

Class regina::NSFSpace
Implement triangulation construction and homology calculation for more Seifert fibred spaces.

Member regina::NSnappedTwoSphere::reduceTriangulation () const
Bug (urgent): This routine currently does nothing!

Member regina::NSnappedTwoSphere::getReducedTriangulation (const NTriangulation *original) const
Bug (urgent): This routine currently does nothing!

Class regina::NSurfaceFilter
Feature: Implement property lastAppliedTo.

Class regina::NTorusBundle
Feature: Implement the == operator for finding conjugate and inverse matrices.

Class regina::NTorusBundle
Feature: Change reduce() so that it uses a proper canonical matrix representation.

Class regina::NTriangulation
Feature: Is the boundary incompressible?

Class regina::NTriangulation
Feature: Add set of cusps and three corresponding get functions.

Class regina::NTriangulation
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).

Class regina::NTriangulation
Feature (long-term): Is the triangulation Haken?

Class regina::NTriangulation
Feature (long-term): What is the Heegaard genus?

Class regina::NTriangulation
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.

Class regina::NTriangulation
Feature (long-term): Implement writeTextLong() for skeletal objects.

Class regina::NTriangulation
Feature (long-term): Random triangulation with n tetrahedra.

Member regina::NTriangulation::isIsomorphicTo (const NTriangulation &other) const
Optimise: Improve the complexity by choosing a tetrahedron mapping from each component and following gluings to determine the others.

Member regina::NTriangulation::crushMaximalForest ()
Bug (urgent): This algorithm needs to be changed from the current incorrect algorithm to Dave's algorithm that avoids crisis by using 2-3 moves.

Member regina::NTriangulation::intelligentSimplify ()
Optimise (urgent): Make this faster and more effective. Include book opening moves and random 2-3 moves to get out of wells. Unglue faces with three boundary edges and record the corresponding change in topology. Minimise the amount of skeletal/homological calculation.

Member regina::NTriangulation::simplifyToLocalMinimum (bool perform=true)
Bug (urgent): This routine currently does not crush a maximal forest!

Member regina::NTriangulation::collapseEdge (NEdge *e, bool check=true, bool perform=true)
Bug (urgent): The restrictions on allowing this move to take place are currently wrong. Many valid cases are ruled out (as acknowledged in the original commit of the code), but certain invalid cases are also allowed which will almost certainly crash the program.

Member regina::NTriangulation::idealToFinite (bool forceDivision=false)
Optimise (long-term): Have this routine only use as many tetrahedra as are necessary, leaving finite vertices alone.

Member regina::NVertexEnumerator::enumerateVertices (OutputIterator results, RayIterator oldRaysFirst, RayIterator oldRaysLast, FaceIterator facesFirst, FaceIterator facesLast, const NMatrixInt &subspace, const NCompConstraintSet *constraints, NProgressNumber *progress=0) const=0
Optimise: Intersect the hyperplanes in a good order.

File matrixops.h
Feature (long-term): Add a routine to find the rank of an integer matrix; use this to show the rank of the matching equations.

Namespace regina
Bug: Derive from regina::boost::noncopyable where appropriate.

Namespace regina
Feature (long-term): Enhance the test suite for the calculation engine.

Member regina::formSigCensus (unsigned order, UseSignature use, void *useArgs=0)
Feature: Add support for symbols of differing case.


Copyright © 1999-2006, Ben Burton
This software is released under the GNU General Public License.
For further information, or to submit a bug or other problem, please contact Ben Burton (bab@debian.org).