~ubuntu-branches/ubuntu/vivid/regina-normal/vivid-proposed

« back to all changes in this revision

Viewing changes to kdeui/doc/regina/featureset.docbook

  • Committer: Package Import Robot
  • Author(s): Ben Burton
  • Date: 2011-09-10 07:17:25 UTC
  • mfrom: (1.2.4 upstream)
  • Revision ID: package-import@ubuntu.com-20110910071725-97n90tywdq60w2cr
Tags: 4.90-1
* New upstream release!
* The user interface has been ported from KDE3 to KDE4 (closes: #556318).
  Re-enabled the GUI as a result.
* The build system has been ported from autotools to cmake.
* The new upstream release builds fine on amd64 (closes: #624882).
* Moved the users' handbook into regina-normal-doc.
* Upgraded several suggests/recommends.  Upgraded regina-normal-mpi to
  depend on mpi-default-bin, and regina-normal to depend on both graphviz
  and regina-normal-doc (which the GUI expends to be present).  Upgraded
  regina-normal to recommend gap.
* Bumped standards-version to 3.9.2.0 (no changes required).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<sect1 id="featureset">
 
2
 <title>What does Regina do?</title>
 
3
 
 
4
 <para>
 
5
  A list of &regina;'s more noteworthy features is presented below.
 
6
 </para>
 
7
 
 
8
 <sect2 id="features-tri">
 
9
  <title>Triangulations</title>
 
10
 
 
11
  <para>
 
12
   The primary objects that a user works with in &regina; are
 
13
   3-manifold triangulations.  As such, a large part of
 
14
   the software is devoted to the creation, analysis and manipulation of
 
15
   these triangulations.
 
16
  </para>
 
17
 
 
18
  <sect3 id="features-tricreation">
 
19
   <title>Creation</title>
 
20
 
 
21
   <para>
 
22
    You can create 3-manifold triangulations in the following ways:
 
23
    <itemizedlist>
 
24
     <listitem><para>
 
25
      manual construction by entering
 
26
      individual tetrahedron face gluings by hand;
 
27
     </para></listitem>
 
28
     <listitem><para>
 
29
      automatic generation of several standard families of triangulations,
 
30
      such as layered solid tori and layered lens spaces
 
31
      <xref linkend="bib-0-efficiency"/>,
 
32
      <xref linkend="bib-layeredlensspaces"/>,
 
33
      and standard constructions of &sfslong;s over the sphere;
 
34
     </para></listitem>
 
35
     <listitem><para>
 
36
      reconstruction from
 
37
      text-based isomorphism signatures <xref linkend="bib-burton-simps3"/>
 
38
      and Callahan-Hildebrand-Weeks
 
39
      dehydration strings <xref linkend="bib-cuspedcensus"/>;
 
40
     </para></listitem>
 
41
     <listitem><para>
 
42
      importing triangulations from &snappeapylink; and &orburl;;
 
43
     </para></listitem>
 
44
     <listitem><para>
 
45
      automatic construction of several ready-made example triangulations.
 
46
     </para></listitem>
 
47
     </itemizedlist>
 
48
    </para>
 
49
   </sect3>
 
50
 
 
51
  <sect3 id="features-trianalysis">
 
52
   <title>Analysis</title>
 
53
   <para>
 
54
    You can compute the following properties of a 3-manifold triangulation:
 
55
    <itemizedlist>
 
56
     <listitem><para>
 
57
      detailed combinatorial information about the skeleton and
 
58
      boundary components, including vertex links
 
59
      and the shapes formed by the various triangulation faces;
 
60
     </para></listitem>
 
61
     <listitem><para>
 
62
      a variety of homology and homotopy groups;
 
63
     </para></listitem>
 
64
     <listitem><para>
 
65
      the quantum invariants of Turaev and Viro
 
66
      <xref linkend="bib-turaevviro"/>;
 
67
     </para></listitem>
 
68
     <listitem><para>
 
69
      the Kawauchi-Kojima invariants of the torsion linking form
 
70
      <xref linkend="bib-kktorsionlinkingform"/>, and comments on
 
71
      where the triangulation might be embeddable;
 
72
     </para></listitem>
 
73
     <listitem><para>
 
74
      3-sphere and 3-ball recognition, as well as a complete connected sum
 
75
      decomposition for closed orientable triangulations;
 
76
     </para></listitem>
 
77
     <listitem><para>
 
78
      triangulation attributes relating to the existence of particular
 
79
      types of normal surface, such as 0-efficiency <xref
 
80
      linkend="bib-0-efficiency"/>
 
81
      and the existence of splitting surfaces
 
82
      (described <link linkend="features-splitting">below</link>);
 
83
     </para></listitem>
 
84
     <listitem><para>
 
85
      geometric properties, courtesy of the &snappea; kernel;
 
86
     </para></listitem>
 
87
     <listitem><para>
 
88
      a visual representation of the face pairing graph
 
89
      <xref linkend="bib-burton-facegraphs"/>, with the help
 
90
      of &graphviz;;
 
91
     </para></listitem>
 
92
     <listitem><para>
 
93
      text-based isomorphism signatures <xref linkend="bib-burton-simps3"/>,
 
94
      which identify a triangulation uniquely up to combinatorial isomorphism;
 
95
     </para></listitem>
 
96
     <listitem><para>
 
97
      Callahan-Hildebrand-Weeks dehydration strings
 
98
      <xref linkend="bib-cuspedcensus"/>,
 
99
      for those triangulations that can support them.
 
100
     </para></listitem>
 
101
    </itemizedlist>
 
102
   </para>
 
103
 
 
104
   <para>
 
105
    Pairs of triangulations can be tested for direct isomorphism, or for
 
106
    whether one triangulation is isomorphic to a subcomplex of another.  In
 
107
    addition the software can recognise and identify a large variety of
 
108
    well-formed structures within a
 
109
    triangulation.  These include common building blocks (such as the
 
110
    layered solid tori mentioned above) as well as infinite families
 
111
    of complete triangulations such as those described by
 
112
    Burton <xref linkend="bib-burton-phd"/>, <xref linkend="bib-burton-nor7"/>,
 
113
    <xref linkend="bib-burton-satblocks"/>,
 
114
    Martelli and Petronio <xref linkend="bib-italian9"/> and
 
115
    Matveev <xref linkend="bib-matveev6"/>.  As a
 
116
    result, &regina; can frequently recognise the underlying 3-manifolds for
 
117
    well-structured triangulations that it has not previously encountered.
 
118
   </para>
 
119
  </sect3>
 
120
 
 
121
  <sect3 id="features-trimanipulation">
 
122
   <title>Manipulation</title>
 
123
 
 
124
   <para>
 
125
    You can manipulate a 3-manifold triangulation using the following tools:
 
126
    <itemizedlist>
 
127
     <listitem><para>
 
128
      elementary moves (transformations local to a small
 
129
      number of tetrahedra), such as Pachner moves and other
 
130
      transformations described in <xref linkend="bib-burton-nor7"/>,
 
131
      many of which were suggested by Letscher;
 
132
     </para></listitem>
 
133
     <listitem><para>
 
134
      automated simplification in which the software attempts to use
 
135
      a combination of these elementary moves to reduce the number of
 
136
      tetrahedra as far as possible, though there is no
 
137
      guarantee that the smallest possible number of tetrahedra will be
 
138
      achieved;
 
139
     </para></listitem>
 
140
     <listitem><para>
 
141
      conversion to a 0-efficient triangulation where possible
 
142
      for closed orientable 3-manifolds <xref linkend="bib-0-efficiency"/>;
 
143
     </para></listitem>
 
144
     <listitem><para>
 
145
      barycentric subdivision and the truncation of ideal vertices
 
146
      (vertices whose links are neither 2-spheres nor discs);
 
147
     </para></listitem>
 
148
     <listitem><para>
 
149
      extension of the boundary to convert real boundary components into
 
150
      ideal vertices;
 
151
     </para></listitem>
 
152
     <listitem><para>
 
153
      conversion of a non-orientable triangulation to an orientable
 
154
      double cover;
 
155
     </para></listitem>
 
156
     <listitem><para>
 
157
      cutting along normal surfaces within a triangulation
 
158
      or crushing them to a point, as
 
159
      described <link linkend="features-surfaces">below</link>.
 
160
     </para></listitem>
 
161
    </itemizedlist>
 
162
   </para>
 
163
  </sect3>
 
164
 </sect2>
 
165
 
 
166
 <sect2 id="features-census">
 
167
  <title>Census Creation</title>
 
168
  <para>
 
169
   &regina; can be used to form a census of all 3-manifold triangulations
 
170
   satisfying a particular set of census constraints.
 
171
   The command-line tool
 
172
   <link linkend="man-tricensus"><command>tricensus</command></link>
 
173
   is particularly well suited for this task.
 
174
  </para>
 
175
  <para>
 
176
   The census algorithm is heavily optimised; see
 
177
   <xref linkend="bib-burton-facegraphs"/>,
 
178
   <xref linkend="bib-burton-nor10"/> and
 
179
   <xref linkend="bib-burton-genus"/> for details.
 
180
   There is also an &mpi; version that
 
181
   can be distributed across a large number of machines for
 
182
   use on high-performance clusters.
 
183
  </para>
 
184
  <para>
 
185
   &regina; ships with a number of
 
186
   prepackaged censuses, including closed 3-manifold triangulations
 
187
   <xref linkend="bib-burton-nor8"/>, <xref linkend="bib-burton-nor10"/>,
 
188
   <xref linkend="bib-burton-genus"/>, hyperbolic 3-manifolds
 
189
   <xref linkend="bib-cuspedcensus"/>, <xref linkend="bib-closedhypcensus"/>,
 
190
   and knot and link complements (tabulated by Joe Christy).
 
191
   A census lookup facility for arbitrary triangulations is provided.
 
192
  </para>
 
193
 </sect2>
 
194
 
 
195
 <sect2 id="features-surfaces">
 
196
  <title>Normal Surfaces</title>
 
197
  <para>
 
198
   &regina; is capable of enumerating all vertex normal surfaces or almost
 
199
   normal surfaces<footnote><para>Almost normal surfaces are closely related
 
200
   to normal surfaces and are used by Rubinstein in his 3-sphere recognition
 
201
   algorithm <xref linkend="bib-rubin-3sphere1"/>,
 
202
   <xref linkend="bib-rubin-3sphere2"/>.  &regina; only considers octagonal
 
203
   almost normal discs, and does not consider annular pieces.</para></footnote>
 
204
   of a triangulation,
 
205
   an operation required by most high-level topological algorithms that
 
206
   utilise normal surface theory.  The underlying enumeration algorithms
 
207
   are highly optimised, and are described in detail in
 
208
   <xref linkend="bib-burton-dd"/>,
 
209
   <xref linkend="bib-burton-convert"/> and
 
210
   <xref linkend="bib-burton-quadoct"/>.
 
211
  </para>
 
212
  <para>
 
213
   This vertex enumeration can be performed in a variety of coordinate
 
214
   systems.  For an <replaceable>n</replaceable>-tetrahedron triangulation
 
215
   this includes the 7<replaceable>n</replaceable>
 
216
   standard triangle and quadrilateral coordinates, as well
 
217
   as the smaller set of 3<replaceable>n</replaceable> quadrilateral-only
 
218
   coordinates <xref linkend="bib-quadspace"/>.
 
219
   Likewise, for almost normal surfaces
 
220
   this includes the 10<replaceable>n</replaceable> standard coordinates
 
221
   as well as the 6<replaceable>n</replaceable> quadrilateral-octagon
 
222
   coordinates <xref linkend="bib-burton-quadoct"/>.
 
223
  </para>
 
224
  <para>
 
225
   The enumeration
 
226
   can be restricted to embedded normal surfaces or can be expanded to
 
227
   include immersed and singular surfaces.  Furthermore, elementary support
 
228
   is present for spun normal surfaces, discussed in detail by
 
229
   Tillmann <xref linkend="bib-tillus-spun"/>,
 
230
   which are non-compact surfaces with infinitely many
 
231
   discs found in ideal triangulations.
 
232
  </para>
 
233
  <para>
 
234
   To analyse normal surfaces, you can:
 
235
   <itemizedlist>
 
236
    <listitem><para>
 
237
     view normal surfaces in a variety of coordinate systems,
 
238
     including the standard and quadrilateral-only coordinates
 
239
     discussed above as well as the edge weight coordinates introduced by
 
240
     Casson;
 
241
    </para></listitem>
 
242
    <listitem><para>
 
243
     calculate basic properties of normal surfaces such as
 
244
     Euler characteristic, orientability and one-sidedness;
 
245
    </para></listitem>
 
246
    <listitem><para>
 
247
     test surfaces for incompressibility, using both exact techniques
 
248
     <xref linkend="bib-jaco-oertel"/> and
 
249
     fast heuristics <xref linkend="bib-weber-seifert"/>;
 
250
    </para></listitem>
 
251
    <listitem><para>
 
252
     cut along a normal surface and retriangulate, or crush the surface
 
253
     using the techniques of Jaco and Rubinstein
 
254
     <xref linkend="bib-0-efficiency"/>;
 
255
    </para></listitem>
 
256
    <listitem><para>
 
257
     recognise standard surfaces within a triangulation such
 
258
     as splitting surfaces (described
 
259
     <link linkend="features-splitting">below</link>)
 
260
     and vertex and edge links;
 
261
    </para></listitem>
 
262
    <listitem><para>
 
263
     test pairs of surfaces for local compatibility (compatible
 
264
     quadrilaterals and/or octagons) and global compatibility (being
 
265
     able to make the surfaces disjoint);
 
266
    </para></listitem>
 
267
    <listitem><para>
 
268
     filter large lists of normal surfaces by various properties
 
269
     such as Euler characteristic, orientability and boundary.
 
270
    </para></listitem>
 
271
   </itemizedlist>
 
272
  </para>
 
273
 </sect2>
 
274
 
 
275
 <sect2 id="features-angles">
 
276
  <title>Angle Structures</title>
 
277
  <para>
 
278
   Angle structures, studied originally by Casson and then developed by
 
279
   Lackenby <xref linkend="bib-lackenby-taut"/>,
 
280
   <xref linkend="bib-lackenby-anglestruct"/> and
 
281
   Rivin <xref linkend="bib-rivin-structures"/>,
 
282
   <xref linkend="bib-rivin-combopt"/>,
 
283
   represent a purely
 
284
   algebraic generalisation of hyperbolic structures.  An angle structure
 
285
   on an ideal triangulation is formed by assigning an interior
 
286
   dihedral angle to each edge of every tetrahedron in such a way that
 
287
   a variety of linear equations and inequalities are satisfied.
 
288
  </para>
 
289
  <para>
 
290
   Using similar techniques to normal surface enumeration
 
291
   &regina; can enumerate all vertex angle structures in a triangulation,
 
292
   or all taut structures (for which each dihedral angle is precisely 0
 
293
   or &pi;).
 
294
  </para>
 
295
 </sect2>
 
296
 
 
297
 <sect2 id="features-splitting">
 
298
  <title>Splitting Surfaces</title>
 
299
  <para>
 
300
   A splitting surface contains precisely one quadrilateral disc within
 
301
   each tetrahedron and no other normal or almost normal discs.
 
302
   These surfaces have some interesting combinatorial and topological
 
303
   properties, described in detail in <xref linkend="bib-burton-phd"/>.
 
304
  </para>
 
305
  <para>
 
306
   &regina; can detect whether splitting surfaces
 
307
   occur within a triangulation.  It also provides support for
 
308
   splitting surface signatures, which are compact text-based representations
 
309
   from which splitting surfaces and their enclosing 3-manifold
 
310
   triangulations can be reconstructed.  In addition, &regina; can generate a
 
311
   census of all possible splitting surface signatures of a given size.
 
312
  </para>
 
313
 </sect2>
 
314
 
 
315
 <sect2 id="features-scripting">
 
316
  <title>Scripting</title>
 
317
  <para>
 
318
   Users can interact with &regina; at a lower level by writing and
 
319
   running scripts in <ulink url="http://www.python.org/">&python;</ulink>.
 
320
   These scripts are essentially high-level programs with immediate access
 
321
   to the mathematical core of &regina;, and are ideal for
 
322
   performing repetitive tasks over large sets of data.  Such tasks might
 
323
   include performing a sequence of tests upon all triangulations in a
 
324
   census, or testing a prototype for a new algorithm.
 
325
   Scripts can be embedded in &regina; data files or run from the
 
326
   command line, and custom libraries of
 
327
   routines can be written to share code between files.
 
328
  </para>
 
329
 </sect2>
 
330
 
 
331
 <sect2 id="features-interfaces">
 
332
  <title>Interfaces</title>
 
333
  <para>
 
334
   The usual method of running &regina; is through a full
 
335
   point-and-click graphical user interface.
 
336
   Alternatively, for those requiring immediate access to the
 
337
   mathematical core of the software, an interactive command-line interface
 
338
   is available for users to control the program using
 
339
   &python; scripting as described above.
 
340
   Various other specialised command-line utility programs are also available.
 
341
  </para>
 
342
  <para>
 
343
   The mathematical core of &regina; is provided as a &cpp; library,
 
344
   which means that programmers are able to access its low-level mathematical
 
345
   routines directly from within their own code.
 
346
  </para>
 
347
 </sect2>
 
348
 
 
349
 <sect2 id="features-docs">
 
350
  <title>Documentation</title>
 
351
  <para>
 
352
   Significant effort has been spent on documentation for this software.
 
353
   A full users' handbook is available for &regina; (which you are reading now).
 
354
   In addition, the graphical user interface offers extensive assistance
 
355
   through tooltips and &quot;What's This?&quot; texts.  Just hit
 
356
   <keycombo action="simul">&Shift;<keycap>F1</keycap></keycombo>
 
357
   and click on any element of the user interface for immediate assistance.
 
358
  </para>
 
359
  <para>
 
360
   For users writing &python; scripts or for &cpp; programmers seeking to
 
361
   modify or extend the software, the full &api; for &regina;'s
 
362
   mathematical engine is also extensively documented.
 
363
   You can access the &api; documentation by selecting
 
364
   <menuchoice>
 
365
    <guimenu>Help</guimenu>
 
366
    <guimenuitem>Python API Reference</guimenuitem>
 
367
   </menuchoice>.
 
368
  </para>
 
369
 </sect2>
 
370
 
 
371
 <sect2 id="features-datafiles">
 
372
  <title>Data Files</title>
 
373
  <para>
 
374
   &regina; stores data in a well-organised hierarchical structure,
 
375
   allowing a single data file to contain
 
376
   multiple triangulations, normal surface lists and other topological
 
377
   structures, along with supporting data such as text notes,
 
378
   &python; scripts and &pdf; documents.
 
379
   The file format is based on
 
380
   compressed &xml;, an open and widely-supported text-based data
 
381
   format.  International characters are fully supported.
 
382
  </para>
 
383
  <para id="dataformat">
 
384
   Again, this &xml; file format is extensively documented.
 
385
   For details, select
 
386
   <menuchoice>
 
387
    <guimenu>Help</guimenu>
 
388
    <guimenuitem>File Format Reference</guimenuitem>
 
389
   </menuchoice>.
 
390
  </para>
 
391
 </sect2>
 
392
</sect1>