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-2007             *
9 * by the Xiph.Org Foundation http://www.xiph.org/                  *
10 *                                                                  *
11 ********************************************************************
12
13  function: lookup data; generated by lookups.pl; edit there
14  last mod: $Id: lookup_data.h 16037 2009-05-26 21:10:58Z xiphmont $
15
16 ********************************************************************/
17
18#ifndef _V_LOOKUP_DATA_H_
19
20#ifdef FLOAT_LOOKUP
21#define COS_LOOKUP_SZ 128
22static const 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
59static const 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
73static const 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
102#ifdef FLOAT_LOOKUP
103static const float FROMdB_LOOKUP[FROMdB_LOOKUP_SZ]={
104                     1.f,   0.6309573445f,   0.3981071706f,   0.2511886432f,
105           0.1584893192f,            0.1f,  0.06309573445f,  0.03981071706f,
106          0.02511886432f,  0.01584893192f,           0.01f, 0.006309573445f,
107         0.003981071706f, 0.002511886432f, 0.001584893192f,          0.001f,
108        0.0006309573445f,0.0003981071706f,0.0002511886432f,0.0001584893192f,
109                 0.0001f,6.309573445e-05f,3.981071706e-05f,2.511886432e-05f,
110        1.584893192e-05f,          1e-05f,6.309573445e-06f,3.981071706e-06f,
111        2.511886432e-06f,1.584893192e-06f,          1e-06f,6.309573445e-07f,
112        3.981071706e-07f,2.511886432e-07f,1.584893192e-07f,
113};
114
115static const float FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ]={
116           0.9928302478f,   0.9786445908f,   0.9646616199f,   0.9508784391f,
117           0.9372921937f,     0.92390007f,   0.9106992942f,   0.8976871324f,
118           0.8848608897f,   0.8722179097f,   0.8597555737f,   0.8474713009f,
119            0.835362547f,   0.8234268041f,   0.8116616003f,   0.8000644989f,
120           0.7886330981f,   0.7773650302f,   0.7662579617f,    0.755309592f,
121           0.7445176537f,   0.7338799116f,   0.7233941627f,   0.7130582353f,
122           0.7028699885f,   0.6928273125f,   0.6829281272f,   0.6731703824f,
123           0.6635520573f,   0.6540711597f,   0.6447257262f,   0.6355138211f,
124};
125#endif
126
127#ifdef INT_LOOKUP
128
129#define INVSQ_LOOKUP_I_SHIFT 10
130#define INVSQ_LOOKUP_I_MASK 1023
131static const long INVSQ_LOOKUP_I[64+1]={
132           92682l,   91966l,   91267l,   90583l,
133           89915l,   89261l,   88621l,   87995l,
134           87381l,   86781l,   86192l,   85616l,
135           85051l,   84497l,   83953l,   83420l,
136           82897l,   82384l,   81880l,   81385l,
137           80899l,   80422l,   79953l,   79492l,
138           79039l,   78594l,   78156l,   77726l,
139           77302l,   76885l,   76475l,   76072l,
140           75674l,   75283l,   74898l,   74519l,
141           74146l,   73778l,   73415l,   73058l,
142           72706l,   72359l,   72016l,   71679l,
143           71347l,   71019l,   70695l,   70376l,
144           70061l,   69750l,   69444l,   69141l,
145           68842l,   68548l,   68256l,   67969l,
146           67685l,   67405l,   67128l,   66855l,
147           66585l,   66318l,   66054l,   65794l,
148           65536l,
149};
150
151#define COS_LOOKUP_I_SHIFT 9
152#define COS_LOOKUP_I_MASK 511
153#define COS_LOOKUP_I_SZ 128
154static const long COS_LOOKUP_I[COS_LOOKUP_I_SZ+1]={
155           16384l,   16379l,   16364l,   16340l,
156           16305l,   16261l,   16207l,   16143l,
157           16069l,   15986l,   15893l,   15791l,
158           15679l,   15557l,   15426l,   15286l,
159           15137l,   14978l,   14811l,   14635l,
160           14449l,   14256l,   14053l,   13842l,
161           13623l,   13395l,   13160l,   12916l,
162           12665l,   12406l,   12140l,   11866l,
163           11585l,   11297l,   11003l,   10702l,
164           10394l,   10080l,    9760l,    9434l,
165            9102l,    8765l,    8423l,    8076l,
166            7723l,    7366l,    7005l,    6639l,
167            6270l,    5897l,    5520l,    5139l,
168            4756l,    4370l,    3981l,    3590l,
169            3196l,    2801l,    2404l,    2006l,
170            1606l,    1205l,     804l,     402l,
171               0l,    -401l,    -803l,   -1204l,
172           -1605l,   -2005l,   -2403l,   -2800l,
173           -3195l,   -3589l,   -3980l,   -4369l,
174           -4755l,   -5138l,   -5519l,   -5896l,
175           -6269l,   -6638l,   -7004l,   -7365l,
176           -7722l,   -8075l,   -8422l,   -8764l,
177           -9101l,   -9433l,   -9759l,  -10079l,
178          -10393l,  -10701l,  -11002l,  -11296l,
179          -11584l,  -11865l,  -12139l,  -12405l,
180          -12664l,  -12915l,  -13159l,  -13394l,
181          -13622l,  -13841l,  -14052l,  -14255l,
182          -14448l,  -14634l,  -14810l,  -14977l,
183          -15136l,  -15285l,  -15425l,  -15556l,
184          -15678l,  -15790l,  -15892l,  -15985l,
185          -16068l,  -16142l,  -16206l,  -16260l,
186          -16304l,  -16339l,  -16363l,  -16378l,
187          -16383l,
188};
189
190#endif
191
192#endif
193