100 Degree Theorem: Buttons
Here is a list of the buttons on this window and their actions.
- clear: This button clears the main McBilliards plotting
- off: This button sets the plot,
verify, and cover buttons to off. You might
want this mode if you are just browsing
through the word list and don't want to take any specific action.
- recognize Suppose you have selected
a tile on the main plotting window of McBilliards.
This is tantamount to selecting a word W. If you
push the recognize button, McBilliards will check
if W is one of the words on the list of words which
comprises the 100 degree result. If so, McBilliards
highlights the data box containing the word.
- test cosine This button runs the check that
our method of rigorously computing the cosine function
works as claimed.
-
rigorN: Using this button you can toggle
between numerical calculations (rigor N) and
rigorous calculations (rigor Y). The rigorous
calculations are much slower and produce almost
the same result as the numerical calculations.
The rigorous calculations are done using the
BigInteger class, which is a class designed
for doing exact integer calculations with
huge integers. We reduce everything to an
integer calculation by multiplying all the
quantities by a huge interval and trapping
the result inside an interval of BigIntegers.
For the verify button (explained below),
there is sometimes a small discrepancy between
the output of the two modes.
This is not a bug in the program, but rather a
reflection of the fact that the numerical mode
uses some unnatural (but convenient) cutoffs in a few places.
- cover This button checks that our
union of tiles P(W) actually covers the 100 Degree Strip .
If you don't know what this means, you should read
the main documentation for this window. (The info
button at lower right.)
The button has 3 modes
- single: Checks that the boundary of the given polygon
is covered by other polygons on the list. The
selected polygon is plotted in yellow on the main
McBilliards console and the neighboring polygons
are plotted in red.
- group: Performs the
same action for all the polygons within a group.
- all: performs the action for all
the polygons. This constitutes a proof that
S is covered by our polygons.
After you select the cover option and one of the
modes, you still need to click on one of the
data boxes to get any action. You should definitely
experiment with the single mode first. The same
applied to all the buttons which have these
modes.
-
plot:
This button has 3 modes:
- single: When you click on the
data box B(W) the polygon P(W)
is plotted on the main window.
- group: Each tile
belongs to a group of tiles. When you click on a
tile, the entire group is plotted. If it isn't
obvious to you how the tiles are grouped, just
try this mode on various tiles, changing the
color on the main console as you plot.
The tiles in a group will all get the same
color.
- plot all dyadic:
When you click on any tile, all the
tiles with polygons with dyadic vertices
are plotted. These are the polygons P1,...,P221.
The polygons P1,...,P6 are compound tiles,
in the sense that they are covered by some
union of orbit tiles. The tiles P7,...,P221
are each covered by a single orbit tile.
The window here interacts with the rest of McBilliards.
After you select a data box you can use the McBilliards
plotter to compare the polygon in the data box to
the actual tile. You will see that the polygon
in the data box is an inner approximation to
the true tile. (There are 10 mild exceptions
to this, namely 10 of the tiles in the P6 series.
However, these exceptional
tiles are used for illustration purposes only.)
- verify:
As with the plot button, this button has 3 modes.
The only difference here is that the group
mode doesn't verify the whole group but rather
verifies the portion of the group which
starts with the box you click.
If you want to verify the whole group
you should click the first box in the group.
With the exception of some of the polygons
in the Pi/6 series, each polygon P(W) is contained in
the orbit tile O(W). The verify button
proves this by constructing a covering of
P(W) by dyadic squares (and sometimes dyadic triangles)
such that each dyadic square (or triangle) is
contained in O(W).
There are 7 exceptions to this, which we discuss below.
Once these squares are plotted, you can
access them one at a time as follows:
- On the plot component of the main console set the plot mode to 'verify'.
- On the plot component of the main console set the plot style to 'local'.
- On the plot component of the main console click on the
rightmost button so that it is black (rather than magenta.)
- Click on the square of interest to you and push plot.
By following these steps, you replot the square
of interest to you, in a color of your choice.
This square remembers all the information necessary
to reconstruct the proof that it lies in the orbit tile.
To appreciate the extra information stored in the square,
you should really open up the unfolding window and
play around with the bottom most window. This
window will have a number of little numbered squares in it,
and you should click them. To find out what these numbered
squares mean, you should do 3 things:
- Read the documentation for the packing mode of the plotter.
- Read the documentation for the verify mode
of the plotter.(This is a copy of the verify mode performed here.)
- Read the documentation for the unfolding window,
especially the bottom-most component, and then play
around with the bottom component.
The verify mode can either be run numerically or rigorously.
If you want to do rigorous calculations, you should set the
rigor button to Y(es). The advantage of the rigorous
calculations is that they really give a proof.
The numerical calculations yield practically the
same covering, and work much faster, but we don't
attempt to control the roundoff error in the computations.
The output of the verify process needs to be suitably interpreted in some cases:
- Interior tiles
For the interior tiles, P30,...,P221, there
picture is perfectly clean. If you run the
verify process in the rigorous mode then we
have proven that P(W) is contained in O(W)
with no further interpretation.
-
2. Right abutting tiles If you run the verify process
in the rigorous mode for the tiles P7,...,P29
then we are omitting to compute a finite number
of defining functions. These get printed out
at the bottom of the window as exceptions. To
appreciate these defining functions you should
open up the unfolding window and click on the
vertices named by the exceptions. You can see
for yourself that we have only omitted defining
functions which vanish on the right angled
line and are positive on the obtuse side,
at least within the range of each plotted triangle
which abuts the right angled line. We can't treat
these omitted defining functions computationally
because they vanish precisely on the boundary of the polygon.
- 7 Exceptional tiles
There are 7 exceptional cases, P222,...,P228.
These polygons share two edges each with the orbit
tiles and so we need to omit more definining functions.
Again the entire list is printed out. In this case,
the list of dyadic squares produced is NOT a subset
of the orbit tile. However, when we intersect each
dyadic square with the sector cut out by the omitted
defining functions, we get something which is
contained in the tile. To see what the tile
actually looks like, you should use the ordinary McBilliards plotter.
- trace verify: This button plays the same
role as the local mode for our plotter. That is,
with the trace verify mode on, you can check one
square at a time the calculations that McBilliards makes
when it produces the square covering discussed for
the verify button. To learn about what these
calculations are, you should read the documentation
for our plotter. The calculations are also discussed
in complete detail in Rich's paper.
- sanity: These buttons perform various
sanity checks that we have programmed McBilliards
correctly. We used them for debugging purposes.
They have the same three modes as
do the plot, verify, and cover buttons.
Rich's paper has details on the
checks.