Home | History | Annotate | Download | only in lib
      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
     22 static 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
     59 static 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
     73 static 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
    103 static 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 
    115 static 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
    131 static 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
    154 static 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