+double HL_fand[16] = {
+ 0.0, 0.0,
+ .577350269189625764509148780502, 0.0,
+ .288675134594812882254574390251, 0.5,
+ -.288675134594812882254574390251, 0.5,
+ -.577350269189625764509148780502, 0.0,
+ -.288675134594812882254574390251, -0.5,
+ .288675134594812882254574390251, -0.5,
+ .577350269189625764509148780502, 0.0
+};
+
+double HL_hfand[16] = {
+ 0.0, 0.0,
+ 0.0, .577350269189625764509148780502,
+ 0.5, .288675134594812882254574390251,
+ 0.5, -.288675134594812882254574390251,
+ 0.0, -.577350269189625764509148780502,
+ -0.5, -.288675134594812882254574390251,
+ -0.5, .288675134594812882254574390251,
+ 0.0, .577350269189625764509148780502
+};
+
+float HL_fanf[16] = {
+ 0.0f, 0.0f,
+ .577350269189625764509148780502f, 0.0f,
+ .288675134594812882254574390251f, 0.5f,
+ -.288675134594812882254574390251f, 0.5f,
+ -.577350269189625764509148780502f, 0.0f,
+ -.288675134594812882254574390251f, -0.5f,
+ .288675134594812882254574390251f, -0.5f,
+ .577350269189625764509148780502f, 0.0f
+};
+
+float HL_hfanf[16] = {
+ 0.0f, 0.0f,
+ 0.0f, .577350269189625764509148780502f,
+ 0.5f, .288675134594812882254574390251f,
+ 0.5f, -.288675134594812882254574390251f,
+ 0.0f, -.577350269189625764509148780502f,
+ -0.5f, -.288675134594812882254574390251f,
+ -0.5f, .288675134594812882254574390251f,
+ 0.0f, .577350269189625764509148780502f
+};
+
+/* size of a square that will exactly fit in a hexagon */
+/* 2.0/(1+sqrt(3.0)) */
+double HL_square = .73205080756887729352;
+