1 /********************************************************************
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. *
8 * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
9 * by the XIPHOPHORUS Company http://www.xiph.org/ *
11 ********************************************************************
13 function: lookup data; generated by lookups.pl; edit there
14 last mod: $Id: lookup_data.h,v 1.10 2003/01/18 08:09:28 msmith Exp $
16 ********************************************************************/
18 #ifndef _V_LOOKUP_DATA_H_
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,
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,
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,
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,
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,
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,
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,