This page relates only to C++ and Python programmers.
Over time, Regina makes changes and improvements to its C++ and Python interfaces. This page explains how you will need to update your C++ code and/or Python scripts to work with Regina 6.0 and later.
Now that Regina 7.0 is available, you should also read the separate pages on:
If you have older code (from 2016 or earlier), you can also read:
There are some general rules that cover most of the changes:
Beyond these general rules, there are some additional changes and/or special cases. These are listed in the table below, along with suggested replacements that you can use instead. Any changes in the behaviour of these routines or classes are noted in the comments column.
Deprecated code | Replacement | Comments | |
---|---|---|---|
Headers | |||
approx.h | — | These functions for managing round-off error are very coarse, and will be removed because they should not be used. | |
engine.h, output.h |
core/engine.h, core/output.h |
||
nbooleans.h | boolset.h | ||
nlayeredsurfacebundle.h | layeredtorusbundle.h | ||
nmatrixint.h | matrix.h | ||
nperm2.h, nperm3.h, nperm4.h, nperm5.h | perm.h | ||
packetlistener.h | packet.h | ||
sfcombination.h, sfproperties.h | surfacefilter.h | ||
Classes | |||
Dim2EdgePairing, NFacePairing, Dim4FacetPairing |
FacetPairing<2>, FacetPairing<3>, FacetPairing<4> |
||
Dim2ExampleTriangulation, NExampleTriangulation, Dim4ExampleTriangulation |
Example<2>, Example<3>, Example<4> |
||
Dim2TriangleEdge, NTetFace, Dim4PentFacet |
FacetSpec<2>, FacetSpec<3>, FacetSpec<4> |
||
MatrixIntDomain, MatrixRing | Matrix | These have been merged into the main Matrix class, and the extra functionality that they provided is now handled using template arguments. | |
NExampleSnapPeaTriangulation | ExampleSnapPea | ||
NNormalHypersurfaceVectorMirrored | — | ||
NSurfaceSubset | — | ||
NPropertyBase | — | ||
Types | |||
TuraevViroAlg | Algorithm | ||
UseDim2GluingPerms, UseGluingPerms, UseDim4GluingPerms |
GluingPermSearcher<2>::Use, GluingPermSearcher<3>::Use, GluingPermSearcher<4>::Use |
||
Member Routines | |||
Matrix::multiplyAs() | operator *= | Now that the Matrix class is unified, there is no need for the type-specific multiplyAs(). | |
NSVectorMirrored copy constructor | — | ||
Triangulation<2>::oneThreeMove(), Triangulation<2>::twoTwoMove(), Triangulation<2>::threeOneMove() |
Triangulation<2>::pachner() | ||
Triangulation<3>::drillEdge() | Triangulation<3>::pinchEdge() | In all cases that matter, this performs the same topological operation with vastly fewer tetrahedra. | |
Triangulation<3>::knowsSplittingSurface() | — | The routine hasSplittingSurface() is now fast, and so there is no need to pre-query whether the result is already known. | |
Triangulation<3>::oneFourMove(), Triangulation<3>::twoThreeMove(), Triangulation<3>::threeTwoMove(), Triangulation<3>::fourOneMove() |
Triangulation<3>::pachner() | ||
Triangulation<4>::oneFiveMove(), Triangulation<4>::twoFourMove(), Triangulation<4>::threeThreeMove(), Triangulation<4>::fourTwoMove(), Triangulation<4>::fiveOneMove() |
Triangulation<4>::pachner() | ||
Global Routines | |||
isZero(), isNonZero(), isPositive(), isNegative(), isNonPositive(), isNonNegative() | — | These methods for managing round-off error are very coarse, and will be removed because they should not be used. | |
Constants | |||
Matrix::zero, Matrix::one | 0, 1 | ||
PACKET_DIM2TRIANGULATION, PACKET_TRIANGULATION, PACKET_DIM4TRIANGULATION |
PACKET_TRIANGULATION2, PACKET_TRIANGULATION3, PACKET_TRIANGULATION4 |
||
PACKET_NORMALSURFACELIST, PACKET_NORMALHYPERSURFACELIST, PACKET_ANGLESTRUCTURELIST |
PACKET_NORMALSURFACES, PACKET_NORMALHYPERSURFACES, PACKET_ANGLESTRUCTURES |
||
TV_DEFAULT, TV_BACKTRACK, TV_TREEWIDTH, TV_NAIVE |
ALG_DEFAULT, ALG_BACKTRACK, ALG_TREEWIDTH, ALG_NAIVE |
The corresponding enum type has changed from TuraevViroAlg to the more general Algorithm. | |
Command-Line Utilities | |||
All MPI utilities (e.g., tricensus-mpi) | — | These have been phased out in favour of other approaches to large-scale parallelisation. See the tricensus-mpi manual page for suggestions. |