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