Supplement I: Functions and Constants

Supplement I: Functions and Constants
Ÿ Author
Sean Mclaughlin and Thomas Hales
July 9, 2009
Many of the following definitions also occur in the proof of the Kepler Conjecture. SPI refers to
Thomas C. Hales: Sphere Packings, I. Discrete & Computational Geometry 17(1): 1-51 (1997).
∆
∆ is related to the volume of a tetrahedron with edges x1 .. x6. See SPI, p.32.
DeltaX@x1_, x2_, x3_, x4_, x5_, x6_D :=
Module@8<,
x1 * x4 * H-x1 + x2 + x3 - x4 + x5 + x6L + x2 * x5 * Hx1 - x2 + x3 + x4 - x5 + x6L +
x3 * x6 * Hx1 + x2 - x3 + x4 + x5 - x6L - Hx2 * x3 * x4L - Hx1 * x3 * x5L - Hx1 * x2 * x6L - Hx4 * x5 * x6L
D;
The derivative of ∆ with respect to the fourth argument comes up below.
DeltaX4@x1_, x2_, x3_, x4_, x5_, x6_D :=
Module@8<,
-Hx1 * x4L - Hx2 * x3L + Hx2 * x5L + Hx3 * x6L - Hx5 * x6L + x1 * H-x1 + x2 + x3 - x4 + x5 + x6L
D;
D@DeltaX@x1, x2, x3, x4, x5, x6D, x4D - DeltaX4@x1, x2, x3, x4, x5, x6D Š 0
True
Dihedral angles
The dihedral of a simplex with respect to x1, x2 an x3.
DihX@xs__D :=
Module@8dx4, d<,
dx4 = DeltaX4@xsD;
d = DeltaX@xsD;
Pi  2 + ArcTan@Sqrt@4 * 8xs<@@1DD * dD, -dx4D
D;
Dih2X@x1_, x2_, x3_, x4_, x5_, x6_D :=
Module@8<,
DihX@x2, x1, x3, x5, x4, x6D
D;
Dih3X@x1_, x2_, x3_, x4_, x5_, x6_D :=
Module@8<,
DihX@x3, x1, x2, x6, x4, x5D
D;
Solid angles
Printed by Mathematica for Students
2
functions.nb
Solid angles
Solid angles of a simplex. The intuitive but inefficient definition is
SlowSolX@xs__D :=
Module@8<,
DihX ž xs + Dih2Xž xs + Dih3Xž xs - Pi
D;
This definition is inefficient in practice because of three separate calls to DihX. An efficient version is
SolAux@x1_, x2_, x3_, x4_, x5_, x6_D :=
Module@8<,
Sqrt@x1 x2 x3D + 1  2 Sqrt@x1D Hx2 + x3 - x4L +
1  2 Sqrt@x2D Hx1 + x3 - x5L + 1  2 Sqrt@x3D Hx1 + x2 - x6L
D;
SolX@xs__D :=
Module@8a, d<,
a = SolAux@xsD;
d = DeltaX@xsD;
2 ArcTan@2 a, Sqrt@dDD
D;
Volume
Volume of a Voronoi polyhedron contained within a tetrahedron. The derivation comes from SPI.
UpsX@x1_, x2_, x3_D :=
Module@8<,
-Hx1 ^ 2 + x2 ^ 2 + x3 ^ 2L + 2 Hx1 x3 + x1 x2 + x2 x3L
D;
FpsX@x1_, x2_, x3_D :=
Module@8<,
x1 Hx2 + x3 - x1L + x2 Hx1 + x3 - x2L
D;
ChiX@x1_, x2_, x3_, x4_, x5_, x6_D :=
Module@8<,
-x1 x4 ^ 2 + x1 x4 x5 + x2 x4 x5 - x2 x5 ^ 2 + x1 x4 x6 + x3 x4 x6 + x2 x5 x6 + x3 x5 x6 - 2 x4 x5 x6 - x3 x6 ^ 2
D;
VolumeX@x1_, x2_, x3_, x4_, x5_, x6_D :=
Module@8d, u1, u2, u3, f1, f2, f3, c1, c2, c3<,
d = Sqrt@DeltaX@x1, x2, x3, x4, x5, x6DD;
u1 = UpsX@x1, x2, x6D;
u2 = UpsX@x2, x3, x4D;
u3 = UpsX@x1, x3, x5D;
f1 = FpsX@x1, x2, x6D;
f2 = FpsX@x2, x3, x4D;
f3 = FpsX@x1, x3, x5D;
c1 = ChiX@x4, x5, x3, x1, x2, x6D;
c2 = ChiX@x6, x5, x1, x3, x2, x4D;
c3 = ChiX@x4, x6, x2, x1, x3, x5D;
H1  H48 dLL * Hf1 * c1  u1 + f2 * c2  u2 + f3 * c3  u3L
D;
Truncation
Printed by Mathematica for Students
functions.nb
Truncation
Truncation of the Voronoi polyhedron occurs at the circumradius of a regular dodecahedron of inradius 1. The actual number,
3 Tan[Π/5] is irrational. For computation purposes we truncate at a rational number just slightly larger, called DodecTrunc.
This is the constant tdod of the JAMS paper, section 2.1. The following functions are discussed in the paper, Section 5.1.
RealTrunc =
3 Tan@Π  5D;
N@RealTrunc, 10D
1.258408572
DodecTrunc = 125 841  100 000;
Quoins
Quoins arise in the calculation of the volume of the truncated Voronoi polyhedron contained in a simplex. See SPI.
Doct = HPi - H2  Zeta1LL  Sqrt@8D;
Zeta1 = 1  H2 * ArcTan@Sqrt@2D  5DL;
The circumradius of a face.
EtaX@x1_, x2_, x3_D :=
Module@8<,
Sqrt@Hx1 x2 x3L  HUpsX@8x1, x2, x3<DLD
D;
Modified arctangent function with better asymptotic behavior.
Matan@x_D :=
Module@8<,
ArcTan@Sqrt@xDD - Sqrt@xD + x ^ H3  2L  3
D;
The volume of a Rogers simplex.
Rogers@x_, y_, z_D :=
Module@8<,
2 * x ^ 3 * y ^ 2 - 3 * x * y ^ 4 + 8 * x ^ 3 * y * z - 12 * x * y ^ 3 * z + 8 * x ^ 3 * z ^ 2 - 12 * x * y ^ 2 * z ^ 2 +
6 * x ^ 2 * z ^ 3 - 12 * x * y * z ^ 3 + 8 * y ^ 2 * z ^ 3 - 3 * x * z ^ 4 + 8 * y * z ^ 4 + 2 * z ^ 5
D;
UncheckedQuoin assumes a < b < c
UncheckedQuoin@a_, b_, c_D :=
Module@8u2, atu, g1, quo, fh, g2, z, g3<,
u2 = Hc ^ 2 - b ^ 2L  Hb ^ 2 - a ^ 2L;
atu = Matan@u2D;
g1 = Hc - aL * Ha ^ 2 + a * c - 2 * c ^ 2L * atu;
quo = Hb ^ 2 - a ^ 2L  H3 Hb + cL ^ 4L;
fh = u2 ^ H5  2L;
g2 = quo * fh * Rogersž 8a, b, c<;
z = HHc - bL * Hb - aLL  HHa + bL * Hb + cLL;
g3 = 4 c ^ 3 * Matan@zD;
-1  6 * Hg1 + g2 + g3L
D;
Printed by Mathematica for Students
3
4
functions.nb
Quoin@a_, b_, c_D := Module@8<, If@Or@b £ a, c £ bD, 0, UncheckedQuoinž 8a, b, c<DD;
QX@t_, 8x1_, x2_, x3_<D :=
Module@8<,
Quoin@8Sqrt@x1D  2, EtaX@x1, x2, x3D, t<D
D;
Volume of all 6 quoins of a tetrahedron.
QuoinsX@t_, 8x1_, x2_, x3_, x4_, x5_, x6_<D :=
Module@8<,
-4 Doct *
HQX@t, 8x1, x2, x6<D +
QX@t, 8x2, x1, x6<D +
QX@t, 8x2, x3, x4<D +
QX@t, 8x3, x2, x4<D +
QX@t, 8x1, x3, x5<D +
QX@t, 8x3, x1, x5<DL
D;
Truncated Volume
The volume of a truncated Voronoi polyhedron. See SPI.
Phi@8h_, t_<D :=
Module@8<,
2 * H2 - Doct * h * t * Hh + tLL  3
D;
UncheckedVorstarFactor assumes h <= t
UncheckedVorstarFactor@8a_, h_, t_, phi0_<D :=
Module@8<,
a * H1 - h  tL * HPhi ž 8h, t< - phi0L
D;
VorstarFactor@args__D :=
Module@8<,
If@args@@2DD £ args@@3DD, UncheckedVorstarFactorž args, 0D
D;
Printed by Mathematica for Students
functions.nb
5
Vorstar@8t_, 8h1_, h2_, h3_, a1_, a2_, a3_<<D :=
Module@8phi0<,
phi0 = Phi ž 8t, t<;
VorstarFactorž 8a1, h1, t, phi0< + VorstarFactorž 8a2, h2, t, phi0< +
VorstarFactorž 8a3, h3, t, phi0< + Ha1 + a2 + a3 - PiL * phi0
D;
VortNoQuoinsX@8t_, 8x1_, x2_, x3_, x4_, x5_, x6_<<D :=
Module@8h1, h2, h3, a1, a2, a3<,
h1 = Sqrt@x1D  2;
h2 = Sqrt@x2D  2;
h3 = Sqrt@x3D  2;
a1 = DihX ž xs;
a2 = Dih2Xž xs;
a3 = Dih3Xž xs;
Vorstarž 8t, 8h1, h2, h3, a1, a2, a3<<
D;
VortX@8t_, xs__<D :=
Module@8<,
VortNoQuoinsXž 8t, xs< + QuoinsXž 8t, xs<
D;
VorDodecX@xs__D :=
Module@8<,
VortXž 8DodecTrunc, xs<
D;
TruncatedVolumeX@xs__D :=
Module@8<,
HVorDodecXž xs - 4  3 * SolX ž xsL  H-4 DoctL
D;
Ω
Ω, the principle volume function in the dodecahedral conjecture, is defined by case analysis on the circumradii of the faces of a
terahedron. If any of the circumradii are greater than Sqrt[2] then we used the truncated volume function. Otherwise the volume
is untruncated.
OmegaX@x1_, x2_, x3_, x4_, x5_, x6_D :=
Module@8<,
If@EtaX@x1, x2, x6D > Sqrt@2D ÈÈ EtaX@x1, x3, x5D > Sqrt@2D ÈÈ
EtaX@x2, x3, x4D > Sqrt@2D ÈÈ EtaX@x4, x5, x6D > Sqrt@2D,
TruncatedVolumeX@x1, x2, x3, x4, x5, x6D,
VolumeX@x1, x2, x3, x4, x5, x6DD
D;
Cross diagonal of a quad cluster
Given 2 tetrahedra that share a face, the cross diagonal is the distance between the 2 points that are not on the face.
Printed by Mathematica for Students
6
functions.nb
Dist@88x1_, y1_, z1_<, 8x2_, y2_, z2_<<D :=
Module@8<,
Sqrt@Hx2 - x1L ^ 2 + Hy2 - y1L ^ 2 + Hz2 - z1L ^ 2D
D;
FindPoint@8a_, b_, c_, y4_, v31_, v32_, sgn_<D :=
Module@8y5, w1, w2, w3<,
y5 = Sqrt@v31 * v31 + v32 * v32D;
w1 = Ha * a + y4 * y4 - b * bL  H2 * y4L;
w2 = Ha * a + y5 * y5 - c * c - 2 * w1 * v31L  H2 * v32L;
w3 = sgn * Sqrt@a * a - w1 * w1 - w2 * w2D;
8w1, w2, w3<
D;
Enclosed@8y1_, y2_, y3_, y4_, y5_, y6_, z1_, z2_, z3_<D :=
Module@8a, b, v4, v5<,
a = Hy5 * y5 + y4 * y4 - y6 * y6L  H2 * y4L;
b = Sqrt@y5 * y5 - a * aD;
v4 = FindPointž 8y3, y2, y1, y4, a, b, 1<;
v5 = FindPointž 8z3, z2, z1, y4, a, b, -1<;
Dist@8v4, v5<D
D;
CrossDiagY@8y1_, y2_, y3_, y4_, y5_, y6_, y7_, y8_, y9_<D :=
Module@8<,
Enclosed@8y1, y5, y6, y4, y2, y3, y7, y8, y9<D
D;
CrossDiagX@xs__D := CrossDiagYž Sqrt@xsD;
Printed by Mathematica for Students