All sample rates/modes with fresh training now in CVS.
[platform/upstream/libvorbis.git] / lib / lookup_data.h
1 /********************************************************************
2  *                                                                  *
3  * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
4  * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
5  * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
6  * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
7  *                                                                  *
8  * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002             *
9  * by the XIPHOPHORUS Company http://www.xiph.org/                  *
10  *                                                                  *
11  ********************************************************************
12
13   function: lookup data; generated by lookups.pl; edit there
14   last mod: $Id: lookup_data.h,v 1.9 2002/07/11 06:40:49 xiphmont Exp $
15
16  ********************************************************************/
17
18 #ifndef _V_LOOKUP_DATA_H_
19
20 #ifdef FLOAT_LOOKUP
21 #define COS_LOOKUP_SZ 128
22 static float COS_LOOKUP[COS_LOOKUP_SZ+1]={
23         +1.0000000000000f,+0.9996988186962f,+0.9987954562052f,+0.9972904566787f,
24         +0.9951847266722f,+0.9924795345987f,+0.9891765099648f,+0.9852776423889f,
25         +0.9807852804032f,+0.9757021300385f,+0.9700312531945f,+0.9637760657954f,
26         +0.9569403357322f,+0.9495281805930f,+0.9415440651830f,+0.9329927988347f,
27         +0.9238795325113f,+0.9142097557035f,+0.9039892931234f,+0.8932243011955f,
28         +0.8819212643484f,+0.8700869911087f,+0.8577286100003f,+0.8448535652497f,
29         +0.8314696123025f,+0.8175848131516f,+0.8032075314806f,+0.7883464276266f,
30         +0.7730104533627f,+0.7572088465065f,+0.7409511253550f,+0.7242470829515f,
31         +0.7071067811865f,+0.6895405447371f,+0.6715589548470f,+0.6531728429538f,
32         +0.6343932841636f,+0.6152315905806f,+0.5956993044924f,+0.5758081914178f,
33         +0.5555702330196f,+0.5349976198871f,+0.5141027441932f,+0.4928981922298f,
34         +0.4713967368260f,+0.4496113296546f,+0.4275550934303f,+0.4052413140050f,
35         +0.3826834323651f,+0.3598950365350f,+0.3368898533922f,+0.3136817403989f,
36         +0.2902846772545f,+0.2667127574749f,+0.2429801799033f,+0.2191012401569f,
37         +0.1950903220161f,+0.1709618887603f,+0.1467304744554f,+0.1224106751992f,
38         +0.0980171403296f,+0.0735645635997f,+0.0490676743274f,+0.0245412285229f,
39         +0.0000000000000f,-0.0245412285229f,-0.0490676743274f,-0.0735645635997f,
40         -0.0980171403296f,-0.1224106751992f,-0.1467304744554f,-0.1709618887603f,
41         -0.1950903220161f,-0.2191012401569f,-0.2429801799033f,-0.2667127574749f,
42         -0.2902846772545f,-0.3136817403989f,-0.3368898533922f,-0.3598950365350f,
43         -0.3826834323651f,-0.4052413140050f,-0.4275550934303f,-0.4496113296546f,
44         -0.4713967368260f,-0.4928981922298f,-0.5141027441932f,-0.5349976198871f,
45         -0.5555702330196f,-0.5758081914178f,-0.5956993044924f,-0.6152315905806f,
46         -0.6343932841636f,-0.6531728429538f,-0.6715589548470f,-0.6895405447371f,
47         -0.7071067811865f,-0.7242470829515f,-0.7409511253550f,-0.7572088465065f,
48         -0.7730104533627f,-0.7883464276266f,-0.8032075314806f,-0.8175848131516f,
49         -0.8314696123025f,-0.8448535652497f,-0.8577286100003f,-0.8700869911087f,
50         -0.8819212643484f,-0.8932243011955f,-0.9039892931234f,-0.9142097557035f,
51         -0.9238795325113f,-0.9329927988347f,-0.9415440651830f,-0.9495281805930f,
52         -0.9569403357322f,-0.9637760657954f,-0.9700312531945f,-0.9757021300385f,
53         -0.9807852804032f,-0.9852776423889f,-0.9891765099648f,-0.9924795345987f,
54         -0.9951847266722f,-0.9972904566787f,-0.9987954562052f,-0.9996988186962f,
55         -1.0000000000000f,
56 };
57
58 #define INVSQ_LOOKUP_SZ 32
59 static float INVSQ_LOOKUP[INVSQ_LOOKUP_SZ+1]={
60         1.414213562373f,1.392621247646f,1.371988681140f,1.352246807566f,
61         1.333333333333f,1.315191898443f,1.297771369046f,1.281025230441f,
62         1.264911064067f,1.249390095109f,1.234426799697f,1.219988562661f,
63         1.206045378311f,1.192569588000f,1.179535649239f,1.166919931983f,
64         1.154700538379f,1.142857142857f,1.131370849898f,1.120224067222f,
65         1.109400392450f,1.098884511590f,1.088662107904f,1.078719779941f,
66         1.069044967650f,1.059625885652f,1.050451462878f,1.041511287847f,
67         1.032795558989f,1.024295039463f,1.016001016002f,1.007905261358f,
68         1.000000000000f,
69 };
70
71 #define INVSQ2EXP_LOOKUP_MIN -32
72 #define INVSQ2EXP_LOOKUP_MAX 32
73 static float INVSQ2EXP_LOOKUP[INVSQ2EXP_LOOKUP_MAX-\
74                               INVSQ2EXP_LOOKUP_MIN+1]={
75                  65536.f,    46340.95001f,         32768.f,    23170.47501f,
76                  16384.f,     11585.2375f,          8192.f,    5792.618751f,
77                   4096.f,    2896.309376f,          2048.f,    1448.154688f,
78                   1024.f,    724.0773439f,           512.f,     362.038672f,
79                    256.f,     181.019336f,           128.f,    90.50966799f,
80                     64.f,      45.254834f,            32.f,      22.627417f,
81                     16.f,     11.3137085f,             8.f,    5.656854249f,
82                      4.f,    2.828427125f,             2.f,    1.414213562f,
83                      1.f,   0.7071067812f,            0.5f,   0.3535533906f,
84                    0.25f,   0.1767766953f,          0.125f,  0.08838834765f,
85                  0.0625f,  0.04419417382f,        0.03125f,  0.02209708691f,
86                0.015625f,  0.01104854346f,      0.0078125f, 0.005524271728f,
87              0.00390625f, 0.002762135864f,    0.001953125f, 0.001381067932f,
88            0.0009765625f, 0.000690533966f,  0.00048828125f, 0.000345266983f,
89          0.000244140625f,0.0001726334915f,0.0001220703125f,8.631674575e-05f,
90         6.103515625e-05f,4.315837288e-05f,3.051757812e-05f,2.157918644e-05f,
91         1.525878906e-05f,
92 };
93
94 #endif
95
96 #define FROMdB_LOOKUP_SZ 35
97 #define FROMdB2_LOOKUP_SZ 32
98 #define FROMdB_SHIFT 5
99 #define FROMdB2_SHIFT 3
100 #define FROMdB2_MASK 31
101 static float FROMdB_LOOKUP[FROMdB_LOOKUP_SZ]={
102                      1.f,   0.6309573445f,   0.3981071706f,   0.2511886432f,
103            0.1584893192f,            0.1f,  0.06309573445f,  0.03981071706f,
104           0.02511886432f,  0.01584893192f,           0.01f, 0.006309573445f,
105          0.003981071706f, 0.002511886432f, 0.001584893192f,          0.001f,
106         0.0006309573445f,0.0003981071706f,0.0002511886432f,0.0001584893192f,
107                  0.0001f,6.309573445e-05f,3.981071706e-05f,2.511886432e-05f,
108         1.584893192e-05f,          1e-05f,6.309573445e-06f,3.981071706e-06f,
109         2.511886432e-06f,1.584893192e-06f,          1e-06f,6.309573445e-07f,
110         3.981071706e-07f,2.511886432e-07f,1.584893192e-07f,
111 };
112
113 static float FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ]={
114            0.9928302478f,   0.9786445908f,   0.9646616199f,   0.9508784391f,
115            0.9372921937f,     0.92390007f,   0.9106992942f,   0.8976871324f,
116            0.8848608897f,   0.8722179097f,   0.8597555737f,   0.8474713009f,
117             0.835362547f,   0.8234268041f,   0.8116616003f,   0.8000644989f,
118            0.7886330981f,   0.7773650302f,   0.7662579617f,    0.755309592f,
119            0.7445176537f,   0.7338799116f,   0.7233941627f,   0.7130582353f,
120            0.7028699885f,   0.6928273125f,   0.6829281272f,   0.6731703824f,
121            0.6635520573f,   0.6540711597f,   0.6447257262f,   0.6355138211f,
122 };
123
124 #ifdef INT_LOOKUP
125
126 #define INVSQ_LOOKUP_I_SHIFT 10
127 #define INVSQ_LOOKUP_I_MASK 1023
128 static long INVSQ_LOOKUP_I[64+1]={
129            92682l,   91966l,   91267l,   90583l,
130            89915l,   89261l,   88621l,   87995l,
131            87381l,   86781l,   86192l,   85616l,
132            85051l,   84497l,   83953l,   83420l,
133            82897l,   82384l,   81880l,   81385l,
134            80899l,   80422l,   79953l,   79492l,
135            79039l,   78594l,   78156l,   77726l,
136            77302l,   76885l,   76475l,   76072l,
137            75674l,   75283l,   74898l,   74519l,
138            74146l,   73778l,   73415l,   73058l,
139            72706l,   72359l,   72016l,   71679l,
140            71347l,   71019l,   70695l,   70376l,
141            70061l,   69750l,   69444l,   69141l,
142            68842l,   68548l,   68256l,   67969l,
143            67685l,   67405l,   67128l,   66855l,
144            66585l,   66318l,   66054l,   65794l,
145            65536l,
146 };
147
148 #define COS_LOOKUP_I_SHIFT 9
149 #define COS_LOOKUP_I_MASK 511
150 #define COS_LOOKUP_I_SZ 128
151 static long COS_LOOKUP_I[COS_LOOKUP_I_SZ+1]={
152            16384l,   16379l,   16364l,   16340l,
153            16305l,   16261l,   16207l,   16143l,
154            16069l,   15986l,   15893l,   15791l,
155            15679l,   15557l,   15426l,   15286l,
156            15137l,   14978l,   14811l,   14635l,
157            14449l,   14256l,   14053l,   13842l,
158            13623l,   13395l,   13160l,   12916l,
159            12665l,   12406l,   12140l,   11866l,
160            11585l,   11297l,   11003l,   10702l,
161            10394l,   10080l,    9760l,    9434l,
162             9102l,    8765l,    8423l,    8076l,
163             7723l,    7366l,    7005l,    6639l,
164             6270l,    5897l,    5520l,    5139l,
165             4756l,    4370l,    3981l,    3590l,
166             3196l,    2801l,    2404l,    2006l,
167             1606l,    1205l,     804l,     402l,
168                0l,    -401l,    -803l,   -1204l,
169            -1605l,   -2005l,   -2403l,   -2800l,
170            -3195l,   -3589l,   -3980l,   -4369l,
171            -4755l,   -5138l,   -5519l,   -5896l,
172            -6269l,   -6638l,   -7004l,   -7365l,
173            -7722l,   -8075l,   -8422l,   -8764l,
174            -9101l,   -9433l,   -9759l,  -10079l,
175           -10393l,  -10701l,  -11002l,  -11296l,
176           -11584l,  -11865l,  -12139l,  -12405l,
177           -12664l,  -12915l,  -13159l,  -13394l,
178           -13622l,  -13841l,  -14052l,  -14255l,
179           -14448l,  -14634l,  -14810l,  -14977l,
180           -15136l,  -15285l,  -15425l,  -15556l,
181           -15678l,  -15790l,  -15892l,  -15985l,
182           -16068l,  -16142l,  -16206l,  -16260l,
183           -16304l,  -16339l,  -16363l,  -16378l,
184           -16383l,
185 };
186
187 #endif
188
189 #endif