module Chi_deux =
struct
exception Invalid_degree of string
type probability =
[ `p0_01 |
`p0_02 |
`p0_05 |
`p0_1 |
`p0_15 |
`p0_2 |
`p0_25 |
`p0_3 |
`p0_4 |
`p0_5 |
`p0_6 |
`p0_7 |
`p0_75 |
`p0_8 |
`p0_85 |
`p0_9 |
`p0_95 |
`p0_975 |
`p0_98 |
`p0_99 |
`p0_999
]
let probabilities =
[|
`p0_01, "0.01" ;
`p0_02, "0.02" ;
`p0_05, "0.05" ;
`p0_1 , "0.1" ;
`p0_15, "0.15" ;
`p0_2 , "0.2" ;
`p0_25, "0.25" ;
`p0_3 , "0.3" ;
`p0_4 , "0.4" ;
`p0_5 , "0.5" ;
`p0_6 , "0.6" ;
`p0_7 , "0.7" ;
`p0_75, "0.75" ;
`p0_8 , "0.8" ;
`p0_85, "0.85" ;
`p0_9 , "0.9" ;
`p0_95, "0.95" ;
`p0_975, "0.975" ;
`p0_98, "0.98" ;
`p0_99, "0.99" ;
`p0_999, "0.999";
|]
let indice_of_probability p =
let ind = ref None in
try
for i=0 to Array.length probabilities - 1 do
if fst probabilities.(i) = p then (ind := Some i; raise Not_found);
done;
raise Not_found
with
Not_found ->
match !ind with
None -> raise Not_found
| Some i -> i
let string_of_probability p = List.assoc p (Array.to_list probabilities)
let quantiles =
[|
[| 0.000; 0.001; 0.004; 0.016; 0.036; 0.064; 0.102; 0.148; 0.275; 0.455; 0.708; 1.074; 1.323; 1.642; 2.072; 2.706; 3.841; 5.024; 5.412; 6.635; 10.827|];
[| 0.020; 0.040; 0.103; 0.211; 0.325; 0.446; 0.575; 0.713; 1.022; 1.386; 1.833; 2.408; 2.773; 3.219; 3.794; 4.605; 5.991; 7.378; 7.824; 9.210; 13.815|];
[| 0.115; 0.185; 0.352; 0.584; 0.798; 1.005; 1.213; 1.424; 1.869; 2.366; 2.946; 3.665; 4.108; 4.642; 5.317; 6.251; 7.815; 9.348; 9.837; 11.345; 16.266|];
[| 0.297; 0.429; 0.711; 1.064; 1.366; 1.649; 1.923; 2.195; 2.753; 3.357; 4.045; 4.878; 5.385; 5.989; 6.745; 7.779; 9.488; 11.143; 11.668; 13.277; 18.466|];
[| 0.554; 0.752; 1.145; 1.610; 1.994; 2.343; 2.675; 3.000; 3.656; 4.351; 5.132; 6.064; 6.626; 7.289; 8.115; 9.236; 11.070; 12.833; 13.388; 15.086; 20.515|];
[| 0.872; 1.134; 1.635; 2.204; 2.661; 3.070; 3.455; 3.828; 4.570; 5.348; 6.211; 7.231; 7.841; 8.558; 9.446; 10.645; 12.592; 14.449; 15.033; 16.812; 22.457|];
[| 1.239; 1.564; 2.167; 2.833; 3.358; 3.822; 4.255; 4.671; 5.493; 6.346; 7.283; 8.383; 9.037; 9.803; 10.748; 12.017; 14.067; 16.013; 16.622; 18.475; 24.321|];
[| 1.647; 2.032; 2.733; 3.490; 4.078; 4.594; 5.071; 5.527; 6.423; 7.344; 8.351; 9.524; 10.219; 11.030; 12.027; 13.362; 15.507; 17.535; 18.168; 20.090; 26.124|];
[| 2.088; 2.532; 3.325; 4.168; 4.817; 5.380; 5.899; 6.393; 7.357; 8.343; 9.414; 10.656; 11.389; 12.242; 13.288; 14.684; 16.919; 19.023; 19.679; 21.666; 27.877|];
[| 2.558; 3.059; 3.940; 4.865; 5.570; 6.179; 6.737; 7.267; 8.295; 9.342; 10.473; 11.781; 12.549; 13.442; 14.534; 15.987; 18.307;20.483; 21.161; 23.209; 29.588|];
[| 3.053; 3.609; 4.575; 5.578; 6.336; 6.989; 7.584; 8.148; 9.237; 10.341; 11.530; 12.899; 13.701; 14.631; 15.767; 17.275; 19.675; 21.920; 22.618; 24.725; 31.264|];
[| 3.571; 4.178; 5.226; 6.304; 7.114; 7.807; 8.438; 9.034; 10.182; 11.340; 12.584; 14.011; 14.845; 15.812; 16.989; 18.549; 21.026; 23.337; 24.054; 26.217; 32.909|];
[| 4.107; 4.765; 5.892; 7.041; 7.901; 8.634; 9.299; 9.926; 11.129; 12.340; 13.636; 15.119; 15.984; 16.985; 18.202; 19.812; 22.362; 24.736; 25.471; 27.688; 34.527|];
[| 4.660; 5.368; 6.571; 7.790; 8.696; 9.467; 10.165; 10.821; 12.078; 13.339; 14.685; 16.222; 17.117; 18.151; 19.406; 21.064; 23.685; 26.119; 26.873; 29.141; 36.124|];
[| 5.229; 5.985; 7.261; 8.547; 9.499; 10.307; 11.037; 11.721; 13.030; 14.339; 15.733; 17.322; 18.245; 19.311; 20.603; 22.307; 24.996; 27.488; 28.259; 30.578; 37.698|];
[| 5.812; 6.614; 7.962; 9.312; 10.309; 11.152; 11.912; 12.624; 13.983; 15.338; 16.780; 18.418; 19.369; 20.465; 21.793; 23.542; 26.296; 28.845; 29.633; 32.000; 39.252|];
[| 6.408; 7.255; 8.672; 10.085; 11.125; 12.002; 12.792; 13.531; 14.937; 16.338; 17.824; 19.511; 20.489; 21.615; 22.977; 24.769; 27.587; 30.191; 30.995; 33.409; 40.791|];
[| 7.015; 7.906; 9.390; 10.865; 11.946; 12.857; 13.675; 14.440; 15.893; 17.338; 18.868; 20.601; 21.605; 22.760; 24.155; 25.989; 28.869; 31.526; 32.346; 34.805; 42.312|];
[| 7.633; 8.567; 10.117; 11.651; 12.773; 13.716; 14.562; 15.352; 16.850; 18.338; 19.910; 21.689; 22.718; 23.900; 25.329; 27.204; 30.144; 32.852; 33.687; 36.191; 43.819|];
[| 8.260; 9.237; 10.851; 12.443; 13.604; 14.578; 15.452; 16.266; 17.809; 19.337; 20.951; 22.775; 23.828; 25.038; 26.498; 28.412; 31.410; 34.170; 35.020; 37.566; 45.314|];
[| 8.897; 9.915; 11.591; 13.240; 14.439; 15.445; 16.344; 17.182; 18.768; 20.337; 21.992; 23.858; 24.935; 26.171; 27.662; 29.615; 32.671; 35.479; 36.343; 38.932; 46.796|];
[| 9.542; 10.600; 12.338; 14.041; 15.279; 16.314; 17.240; 18.101; 19.729; 21.337; 23.031; 24.939; 26.039; 27.301; 28.822; 30.813; 33.924; 36.781; 37.659; 40.289; 48.268|];
[| 10.196; 11.293; 13.091; 14.848; 16.122; 17.187; 18.137; 19.021; 20.690; 22.337; 24.069; 26.018; 27.141; 28.429; 29.979; 32.007; 35.172; 38.076; 38.968; 41.638; 49.728|];
[| 10.856; 11.992; 13.848; 15.659; 16.969; 18.062; 19.037; 19.943; 21.652; 23.337; 25.106; 27.096; 28.241; 29.553; 31.132; 33.196; 36.415; 39.364; 40.270; 42.980; 51.179|];
[| 11.524; 12.697; 14.611; 16.473; 17.818; 18.940; 19.939; 20.867; 22.616; 24.337; 26.143; 28.172; 29.339; 30.675; 32.282; 34.382; 37.652; 40.646; 41.566; 44.314; 52.619|];
[| 12.198; 13.409; 15.379; 17.292; 18.671; 19.820; 20.843; 21.792; 23.579; 25.336; 27.179; 29.246; 30.435; 31.795; 33.429; 35.563; 38.885; 41.923; 42.856; 45.642; 54.051|];
[| 12.878; 14.125; 16.151; 18.114; 19.527; 20.703; 21.749; 22.719; 24.544; 26.336; 28.214; 30.319; 31.528; 32.912; 34.574; 36.741; 40.113; 43.195; 44.140; 46.963; 55.475|];
[| 13.565; 14.847; 16.928; 18.939; 20.386; 21.588; 22.657; 23.647; 25.509; 27.336; 29.249; 31.391; 32.620; 34.027; 35.715; 37.916; 41.337; 44.461; 45.419; 48.278; 56.892|];
[| 14.256; 15.574; 17.708; 19.768; 21.247; 22.475; 23.567; 24.577; 26.475; 28.336; 30.283; 32.461; 33.711; 35.139; 36.854; 39.087; 42.557; 45.722; 46.693; 49.588; 58.301|];
[| 14.953; 16.306; 18.493; 20.599; 22.110; 23.364; 24.478; 25.508; 27.442; 29.336; 31.316; 33.530; 34.800; 36.250; 37.990; 40.256; 43.773; 46.979; 47.962; 50.892; 59.702|];
[| 15.655; 17.042; 19.281; 21.434; 22.976; 24.255; 25.390; 26.440; 28.409; 30.336; 32.349; 34.598; 35.887; 37.359; 39.124; 41.422; 44.985; 48.232; 49.226; 52.191; 61.098|];
[| 16.362; 17.783; 20.072; 22.271; 23.844; 25.148; 26.304; 27.373; 29.376; 31.336; 33.381; 35.665; 36.973; 38.466; 40.256; 42.585; 46.194; 49.480; 50.487; 53.486; 62.487|];
[| 17.073; 18.527; 20.867; 23.110; 24.714; 26.042; 27.219; 28.307; 30.344; 32.336; 34.413; 36.731; 38.058; 39.572; 41.386; 43.745; 47.400; 50.725; 51.743; 54.775; 63.869|];
[| 17.789; 19.275; 21.664; 23.952; 25.586; 26.938; 28.136; 29.242; 31.313; 33.336; 35.444; 37.795; 39.141; 40.676; 42.514; 44.903; 48.602; 51.966; 52.995; 56.061; 65.247|];
[| 18.509; 20.027; 22.465; 24.797; 26.460; 27.836; 29.054; 30.178; 32.282; 34.336; 36.475; 38.859; 40.223; 41.778; 43.640; 46.059; 49.802; 53.203; 54.244; 57.342; 66.619|];
[| 19.233; 20.783; 23.269; 25.643; 27.336; 28.735; 29.973; 31.115; 33.252; 35.336; 37.505; 39.922; 41.304; 42.879; 44.764; 47.212; 50.998; 54.437; 55.489; 58.619; 67.985|];
[| 19.960; 21.542; 24.075; 26.492; 28.214; 29.635; 30.893; 32.053; 34.222; 36.336; 38.535; 40.984; 42.383; 43.978; 45.886; 48.363; 52.192; 55.668; 56.730; 59.893; 69.348|];
[| 20.691; 22.304; 24.884; 27.343; 29.093; 30.537; 31.815; 32.992; 35.192; 37.335; 39.564; 42.045; 43.462; 45.076; 47.007; 49.513; 53.384; 56.896; 57.969; 61.162; 70.704|];
[| 21.426; 23.069; 25.695; 28.196; 29.974; 31.441; 32.737; 33.932; 36.163; 38.335; 40.593; 43.105; 44.539; 46.173; 48.126; 50.660; 54.572; 58.120; 59.204; 62.428; 72.055|];
[| 22.164; 23.838; 26.509; 29.051; 30.856; 32.345; 33.660; 34.872; 37.134; 39.335; 41.622; 44.165; 45.616; 47.269; 49.244; 51.805; 55.758; 59.342; 60.436; 63.691; 73.403|];
[| 22.906; 24.609; 27.326; 29.907; 31.740; 33.251; 34.585; 35.813; 38.105; 40.335; 42.651; 45.224; 46.692; 48.363; 50.360; 52.949; 56.942; 60.561; 61.665; 64.950; 74.744|];
[| 23.650; 25.383; 28.144; 30.765; 32.626; 34.157; 35.510; 36.755; 39.077; 41.335; 43.679; 46.282; 47.766; 49.456; 51.475; 54.090; 58.124; 61.777; 62.892; 66.206; 76.084|];
[| 24.398; 26.159; 28.965; 31.625; 33.512; 35.065; 36.436; 37.698; 40.050; 42.335; 44.706; 47.339; 48.840; 50.548; 52.588; 55.230; 59.304; 62.990; 64.116; 67.459; 77.418|];
[| 25.148; 26.939; 29.787; 32.487; 34.400; 35.974; 37.363; 38.641; 41.022; 43.335; 45.734; 48.396; 49.913; 51.639; 53.700; 56.369; 60.481; 64.201; 65.337; 68.710; 78.749|];
[| 25.901; 27.720; 30.612; 33.350; 35.290; 36.884; 38.291; 39.585; 41.995; 44.335; 46.761; 49.452; 50.985; 52.729; 54.810; 57.505; 61.656; 65.410; 66.555; 69.957; 80.078|];
[| 26.657; 28.504; 31.439; 34.215; 36.180; 37.795; 39.220; 40.529; 42.968; 45.335; 47.787; 50.507; 52.056; 53.818; 55.920; 58.641; 62.830; 66.617; 67.771; 71.201; 81.400|];
[| 27.416; 29.291; 32.268; 35.081; 37.072; 38.708; 40.149; 41.474; 43.942; 46.335; 48.814; 51.562; 53.127; 54.906; 57.028; 59.774; 64.001; 67.821; 68.985; 72.443; 82.720|];
[| 28.177; 30.080; 33.098; 35.949; 37.965; 39.621; 41.079; 42.420; 44.915; 47.335; 49.840; 52.616; 54.196; 55.993; 58.135; 60.907; 65.171; 69.023; 70.197; 73.683; 84.037|];
[| 28.941; 30.871; 33.930; 36.818; 38.859; 40.534; 42.010; 43.366; 45.889; 48.335; 50.866; 53.670; 55.265; 57.079; 59.241; 62.038; 66.339; 70.222; 71.406; 74.919; 85.350|];
[| 29.707; 31.664; 34.764; 37.689; 39.754; 41.449; 42.942; 44.313; 46.864; 49.335; 51.892; 54.723; 56.334; 58.164; 60.346; 63.167; 67.505; 71.420; 72.613; 76.154; 86.660|];
[| 30.475; 32.459; 35.600; 38.560; 40.650; 42.365; 43.874; 45.261; 47.838; 50.335; 52.917; 55.775; 57.401; 59.248; 61.450; 64.295; 68.669; 72.616; 73.818; 77.386; 87.967|];
[| 31.246; 33.256; 36.437; 39.433; 41.547; 43.281; 44.807; 46.209; 48.813; 51.335; 53.942; 56.827; 58.468; 60.332; 62.553; 65.422; 69.832; 73.810; 75.021; 78.616; 89.272|];
[| 32.019; 34.055; 37.276; 40.308; 42.446; 44.199; 45.741; 47.157; 49.788; 52.335; 54.967; 57.879; 59.534; 61.414; 63.654; 66.548; 70.993; 75.002; 76.223; 79.843; 90.573|];
[| 32.793; 34.856; 38.116; 41.183; 43.345; 45.117; 46.676; 48.106; 50.764; 53.335; 55.992; 58.930; 60.600; 62.496; 64.755; 67.673; 72.153; 76.192; 77.422; 81.069; 91.871|];
[| 33.571; 35.659; 38.958; 42.060; 44.245; 46.036; 47.610; 49.055; 51.739; 54.335; 57.016; 59.980; 61.665; 63.577; 65.855; 68.796; 73.311; 77.380; 78.619; 82.292; 93.167|];
[| 34.350; 36.464; 39.801; 42.937; 45.146; 46.955; 48.546; 50.005; 52.715; 55.335; 58.040; 61.031; 62.729; 64.658; 66.954; 69.919; 74.468; 78.567; 79.815; 83.514; 94.462|];
[| 35.131; 37.270; 40.646; 43.816; 46.048; 47.876; 49.482; 50.956; 53.691; 56.335; 59.064; 62.080; 63.793; 65.737; 68.052; 71.040; 75.624; 79.752; 81.009; 84.733; 95.750|];
[| 35.914; 38.078; 41.492; 44.696; 46.951; 48.797; 50.419; 51.906; 54.667; 57.335; 60.088; 63.129; 64.857; 66.816; 69.149; 72.160; 76.778; 80.936; 82.201; 85.950; 97.038|];
[| 36.698; 38.888; 42.339; 45.577; 47.854; 49.718; 51.356; 52.858; 55.643; 58.335; 61.111; 64.178; 65.919; 67.894; 70.246; 73.279; 77.930; 82.117; 83.391; 87.166; 98.324|];
[| 37.485; 39.699; 43.188; 46.459; 48.759; 50.641; 52.294; 53.809; 56.620; 59.335; 62.135; 65.226; 66.981; 68.972; 71.341; 74.397; 79.082; 83.298; 84.580; 88.379; 99.608|];
[| 38.273; 40.512; 44.038; 47.342; 49.664; 51.564; 53.232; 54.761; 57.597; 60.335; 63.158; 66.274; 68.043; 70.049; 72.436; 75.514; 80.232; 84.476; 85.767; 89.591; 100.887|];
[| 39.063; 41.327; 44.889; 48.226; 50.570; 52.487; 54.171; 55.714; 58.574; 61.335; 64.181; 67.322; 69.104; 71.125; 73.530; 76.630; 81.381; 85.654; 86.953; 90.802; 102.165|];
[| 39.855; 42.143; 45.741; 49.111; 51.477; 53.412; 55.110; 56.666; 59.551; 62.335; 65.204; 68.369; 70.165; 72.201; 74.623; 77.745; 82.529; 86.830; 88.137; 92.010; 103.442|];
[| 40.649; 42.960; 46.595; 49.996; 52.384; 54.336; 56.050; 57.620; 60.528; 63.335; 66.226; 69.416; 71.225; 73.276; 75.715; 78.860; 83.675; 88.004; 89.320; 93.217; 104.717|];
[| 41.444; 43.779; 47.450; 50.883; 53.293; 55.262; 56.990; 58.573; 61.506; 64.335; 67.249; 70.462; 72.285; 74.351; 76.807; 79.973; 84.821; 89.177; 90.501; 94.422; 105.988|];
[| 42.240; 44.599; 48.305; 51.770; 54.202; 56.188; 57.931; 59.527; 62.484; 65.335; 68.271; 71.508; 73.344; 75.424; 77.898; 81.085; 85.965; 90.349; 91.681; 95.626; 107.257|];
[| 43.038; 45.421; 49.162; 52.659; 55.111; 57.115; 58.872; 60.481; 63.461; 66.335; 69.293; 72.554; 74.403; 76.498; 78.988; 82.197; 87.108; 91.519; 92.860; 96.828; 108.525|];
[| 43.838; 46.244; 50.020; 53.548; 56.022; 58.042; 59.814; 61.436; 64.440; 67.335; 70.315; 73.600; 75.461; 77.571; 80.078; 83.308; 88.250; 92.689; 94.037; 98.028; 109.793|];
[| 44.639; 47.068; 50.879; 54.438; 56.933; 58.970; 60.756; 62.391; 65.418; 68.334; 71.337; 74.645; 76.519; 78.643; 81.167; 84.418; 89.391; 93.856; 95.213; 99.227; 111.055|];
[| 45.442; 47.893; 51.739; 55.329; 57.844; 59.898; 61.698; 63.346; 66.396; 69.334; 72.358; 75.689; 77.577; 79.715; 82.255; 85.527; 90.531; 95.023; 96.387; 100.425; 112.317|];
[| 46.246; 48.720; 52.600; 56.221; 58.757; 60.827; 62.641; 64.302; 67.375; 70.334; 73.380; 76.734; 78.634; 80.786; 83.343; 86.635; 91.670; 96.189; 97.561; 101.621; 113.577|];
[| 47.051; 49.548; 53.462; 57.113; 59.670; 61.756; 63.585; 65.258; 68.353; 71.334; 74.401; 77.778; 79.690; 81.857; 84.430; 87.743; 92.808; 97.353; 98.733; 102.816; 114.834|];
[| 47.858; 50.377; 54.325; 58.006; 60.583; 62.686; 64.528; 66.214; 69.332; 72.334; 75.422; 78.821; 80.747; 82.927; 85.517; 88.850; 93.945; 98.516; 99.904; 104.010; 116.092|];
[| 48.666; 51.208; 55.189; 58.900; 61.497; 63.616; 65.472; 67.170; 70.311; 73.334; 76.443; 79.865; 81.803; 83.997; 86.602; 89.956; 95.081; 99.678; 101.074; 105.202; 117.347|];
[| 49.475; 52.039; 56.054; 59.795; 62.412; 64.547; 66.417; 68.127; 71.290; 74.334; 77.464; 80.908; 82.858; 85.066; 87.688; 91.061; 96.217; 100.839; 102.243; 106.393; 118.599|];
[| 50.286; 52.872; 56.920; 60.690; 63.327; 65.478; 67.362; 69.084; 72.270; 75.334; 78.485; 81.951; 83.913; 86.135; 88.772; 92.166; 97.351; 101.999; 103.410; 107.582; 119.850|];
[| 51.097; 53.705; 57.786; 61.586; 64.243; 66.409; 68.307; 70.042; 73.249; 76.334; 79.505; 82.994; 84.968; 87.203; 89.857; 93.270; 98.484; 103.158; 104.576; 108.771; 121.101|];
[| 51.910; 54.540; 58.654; 62.483; 65.159; 67.341; 69.252; 70.999; 74.228; 77.334; 80.526; 84.036; 86.022; 88.271; 90.940; 94.374; 99.617; 104.316; 105.742; 109.958; 122.347|];
[| 52.725; 55.376; 59.522; 63.380; 66.076; 68.274; 70.198; 71.957; 75.208; 78.334; 81.546; 85.078; 87.077; 89.338; 92.023; 95.476; 100.749; 105.473; 106.906; 111.144; 123.595|];
[| 53.540; 56.213; 60.391; 64.278; 66.994; 69.207; 71.145; 72.915; 76.188; 79.334; 82.566; 86.120; 88.130; 90.405; 93.106; 96.578; 101.879; 106.629; 108.069; 112.329; 124.839|];
[| 54.357; 57.051; 61.262; 65.176; 67.912; 70.140; 72.091; 73.874; 77.168; 80.334; 83.586; 87.161; 89.184; 91.472; 94.188; 97.680; 103.010; 107.783; 109.231; 113.512; 126.084|];
[| 55.174; 57.890; 62.132; 66.076; 68.830; 71.074; 73.038; 74.833; 78.148; 81.334; 84.606; 88.202; 90.237; 92.538; 95.269; 98.780; 104.139; 108.937; 110.393; 114.695; 127.324|];
[| 55.993; 58.730; 63.004; 66.976; 69.749; 72.008; 73.985; 75.792; 79.128; 82.334; 85.626; 89.243; 91.289; 93.604; 96.350; 99.880; 105.267; 110.090; 111.553; 115.876; 128.565|];
[| 56.813; 59.570; 63.876; 67.876; 70.669; 72.943; 74.933; 76.751; 80.108; 83.334; 86.646; 90.284; 92.342; 94.669; 97.431; 100.980; 106.395; 111.242; 112.712; 117.057; 129.802|];
[| 57.634; 60.412; 64.749; 68.777; 71.589; 73.878; 75.881; 77.710; 81.089; 84.334; 87.665; 91.325; 93.394; 95.734; 98.511; 102.079; 107.522; 112.393; 113.871; 118.236; 131.043|];
[| 58.456; 61.255; 65.623; 69.679; 72.509; 73.813; 76.829; 78.670; 82.069; 85.334; 88.685; 92.365; 94.446; 96.799; 99.590; 103.177; 108.648; 113.544; 115.028; 119.414; 132.276|];
[| 59.279; 62.098; 66.498; 70.581; 73.430; 75.749; 77.777; 79.630; 83.050; 86.334; 89.704; 93.405; 95.497; 97.863; 100.669; 104.275; 109.773; 114.693; 116.184; 120.591; 133.511|];
[| 60.103; 62.943; 67.373; 71.484; 73.351; 76.685; 78.726; 80.590; 84.031; 87.334; 90.723; 94.445; 96.548; 98.927; 101.748; 105.372; 110.898; 115.841; 117.340; 121.767; 134.746|];
[| 60.928; 63.788; 68.249; 72.387; 75.273; 77.622; 79.675; 81.550; 85.012; 88.334; 91.742; 95.484; 97.599; 99.991; 102.826; 106.469; 112.022; 116.989; 118.495; 122.942; 135.977|];
[| 61.754; 64.635; 69.126; 73.291; 76.195; 78.558; 80.625; 82.511; 85.993; 89.334; 92.761; 96.524; 98.650; 101.054; 103.904; 107.565; 113.145; 118.136 ; 119.648; 124.116; 137.208|];
[| 62.581; 65.482; 70.003; 73.196; 77.118; 79.496; 81.574; 83.472; 86.974; 90.334; 93.780; 97.563; 99.700; 102.117; 104.981; 108.661; 114.268; 119.282 ; 120.801; 125.289; 138.437|];
[| 63.409; 66.330; 70.882; 75.100; 78.041; 80.433; 82.524; 84.433; 87.955; 91.334; 94.799; 98.602; 100.750; 103.179; 106.058; 109.756; 115.390; 120.427; 121.953; 126.462; 139.667|];
[| 64.238; 67.179; 71.760; 76.006; 78.965; 81.371; 83.474; 85.394; 88.936; 92.334; 95.818; 99.641; 101.800; 104.241; 107.135; 110.850; 116.511; 121.571; 123.105; 127.633; 140.894|];
[| 65.068; 68.028; 72.640; 76.912; 79.889; 82.309; 84.425; 86.356; 89.917; 93.334; 96.836; 100.679; 102.850; 105.303; 108.211; 111.944; 117.632; 122.715; 124.255; 128.803; 142.118|];
[| 65.898; 68.879; 73.520; 77.818; 80.813; 83.248; 85.376; 87.317; 90.899; 94.334; 97.855; 101.717; 103.899; 106.364; 109.286; 113.038; 118.752; 123.858; 125.405; 129.973; 143.343|];
[| 66.730; 69.730; 73.401; 78.725; 81.738; 84.187; 86.327; 88.279; 91.881; 95.334; 98.873; 102.755; 104.948; 107.425; 110.362; 114.131; 119.871; 125.000; 126.554; 131.141; 144.566|];
[| 67.562; 70.582; 75.282; 79.633; 82.663; 85.126; 87.278; 89.241; 92.862; 96.334; 99.892; 103.793; 105.997; 108.486; 111.437; 115.223; 120.990; 126.141; 127.702; 132.309; 145.789|];
[| 68.396; 71.434; 76.164; 80.541; 83.588; 86.065; 88.229; 90.204; 93.844; 97.334; 100.910; 104.831; 107.045; 109.547; 112.511; 116.315; 122.108; 127.282; 128.849; 133.476; 147.009|];
[| 69.230; 72.288; 77.046; 81.449; 84.514; 87.005; 89.181; 91.166; 94.826; 98.334; 101.928; 105.868; 108.093; 110.607; 113.585; 117.407; 123.225; 128.422; 129.996; 134.641; 148.230|];
[| 70.065; 73.142; 77.929; 82.358; 85.441; 87.945; 90.133; 92.129; 95.808; 99.334; 102.946; 106.906; 109.141; 111.667; 114.659; 118.498; 124.342; 129.561; 131.142; 135.807; 149.449|];
|]
let quantile_of_freedom_degree =
fun ?(p=`p0_95) ->
let pi = indice_of_probability p in
fun n ->
if n < 1 then
raise (Invalid_degree (Printf.sprintf "Invalid freedom degree %d" n))
else if n > Array.length quantiles then
raise (Invalid_degree
(Printf.sprintf "No predefined quantile for probability %s and freedom degree %n"
(string_of_probability p) n)
)
else
quantiles.(n-1).(pi)
exception Out_of_table of string
let probability_of_quantile degree q =
if degree > 100 then
raise (Out_of_table (Printf.sprintf "freedom degre %d > 100" degree));
let t = quantiles.(degree-1) in
let len = Array.length probabilities in
let rec iter i =
if i >= len then
raise (Out_of_table (Printf.sprintf "quantile %f gives probability > %s"
q
(string_of_probability (fst probabilities.(len-1)))))
else
let v = t.(i) in
if q = v then
i
else
if q > v then
iter (i+1)
else
(i-1)
in
fst (probabilities.(iter 1))
let probabilities = Array.to_list (Array.map fst probabilities)
end