Statistics

After Triangle finishes writing a mesh to disk, it generates statistics describing the mesh. Typically, they appear as follows.

```Statistics:

Input vertices: 518
Input segments: 518
Input holes: 6

Mesh vertices: 811
Mesh triangles: 1110
Mesh edges: 1926
Mesh exterior boundary edges: 522
Mesh interior boundary edges: 0
Mesh subsegments (constrained edges): 522
```
Most of these figures are self-explanatory. `Exterior boundary edges' is the total number of edges on the boundary of the mesh, including internal holes. (Each exterior boundary edge is an edge of just one triangle). `Interior boundary edges' is the total number of subsegments (constrained edges that make up input segments) that are not on the boundary of the mesh. (Each interior boundary edge is an edge of two triangles). `Mesh subsegments' is the sum of the exterior and interior boundary edges.

When the -V switch is used, more detailed statistics are generated, as illustrated below.

```Mesh quality statistics:

Smallest area:       2.4708e-06   |  Largest area:         0.002675
Shortest edge:        0.0018129   |  Longest edge:          0.10057
Shortest altitude:    0.0011442   |  Largest aspect ratio:   4.6264

Triangle aspect ratio histogram:
1.1547 - 1.5       :       158    |     15 - 25         :         0
1.5 - 2         :       366    |     25 - 50         :         0
2 - 2.5       :       259    |     50 - 100        :         0
2.5 - 3         :       178    |    100 - 300        :         0
3 - 4         :       142    |    300 - 1000       :         0
4 - 6         :         7    |   1000 - 10000      :         0
6 - 10        :         0    |  10000 - 100000     :         0
10 - 15        :         0    | 100000 -            :         0
(Aspect ratio is longest edge divided by shortest altitude)

Smallest angle:          15.024   |  Largest angle:           133.2

Angle histogram:
0 -  10 degrees:         0    |     90 - 100 degrees:       150
10 -  20 degrees:         1    |    100 - 110 degrees:       151
20 -  30 degrees:       379    |    110 - 120 degrees:        68
30 -  40 degrees:       466    |    120 - 130 degrees:        20
40 -  50 degrees:       439    |    130 - 140 degrees:         3
50 -  60 degrees:       441    |    140 - 150 degrees:         0
60 -  70 degrees:       367    |    150 - 160 degrees:         0
70 -  80 degrees:       650    |    160 - 170 degrees:         0
80 -  90 degrees:       195    |    170 - 180 degrees:         0

Memory allocation statistics:

Maximum number of vertices: 811
Maximum number of triangles: 1110
Maximum number of subsegments: 522
Maximum number of encroached subsegments: 1
Maximum number of bad triangles: 531
Maximum number of stacked triangle flips: 4
Approximate heap memory use (bytes): 95440
```
The mesh quality statistics are self-explanatory. The memory allocation statistics describe the use of various internal structures, whose purpose can be divined by reading the comments in the source code for Triangle. (`Viri' are used to spread holes and area constraints.) The memory use is the most salient statistic, giving an account of most of the memory dynamically allocated by Triangle.

```Algorithmic statistics:

Number of incircle tests: 7362
Number of 2D orientation tests: 15346
Number of triangle circumcenter computations: 292
```
An `incircle' test checks whether a point falls inside the unique circle that passes through three other points. An `orientation' test checks three points to see if they are arranged in clockwise or counterclockwise order, or if they are collinear. A `circumcenter computation' finds the center of the circumscribing circle of a triangle; this operation is used to generate Steiner points for the Delaunay refinement algorithm, and vertices for the Voronoi diagram.

If you've forgotten the statistics for an existing mesh, run Triangle on that mesh with the -rNEP switches to read the mesh and print the statistics without writing any files. Also use the -p switch if you've got a .poly file for the mesh, and the -V switch if you want mesh quality statistics.