1## Copyright (C) 2007 Lukasz Komsta, http://www.komsta.net/
2##
3## This program is free software; you can redistribute it and/or modify
4## it under the terms of the GNU General Public License as published by
5## the Free Software Foundation; either version 2 of the License, or
6## (at your option) any later version.
7##
8## This program is distributed in the hope that it will be useful,
9## but WITHOUT ANY WARRANTY; without even the implied warranty of
10## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11## GNU General Public License for more details.
12##
13## You should have received a copy of the GNU General Public License
14## along with this program; If not, see <http://www.gnu.org/licenses/>.
15
16## Critical values and p-values for Dixon tests
17##
18## Description:
19##
20##      Approximated quantiles (critical values) and distribution function
21##      (giving p-values) for Dixon tests for outliers.
22##
23## Usage:
24##
25##      [q]=dixoninv(p, n, type, rev)
26##
27## Arguments:
28##
29##        p: vector of probabilities.
30##
31##        n: length of sample.
32##
33##     type: integer value: 10, 11, 12, 20, or 21. For description see
34##           'dixontest'.
35##
36##      rev: function 'dixoninv' with this parameter set to TRUE acts as
37##           'dixoncdf' to omit the repetition of code. 'dixoncdf' is the wrapper.
38##
39## Details:
40##
41##      This function is based on tabularized Dixon distribution, given by
42##      Dixon (1950) and corrected by Rorabacher (1991). Continuity is
43##      reached due to smart interpolation using 'qtable' function. By
44##      now, numerical procedure to obtain these values for n>3 is not
45##      known.
46##
47## Value:
48##
49##      Critical value or p-value (vector).
50##
51## Author(s):
52##
53##      Lukasz Komsta, ported from R package "outliers".
54##	See R News, 6(2):10-13, May 2006
55##
56## References:
57##
58##      Dixon, W.J. (1950). Analysis of extreme values. Ann. Math. Stat.
59##      21, 4, 488-506.
60##
61##      Dixon, W.J. (1951). Ratios involving extreme values. Ann. Math.
62##      Stat. 22, 1, 68-78.
63##
64##      Rorabacher, D.B. (1991). Statistical Treatment for Rejection of
65##      Deviant Values: Critical Values of Dixon Q Parameter and Related
66##      Subrange Ratios at the 95 percent Confidence Level. Anal. Chem.
67##      83, 2, 139-146.
68##
69##
70
71
72function [q]=dixoninv(p, n, type, rev)
73
74	if nargin<4
75		rev=0;
76	end
77	if nargin<3
78		type=10;
79	end
80
81	if (type == 10 | type == 0) & (n < 3 | n > 30)
82		error("Sample size must be in range 3-30");
83	elseif (type == 11 & (n < 4 | n > 30))
84		error("Sample size must be in range 4-30");
85    	elseif (type == 12 & (n < 5 | n > 30))
86		error("Sample size must be in range 5-30");
87	elseif (type == 20 & (n < 4 | n > 30))
88		error("Sample size must be in range 4-30");
89	elseif (type == 21 & (n < 5 | n > 30))
90		error("Sample size must be in range 5-30");
91	elseif (type == 22 & (n < 6 | n > 30))
92		error("Sample size must be in range 6-30");
93	end
94
95	if ~any([0 10 11 12 20 21 22] == type)
96		error("Incorrect type");
97	elseif (type == 0)
98		if (n <= 7)
99            		type=10;
100        	elseif (n > 7 & n <= 10)
101			type=11;
102        	elseif (n > 10 & n <= 13)
103			type=21;
104	        else
105		        type=22;
106		end
107	end
108
109    pp = [0.005, 0.01, 0.02, 0.025, 0.05, 0.1, 0.2, 0.3, 0.4, ...
110        0.5, 0.6, 0.7, 0.8, 0.9, 0.95];
111    q10 =[NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
112        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
113        NA, NA, NA, NA, 0.994, 0.988, 0.976, 0.97, 0.941, 0.886, ...
114        0.781, 0.684, 0.591, 0.5, 0.409, 0.316, 0.219, 0.114, ...
115        0.059, 0.926, 0.889, 0.846, 0.829, 0.765, 0.679, 0.56, ...
116        0.471, 0.394, 0.324, 0.257, 0.193, 0.13, 0.065, 0.033, ...
117        0.821, 0.78, 0.729, 0.71, 0.642, 0.557, 0.451, 0.373, ...
118        0.308, 0.25, 0.196, 0.146, 0.097, 0.048, 0.023, 0.74, ...
119        0.698, 0.644, 0.625, 0.56, 0.482, 0.386, 0.318, 0.261, ...
120        0.21, 0.164, 0.121, 0.079, 0.038, 0.018, 0.68, 0.637, ...
121        0.586, 0.568, 0.507, 0.434, 0.344, 0.281, 0.23, 0.184, ...
122        0.143, 0.105, 0.068, 0.032, 0.016, 0.634, 0.59, 0.543, ...
123        0.526, 0.468, 0.399, 0.314, 0.255, 0.208, 0.166, 0.128, ...
124        0.094, 0.06, 0.029, 0.014, 0.598, 0.555, 0.51, 0.493, ...
125        0.437, 0.37, 0.29, 0.234, 0.191, 0.152, 0.118, 0.086, ...
126        0.055, 0.026, 0.013, 0.568, 0.527, 0.483, 0.466, 0.412, ...
127        0.349, 0.273, 0.219, 0.178, 0.142, 0.11, 0.08, 0.051, ...
128        0.025, 0.012, 0.542, 0.502, 0.46, 0.444, 0.392, 0.332, ...
129        0.259, 0.208, 0.168, 0.133, 0.103, 0.074, 0.048, 0.023, ...
130        0.011, 0.522, 0.482, 0.441, 0.426, 0.376, 0.318, 0.247, ...
131        0.197, 0.16, 0.126, 0.097, 0.07, 0.047, 0.022, 0.011, ...
132        0.503, 0.465, 0.425, 0.41, 0.361, 0.305, 0.237, 0.188, ...
133        0.153, 0.12, 0.092, 0.067, 0.043, 0.021, 0.01, 0.488, ...
134        0.45, 0.411, 0.396, 0.349, 0.294, 0.228, 0.181, 0.147, ...
135        0.115, 0.088, 0.064, 0.041, 0.02, 0.01, 0.475, 0.438, ...
136        0.399, 0.384, 0.338, 0.285, 0.22, 0.175, 0.141, 0.111, ...
137        0.085, 0.062, 0.04, 0.019, 0.01, 0.463, 0.426, 0.388, ...
138        0.374, 0.329, 0.277, 0.213, 0.169, 0.136, 0.107, 0.082, ...
139        0.06, 0.039, 0.019, 0.009, 0.452, 0.416, 0.379, 0.365, ...
140        0.32, 0.269, 0.207, 0.165, 0.132, 0.104, 0.08, 0.058, ...
141        0.038, 0.018, 0.009, 0.442, 0.407, 0.37, 0.356, 0.313, ...
142        0.263, 0.202, 0.16, 0.128, 0.101, 0.078, 0.056, 0.036, ...
143        0.018, 0.009, 0.433, 0.398, 0.363, 0.349, 0.306, 0.258, ...
144        0.197, 0.157, 0.125, 0.098, 0.076, 0.055, 0.036, 0.017, ...
145        0.008, 0.425, 0.391, 0.356, 0.342, 0.3, 0.252, 0.193, ...
146        0.153, 0.122, 0.096, 0.074, 0.053, 0.035, 0.017, 0.008, ...
147        0.418, 0.384, 0.35, 0.337, 0.295, 0.247, 0.189, 0.15, ...
148        0.119, 0.094, 0.072, 0.052, 0.034, 0.016, 0.008, 0.411, ...
149        0.378, 0.344, 0.331, 0.29, 0.242, 0.185, 0.147, 0.117, ...
150        0.092, 0.071, 0.051, 0.033, 0.016, 0.008, 0.404, 0.372, ...
151        0.338, 0.326, 0.285, 0.238, 0.182, 0.144, 0.115, 0.09, ...
152        0.069, 0.05, 0.033, 0.016, 0.008, 0.399, 0.367, 0.333, ...
153        0.321, 0.281, 0.234, 0.179, 0.142, 0.113, 0.089, 0.068, ...
154        0.049, 0.032, 0.016, 0.008, 0.393, 0.362, 0.329, 0.317, ...
155        0.277, 0.23, 0.176, 0.139, 0.111, 0.088, 0.067, 0.048, ...
156        0.032, 0.015, 0.008, 0.388, 0.357, 0.324, 0.312, 0.273, ...
157        0.227, 0.173, 0.137, 0.109, 0.086, 0.066, 0.047, 0.031, ...
158        0.015, 0.007, 0.384, 0.353, 0.32, 0.308, 0.269, 0.224, ...
159        0.171, 0.135, 0.108, 0.085, 0.065, 0.047, 0.031, 0.015, ...
160        0.007, 0.38, 0.349, 0.316, 0.305, 0.266, 0.22, 0.168, ...
161        0.133, 0.106, 0.084, 0.064, 0.046, 0.03, 0.015, 0.007, ...
162        0.376, 0.345, 0.312, 0.301, 0.263, 0.218, 0.166, 0.131, ...
163        0.105, 0.083, 0.063, 0.046, 0.03, 0.014, 0.007, 0.372, ...
164        0.341, 0.309, 0.298, 0.26, 0.215, 0.164, 0.13, 0.103, ...
165        0.082, 0.062, 0.045, 0.029, 0.014, 0.007];
166    q11 = [NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
167        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
168        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
169        NA, NA, NA, NA, NA, 0.995, 0.991, 0.981, 0.977, 0.955, ...
170        0.91, 0.822, 0.737, 0.648, 0.554, 0.459, 0.362, 0.25, ...
171        0.131, 0.069, 0.937, 0.916, 0.876, 0.863, 0.807, 0.728, ...
172        0.615, 0.524, 0.444, 0.369, 0.296, 0.224, 0.151, 0.078, ...
173        0.039, 0.839, 0.805, 0.763, 0.748, 0.689, 0.609, 0.502, ...
174        0.42, 0.35, 0.288, 0.227, 0.169, 0.113, 0.056, 0.028, ...
175        0.782, 0.74, 0.689, 0.673, 0.61, 0.53, 0.432, 0.359, ...
176        0.298, 0.241, 0.189, 0.14, 0.093, 0.045, 0.022, 0.725, ...
177        0.683, 0.631, 0.615, 0.554, 0.479, 0.385, 0.318, 0.26, ...
178        0.21, 0.164, 0.121, 0.079, 0.037, 0.019, 0.677, 0.635, ...
179        0.587, 0.57, 0.512, 0.441, 0.352, 0.288, 0.236, 0.189, ...
180        0.148, 0.107, 0.07, 0.033, 0.016, 0.639, 0.597, 0.551, ...
181        0.534, 0.477, 0.409, 0.325, 0.265, 0.216, 0.173, 0.134, ...
182        0.098, 0.063, 0.03, 0.014, 0.606, 0.566, 0.521, 0.505, ...
183        0.45, 0.385, 0.305, 0.248, 0.202, 0.161, 0.124, 0.09, ...
184        0.058, 0.028, 0.013, 0.58, 0.541, 0.498, 0.481, 0.428, ...
185        0.367, 0.289, 0.234, 0.19, 0.15, 0.116, 0.084, 0.055, ...
186        0.026, 0.012, 0.558, 0.52, 0.477, 0.461, 0.41, 0.35, ...
187        0.275, 0.222, 0.18, 0.142, 0.109, 0.079, 0.052, 0.025, ...
188        0.012, 0.539, 0.502, 0.46, 0.445, 0.395, 0.336, 0.264, ...
189        0.212, 0.171, 0.135, 0.104, 0.075, 0.049, 0.024, 0.011, ...
190        0.522, 0.486, 0.445, 0.43, 0.381, 0.323, 0.253, 0.203, ...
191        0.164, 0.129, 0.099, 0.072, 0.047, 0.023, 0.011, 0.508, ...
192        0.472, 0.432, 0.417, 0.369, 0.313, 0.244, 0.196, 0.158, ...
193        0.124, 0.095, 0.096, 0.045, 0.022, 0.011, 0.495, 0.46, ...
194        0.42, 0.406, 0.359, 0.303, 0.236, 0.19, 0.152, 0.119, ...
195        0.092, 0.067, 0.044, 0.021, 0.01, 0.484, 0.449, 0.41, ...
196        0.396, 0.349, 0.295, 0.229, 0.184, 0.148, 0.116, 0.089, ...
197        0.065, 0.042, 0.02, 0.01, 0.473, 0.439, 0.4, 0.386, 0.341, ...
198        0.288, 0.223, 0.179, 0.143, 0.112, 0.087, 0.063, 0.041, ...
199        0.02, 0.01, 0.464, 0.43, 0.392, 0.379, 0.334, 0.282, ...
200        0.218, 0.174, 0.139, 0.11, 0.084, 0.061, 0.04, 0.019, ...
201        0.01, 0.455, 0.421, 0.384, 0.371, 0.327, 0.276, 0.213, ...
202        0.17, 0.136, 0.107, 0.082, 0.059, 0.039, 0.019, 0.009, ...
203        0.446, 0.414, 0.377, 0.364, 0.32, 0.27, 0.208, 0.166, ...
204        0.132, 0.104, 0.081, 0.058, 0.038, 0.018, 0.009, 0.439, ...
205        0.407, 0.371, 0.357, 0.314, 0.265, 0.204, 0.163, 0.13, ...
206        0.102, 0.079, 0.056, 0.037, 0.018, 0.009, 0.432, 0.4, ...
207        0.365, 0.352, 0.309, 0.26, 0.2, 0.16, 0.127, 0.1, 0.077, ...
208        0.055, 0.036, 0.018, 0.009, 0.426, 0.394, 0.359, 0.346, ...
209        0.304, 0.255, 0.197, 0.156, 0.124, 0.098, 0.076, 0.054, ...
210        0.036, 0.017, 0.009, 0.42, 0.389, 0.354, 0.341, 0.299, ...
211        0.25, 0.193, 0.154, 0.122, 0.096, 0.074, 0.053, 0.035, ...
212        0.017, 0.008, 0.414, 0.383, 0.349, 0.337, 0.295, 0.246, ...
213        0.19, 0.151, 0.12, 0.095, 0.073, 0.052, 0.034, 0.017, ...
214        0.008, 0.409, 0.378, 0.344, 0.332, 0.291, 0.243, 0.188, ...
215        0.149, 0.118, 0.093, 0.072, 0.051, 0.034, 0.016, 0.008, ...
216        0.404, 0.374, 0.34, 0.328, 0.287, 0.239, 0.185, 0.146, ...
217        0.116, 0.092, 0.07, 0.051, 0.033, 0.016, 0.008, 0.399, ...
218        0.369, 0.336, 0.324, 0.283, 0.236, 0.182, 0.144, 0.115, ...
219        0.09, 0.069, 0.05, 0.032, 0.016, 0.008];
220    q12 = [NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
221        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
222        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
223        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
224        NA, NA, NA, NA, NA, NA, 0.996, 0.992, 0.984, 0.98, 0.96, ...
225        0.919, 0.838, 0.755, 0.669, 0.579, 0.483, 0.381, 0.268, ...
226        0.143, 0.074, 0.951, 0.925, 0.891, 0.878, 0.824, 0.745, ...
227        0.635, 0.545, 0.465, 0.39, 0.316, 0.24, 0.165, 0.088, ...
228        0.049, 0.875, 0.836, 0.791, 0.773, 0.712, 0.636, 0.528, ...
229        0.445, 0.374, 0.307, 0.245, 0.183, 0.123, 0.064, 0.031, ...
230        0.797, 0.76, 0.708, 0.692, 0.632, 0.557, 0.456, 0.382, ...
231        0.317, 0.258, 0.203, 0.152, 0.101, 0.056, 0.025, 0.739, ...
232        0.702, 0.656, 0.639, 0.58, 0.504, 0.409, 0.339, 0.27, ...
233        0.227, 0.177, 0.13, 0.086, 0.044, 0.021, 0.694, 0.655, ...
234        0.61, 0.594, 0.537, 0.464, 0.373, 0.308, 0.258, 0.204, ...
235        0.158, 0.116, 0.075, 0.038, 0.019, 0.658, 0.619, 0.575, ...
236        0.559, 0.502, 0.431, 0.345, 0.283, 0.232, 0.187, 0.145, ...
237        0.106, 0.069, 0.035, 0.017, 0.629, 0.59, 0.546, 0.529, ...
238        0.473, 0.406, 0.324, 0.265, 0.217, 0.174, 0.135, 0.098, ...
239        0.063, 0.032, 0.016, 0.602, 0.564, 0.521, 0.505, 0.451, ...
240        0.387, 0.307, 0.25, 0.204, 0.163, 0.126, 0.092, 0.059, ...
241        0.03, 0.015, 0.58, 0.542, 0.501, 0.485, 0.432, 0.369, ...
242        0.292, 0.237, 0.193, 0.153, 0.118, 0.086, 0.055, 0.028, ...
243        0.014, 0.56, 0.523, 0.482, 0.467, 0.416, 0.354, 0.28, ...
244        0.226, 0.184, 0.146, 0.112, 0.082, 0.053, 0.026, 0.013, ...
245        0.544, 0.508, 0.467, 0.452, 0.401, 0.341, 0.269, 0.217, ...
246        0.177, 0.139, 0.107, 0.078, 0.05, 0.025, 0.013, 0.529, ...
247        0.493, 0.453, 0.438, 0.388, 0.33, 0.259, 0.209, 0.17, ...
248        0.134, 0.103, 0.075, 0.048, 0.024, 0.012, 0.516, 0.48, ...
249        0.44, 0.426, 0.377, 0.32, 0.251, 0.202, 0.163, 0.129, ...
250        0.099, 0.072, 0.047, 0.023, 0.012, 0.504, 0.469, 0.429, ...
251        0.415, 0.367, 0.311, 0.243, 0.196, 0.157, 0.125, 0.096, ...
252        0.069, 0.045, 0.022, 0.011, 0.493, 0.458, 0.419, 0.405, ...
253        0.358, 0.303, 0.237, 0.191, 0.153, 0.121, 0.093, 0.067, ...
254        0.044, 0.022, 0.011, 0.483, 0.449, 0.41, 0.396, 0.349, ...
255        0.296, 0.231, 0.186, 0.148, 0.118, 0.09, 0.065, 0.042, ...
256        0.021, 0.01, 0.474, 0.44, 0.402, 0.388, 0.342, 0.29, ...
257        0.225, 0.181, 0.145, 0.114, 0.088, 0.063, 0.041, 0.02, ...
258        0.01, 0.465, 0.432, 0.394, 0.381, 0.336, 0.284, 0.22, ...
259        0.176, 0.141, 0.112, 0.086, 0.062, 0.04, 0.02, 0.01, ...
260        0.457, 0.423, 0.387, 0.374, 0.33, 0.278, 0.216, 0.173, ...
261        0.138, 0.109, 0.084, 0.06, 0.039, 0.019, 0.01, 0.45, ...
262        0.417, 0.381, 0.368, 0.324, 0.273, 0.212, 0.169, 0.135, ...
263        0.107, 0.082, 0.059, 0.038, 0.019, 0.009, 0.443, 0.411, ...
264        0.375, 0.362, 0.319, 0.268, 0.208, 0.166, 0.132, 0.105, ...
265        0.08, 0.058, 0.037, 0.019, 0.009, 0.437, 0.405, 0.37, ...
266        0.357, 0.314, 0.263, 0.204, 0.163, 0.13, 0.103, 0.079, ...
267        0.057, 0.037, 0.018, 0.009, 0.431, 0.399, 0.365, 0.352, ...
268        0.309, 0.259, 0.201, 0.16, 0.128, 0.101, 0.077, 0.056, ...
269        0.036, 0.018, 0.009, 0.426, 0.394, 0.36, 0.347, 0.305, ...
270        0.255, 0.197, 0.157, 0.126, 0.009, 0.076, 0.055, 0.035, ...
271        0.017, 0.009, 0.42, 0.389, 0.355, 0.343, 0.301, 0.251, ...
272        0.194, 0.154, 0.124, 0.098, 0.075, 0.054, 0.035, 0.017, ...
273        0.009];
274    q20 = [NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
275        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
276        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
277        NA, NA, NA, NA, NA, 0.996, 0.992, 0.987, 0.983, 0.967, ...
278        0.935, 0.871, 0.807, 0.743, 0.676, 0.606, 0.529, 0.44, ...
279        0.321, 0.235, 0.95, 0.929, 0.901, 0.89, 0.845, 0.782, ...
280        0.694, 0.623, 0.56, 0.5, 0.44, 0.377, 0.306, 0.218, 0.155, ...
281        0.865, 0.836, 0.8, 0.786, 0.736, 0.67, 0.585, 0.52, 0.463, ...
282        0.411, 0.358, 0.305, 0.245, 0.172, 0.126, 0.814, 0.778, ...
283        0.732, 0.716, 0.661, 0.596, 0.516, 0.454, 0.402, 0.355, ...
284        0.306, 0.261, 0.208, 0.144, 0.099, 0.746, 0.71, 0.67, ...
285        0.657, 0.607, 0.545, 0.468, 0.41, 0.361, 0.317, 0.274, ...
286        0.23, 0.184, 0.125, 0.085, 0.7, 0.667, 0.627, 0.614, ...
287        0.565, 0.505, 0.432, 0.378, 0.331, 0.288, 0.25, 0.208, ...
288        0.166, 0.114, 0.077, 0.664, 0.632, 0.592, 0.579, 0.531, ...
289        0.474, 0.404, 0.354, 0.307, 0.268, 0.231, 0.192, 0.153, ...
290        0.104, 0.07, 0.627, 0.603, 0.564, 0.551, 0.504, 0.449, ...
291        0.381, 0.334, 0.29, 0.253, 0.217, 0.181, 0.143, 0.097, ...
292        0.065, 0.612, 0.579, 0.54, 0.527, 0.481, 0.429, 0.362, ...
293        0.216, 0.274, 0.239, 0.205, 0.172, 0.136, 0.091, 0.06, ...
294        0.59, 0.557, 0.52, 0.506, 0.461, 0.411, 0.345, 0.301, ...
295        0.261, 0.227, 0.195, 0.164, 0.129, 0.086, 0.057, 0.571, ...
296        0.538, 0.502, 0.489, 0.445, 0.395, 0.332, 0.288, 0.25, ...
297        0.217, 0.187, 0.157, 0.123, 0.082, 0.054, 0.554, 0.522, ...
298        0.486, 0.473, 0.43, 0.382, 0.32, 0.277, 0.241, 0.209, ...
299        0.179, 0.15, 0.118, 0.079, 0.052, 0.539, 0.508, 0.472, ...
300        0.46, 0.418, 0.37, 0.31, 0.268, 0.233, 0.202, 0.173, ...
301        0.144, 0.113, 0.076, 0.05, 0.526, 0.495, 0.46, 0.447, ...
302        0.406, 0.359, 0.301, 0.26, 0.226, 0.195, 0.167, 0.139, ...
303        0.109, 0.074, 0.049, 0.514, 0.484, 0.449, 0.437, 0.397, ...
304        0.35, 0.293, 0.252, 0.219, 0.189, 0.162, 0.134, 0.105, ...
305        0.071, 0.048, 0.503, 0.473, 0.439, 0.427, 0.387, 0.341, ...
306        0.286, 0.246, 0.213, 0.184, 0.157, 0.13, 0.101, 0.069, ...
307        0.047, 0.494, 0.464, 0.43, 0.418, 0.378, 0.333, 0.279, ...
308        0.24, 0.208, 0.179, 0.152, 0.126, 0.098, 0.067, 0.046, ...
309        0.485, 0.455, 0.422, 0.41, 0.371, 0.326, 0.273, 0.235, ...
310        0.203, 0.175, 0.148, 0.123, 0.096, 0.065, 0.045, 0.477, ...
311        0.447, 0.414, 0.402, 0.364, 0.32, 0.267, 0.23, 0.199, ...
312        0.171, 0.145, 0.12, 0.094, 0.064, 0.044, 0.469, 0.44, ...
313        0.407, 0.395, 0.358, 0.314, 0.262, 0.225, 0.195, 0.167, ...
314        0.142, 0.117, 0.092, 0.062, 0.043, 0.462, 0.434, 0.401, ...
315        0.39, 0.352, 0.309, 0.258, 0.221, 0.192, 0.164, 0.139, ...
316        0.114, 0.09, 0.061, 0.042, 0.456, 0.428, 0.395, 0.383, ...
317        0.346, 0.304, 0.254, 0.217, 0.189, 0.161, 0.136, 0.112, ...
318        0.089, 0.06, 0.041, 0.45, 0.422, 0.39, 0.379, 0.342, ...
319        0.3, 0.25, 0.214, 0.186, 0.158, 0.134, 0.11, 0.087, 0.059, ...
320        0.041, 0.444, 0.417, 0.385, 0.374, 0.338, 0.296, 0.246, ...
321        0.211, 0.183, 0.156, 0.132, 0.109, 0.086, 0.058, 0.04, ...
322        0.439, 0.412, 0.381, 0.37, 0.333, 0.292, 0.243, 0.208, ...
323        0.18, 0.154, 0.13, 0.107, 0.085, 0.058, 0.04, 0.434, ...
324        0.407, 0.376, 0.365, 0.329, 0.288, 0.239, 0.205, 0.177, ...
325        0.151, 0.128, 0.106, 0.083, 0.057, 0.039, 0.428, 0.402, ...
326        0.372, 0.361, 0.326, 0.285, 0.236, 0.202, 0.175, 0.149, ...
327        0.126, 0.104, 0.082, 0.056, 0.039];
328    q21 = [NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
329        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
330        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
331        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
332        NA, NA, NA, NA, NA, NA, 0.998, 0.995, 0.99, 0.987, 0.976, ...
333        0.952, 0.902, 0.82, 0.795, 0.735, 0.669, 0.594, 0.504, ...
334        0.374, 0.273, 0.97, 0.951, 0.924, 0.913, 0.872, 0.821, ...
335        0.745, 0.68, 0.621, 0.563, 0.504, 0.439, 0.364, 0.268, ...
336        0.195, 0.919, 0.885, 0.842, 0.828, 0.78, 0.725, 0.637, ...
337        0.575, 0.517, 0.462, 0.408, 350, 0.285, 0.198, 0.138, ...
338        0.868, 0.829, 0.78, 0.763, 0.71, 0.65, 0.57, 0.509, 0.454, ...
339        0.402, 0.352, 0.298, 0.24, 0.166, 0.117, 0.816, 0.776, ...
340        0.725, 0.71, 0.657, 0.594, 0.516, 0.458, 0.407, 0.36, ...
341        0.313, 0.265, 0.212, 0.146, 0.103, 0.76, 0.726, 0.678, ...
342        0.664, 0.612, 0.551, 0.474, 0.42, 0.374, 0.329, 0.286, ...
343        0.24, 0.189, 0.13, 0.089, 0.713, 0.679, 0.638, 0.625, ...
344        0.576, 0.517, 0.442, 0.391, 0.348, 0.305, 0.265, 0.221, ...
345        0.173, 0.118, 0.08, 0.675, 0.642, 0.605, 0.592, 0.546, ...
346        0.49, 0.419, 0.37, 0.326, 0.285, 0.247, 0.206, 0.161, ...
347        0.11, 0.074, 0.649, 0.615, 0.578, 0.565, 0.521, 0.467, ...
348        0.399, 0.351, 0.308, 0.269, 0.232, 0.194, 0.152, 0.104, ...
349        0.07, 0.627, 0.593, 0.556, 0.544, 0.501, 0.448, 0.381, ...
350        0.334, 0.293, 0.256, 0.219, 0.184, 0.144, 0.099, 0.066, ...
351        0.607, 0.574, 0.537, 0.525, 0.483, 0.431, 0.366, 0.319, ...
352        0.28, 0.245, 0.208, 0.175, 0.138, 0.094, 0.062, 0.58, ...
353        0.557, 0.521, 0.509, 0.467, 0.416, 0.353, 0.307, 0.269, ...
354        0.235, 0.199, 0.167, 0.132, 0.09, 0.059, 0.573, 0.542, ...
355        0.507, 0.495, 0.453, 0.403, 0.341, 0.296, 0.259, 0.225, ...
356        0.192, 0.161, 0.127, 0.086, 0.057, 0.559, 0.529, 0.494, ...
357        0.482, 0.44, 0.391, 0.331, 0.287, 0.25, 0.218, 0.186, ...
358        0.155, 0.122, 0.082, 0.054, 0.547, 0.517, 0.482, 0.469, ...
359        0.428, 0.38, 0.322, 0.279, 0.243, 0.211, 0.18, 0.15, ...
360        0.117, 0.078, 0.052, 0.536, 0.506, 0.472, 0.46, 0.419, ...
361        0.371, 0.314, 0.271, 0.236, 0.205, 0.174, 0.145, 0.113, ...
362        0.075, 0.05, 0.526, 0.496, 0.462, 0.45, 0.41, 0.363, ...
363        0.306, 0.264, 0.229, 0.199, 0.17, 0.141, 0.11, 0.073, ...
364        0.049, 0.517, 0.487, 0.453, 0.441, 0.402, 0.356, 0.299, ...
365        0.258, 0.223, 0.194, 0.165, 0.137, 0.107, 0.071, 0.048, ...
366        0.509, 0.479, 0.445, 0.434, 0.395, 0.349, 0.293, 0.252, ...
367        0.218, 0.189, 0.161, 0.133, 0.105, 0.069, 0.046, 0.501, ...
368        0.471, 0.438, 0.427, 0.388, 0.343, 0.287, 0.247, 0.214, ...
369        0.185, 0.158, 0.13, 0.103, 0.068, 0.045, 0.493, 0.464, ...
370        0.431, 0.42, 0.382, 0.337, 0.282, 0.242, 0.21, 0.181, ...
371        0.154, 0.127, 0.1, 0.067, 0.043, 0.486, 0.457, 0.424, ...
372        0.414, 0.376, 0.331, 0.277, 0.238, 0.206, 0.178, 0.151, ...
373        0.125, 0.098, 0.066, 0.042, 0.479, 0.45, 0.418, 0.407, ...
374        0.37, 0.325, 0.273, 0.234, 0.203, 0.175, 0.149, 0.123, ...
375        0.096, 0.064, 0.041, 0.472, 0.444, 0.412, 0.402, 0.365, ...
376        0.32, 0.269, 0.23, 0.2, 0.172, 0.146, 0.121, 0.094, 0.063, ...
377        0.041, 0.466, 0.438, 0.406, 0.396, 0.36, 0.316, 0.265, ...
378        0.227, 0.197, 0.17, 0.144, 0.119, 0.092, 0.062, 0.04, ...
379        0.46, 0.433, 0.401, 0.391, 0.355, 0.312, 0.261, 0.224, ...
380        0.194, 0.167, 0.142, 0.117, 0.091, 0.061, 0.04];
381    q22 = [NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
382        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
383        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
384        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
385        NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, ...
386        NA, NA, NA, NA, NA, NA, NA, 0.998, 0.995, 0.992, 0.99, ...
387        0.983, 0.965, 0.93, 0.88, 830, 0.78, 0.72, 0.64, 0.54, ...
388        0.41, 0.3, 0.97, 0.945, 0.919, 0.909, 0.881, 0.85, 0.78, ...
389        0.73, 0.67, 0.61, 0.54, 0.47, 0.39, 0.27, 0.2, 0.922, ...
390        0.89, 0.857, 0.846, 0.803, 0.745, 0.664, 0.602, 0.546, ...
391        0.49, 0.434, 0.375, 0.309, 0.218, 0.156, 0.873, 0.84, ...
392        0.8, 0.787, 0.737, 0.676, 0.592, 0.53, 0.478, 0.425, ...
393        0.373, 0.32, 0.261, 0.186, 0.128, 0.826, 0.791, 0.749, ...
394        0.734, 0.682, 0.62, 0.543, 0.483, 0.433, 0.384, 0.335, ...
395        0.285, 0.231, 0.15, 0.111, 0.781, 0.745, 0.703, 0.688, ...
396        0.637, 0.578, 0.503, 0.446, 0.397, 0.351, 0.305, 0.258, ...
397        0.208, 0.142, 0.099, 0.74, 0.704, 0.661, 0.648, 0.6, ...
398        0.543, 0.47, 0.416, 0.37, 0.325, 0.282, 0.238, 0.19, ...
399        0.13, 0.09, 0.705, 0.67, 0.628, 0.616, 0.57, 0.515, 0.443, ...
400        0.391, 0.347, 0.304, 0.263, 0.222, 0.177, 0.122, 0.084, ...
401        0.674, 0.641, 0.602, 0.59, 0.546, 0.492, 0.421, 0.37, ...
402        0.328, 0.287, 0.247, 0.208, 0.166, 0.115, 0.079, 0.647, ...
403        0.616, 0.579, 0.568, 0.525, 0.472, 0.402, 0.353, 0.312, ...
404        0.273, 0.234, 0.196, 0.156, 0.109, 0.075, 0.624, 0.595, ...
405        0.559, 0.548, 0.507, 0.454, 0.386, 0.338, 0.298, 0.261, ...
406        0.223, 0.186, 0.148, 0.104, 0.071, 0.605, 0.577, 0.542, ...
407        0.531, 0.49, 0.438, 0.373, 0.325, 0.286, 0.25, 0.214, ...
408        0.178, 0.142, 0.099, 0.067, 0.589, 0.561, 0.527, 0.516, ...
409        0.475, 0.424, 0.361, 0.314, 0.276, 0.241, 0.206, 0.171, ...
410        0.135, 0.094, 0.063, 0.575, 0.547, 0.514, 0.503, 0.462, ...
411        0.412, 0.35, 0.304, 0.268, 0.233, 0.199, 0.165, 0.103, ...
412        0.09, 0.06, 0.562, 0.535, 0.502, 0.491, 0.45, 0.401, ...
413        0.34, 0.295, 0.26, 0.226, 0.193, 0.16, 0.125, 0.086, ...
414        0.057, 0.551, 0.524, 0.491, 0.48, 0.44, 0.391, 0.331, ...
415        0.287, 0.252, 0.22, 0.187, 0.155, 0.12, 0.082, 0.054, ...
416        0.541, 0.514, 0.481, 0.47, 0.43, 0.382, 0.323, 0.28, ...
417        0.245, 0.213, 0.182, 0.15, 0.116, 0.078, 0.051, 0.532, ...
418        0.505, 0.472, 0.461, 0.421, 0.374, 0.316, 0.274, 0.239, ...
419        0.207, 0.177, 0.146, 0.113, 0.075, 0.049, 0.524, 0.497, ...
420        0.464, 0.452, 0.413, 0.367, 0.31, 0.268, 0.232, 0.201, ...
421        0.172, 0.142, 0.111, 0.074, 0.047, 0.516, 0.489, 0.457, ...
422        0.445, 0.406, 0.36, 0.304, 0.262, 0.227, 0.196, 0.168, ...
423        0.138, 0.108, 0.073, 0.045, 0.508, 0.482, 0.45, 0.438, ...
424        0.399, 0.354, 0.298, 0.257, 0.222, 0.192, 0.164, 0.135, ...
425        0.106, 0.072, 0.044, 0.501, 0.475, 0.443, 0.432, 0.393, ...
426        0.348, 0.292, 0.252, 0.218, 0.189, 0.161, 0.132, 0.104, ...
427        0.071, 0.043, 0.495, 0.469, 0.437, 0.426, 0.387, 0.342, ...
428        0.287, 0.247, 0.215, 0.186, 0.158, 0.13, 0.102, 0.069, ...
429        0.042, 0.489, 0.463, 0.431, 0.419, 0.381, 0.337, 0.282, ...
430        0.243, 0.211, 0.183, 0.155, 0.128, 0.1, 0.068, 0.041, ...
431        0.483, 0.457, 0.425, 0.414, 0.376, 0.332, 0.278, 0.239, ...
432        0.208, 0.18, 0.153, 0.126, 0.098, 0.067, 0.041];
433
434	q10 = reshape(q10,15,30);
435	q11 = reshape(q11,15,30);
436	q12 = reshape(q12,15,30);
437	q20 = reshape(q20,15,30);
438	q21 = reshape(q21,15,30);
439	q22 = reshape(q22,15,30);
440
441	if (type == 10)
442        	q0 = q10(:,n)';
443	elseif (type == 11)
444		q0 = q11(:,n)';
445	elseif (type == 12)
446		q0 = q12(:,n)';
447	elseif (type == 20)
448		q0 = q20(:,n)';
449	elseif (type == 21)
450		q0 = q21(:,n)';
451    	else q0 = q22(:,n)';
452	end
453
454	if (rev)
455        	q = qtable(p, q0, pp);
456	else
457		q = qtable(p, pp, q0);
458    	end
459
460	q(q<0)=0;
461	q(q>1)=1;
462end
463
464