1 /***************************************************************************
\r
2 gauss_i.h - description
\r
3 -----------------------
\r
4 begin : Sun Feb 08 2003
\r
5 copyright : (C) 2003 by Chris Moeller, eh, whatever
\r
6 email : chris@kode54.tk
\r
7 ***************************************************************************/
\r
9 /***************************************************************************
\r
11 * This program is free software; you can redistribute it and/or modify *
\r
12 * it under the terms of the GNU General Public License as published by *
\r
13 * the Free Software Foundation; either version 2 of the License, or *
\r
14 * (at your option) any later version. See also the license.txt file for *
\r
15 * additional informations. *
\r
17 ***************************************************************************/
\r
19 //*************************************************************************//
\r
20 // History of changes:
\r
22 // 2003/02/08 - kode54
\r
23 // - generated by interleaving table from gauss.h from the libopenspc
\r
24 // project; a gaussian bell curve table logged from the SPC-700,
\r
25 // though Neill says he logged the same curve from a PSX SPU. Also
\r
26 // says that interleaving the coefficients together runs faster. Meh.
\r
28 //*************************************************************************//
\r
43 for(0) + for(256) + rev(256) + rev(0)
\r
48 // - Excel NORMDIST($A6,2,0.567,FALSE) [0-4] = 98%
\r
51 // Mednafen's table (PSX) 99-100%
\r
52 static const signed short gauss[] =
\r
54 0x12c7, 0x59b3, 0x1307, 0xffff,
\r
55 0x1288, 0x59b2, 0x1347, 0xffff,
\r
56 0x1249, 0x59b0, 0x1388, 0xffff,
\r
57 0x120b, 0x59ad, 0x13c9, 0xffff,
\r
58 0x11cd, 0x59a9, 0x140b, 0xffff,
\r
59 0x118f, 0x59a4, 0x144d, 0xffff,
\r
60 0x1153, 0x599e, 0x1490, 0xffff,
\r
61 0x1116, 0x5997, 0x14d4, 0xffff,
\r
62 0x10db, 0x598f, 0x1517, 0xffff,
\r
63 0x109f, 0x5986, 0x155c, 0xffff,
\r
64 0x1065, 0x597c, 0x15a0, 0xffff,
\r
65 0x102a, 0x5971, 0x15e6, 0xffff,
\r
66 0x0ff1, 0x5965, 0x162c, 0xffff,
\r
67 0x0fb7, 0x5958, 0x1672, 0xffff,
\r
68 0x0f7f, 0x5949, 0x16b9, 0xffff,
\r
69 0x0f46, 0x593a, 0x1700, 0xffff,
\r
70 0x0f0f, 0x592a, 0x1747, 0x0000,
\r
71 0x0ed7, 0x5919, 0x1790, 0x0000,
\r
72 0x0ea1, 0x5907, 0x17d8, 0x0000,
\r
73 0x0e6b, 0x58f4, 0x1821, 0x0000,
\r
74 0x0e35, 0x58e0, 0x186b, 0x0000,
\r
75 0x0e00, 0x58cb, 0x18b5, 0x0000,
\r
76 0x0dcb, 0x58b5, 0x1900, 0x0000,
\r
77 0x0d97, 0x589e, 0x194b, 0x0001,
\r
78 0x0d63, 0x5886, 0x1996, 0x0001,
\r
79 0x0d30, 0x586d, 0x19e2, 0x0001,
\r
80 0x0cfd, 0x5853, 0x1a2e, 0x0001,
\r
81 0x0ccb, 0x5838, 0x1a7b, 0x0002,
\r
82 0x0c99, 0x581c, 0x1ac8, 0x0002,
\r
83 0x0c68, 0x57ff, 0x1b16, 0x0002,
\r
84 0x0c38, 0x57e2, 0x1b64, 0x0003,
\r
85 0x0c07, 0x57c3, 0x1bb3, 0x0003,
\r
86 0x0bd8, 0x57a3, 0x1c02, 0x0003,
\r
87 0x0ba9, 0x5782, 0x1c51, 0x0004,
\r
88 0x0b7a, 0x5761, 0x1ca1, 0x0004,
\r
89 0x0b4c, 0x573e, 0x1cf1, 0x0005,
\r
90 0x0b1e, 0x571b, 0x1d42, 0x0005,
\r
91 0x0af1, 0x56f6, 0x1d93, 0x0006,
\r
92 0x0ac4, 0x56d1, 0x1de5, 0x0007,
\r
93 0x0a98, 0x56ab, 0x1e37, 0x0007,
\r
94 0x0a6c, 0x5684, 0x1e89, 0x0008,
\r
95 0x0a40, 0x565b, 0x1edc, 0x0009,
\r
96 0x0a16, 0x5632, 0x1f2f, 0x0009,
\r
97 0x09eb, 0x5609, 0x1f82, 0x000a,
\r
98 0x09c1, 0x55de, 0x1fd6, 0x000b,
\r
99 0x0998, 0x55b2, 0x202a, 0x000c,
\r
100 0x096f, 0x5585, 0x207f, 0x000d,
\r
101 0x0946, 0x5558, 0x20d4, 0x000e,
\r
102 0x091e, 0x5529, 0x2129, 0x000f,
\r
103 0x08f7, 0x54fa, 0x217f, 0x0010,
\r
104 0x08d0, 0x54ca, 0x21d5, 0x0011,
\r
105 0x08a9, 0x5499, 0x222c, 0x0012,
\r
106 0x0883, 0x5467, 0x2282, 0x0013,
\r
107 0x085d, 0x5434, 0x22da, 0x0015,
\r
108 0x0838, 0x5401, 0x2331, 0x0016,
\r
109 0x0813, 0x53cc, 0x2389, 0x0018,
\r
110 0x07ef, 0x5397, 0x23e1, 0x0019,
\r
111 0x07cb, 0x5361, 0x2439, 0x001b,
\r
112 0x07a7, 0x532a, 0x2492, 0x001c,
\r
113 0x0784, 0x52f3, 0x24eb, 0x001e,
\r
114 0x0762, 0x52ba, 0x2545, 0x0020,
\r
115 0x0740, 0x5281, 0x259e, 0x0021,
\r
116 0x071e, 0x5247, 0x25f8, 0x0023,
\r
117 0x06fd, 0x520c, 0x2653, 0x0025,
\r
118 0x06dc, 0x51d0, 0x26ad, 0x0027,
\r
119 0x06bb, 0x5194, 0x2708, 0x0029,
\r
120 0x069b, 0x5156, 0x2763, 0x002c,
\r
121 0x067c, 0x5118, 0x27be, 0x002e,
\r
122 0x065c, 0x50da, 0x281a, 0x0030,
\r
123 0x063e, 0x509a, 0x2876, 0x0033,
\r
124 0x061f, 0x505a, 0x28d2, 0x0035,
\r
125 0x0601, 0x5019, 0x292e, 0x0038,
\r
126 0x05e4, 0x4fd7, 0x298b, 0x003a,
\r
127 0x05c7, 0x4f95, 0x29e7, 0x003d,
\r
128 0x05aa, 0x4f52, 0x2a44, 0x0040,
\r
129 0x058e, 0x4f0e, 0x2aa1, 0x0043,
\r
130 0x0572, 0x4ec9, 0x2aff, 0x0046,
\r
131 0x0556, 0x4e84, 0x2b5c, 0x0049,
\r
132 0x053b, 0x4e3e, 0x2bba, 0x004d,
\r
133 0x0520, 0x4df7, 0x2c18, 0x0050,
\r
134 0x0506, 0x4db0, 0x2c76, 0x0054,
\r
135 0x04ec, 0x4d68, 0x2cd4, 0x0057,
\r
136 0x04d2, 0x4d20, 0x2d33, 0x005b,
\r
137 0x04b9, 0x4cd7, 0x2d91, 0x005f,
\r
138 0x04a0, 0x4c8d, 0x2df0, 0x0063,
\r
139 0x0488, 0x4c42, 0x2e4f, 0x0067,
\r
140 0x0470, 0x4bf7, 0x2eae, 0x006b,
\r
141 0x0458, 0x4bac, 0x2f0d, 0x006f,
\r
142 0x0441, 0x4b5f, 0x2f6c, 0x0074,
\r
143 0x042a, 0x4b13, 0x2fcc, 0x0078,
\r
144 0x0413, 0x4ac5, 0x302b, 0x007d,
\r
145 0x03fc, 0x4a77, 0x308b, 0x0082,
\r
146 0x03e7, 0x4a29, 0x30ea, 0x0087,
\r
147 0x03d1, 0x49d9, 0x314a, 0x008c,
\r
148 0x03bc, 0x498a, 0x31aa, 0x0091,
\r
149 0x03a7, 0x493a, 0x3209, 0x0096,
\r
150 0x0392, 0x48e9, 0x3269, 0x009c,
\r
151 0x037e, 0x4898, 0x32c9, 0x00a1,
\r
152 0x036a, 0x4846, 0x3329, 0x00a7,
\r
153 0x0356, 0x47f4, 0x3389, 0x00ad,
\r
154 0x0343, 0x47a1, 0x33e9, 0x00b3,
\r
155 0x0330, 0x474e, 0x3449, 0x00ba,
\r
156 0x031d, 0x46fa, 0x34a9, 0x00c0,
\r
157 0x030b, 0x46a6, 0x3509, 0x00c7,
\r
158 0x02f9, 0x4651, 0x3569, 0x00cd,
\r
159 0x02e7, 0x45fc, 0x35c9, 0x00d4,
\r
160 0x02d6, 0x45a6, 0x3629, 0x00db,
\r
161 0x02c4, 0x4550, 0x3689, 0x00e3,
\r
162 0x02b4, 0x44fa, 0x36e8, 0x00ea,
\r
163 0x02a3, 0x44a3, 0x3748, 0x00f2,
\r
164 0x0293, 0x444c, 0x37a8, 0x00fa,
\r
165 0x0283, 0x43f4, 0x3807, 0x0101,
\r
166 0x0273, 0x439c, 0x3867, 0x010a,
\r
167 0x0264, 0x4344, 0x38c6, 0x0112,
\r
168 0x0255, 0x42eb, 0x3926, 0x011b,
\r
169 0x0246, 0x4292, 0x3985, 0x0123,
\r
170 0x0237, 0x4239, 0x39e4, 0x012c,
\r
171 0x0229, 0x41df, 0x3a43, 0x0135,
\r
172 0x021b, 0x4185, 0x3aa2, 0x013f,
\r
173 0x020d, 0x412a, 0x3b00, 0x0148,
\r
174 0x0200, 0x40d0, 0x3b5f, 0x0152,
\r
175 0x01f2, 0x4074, 0x3bbd, 0x015c,
\r
176 0x01e5, 0x4019, 0x3c1b, 0x0166,
\r
177 0x01d9, 0x3fbd, 0x3c79, 0x0171,
\r
178 0x01cc, 0x3f62, 0x3cd7, 0x017b,
\r
179 0x01c0, 0x3f05, 0x3d35, 0x0186,
\r
180 0x01b4, 0x3ea9, 0x3d92, 0x0191,
\r
181 0x01a8, 0x3e4c, 0x3def, 0x019c,
\r
182 0x019c, 0x3def, 0x3e4c, 0x01a8,
\r
183 0x0191, 0x3d92, 0x3ea9, 0x01b4,
\r
184 0x0186, 0x3d35, 0x3f05, 0x01c0,
\r
185 0x017b, 0x3cd7, 0x3f62, 0x01cc,
\r
186 0x0171, 0x3c79, 0x3fbd, 0x01d9,
\r
187 0x0166, 0x3c1b, 0x4019, 0x01e5,
\r
188 0x015c, 0x3bbd, 0x4074, 0x01f2,
\r
189 0x0152, 0x3b5f, 0x40d0, 0x0200,
\r
190 0x0148, 0x3b00, 0x412a, 0x020d,
\r
191 0x013f, 0x3aa2, 0x4185, 0x021b,
\r
192 0x0135, 0x3a43, 0x41df, 0x0229,
\r
193 0x012c, 0x39e4, 0x4239, 0x0237,
\r
194 0x0123, 0x3985, 0x4292, 0x0246,
\r
195 0x011b, 0x3926, 0x42eb, 0x0255,
\r
196 0x0112, 0x38c6, 0x4344, 0x0264,
\r
197 0x010a, 0x3867, 0x439c, 0x0273,
\r
198 0x0101, 0x3807, 0x43f4, 0x0283,
\r
199 0x00fa, 0x37a8, 0x444c, 0x0293,
\r
200 0x00f2, 0x3748, 0x44a3, 0x02a3,
\r
201 0x00ea, 0x36e8, 0x44fa, 0x02b4,
\r
202 0x00e3, 0x3689, 0x4550, 0x02c4,
\r
203 0x00db, 0x3629, 0x45a6, 0x02d6,
\r
204 0x00d4, 0x35c9, 0x45fc, 0x02e7,
\r
205 0x00cd, 0x3569, 0x4651, 0x02f9,
\r
206 0x00c7, 0x3509, 0x46a6, 0x030b,
\r
207 0x00c0, 0x34a9, 0x46fa, 0x031d,
\r
208 0x00ba, 0x3449, 0x474e, 0x0330,
\r
209 0x00b3, 0x33e9, 0x47a1, 0x0343,
\r
210 0x00ad, 0x3389, 0x47f4, 0x0356,
\r
211 0x00a7, 0x3329, 0x4846, 0x036a,
\r
212 0x00a1, 0x32c9, 0x4898, 0x037e,
\r
213 0x009c, 0x3269, 0x48e9, 0x0392,
\r
214 0x0096, 0x3209, 0x493a, 0x03a7,
\r
215 0x0091, 0x31aa, 0x498a, 0x03bc,
\r
216 0x008c, 0x314a, 0x49d9, 0x03d1,
\r
217 0x0087, 0x30ea, 0x4a29, 0x03e7,
\r
218 0x0082, 0x308b, 0x4a77, 0x03fc,
\r
219 0x007d, 0x302b, 0x4ac5, 0x0413,
\r
220 0x0078, 0x2fcc, 0x4b13, 0x042a,
\r
221 0x0074, 0x2f6c, 0x4b5f, 0x0441,
\r
222 0x006f, 0x2f0d, 0x4bac, 0x0458,
\r
223 0x006b, 0x2eae, 0x4bf7, 0x0470,
\r
224 0x0067, 0x2e4f, 0x4c42, 0x0488,
\r
225 0x0063, 0x2df0, 0x4c8d, 0x04a0,
\r
226 0x005f, 0x2d91, 0x4cd7, 0x04b9,
\r
227 0x005b, 0x2d33, 0x4d20, 0x04d2,
\r
228 0x0057, 0x2cd4, 0x4d68, 0x04ec,
\r
229 0x0054, 0x2c76, 0x4db0, 0x0506,
\r
230 0x0050, 0x2c18, 0x4df7, 0x0520,
\r
231 0x004d, 0x2bba, 0x4e3e, 0x053b,
\r
232 0x0049, 0x2b5c, 0x4e84, 0x0556,
\r
233 0x0046, 0x2aff, 0x4ec9, 0x0572,
\r
234 0x0043, 0x2aa1, 0x4f0e, 0x058e,
\r
235 0x0040, 0x2a44, 0x4f52, 0x05aa,
\r
236 0x003d, 0x29e7, 0x4f95, 0x05c7,
\r
237 0x003a, 0x298b, 0x4fd7, 0x05e4,
\r
238 0x0038, 0x292e, 0x5019, 0x0601,
\r
239 0x0035, 0x28d2, 0x505a, 0x061f,
\r
240 0x0033, 0x2876, 0x509a, 0x063e,
\r
241 0x0030, 0x281a, 0x50da, 0x065c,
\r
242 0x002e, 0x27be, 0x5118, 0x067c,
\r
243 0x002c, 0x2763, 0x5156, 0x069b,
\r
244 0x0029, 0x2708, 0x5194, 0x06bb,
\r
245 0x0027, 0x26ad, 0x51d0, 0x06dc,
\r
246 0x0025, 0x2653, 0x520c, 0x06fd,
\r
247 0x0023, 0x25f8, 0x5247, 0x071e,
\r
248 0x0021, 0x259e, 0x5281, 0x0740,
\r
249 0x0020, 0x2545, 0x52ba, 0x0762,
\r
250 0x001e, 0x24eb, 0x52f3, 0x0784,
\r
251 0x001c, 0x2492, 0x532a, 0x07a7,
\r
252 0x001b, 0x2439, 0x5361, 0x07cb,
\r
253 0x0019, 0x23e1, 0x5397, 0x07ef,
\r
254 0x0018, 0x2389, 0x53cc, 0x0813,
\r
255 0x0016, 0x2331, 0x5401, 0x0838,
\r
256 0x0015, 0x22da, 0x5434, 0x085d,
\r
257 0x0013, 0x2282, 0x5467, 0x0883,
\r
258 0x0012, 0x222c, 0x5499, 0x08a9,
\r
259 0x0011, 0x21d5, 0x54ca, 0x08d0,
\r
260 0x0010, 0x217f, 0x54fa, 0x08f7,
\r
261 0x000f, 0x2129, 0x5529, 0x091e,
\r
262 0x000e, 0x20d4, 0x5558, 0x0946,
\r
263 0x000d, 0x207f, 0x5585, 0x096f,
\r
264 0x000c, 0x202a, 0x55b2, 0x0998,
\r
265 0x000b, 0x1fd6, 0x55de, 0x09c1,
\r
266 0x000a, 0x1f82, 0x5609, 0x09eb,
\r
267 0x0009, 0x1f2f, 0x5632, 0x0a16,
\r
268 0x0009, 0x1edc, 0x565b, 0x0a40,
\r
269 0x0008, 0x1e89, 0x5684, 0x0a6c,
\r
270 0x0007, 0x1e37, 0x56ab, 0x0a98,
\r
271 0x0007, 0x1de5, 0x56d1, 0x0ac4,
\r
272 0x0006, 0x1d93, 0x56f6, 0x0af1,
\r
273 0x0005, 0x1d42, 0x571b, 0x0b1e,
\r
274 0x0005, 0x1cf1, 0x573e, 0x0b4c,
\r
275 0x0004, 0x1ca1, 0x5761, 0x0b7a,
\r
276 0x0004, 0x1c51, 0x5782, 0x0ba9,
\r
277 0x0003, 0x1c02, 0x57a3, 0x0bd8,
\r
278 0x0003, 0x1bb3, 0x57c3, 0x0c07,
\r
279 0x0003, 0x1b64, 0x57e2, 0x0c38,
\r
280 0x0002, 0x1b16, 0x57ff, 0x0c68,
\r
281 0x0002, 0x1ac8, 0x581c, 0x0c99,
\r
282 0x0002, 0x1a7b, 0x5838, 0x0ccb,
\r
283 0x0001, 0x1a2e, 0x5853, 0x0cfd,
\r
284 0x0001, 0x19e2, 0x586d, 0x0d30,
\r
285 0x0001, 0x1996, 0x5886, 0x0d63,
\r
286 0x0001, 0x194b, 0x589e, 0x0d97,
\r
287 0x0000, 0x1900, 0x58b5, 0x0dcb,
\r
288 0x0000, 0x18b5, 0x58cb, 0x0e00,
\r
289 0x0000, 0x186b, 0x58e0, 0x0e35,
\r
290 0x0000, 0x1821, 0x58f4, 0x0e6b,
\r
291 0x0000, 0x17d8, 0x5907, 0x0ea1,
\r
292 0x0000, 0x1790, 0x5919, 0x0ed7,
\r
293 0x0000, 0x1747, 0x592a, 0x0f0f,
\r
294 0xffff, 0x1700, 0x593a, 0x0f46,
\r
295 0xffff, 0x16b9, 0x5949, 0x0f7f,
\r
296 0xffff, 0x1672, 0x5958, 0x0fb7,
\r
297 0xffff, 0x162c, 0x5965, 0x0ff1,
\r
298 0xffff, 0x15e6, 0x5971, 0x102a,
\r
299 0xffff, 0x15a0, 0x597c, 0x1065,
\r
300 0xffff, 0x155c, 0x5986, 0x109f,
\r
301 0xffff, 0x1517, 0x598f, 0x10db,
\r
302 0xffff, 0x14d4, 0x5997, 0x1116,
\r
303 0xffff, 0x1490, 0x599e, 0x1153,
\r
304 0xffff, 0x144d, 0x59a4, 0x118f,
\r
305 0xffff, 0x140b, 0x59a9, 0x11cd,
\r
306 0xffff, 0x13c9, 0x59ad, 0x120b,
\r
307 0xffff, 0x1388, 0x59b0, 0x1249,
\r
308 0xffff, 0x1347, 0x59b2, 0x1288,
\r
309 0xffff, 0x1307, 0x59b3, 0x12c7,
\r