// Copyright (c) 1998 Microsoft Corporation // curve.h #ifndef __CURVE_H_ #define __CURVE_H_ #define CT_MAX 192 // curve table maximum #define CT_FACTOR 100 // curve table multiplication factor #define CT_DIVFACTOR ( ( CT_MAX ) * CT_FACTOR ) // curve division factor // linear curves static short ganCT_Linear[CT_MAX + 1] = { 0,100,200,300,400,500,600,700, 800,900,1000,1100,1200,1300,1400,1500, 1600,1700,1800,1900,2000,2100,2200,2300, 2400,2500,2600,2700,2800,2900,3000,3100, 3200,3300,3400,3500,3600,3700,3800,3900, 4000,4100,4200,4300,4400,4500,4600,4700, 4800,4900,5000,5100,5200,5300,5400,5500, 5600,5700,5800,5900,6000,6100,6200,6300, 6400,6500,6600,6700,6800,6900,7000,7100, 7200,7300,7400,7500,7600,7700,7800,7900, 8000,8100,8200,8300,8400,8500,8600,8700, 8800,8900,9000,9100,9200,9300,9400,9500, 9600,9700,9800,9900,10000,10100,10200,10300, 10400,10500,10600,10700,10800,10900,11000,11100, 11200,11300,11400,11500,11600,11700,11800,11900, 12000,12100,12200,12300,12400,12500,12600,12700, 12800,12900,13000,13100,13200,13300,13400,13500, 13600,13700,13800,13900,14000,14100,14200,14300, 14400,14500,14600,14700,14800,14900,15000,15100, 15200,15300,15400,15500,15600,15700,15800,15900, 16000,16100,16200,16300,16400,16500,16600,16700, 16800,16900,17000,17100,17200,17300,17400,17500, 17600,17700,17800,17900,18000,18100,18200,18300, 18400,18500,18600,18700,18800,18900,19000,19100,19200 }; // sine curves static short ganCT_Sine[CT_MAX + 1] = { 0,1,5,11,20,32,46,62, 82,103,128,155,184,216,250,287, 327,369,413,460,509,561,615,671, 730,792,855,921,990,1060,1133,1208, 1286,1365,1447,1531,1617,1706,1796,1889, 1983,2080,2179,2279,2382,2486,2593,2701, 2811,2923,3037,3153,3270,3389,3509,3632, 3755,3881,4008,4136,4266,4397,4530,4664, 4799,4936,5074,5213,5354,5495,5638,5781, 5926,6071,6218,6365,6514,6663,6813,6963, 7115,7267,7420,7573,7727,7881,8036,8191, 8346,8502,8659,8815,8972,9128,9285,9442, 9600,9757,9914,10071,10227,10384,10540,10697, 10853,11008,11163,11318,11472,11626,11779,11932, 12084,12236,12386,12536,12685,12834,12981,13128, 13273,13418,13561,13704,13845,13986,14125,14263, 14399,14535,14669,14802,14933,15063,15191,15318, 15444,15567,15690,15810,15929,16046,16162,16276, 16388,16498,16606,16713,16817,16920,17020,17119, 17216,17310,17403,17493,17582,17668,17752,17834, 17913,17991,18066,18139,18209,18278,18344,18407, 18469,18528,18584,18638,18690,18739,18786,18830, 18872,18912,18949,18983,19015,19044,19071,19096, 19117,19137,19153,19167,19179,19188,19194,19198,19200 }; // log curve static short ganCT_Log[CT_MAX + 1] = { 0,381,747,1097,1432,1755,2066,2366, 2655,2934,3205,3467,3721,3967,4207,4439, 4666,4886,5101,5310,5515,5714,5909,6099, 6285,6467,6645,6819,6990,7157,7321,7482, 7640,7795,7947,8096,8243,8387,8529,8668, 8805,8940,9073,9204,9332,9459,9584,9707, 9828,9947,10065,10181,10295,10408,10520,10630, 10738,10845,10951,11056,11159,11261,11361,11461, 11559,11656,11752,11847,11941,12034,12126,12216, 12306,12395,12483,12570,12656,12741,12826,12909, 12992,13074,13155,13235,13315,13394,13472,13549, 13626,13702,13777,13851,13925,13998,14071,14143, 14214,14285,14355,14425,14494,14562,14630,14698, 14764,14831,14896,14962,15026,15091,15154,15218, 15280,15343,15405,15466,15527,15587,15647,15707, 15766,15825,15883,15941,15999,16056,16113,16169, 16225,16281,16336,16391,16446,16500,16554,16607, 16661,16713,16766,16818,16870,16921,16973,17024, 17074,17124,17174,17224,17273,17323,17371,17420, 17468,17516,17564,17611,17658,17705,17752,17798, 17844,17890,17936,17981,18026,18071,18116,18160, 18204,18248,18292,18335,18379,18422,18464,18507, 18549,18592,18634,18675,18717,18758,18799,18840, 18881,18921,18962,19002,19042,19081,19121,19160,19200 }; // exponential curve static short ganCT_Exp[CT_MAX + 1] = { 0,40,79,119,158,198,238,279, 319,360,401,442,483,525,566,608, 651,693,736,778,821,865,908,952, 996,1040,1084,1129,1174,1219,1264,1310, 1356,1402,1448,1495,1542,1589,1636,1684, 1732,1780,1829,1877,1927,1976,2026,2076, 2126,2176,2227,2279,2330,2382,2434,2487, 2539,2593,2646,2700,2754,2809,2864,2919, 2975,3031,3087,3144,3201,3259,3317,3375, 3434,3493,3553,3613,3673,3734,3795,3857, 3920,3982,4046,4109,4174,4238,4304,4369, 4436,4502,4570,4638,4706,4775,4845,4915, 4986,5057,5129,5202,5275,5349,5423,5498, 5574,5651,5728,5806,5885,5965,6045,6126, 6208,6291,6374,6459,6544,6630,6717,6805, 6894,6984,7074,7166,7259,7353,7448,7544, 7641,7739,7839,7939,8041,8144,8249,8355, 8462,8570,8680,8792,8905,9019,9135,9253, 9372,9493,9616,9741,9868,9996,10127,10260, 10395,10532,10671,10813,10957,11104,11253,11405, 11560,11718,11879,12043,12210,12381,12555,12733, 12915,13101,13291,13486,13685,13890,14099,14314, 14534,14761,14993,15233,15479,15733,15995,16266, 16545,16834,17134,17445,17768,18103,18453,18819,19200 }; #endif // __CURVE_H_