lettuce 0.1.3

Healthy lattice consructions in pure Rust.
Documentation
use std::collections::HashMap;

// sourced from: https://www.chisquaretable.net/
pub(crate) fn chi_sq_95(df: usize) -> f64 {
    // 0.05, 0.10, 0.20
    let mut chi = HashMap::<usize, (f64, f64, f64)>::default();
    chi.insert(1, (3.841, 2.706, 1.642));
    chi.insert(2, (5.991, 4.605, 3.219));
    chi.insert(3, (7.815, 6.251, 4.642));
    chi.insert(4, (9.488, 7.779, 5.989));
    chi.insert(5, (11.070, 9.236, 7.289));
    chi.insert(6, (12.592, 10.645, 8.558));
    chi.insert(7, (14.067, 12.017, 9.803));
    chi.insert(8, (15.507, 13.362, 11.030));
    chi.insert(9, (16.919, 14.684, 12.242));
    chi.insert(10, (18.307, 15.987, 13.442));
    chi.insert(11, (19.675, 17.275, 14.631));
    chi.insert(12, (21.026, 18.549, 15.812));
    chi.insert(13, (22.362, 19.812, 16.985));
    chi.insert(14, (23.685, 21.064, 18.151));
    chi.insert(15, (24.996, 22.307, 19.311));
    chi.insert(16, (26.296, 23.542, 20.465));
    chi.insert(17, (27.587, 24.769, 21.615));
    chi.insert(18, (28.869, 25.989, 22.760));
    chi.insert(19, (30.144, 27.204, 23.900));
    chi.insert(20, (31.410, 28.412, 25.038));
    chi.insert(21, (32.671, 29.615, 26.171));
    chi.insert(22, (33.924, 30.813, 27.301));
    chi.insert(23, (35.172, 32.007, 28.429));
    chi.insert(24, (36.415, 33.196, 29.553));
    chi.insert(25, (37.652, 34.382, 30.675));
    chi.insert(26, (38.885, 35.563, 31.795));
    chi.insert(27, (40.113, 36.741, 32.912));
    chi.insert(28, (41.337, 37.916, 34.027));
    chi.insert(29, (42.557, 39.087, 35.139));
    chi.insert(30, (43.773, 40.256, 36.250));
    chi.insert(31, (44.985, 41.422, 37.359));
    chi.insert(32, (46.194, 42.585, 38.466));
    chi.insert(33, (47.400, 43.745, 39.572));
    chi.insert(34, (48.602, 44.903, 40.676));
    chi.insert(35, (49.802, 46.059, 41.778));
    chi.insert(36, (50.998, 47.212, 42.879));
    chi.insert(37, (52.192, 48.363, 43.978));
    chi.insert(38, (53.384, 49.513, 45.076));
    chi.insert(39, (54.572, 50.660, 46.173));
    chi.insert(40, (55.758, 51.805, 47.269));
    chi.insert(41, (56.942, 52.949, 48.363));
    chi.insert(42, (58.124, 54.090, 49.456));
    chi.insert(43, (59.304, 55.230, 50.548));
    chi.insert(44, (60.481, 56.369, 51.639));
    chi.insert(45, (61.656, 57.505, 52.729));
    chi.insert(46, (62.830, 58.641, 53.818));
    chi.insert(47, (64.001, 59.774, 54.906));
    chi.insert(48, (65.171, 60.907, 55.993));
    chi.insert(49, (66.339, 62.038, 57.079));
    chi.insert(50, (67.505, 63.167, 58.164));
    chi.insert(51, (68.669, 64.295, 59.248));
    chi.insert(52, (69.832, 65.422, 60.332));
    chi.insert(53, (70.993, 66.548, 61.414));
    chi.insert(54, (72.153, 67.673, 62.496));
    chi.insert(55, (73.311, 68.796, 63.577));
    chi.insert(56, (74.468, 69.919, 64.658));
    chi.insert(57, (75.624, 71.040, 65.737));
    chi.insert(58, (76.778, 72.160, 66.816));
    chi.insert(59, (77.931, 73.279, 67.894));
    chi.insert(60, (79.082, 74.397, 68.972));
    chi.insert(61, (80.232, 75.514, 70.049));
    chi.insert(62, (81.381, 76.630, 71.125));
    chi.insert(63, (82.529, 77.745, 72.201));
    chi.insert(64, (83.675, 78.860, 73.276));
    chi.insert(65, (84.821, 79.973, 74.351));
    chi.insert(66, (85.965, 81.085, 75.424));
    chi.insert(67, (87.108, 82.197, 76.498));
    chi.insert(68, (88.250, 83.308, 77.571));
    chi.insert(69, (89.391, 84.418, 78.643));
    chi.insert(70, (90.531, 85.527, 79.715));
    chi.insert(71, (91.670, 86.635, 80.786));
    chi.insert(72, (92.808, 87.743, 81.857));
    chi.insert(73, (93.945, 88.850, 82.927));
    chi.insert(74, (95.081, 89.956, 83.997));
    chi.insert(75, (96.217, 91.061, 85.066));
    chi.insert(76, (97.351, 92.166, 86.135));
    chi.insert(77, (98.484, 93.270, 87.203));
    chi.insert(78, (99.617, 94.374, 88.271));
    chi.insert(79, (100.749, 95.476, 89.338));
    chi.insert(80, (101.879, 96.578, 90.405));
    chi.insert(81, (103.010, 97.680, 91.472));
    chi.insert(82, (104.139, 98.780, 92.538));
    chi.insert(83, (105.267, 99.880, 93.604));
    chi.insert(84, (106.395, 100.980, 94.669));
    chi.insert(85, (107.522, 102.079, 95.734));
    chi.insert(86, (108.648, 103.177, 96.799));
    chi.insert(87, (109.773, 104.275, 97.863));
    chi.insert(88, (110.898, 105.372, 98.927));
    chi.insert(89, (112.022, 106.469, 99.991));
    chi.insert(90, (113.145, 107.565, 101.054));
    chi.insert(91, (114.268, 108.661, 102.117));
    chi.insert(92, (115.390, 109.756, 103.179));
    chi.insert(93, (116.511, 110.850, 104.241));
    chi.insert(94, (117.632, 111.944, 105.303));
    chi.insert(95, (118.752, 113.038, 106.364));
    chi.insert(96, (119.871, 114.131, 107.425));
    chi.insert(97, (120.990, 115.223, 108.486));
    chi.insert(98, (122.108, 116.315, 109.547));
    chi.insert(99, (123.225, 117.407, 110.607));
    chi.insert(100, (124.342, 118.498, 111.667));
    chi.insert(101, (125.458, 119.589, 112.726));
    chi.insert(102, (126.574, 120.679, 113.786));
    chi.insert(103, (127.689, 121.769, 114.845));
    chi.insert(104, (128.804, 122.858, 115.903));
    chi.insert(105, (129.918, 123.947, 116.962));
    chi.insert(106, (131.031, 125.035, 118.020));
    chi.insert(107, (132.144, 126.123, 119.078));
    chi.insert(108, (133.257, 127.211, 120.135));
    chi.insert(109, (134.369, 128.298, 121.192));
    chi.insert(110, (135.480, 129.385, 122.250));
    chi.insert(111, (136.591, 130.472, 123.306));
    chi.insert(112, (137.701, 131.558, 124.363));
    chi.insert(113, (138.811, 132.643, 125.419));
    chi.insert(114, (139.921, 133.729, 126.475));
    chi.insert(115, (141.030, 134.813, 127.531));
    chi.insert(116, (142.138, 135.898, 128.587));
    chi.insert(117, (143.246, 136.982, 129.642));
    chi.insert(118, (144.354, 138.066, 130.697));
    chi.insert(119, (145.461, 139.149, 131.752));
    chi.insert(120, (146.567, 140.233, 132.806));
    chi.insert(121, (147.674, 141.315, 133.861));
    chi.insert(122, (148.779, 142.398, 134.915));
    chi.insert(123, (149.885, 143.480, 135.969));
    chi.insert(124, (150.989, 144.562, 137.022));
    chi.insert(125, (152.094, 145.643, 138.076));
    chi.insert(126, (153.198, 146.724, 139.129));
    chi.insert(127, (154.302, 147.805, 140.182));
    chi.insert(128, (155.405, 148.885, 141.235));
    chi.insert(129, (156.508, 149.965, 142.288));
    chi.insert(130, (157.610, 151.045, 143.340));
    chi.insert(131, (158.712, 152.125, 144.392));
    chi.insert(132, (159.814, 153.204, 145.444));
    chi.insert(133, (160.915, 154.283, 146.496));
    chi.insert(134, (162.016, 155.361, 147.548));
    chi.insert(135, (163.116, 156.440, 148.599));
    chi.insert(136, (164.216, 157.518, 149.651));
    chi.insert(137, (165.316, 158.595, 150.702));
    chi.insert(138, (166.415, 159.673, 151.753));
    chi.insert(139, (167.514, 160.750, 152.803));
    chi.insert(140, (168.613, 161.827, 153.854));
    chi.insert(141, (169.711, 162.904, 154.904));
    chi.insert(142, (170.809, 163.980, 155.954));
    chi.insert(143, (171.907, 165.056, 157.004));
    chi.insert(144, (173.004, 166.132, 158.054));
    chi.insert(145, (174.101, 167.207, 159.104));
    chi.insert(146, (175.198, 168.283, 160.153));
    chi.insert(147, (176.294, 169.358, 161.202));
    chi.insert(148, (177.390, 170.432, 162.251));
    chi.insert(149, (178.485, 171.507, 163.300));
    chi.insert(150, (179.581, 172.581, 164.349));
    chi.insert(151, (180.676, 173.655, 165.398));
    chi.insert(152, (181.770, 174.729, 166.446));
    chi.insert(153, (182.865, 175.803, 167.495));
    chi.insert(154, (183.959, 176.876, 168.543));
    chi.insert(155, (185.052, 177.949, 169.591));
    chi.insert(156, (186.146, 179.022, 170.639));
    chi.insert(157, (187.239, 180.094, 171.686));
    chi.insert(158, (188.332, 181.167, 172.734));
    chi.insert(159, (189.424, 182.239, 173.781));
    chi.insert(160, (190.516, 183.311, 174.828));
    chi.insert(161, (191.608, 184.382, 175.875));
    chi.insert(162, (192.700, 185.454, 176.922));
    chi.insert(163, (193.791, 186.525, 177.969));
    chi.insert(164, (194.883, 187.596, 179.016));
    chi.insert(165, (195.973, 188.667, 180.062));
    chi.insert(166, (197.064, 189.737, 181.109));
    chi.insert(167, (198.154, 190.808, 182.155));
    chi.insert(168, (199.244, 191.878, 183.201));
    chi.insert(169, (200.334, 192.948, 184.247));
    chi.insert(170, (201.423, 194.017, 185.293));
    chi.insert(171, (202.513, 195.087, 186.338));
    chi.insert(172, (203.602, 196.156, 187.384));
    chi.insert(173, (204.690, 197.225, 188.429));
    chi.insert(174, (205.779, 198.294, 189.475));
    chi.insert(175, (206.867, 199.363, 190.520));
    chi.insert(176, (207.955, 200.432, 191.565));
    chi.insert(177, (209.042, 201.500, 192.610));
    chi.insert(178, (210.130, 202.568, 193.654));
    chi.insert(179, (211.217, 203.636, 194.699));
    chi.insert(180, (212.304, 204.704, 195.743));
    chi.insert(181, (213.391, 205.771, 196.788));
    chi.insert(182, (214.477, 206.839, 197.832));
    chi.insert(183, (215.563, 207.906, 198.876));
    chi.insert(184, (216.649, 208.973, 199.920));
    chi.insert(185, (217.735, 210.040, 200.964));
    chi.insert(186, (218.820, 211.106, 202.008));
    chi.insert(187, (219.906, 212.173, 203.052));
    chi.insert(188, (220.991, 213.239, 204.095));
    chi.insert(189, (222.076, 214.305, 205.139));
    chi.insert(190, (223.160, 215.371, 206.182));
    chi.insert(191, (224.245, 216.437, 207.225));
    chi.insert(192, (225.329, 217.502, 208.268));
    chi.insert(193, (226.413, 218.568, 209.311));
    chi.insert(194, (227.496, 219.633, 210.354));
    chi.insert(195, (228.580, 220.698, 211.397));
    chi.insert(196, (229.663, 221.763, 212.439));
    chi.insert(197, (230.746, 222.828, 213.482));
    chi.insert(198, (231.829, 223.892, 214.524));
    chi.insert(199, (232.912, 224.957, 215.567));
    chi.insert(200, (233.994, 226.021, 216.609));
    chi.insert(201, (235.077, 227.085, 217.651));
    chi.insert(202, (236.159, 228.149, 218.693));
    chi.insert(203, (237.240, 229.213, 219.735));
    chi.insert(204, (238.322, 230.276, 220.777));
    chi.insert(205, (239.403, 231.340, 221.818));
    chi.insert(206, (240.485, 232.403, 222.860));
    chi.insert(207, (241.566, 233.466, 223.901));
    chi.insert(208, (242.647, 234.529, 224.943));
    chi.insert(209, (243.727, 235.592, 225.984));
    chi.insert(210, (244.808, 236.655, 227.025));
    chi.insert(211, (245.888, 237.717, 228.066));
    chi.insert(212, (246.968, 238.780, 229.107));
    chi.insert(213, (248.048, 239.842, 230.148));
    chi.insert(214, (249.128, 240.904, 231.189));
    chi.insert(215, (250.207, 241.966, 232.230));
    chi.insert(216, (251.286, 243.028, 233.270));
    chi.insert(217, (252.365, 244.090, 234.311));
    chi.insert(218, (253.444, 245.151, 235.351));
    chi.insert(219, (254.523, 246.213, 236.391));
    chi.insert(220, (255.602, 247.274, 237.432));
    chi.insert(221, (256.680, 248.335, 238.472));
    chi.insert(222, (257.758, 249.396, 239.512));
    chi.insert(223, (258.837, 250.457, 240.552));
    chi.insert(224, (259.914, 251.517, 241.592));
    chi.insert(225, (260.992, 252.578, 242.631));
    chi.insert(226, (262.070, 253.638, 243.671));
    chi.insert(227, (263.147, 254.699, 244.711));
    chi.insert(228, (264.224, 255.759, 245.750));
    chi.insert(229, (265.301, 256.819, 246.790));
    chi.insert(230, (266.378, 257.879, 247.829));
    chi.insert(231, (267.455, 258.939, 248.868));
    chi.insert(232, (268.531, 259.998, 249.908));
    chi.insert(233, (269.608, 261.058, 250.947));
    chi.insert(234, (270.684, 262.117, 251.986));
    chi.insert(235, (271.760, 263.176, 253.025));
    chi.insert(236, (272.836, 264.235, 254.063));
    chi.insert(237, (273.911, 265.294, 255.102));
    chi.insert(238, (274.987, 266.353, 256.141));
    chi.insert(239, (276.062, 267.412, 257.179));
    chi.insert(240, (277.138, 268.471, 258.218));
    chi.insert(241, (278.213, 269.529, 259.256));
    chi.insert(242, (279.288, 270.588, 260.295));
    chi.insert(243, (280.362, 271.646, 261.333));
    chi.insert(244, (281.437, 272.704, 262.371));
    chi.insert(245, (282.511, 273.762, 263.409));
    chi.insert(246, (283.586, 274.820, 264.447));
    chi.insert(247, (284.660, 275.878, 265.485));
    chi.insert(248, (285.734, 276.935, 266.523));
    chi.insert(249, (286.808, 277.993, 267.561));
    chi.insert(250, (287.882, 279.050, 268.599));
    chi.insert(251, (288.956, 280.108, 269.637));
    chi.insert(252, (290.030, 281.165, 270.675));
    chi.insert(253, (291.103, 282.222, 271.713));
    chi.insert(254, (292.177, 283.279, 272.750));
    chi.insert(255, (293.250, 284.336, 273.788));
    chi.insert(256, (294.323, 285.392, 274.826));
    chi.insert(257, (295.396, 286.449, 275.863));
    chi.insert(258, (296.469, 287.505, 276.901));
    chi.insert(259, (297.542, 288.562, 277.938));
    chi.insert(260, (298.615, 289.618, 278.975));
    chi.insert(261, (299.688, 290.674, 280.013));
    chi.insert(262, (300.760, 291.730, 281.050));
    chi.insert(263, (301.833, 292.785, 282.087));
    chi.insert(264, (302.905, 293.841, 283.124));
    chi.insert(265, (303.977, 294.897, 284.161));
    chi.insert(266, (305.049, 295.952, 285.198));
    chi.insert(267, (306.121, 297.008, 286.235));
    chi.insert(268, (307.193, 298.063, 287.272));
    chi.insert(269, (308.265, 299.118, 288.309));
    chi.insert(270, (309.337, 300.174, 289.346));
    chi.insert(271, (310.408, 301.229, 290.382));
    chi.insert(272, (311.480, 302.284, 291.419));
    chi.insert(273, (312.552, 303.339, 292.456));
    chi.insert(274, (313.623, 304.393, 293.492));
    chi.insert(275, (314.695, 305.448, 294.529));
    chi.insert(276, (315.766, 306.503, 295.565));
    chi.insert(277, (316.837, 307.557, 296.602));
    chi.insert(278, (317.908, 308.612, 297.638));
    chi.insert(279, (318.980, 309.666, 298.675));
    chi.insert(280, (320.051, 310.721, 299.711));
    chi.insert(281, (321.122, 311.775, 300.747));
    chi.insert(282, (322.193, 312.829, 301.783));
    chi.insert(283, (323.263, 313.883, 302.820));
    chi.insert(284, (324.334, 314.937, 303.856));
    chi.insert(285, (325.405, 315.991, 304.892));
    chi.insert(286, (326.476, 317.045, 305.928));
    chi.insert(287, (327.546, 318.099, 306.964));
    chi.insert(288, (328.617, 319.153, 308.000));
    chi.insert(289, (329.687, 320.206, 309.036));
    chi.insert(290, (330.758, 321.260, 310.072));
    chi.insert(291, (331.828, 322.314, 311.108));
    chi.insert(292, (332.898, 323.367, 312.143));
    chi.insert(293, (333.969, 324.421, 313.179));
    chi.insert(294, (335.039, 325.474, 314.215));
    chi.insert(295, (336.109, 326.527, 315.250));
    chi.insert(296, (337.179, 327.581, 316.286));
    chi.insert(297, (338.249, 328.634, 317.322));
    chi.insert(298, (339.319, 329.687, 318.357));
    chi.insert(299, (340.389, 330.740, 319.393));
    chi.insert(300, (341.395, 331.789, 320.397));
    chi.get(&df)
        .expect(&format!("unknown chi entry for df {}", df))
        .0
}