1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun This is the program used to generate below table. 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <stdio.h> 6*4882a593Smuzhiyun #include <math.h> 7*4882a593Smuzhiyun int main() { 8*4882a593Smuzhiyun int dB2; 9*4882a593Smuzhiyun printf("/" "* This file is only included exactly once!\n"); 10*4882a593Smuzhiyun printf(" *\n"); 11*4882a593Smuzhiyun printf(" * If they'd only tell us that generating this table was\n"); 12*4882a593Smuzhiyun printf(" * as easy as calculating\n"); 13*4882a593Smuzhiyun printf(" * hwvalue = 1048576.0*exp(0.057564628*dB*2)\n"); 14*4882a593Smuzhiyun printf(" * :) *" "/\n"); 15*4882a593Smuzhiyun printf("static int tas_gaintable[] = {\n"); 16*4882a593Smuzhiyun printf(" 0x000000, /" "* -infinity dB *" "/\n"); 17*4882a593Smuzhiyun for (dB2=-140;dB2<=36;dB2++) 18*4882a593Smuzhiyun printf(" 0x%.6x, /" "* %-02.1f dB *" "/\n", (int)(1048576.0*exp(0.057564628*dB2)), dB2/2.0); 19*4882a593Smuzhiyun printf("};\n\n"); 20*4882a593Smuzhiyun } 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun */ 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun /* This file is only included exactly once! 25*4882a593Smuzhiyun * 26*4882a593Smuzhiyun * If they'd only tell us that generating this table was 27*4882a593Smuzhiyun * as easy as calculating 28*4882a593Smuzhiyun * hwvalue = 1048576.0*exp(0.057564628*dB*2) 29*4882a593Smuzhiyun * :) */ 30*4882a593Smuzhiyun static const int tas_gaintable[] = { 31*4882a593Smuzhiyun 0x000000, /* -infinity dB */ 32*4882a593Smuzhiyun 0x00014b, /* -70.0 dB */ 33*4882a593Smuzhiyun 0x00015f, /* -69.5 dB */ 34*4882a593Smuzhiyun 0x000174, /* -69.0 dB */ 35*4882a593Smuzhiyun 0x00018a, /* -68.5 dB */ 36*4882a593Smuzhiyun 0x0001a1, /* -68.0 dB */ 37*4882a593Smuzhiyun 0x0001ba, /* -67.5 dB */ 38*4882a593Smuzhiyun 0x0001d4, /* -67.0 dB */ 39*4882a593Smuzhiyun 0x0001f0, /* -66.5 dB */ 40*4882a593Smuzhiyun 0x00020d, /* -66.0 dB */ 41*4882a593Smuzhiyun 0x00022c, /* -65.5 dB */ 42*4882a593Smuzhiyun 0x00024d, /* -65.0 dB */ 43*4882a593Smuzhiyun 0x000270, /* -64.5 dB */ 44*4882a593Smuzhiyun 0x000295, /* -64.0 dB */ 45*4882a593Smuzhiyun 0x0002bc, /* -63.5 dB */ 46*4882a593Smuzhiyun 0x0002e6, /* -63.0 dB */ 47*4882a593Smuzhiyun 0x000312, /* -62.5 dB */ 48*4882a593Smuzhiyun 0x000340, /* -62.0 dB */ 49*4882a593Smuzhiyun 0x000372, /* -61.5 dB */ 50*4882a593Smuzhiyun 0x0003a6, /* -61.0 dB */ 51*4882a593Smuzhiyun 0x0003dd, /* -60.5 dB */ 52*4882a593Smuzhiyun 0x000418, /* -60.0 dB */ 53*4882a593Smuzhiyun 0x000456, /* -59.5 dB */ 54*4882a593Smuzhiyun 0x000498, /* -59.0 dB */ 55*4882a593Smuzhiyun 0x0004de, /* -58.5 dB */ 56*4882a593Smuzhiyun 0x000528, /* -58.0 dB */ 57*4882a593Smuzhiyun 0x000576, /* -57.5 dB */ 58*4882a593Smuzhiyun 0x0005c9, /* -57.0 dB */ 59*4882a593Smuzhiyun 0x000620, /* -56.5 dB */ 60*4882a593Smuzhiyun 0x00067d, /* -56.0 dB */ 61*4882a593Smuzhiyun 0x0006e0, /* -55.5 dB */ 62*4882a593Smuzhiyun 0x000748, /* -55.0 dB */ 63*4882a593Smuzhiyun 0x0007b7, /* -54.5 dB */ 64*4882a593Smuzhiyun 0x00082c, /* -54.0 dB */ 65*4882a593Smuzhiyun 0x0008a8, /* -53.5 dB */ 66*4882a593Smuzhiyun 0x00092b, /* -53.0 dB */ 67*4882a593Smuzhiyun 0x0009b6, /* -52.5 dB */ 68*4882a593Smuzhiyun 0x000a49, /* -52.0 dB */ 69*4882a593Smuzhiyun 0x000ae5, /* -51.5 dB */ 70*4882a593Smuzhiyun 0x000b8b, /* -51.0 dB */ 71*4882a593Smuzhiyun 0x000c3a, /* -50.5 dB */ 72*4882a593Smuzhiyun 0x000cf3, /* -50.0 dB */ 73*4882a593Smuzhiyun 0x000db8, /* -49.5 dB */ 74*4882a593Smuzhiyun 0x000e88, /* -49.0 dB */ 75*4882a593Smuzhiyun 0x000f64, /* -48.5 dB */ 76*4882a593Smuzhiyun 0x00104e, /* -48.0 dB */ 77*4882a593Smuzhiyun 0x001145, /* -47.5 dB */ 78*4882a593Smuzhiyun 0x00124b, /* -47.0 dB */ 79*4882a593Smuzhiyun 0x001361, /* -46.5 dB */ 80*4882a593Smuzhiyun 0x001487, /* -46.0 dB */ 81*4882a593Smuzhiyun 0x0015be, /* -45.5 dB */ 82*4882a593Smuzhiyun 0x001708, /* -45.0 dB */ 83*4882a593Smuzhiyun 0x001865, /* -44.5 dB */ 84*4882a593Smuzhiyun 0x0019d8, /* -44.0 dB */ 85*4882a593Smuzhiyun 0x001b60, /* -43.5 dB */ 86*4882a593Smuzhiyun 0x001cff, /* -43.0 dB */ 87*4882a593Smuzhiyun 0x001eb7, /* -42.5 dB */ 88*4882a593Smuzhiyun 0x002089, /* -42.0 dB */ 89*4882a593Smuzhiyun 0x002276, /* -41.5 dB */ 90*4882a593Smuzhiyun 0x002481, /* -41.0 dB */ 91*4882a593Smuzhiyun 0x0026ab, /* -40.5 dB */ 92*4882a593Smuzhiyun 0x0028f5, /* -40.0 dB */ 93*4882a593Smuzhiyun 0x002b63, /* -39.5 dB */ 94*4882a593Smuzhiyun 0x002df5, /* -39.0 dB */ 95*4882a593Smuzhiyun 0x0030ae, /* -38.5 dB */ 96*4882a593Smuzhiyun 0x003390, /* -38.0 dB */ 97*4882a593Smuzhiyun 0x00369e, /* -37.5 dB */ 98*4882a593Smuzhiyun 0x0039db, /* -37.0 dB */ 99*4882a593Smuzhiyun 0x003d49, /* -36.5 dB */ 100*4882a593Smuzhiyun 0x0040ea, /* -36.0 dB */ 101*4882a593Smuzhiyun 0x0044c3, /* -35.5 dB */ 102*4882a593Smuzhiyun 0x0048d6, /* -35.0 dB */ 103*4882a593Smuzhiyun 0x004d27, /* -34.5 dB */ 104*4882a593Smuzhiyun 0x0051b9, /* -34.0 dB */ 105*4882a593Smuzhiyun 0x005691, /* -33.5 dB */ 106*4882a593Smuzhiyun 0x005bb2, /* -33.0 dB */ 107*4882a593Smuzhiyun 0x006121, /* -32.5 dB */ 108*4882a593Smuzhiyun 0x0066e3, /* -32.0 dB */ 109*4882a593Smuzhiyun 0x006cfb, /* -31.5 dB */ 110*4882a593Smuzhiyun 0x007370, /* -31.0 dB */ 111*4882a593Smuzhiyun 0x007a48, /* -30.5 dB */ 112*4882a593Smuzhiyun 0x008186, /* -30.0 dB */ 113*4882a593Smuzhiyun 0x008933, /* -29.5 dB */ 114*4882a593Smuzhiyun 0x009154, /* -29.0 dB */ 115*4882a593Smuzhiyun 0x0099f1, /* -28.5 dB */ 116*4882a593Smuzhiyun 0x00a310, /* -28.0 dB */ 117*4882a593Smuzhiyun 0x00acba, /* -27.5 dB */ 118*4882a593Smuzhiyun 0x00b6f6, /* -27.0 dB */ 119*4882a593Smuzhiyun 0x00c1cd, /* -26.5 dB */ 120*4882a593Smuzhiyun 0x00cd49, /* -26.0 dB */ 121*4882a593Smuzhiyun 0x00d973, /* -25.5 dB */ 122*4882a593Smuzhiyun 0x00e655, /* -25.0 dB */ 123*4882a593Smuzhiyun 0x00f3fb, /* -24.5 dB */ 124*4882a593Smuzhiyun 0x010270, /* -24.0 dB */ 125*4882a593Smuzhiyun 0x0111c0, /* -23.5 dB */ 126*4882a593Smuzhiyun 0x0121f9, /* -23.0 dB */ 127*4882a593Smuzhiyun 0x013328, /* -22.5 dB */ 128*4882a593Smuzhiyun 0x01455b, /* -22.0 dB */ 129*4882a593Smuzhiyun 0x0158a2, /* -21.5 dB */ 130*4882a593Smuzhiyun 0x016d0e, /* -21.0 dB */ 131*4882a593Smuzhiyun 0x0182af, /* -20.5 dB */ 132*4882a593Smuzhiyun 0x019999, /* -20.0 dB */ 133*4882a593Smuzhiyun 0x01b1de, /* -19.5 dB */ 134*4882a593Smuzhiyun 0x01cb94, /* -19.0 dB */ 135*4882a593Smuzhiyun 0x01e6cf, /* -18.5 dB */ 136*4882a593Smuzhiyun 0x0203a7, /* -18.0 dB */ 137*4882a593Smuzhiyun 0x022235, /* -17.5 dB */ 138*4882a593Smuzhiyun 0x024293, /* -17.0 dB */ 139*4882a593Smuzhiyun 0x0264db, /* -16.5 dB */ 140*4882a593Smuzhiyun 0x02892c, /* -16.0 dB */ 141*4882a593Smuzhiyun 0x02afa3, /* -15.5 dB */ 142*4882a593Smuzhiyun 0x02d862, /* -15.0 dB */ 143*4882a593Smuzhiyun 0x03038a, /* -14.5 dB */ 144*4882a593Smuzhiyun 0x033142, /* -14.0 dB */ 145*4882a593Smuzhiyun 0x0361af, /* -13.5 dB */ 146*4882a593Smuzhiyun 0x0394fa, /* -13.0 dB */ 147*4882a593Smuzhiyun 0x03cb50, /* -12.5 dB */ 148*4882a593Smuzhiyun 0x0404de, /* -12.0 dB */ 149*4882a593Smuzhiyun 0x0441d5, /* -11.5 dB */ 150*4882a593Smuzhiyun 0x048268, /* -11.0 dB */ 151*4882a593Smuzhiyun 0x04c6d0, /* -10.5 dB */ 152*4882a593Smuzhiyun 0x050f44, /* -10.0 dB */ 153*4882a593Smuzhiyun 0x055c04, /* -9.5 dB */ 154*4882a593Smuzhiyun 0x05ad50, /* -9.0 dB */ 155*4882a593Smuzhiyun 0x06036e, /* -8.5 dB */ 156*4882a593Smuzhiyun 0x065ea5, /* -8.0 dB */ 157*4882a593Smuzhiyun 0x06bf44, /* -7.5 dB */ 158*4882a593Smuzhiyun 0x07259d, /* -7.0 dB */ 159*4882a593Smuzhiyun 0x079207, /* -6.5 dB */ 160*4882a593Smuzhiyun 0x0804dc, /* -6.0 dB */ 161*4882a593Smuzhiyun 0x087e80, /* -5.5 dB */ 162*4882a593Smuzhiyun 0x08ff59, /* -5.0 dB */ 163*4882a593Smuzhiyun 0x0987d5, /* -4.5 dB */ 164*4882a593Smuzhiyun 0x0a1866, /* -4.0 dB */ 165*4882a593Smuzhiyun 0x0ab189, /* -3.5 dB */ 166*4882a593Smuzhiyun 0x0b53be, /* -3.0 dB */ 167*4882a593Smuzhiyun 0x0bff91, /* -2.5 dB */ 168*4882a593Smuzhiyun 0x0cb591, /* -2.0 dB */ 169*4882a593Smuzhiyun 0x0d765a, /* -1.5 dB */ 170*4882a593Smuzhiyun 0x0e4290, /* -1.0 dB */ 171*4882a593Smuzhiyun 0x0f1adf, /* -0.5 dB */ 172*4882a593Smuzhiyun 0x100000, /* 0.0 dB */ 173*4882a593Smuzhiyun 0x10f2b4, /* 0.5 dB */ 174*4882a593Smuzhiyun 0x11f3c9, /* 1.0 dB */ 175*4882a593Smuzhiyun 0x13041a, /* 1.5 dB */ 176*4882a593Smuzhiyun 0x14248e, /* 2.0 dB */ 177*4882a593Smuzhiyun 0x15561a, /* 2.5 dB */ 178*4882a593Smuzhiyun 0x1699c0, /* 3.0 dB */ 179*4882a593Smuzhiyun 0x17f094, /* 3.5 dB */ 180*4882a593Smuzhiyun 0x195bb8, /* 4.0 dB */ 181*4882a593Smuzhiyun 0x1adc61, /* 4.5 dB */ 182*4882a593Smuzhiyun 0x1c73d5, /* 5.0 dB */ 183*4882a593Smuzhiyun 0x1e236d, /* 5.5 dB */ 184*4882a593Smuzhiyun 0x1fec98, /* 6.0 dB */ 185*4882a593Smuzhiyun 0x21d0d9, /* 6.5 dB */ 186*4882a593Smuzhiyun 0x23d1cd, /* 7.0 dB */ 187*4882a593Smuzhiyun 0x25f125, /* 7.5 dB */ 188*4882a593Smuzhiyun 0x2830af, /* 8.0 dB */ 189*4882a593Smuzhiyun 0x2a9254, /* 8.5 dB */ 190*4882a593Smuzhiyun 0x2d1818, /* 9.0 dB */ 191*4882a593Smuzhiyun 0x2fc420, /* 9.5 dB */ 192*4882a593Smuzhiyun 0x3298b0, /* 10.0 dB */ 193*4882a593Smuzhiyun 0x35982f, /* 10.5 dB */ 194*4882a593Smuzhiyun 0x38c528, /* 11.0 dB */ 195*4882a593Smuzhiyun 0x3c224c, /* 11.5 dB */ 196*4882a593Smuzhiyun 0x3fb278, /* 12.0 dB */ 197*4882a593Smuzhiyun 0x4378b0, /* 12.5 dB */ 198*4882a593Smuzhiyun 0x477829, /* 13.0 dB */ 199*4882a593Smuzhiyun 0x4bb446, /* 13.5 dB */ 200*4882a593Smuzhiyun 0x5030a1, /* 14.0 dB */ 201*4882a593Smuzhiyun 0x54f106, /* 14.5 dB */ 202*4882a593Smuzhiyun 0x59f980, /* 15.0 dB */ 203*4882a593Smuzhiyun 0x5f4e52, /* 15.5 dB */ 204*4882a593Smuzhiyun 0x64f403, /* 16.0 dB */ 205*4882a593Smuzhiyun 0x6aef5e, /* 16.5 dB */ 206*4882a593Smuzhiyun 0x714575, /* 17.0 dB */ 207*4882a593Smuzhiyun 0x77fbaa, /* 17.5 dB */ 208*4882a593Smuzhiyun 0x7f17af, /* 18.0 dB */ 209*4882a593Smuzhiyun }; 210*4882a593Smuzhiyun 211