diff --git a/Images/after_modify.png b/Images/after_modify.png new file mode 100644 index 0000000000000000000000000000000000000000..04650aa8237c77d8368f0ae777737b69e6fc637f Binary files /dev/null and b/Images/after_modify.png differ diff --git a/Images/before_modify.png b/Images/before_modify.png new file mode 100644 index 0000000000000000000000000000000000000000..8f44fe6b8a39944373b8f4142886d9cb1c73a102 Binary files /dev/null and b/Images/before_modify.png differ diff --git a/fx_project/gmon.out b/fx_project/gmon.out deleted file mode 100644 index 7adc55fbe4cbb98be3745b78db77ec432943e56d..0000000000000000000000000000000000000000 Binary files a/fx_project/gmon.out and /dev/null differ diff --git a/fx_project/vgeMath.c b/fx_project/vgeMath.c deleted file mode 100644 index e3719bb2b3d136b16e3bb1285386966a57a42f0d..0000000000000000000000000000000000000000 --- a/fx_project/vgeMath.c +++ /dev/null @@ -1,339 +0,0 @@ -// Programmed and Modified by HyunChan Sung@HUONE 2005.9.13 -// V3 add Inverse sqrt by JYY -// V4 Modify by HYL -#include "vgePipeline.h" - -#if defined(__FX32__) - -// sin table -const fixed32 fx32_SinTable[92] = - { - 0,1143,2287,3429,4571,5711,6850,7986,9120,10252,11380,12504,13625,14742,15854,16961,18064,19160,20251,21336,22414,23486,24550,25606,26655, 27696,28729,29752, - 30767,31772,32768,33753,34728,35693,36647,37589,38521,39440,40347,41243,42125,42995,43852,44695,45525,46340,47142, 47929,48702,49460,50203,50931,51643,52339, - 53019,53683,54331,54963,55577,56175,56755,57319,57864,58393,58903,59395,59870,60326,60763, 61183,61583,61965,62328,62672,62997,63302,63589,63856,64103,64331, - 64540,64729,64898,65047,65176,65286,65376,65446,65496,65526,65536,65526 - }; - -// ##090624 YJY## Table of Sqrt(fx/1024) * 8 -// Remove by HYL v4 #if defined(__ALEXVG_NO_64DIV__) -// Modified by HYL v4, (a) Add [1024] value (b) New Calculation because of Numerical Error Refer AlexMath.xls -int sqrt_lut[1025] = {0x00000001,0x01000000,0x016A09E6,0x01BB67AE,0x02000000,0x023C6EF3,0x027311C2,0x02A54FF5,0x02D413CC,0x03000000,0x03298B07,0x03510E52,0x0376CF5D,0x039B0568,0x03BDDD42,0x03DF7BD6,0x04000000,0x041F83D9,0x043E1DB3,0x045BE0CD,0x0478DDE6,0x049523AE, -0x04B0BF16,0x04CBBB9D,0x04E62385,0x05000000,0x05195957,0x0532370B,0x054A9FEA,0x05629A29,0x057A2B74,0x05915901,0x05A82799,0x05BE9BA8,0x05D4B943,0x05EA8434,0x06000000,0x06152FEC,0x062A1709,0x063EB830,0x0653160E,0x06673326,0x067B11D2,0x068EB44A,0x06A21CA4,0x06B54CDA, -0x06C846C7,0x06DB0C2E,0x06ED9EBA,0x07000000,0x07123180,0x072434A7,0x07360AD1,0x0747B548,0x07593547,0x076A8BFB,0x077BBA84,0x078CC1F3,0x079DA34E,0x07AE5F91,0x07BEF7AC,0x07CF6C85,0x07DFBEFA,0x07EFEFDF,0x08000000,0x080FF01F,0x081FC0FB,0x082F7347,0x083F07B3,0x084E7EE6, -0x085DD983,0x086D1826,0x087C3B66,0x088B43D4,0x089A31FD,0x08A90668,0x08B7C19A,0x08C66410,0x08D4EE47,0x08E360B5,0x08F1BBCD,0x09000000,0x090E2DB8,0x091C4560,0x092A475C,0x09383410,0x09460BDC,0x0953CF1D,0x09617E2C,0x096F1963,0x097CA116,0x098A1598,0x0997773A,0x09A4C64B, -0x09B20318,0x09BF2DEA,0x09CC470A,0x09D94EBE,0x09E6454C,0x09F32AF7,0x0A000000,0x0A0CC4A6,0x0A197927,0x0A261DC1,0x0A32B2AF,0x0A3F382A,0x0A4BAE6A,0x0A5815A7,0x0A646E17,0x0A70B7ED,0x0A7CF35D,0x0A89209A,0x0A953FD4,0x0AA1513C,0x0AAD5500,0x0AB94B4D,0x0AC53452,0x0AD11039, -0x0ADCDF2E,0x0AE8A15B,0x0AF456E9,0x0B000000,0x0B0B9CC7,0x0B172D66,0x0B22B202,0x0B2E2AC1,0x0B3997C6,0x0B44F936,0x0B504F33,0x0B5B99DF,0x0B66D95D,0x0B720DCD,0x0B7D3750,0x0B885605,0x0B936A0C,0x0B9E7382,0x0BA97286,0x0BB46736,0x0BBF51AE,0x0BCA320B,0x0BD50868,0x0BDFD4E2, -0x0BEA9792,0x0BF55093,0x0C000000,0x0C0AA5F1,0x0C154280,0x0C1FD5C5,0x0C2A5FD9,0x0C34E0D4,0x0C3F58CC,0x0C49C7D9,0x0C542E12,0x0C5E8B8D,0x0C68E05F,0x0C732C9E,0x0C7D7060,0x0C87ABB9,0x0C91DEBF,0x0C9C0984,0x0CA62C1D,0x0CB0469E,0x0CBA5919,0x0CC463A2,0x0CCE664C,0x0CD86129, -0x0CE2544B,0x0CEC3FC3,0x0CF623A5,0x0D000000,0x0D09D4E5,0x0D13A267,0x0D1D6895,0x0D27277F,0x0D30DF36,0x0D3A8FCA,0x0D443949,0x0D4DDBC5,0x0D57774B,0x0D610BEB,0x0D6A99B4,0x0D7420B4,0x0D7DA0FA,0x0D871A93,0x0D908D8E,0x0D99F9F8,0x0DA35FE0,0x0DACBF52,0x0DB6185C,0x0DBF6B0A, -0x0DC8B76B,0x0DD1FD8A,0x0DDB3D74,0x0DE47735,0x0DEDAADA,0x0DF6D86F,0x0E000000,0x0E092197,0x0E123D42,0x0E1B530C,0x0E246300,0x0E2D6D28,0x0E367191,0x0E3F7045,0x0E48694E,0x0E515CB8,0x0E5A4A8D,0x0E6332D8,0x0E6C15A2,0x0E74F2F6,0x0E7DCADD,0x0E869D63,0x0E8F6A90,0x0E98326E, -0x0EA0F507,0x0EA9B264,0x0EB26A8F,0x0EBB1D90,0x0EC3CB71,0x0ECC743B,0x0ED517F7,0x0EDDB6AE,0x0EE65068,0x0EEEE52E,0x0EF77508,0x0F000000,0x0F08861C,0x0F110766,0x0F1983E6,0x0F21FBA3,0x0F2A6EA6,0x0F32DCF6,0x0F3B469C,0x0F43AB9F,0x0F4C0C07,0x0F5467DB,0x0F5CBF22,0x0F6511E5, -0x0F6D602A,0x0F75A9F9,0x0F7DEF58,0x0F863050,0x0F8E6CE6,0x0F96A522,0x0F9ED90B,0x0FA708A8,0x0FAF33FE,0x0FB75B16,0x0FBF7DF5,0x0FC79CA3,0x0FCFB724,0x0FD7CD81,0x0FDFDFBF,0x0FE7EDE4,0x0FEFF7F7,0x0FF7FDFE,0x10000000,0x1007FE00,0x100FF807,0x1017EE1A,0x101FE03F,0x1027CE7B, -0x102FB8D4,0x10379F51,0x103F81F6,0x104760C9,0x104F3BD0,0x10571310,0x105EE68E,0x1066B651,0x106E825D,0x10764AB8,0x107E0F66,0x1085D06E,0x108D8DD3,0x1095479C,0x109CFDCD,0x10A4B06B,0x10AC5F7C,0x10B40B04,0x10BBB307,0x10C3578C,0x10CAF896,0x10D2962A,0x10DA304D,0x10E1C704, -0x10E95A53,0x10F0EA3F,0x10F876CC,0x11000000,0x110785DD,0x110F0869,0x111687A8,0x111E039F,0x11257C51,0x112CF1C3,0x113463FA,0x113BD2F9,0x11433EC4,0x114AA760,0x11520CD1,0x11596F1A,0x1160CE41,0x11682A48,0x116F8334,0x1176D909,0x117E2BCA,0x11857B7B,0x118CC821,0x119411BF, -0x119B5859,0x11A29BF2,0x11A9DC8F,0x11B11A32,0x11B854E0,0x11BF8C9D,0x11C6C16B,0x11CDF34E,0x11D5224A,0x11DC4E63,0x11E3779B,0x11EA9DF7,0x11F1C179,0x11F8E226,0x12000000,0x12071B0A,0x120E3349,0x121548BF,0x121C5B70,0x12236B5F,0x122A788F,0x12318304,0x12388AC0,0x123F8FC6, -0x1246921A,0x124D91BF,0x12548EB9,0x125B8909,0x126280B3,0x126975BA,0x12706821,0x127757EB,0x127E451B,0x12852FB4,0x128C17B9,0x1292FD2C,0x1299E011,0x12A0C06A,0x12A79E3A,0x12AE7984,0x12B5524A,0x12BC2891,0x12C2FC59,0x12C9CDA6,0x12D09C7B,0x12D768DA,0x12DE32C6,0x12E4FA41, -0x12EBBF4F,0x12F281F2,0x12F9422C,0x13000000,0x1306BB70,0x130D747F,0x13142B30,0x131ADF85,0x13219181,0x13284125,0x132EEE75,0x13359973,0x133C4221,0x1342E881,0x13498C97,0x13502E64,0x1356CDEB,0x135D6B2E,0x13640630,0x136A9EF2,0x13713577,0x1377C9C2,0x137E5BD4,0x1384EBAF, -0x138B7957,0x139204CD,0x13988E14,0x139F152D,0x13A59A1A,0x13AC1CDF,0x13B29D7D,0x13B91BF6,0x13BF984C,0x13C61282,0x13CC8A99,0x13D30094,0x13D97474,0x13DFE63D,0x13E655EE,0x13ECC38C,0x13F32F17,0x13F99893,0x14000000,0x14066560,0x140CC8B6,0x14132A04,0x1419894C,0x141FE68F, -0x142641CF,0x142C9B0E,0x1432F24F,0x14394793,0x143F9ADC,0x1445EC2B,0x144C3B83,0x145288E6,0x1458D455,0x145F1DD2,0x1465655F,0x146BAAFD,0x1471EEAF,0x14783076,0x147E7054,0x1484AE4B,0x148AEA5C,0x1491248A,0x14975CD5,0x149D9340,0x14A3C7CC,0x14A9FA7B,0x14B02B4F,0x14B65A49, -0x14BC876B,0x14C2B2B7,0x14C8DC2E,0x14CF03D2,0x14D529A4,0x14DB4DA6,0x14E16FDA,0x14E79042,0x14EDAEDE,0x14F3CBB1,0x14F9E6BB,0x15000000,0x1506177F,0x150C2D3B,0x15124135,0x1518536F,0x151E63EA,0x152472A7,0x152A7FA9,0x15308AF1,0x15369480,0x153C9C57,0x1542A278,0x1548A6E5, -0x154EA99F,0x1554AAA7,0x155AAA00,0x1560A7A9,0x1566A3A5,0x156C9DF5,0x1572969B,0x15788D98,0x157E82EC,0x1584769B,0x158A68A4,0x1590590A,0x159647CD,0x159C34F0,0x15A22073,0x15A80A57,0x15ADF29F,0x15B3D94B,0x15B9BE5D,0x15BFA1D6,0x15C583B6,0x15CB6401,0x15D142B6,0x15D71FD8, -0x15DCFB67,0x15E2D564,0x15E8ADD2,0x15EE84B0,0x15F45A01,0x15FA2DC6,0x16000000,0x1605D0AF,0x160B9FD6,0x16116D75,0x1617398F,0x161D0423,0x1622CD33,0x162894C1,0x162E5ACD,0x16341F58,0x1639E265,0x163FA3F3,0x16456405,0x164B229B,0x1650DFB6,0x16569B58,0x165C5582,0x16620E35, -0x1667C571,0x166D7B39,0x16732F8D,0x1678E26E,0x167E93DD,0x168443DC,0x1689F26C,0x168F9F8D,0x16954B41,0x169AF589,0x16A09E66,0x16A645D9,0x16ABEBE3,0x16B19084,0x16B733BF,0x16BCD594,0x16C27605,0x16C81511,0x16CDB2BB,0x16D34F03,0x16D8E9EB,0x16DE8372,0x16E41B9B,0x16E9B267, -0x16EF47D6,0x16F4DBE9,0x16FA6EA1,0x17000000,0x17059005,0x170B1EB4,0x1710AC0B,0x1716380C,0x171BC2B9,0x17214C12,0x1726D418,0x172C5ACC,0x1731E02E,0x17376441,0x173CE704,0x1742687A,0x1747E8A2,0x174D677D,0x1752E50D,0x17586153,0x175DDC4E,0x17635602,0x1768CE6D,0x176E4591, -0x1773BB6F,0x17793008,0x177EA35D,0x1784156E,0x1789863D,0x178EF5CA,0x17946416,0x1799D123,0x179F3CF0,0x17A4A77F,0x17AA10D1,0x17AF78E6,0x17B4DFC0,0x17BA455F,0x17BFA9C4,0x17C50CEF,0x17CA6EE3,0x17CFCF9F,0x17D52F24,0x17DA8D73,0x17DFEA8E,0x17E54674,0x17EAA126,0x17EFFAA7, -0x17F552F5,0x17FAAA12,0x18000000,0x180554BD,0x180AA84C,0x180FFAAE,0x18154BE2,0x181A9BEA,0x181FEAC6,0x18253878,0x182A8500,0x182FD05F,0x18351A95,0x183A63A3,0x183FAB8B,0x1844F24C,0x184A37E8,0x184F7C60,0x1854BFB3,0x185A01E3,0x185F42F1,0x186482DD,0x1869C1A8,0x186EFF53, -0x18743BDE,0x1879774A,0x187EB199,0x1883EAC9,0x188922DE,0x188E59D6,0x18938FB3,0x1898C475,0x189DF81E,0x18A32AAD,0x18A85C24,0x18AD8C84,0x18B2BBCC,0x18B7E9FE,0x18BD171A,0x18C24321,0x18C76E13,0x18CC97F2,0x18D1C0BE,0x18D6E878,0x18DC0F20,0x18E134B6,0x18E6593D,0x18EB7CB4, -0x18F09F1C,0x18F5C075,0x18FAE0C1,0x19000000,0x19051E32,0x190A3B58,0x190F5773,0x19147284,0x19198C8B,0x191EA589,0x1923BD7E,0x1928D46B,0x192DEA50,0x1932FF2F,0x19381308,0x193D25DB,0x194237AA,0x19474874,0x194C583A,0x195166FE,0x195674BF,0x195B817E,0x19608D3C,0x196597F9, -0x196AA1B6,0x196FAA74,0x1974B233,0x1979B8F3,0x197EBEB6,0x1983C37C,0x1988C745,0x198DCA13,0x1992CBE5,0x1997CCBC,0x199CCC99,0x19A1CB7D,0x19A6C967,0x19ABC659,0x19B0C253,0x19B5BD55,0x19BAB761,0x19BFB076,0x19C4A896,0x19C99FC1,0x19CE95F7,0x19D38B39,0x19D87F87,0x19DD72E3, -0x19E2654C,0x19E756C4,0x19EC474A,0x19F136DF,0x19F62584,0x19FB1339,0x1A000000,0x1A04EBD7,0x1A09D6C0,0x1A0EC0BC,0x1A13A9CB,0x1A1891ED,0x1A1D7924,0x1A225F6E,0x1A2744CE,0x1A2C2943,0x1A310CCF,0x1A35EF71,0x1A3AD12A,0x1A3FB1FA,0x1A4491E3,0x1A4970E4,0x1A4E4EFE,0x1A532C32, -0x1A580880,0x1A5CE3E9,0x1A61BE6C,0x1A66980C,0x1A6B70C7,0x1A70489F,0x1A751F94,0x1A79F5A6,0x1A7ECAD7,0x1A839F26,0x1A887293,0x1A8D4521,0x1A9216CE,0x1A96E79C,0x1A9BB78A,0x1AA0869A,0x1AA554CC,0x1AAA2220,0x1AAEEE97,0x1AB3BA31,0x1AB884EF,0x1ABD4ED1,0x1AC217D7,0x1AC6E003, -0x1ACBA754,0x1AD06DCB,0x1AD53369,0x1AD9F82D,0x1ADEBC19,0x1AE37F2D,0x1AE84169,0x1AED02CD,0x1AF1C35B,0x1AF68312,0x1AFB41F4,0x1B000000,0x1B04BD36,0x1B097998,0x1B0E3526,0x1B12EFE0,0x1B17A9C7,0x1B1C62DB,0x1B211B1C,0x1B25D28B,0x1B2A8929,0x1B2F3EF5,0x1B33F3F1,0x1B38A81C, -0x1B3D5B77,0x1B420E03,0x1B46BFC0,0x1B4B70AE,0x1B5020CE,0x1B54D020,0x1B597EA4,0x1B5E2C5B,0x1B62D946,0x1B678565,0x1B6C30B8,0x1B70DB3F,0x1B7584FC,0x1B7A2DED,0x1B7ED615,0x1B837D73,0x1B882408,0x1B8CC9D3,0x1B916ED6,0x1B961311,0x1B9AB684,0x1B9F592F,0x1BA3FB14,0x1BA89C32, -0x1BAD3C8A,0x1BB1DC1B,0x1BB67AE8,0x1BBB18EF,0x1BBFB632,0x1BC452B0,0x1BC8EE6B,0x1BCD8962,0x1BD22395,0x1BD6BD06,0x1BDB55B5,0x1BDFEDA1,0x1BE484CC,0x1BE91B36,0x1BEDB0DE,0x1BF245C7,0x1BF6D9EF,0x1BFB6D57,0x1C000000,0x1C0491E9,0x1C092314,0x1C0DB381,0x1C12432F,0x1C16D220, -0x1C1B6054,0x1C1FEDCB,0x1C247A85,0x1C290684,0x1C2D91C6,0x1C321C4D,0x1C36A619,0x1C3B2F2A,0x1C3FB780,0x1C443F1D,0x1C48C600,0x1C4D4C29,0x1C51D19A,0x1C565651,0x1C5ADA51,0x1C5F5D98,0x1C63E028,0x1C686201,0x1C6CE322,0x1C71638D,0x1C75E342,0x1C7A6240,0x1C7EE08A,0x1C835E1D, -0x1C87DAFC,0x1C8C5727,0x1C90D29D,0x1C954D5F,0x1C99C76D,0x1C9E40C8,0x1CA2B971,0x1CA73166,0x1CABA8AA,0x1CB01F3B,0x1CB4951B,0x1CB90A49,0x1CBD7EC7,0x1CC1F293,0x1CC665B0,0x1CCAD81C,0x1CCF49D9,0x1CD3BAE6,0x1CD82B44,0x1CDC9AF3,0x1CE109F4,0x1CE57847,0x1CE9E5EC,0x1CEE52E3, -0x1CF2BF2D,0x1CF72ACA,0x1CFB95BB,0x1D000000,0x1D046998,0x1D08D285,0x1D0D3AC6,0x1D11A25C,0x1D160948,0x1D1A6F89,0x1D1ED520,0x1D233A0D,0x1D279E51,0x1D2C01EB,0x1D3064DC,0x1D34C725,0x1D3928C5,0x1D3D89BE,0x1D41EA0E,0x1D4649B7,0x1D4AA8B9,0x1D4F0714,0x1D5364C8,0x1D57C1D6, -0x1D5C1E3E,0x1D607A01,0x1D64D51E,0x1D692F95,0x1D6D8968,0x1D71E296,0x1D763B20,0x1D7A9306,0x1D7EEA48,0x1D8340E7,0x1D8796E3,0x1D8BEC3C,0x1D9040F2,0x1D949505,0x1D98E877,0x1D9D3B47,0x1DA18D76,0x1DA5DF03,0x1DAA2FEF,0x1DAE803B,0x1DB2CFE6,0x1DB71EF1,0x1DBB6D5C,0x1DBFBB28, -0x1DC40854,0x1DC854E2,0x1DCCA0D0,0x1DD0EC20,0x1DD536D2,0x1DD980E6,0x1DDDCA5C,0x1DE21335,0x1DE65B70,0x1DEAA30F,0x1DEEEA11,0x1DF33076,0x1DF77640,0x1DFBBB6E,0x1E000000,0x1E0443F6,0x1E088752,0x1E0CCA12,0x1E110C39,0x1E154DC4,0x1E198EB6,0x1E1DCF0E,0x1E220ECD,0x1E264DF2, -0x1E2A8C7E,0x1E2ECA71,0x1E3307CC,0x1E37448E,0x1E3B80B9,0x1E3FBC4B,0x1E43F746,0x1E4831AA,0x1E4C6B77,0x1E50A4AD,0x1E54DD4C,0x1E591556,0x1E5D4CC9,0x1E6183A6,0x1E65B9ED,0x1E69EFA0,0x1E6E24BD,0x1E725945,0x1E768D39,0x1E7AC099,0x1E7EF364,0x1E83259B,0x1E87573F,0x1E8B884F, -0x1E8FB8CC,0x1E93E8B7,0x1E98180E,0x1E9C46D3,0x1EA07506,0x1EA4A2A7,0x1EA8CFB6,0x1EACFC33,0x1EB1281F,0x1EB5537B,0x1EB97E45,0x1EBDA87F,0x1EC1D228,0x1EC5FB41,0x1ECA23CA,0x1ECE4BC4,0x1ED2732E,0x1ED69A09,0x1EDAC054,0x1EDEE611,0x1EE30B40,0x1EE72FE0,0x1EEB53F2,0x1EEF7776, -0x1EF39A6C,0x1EF7BCD5,0x1EFBDEB1,0x1F000000,0x1F0420C1,0x1F0840F7,0x1F0C60A0,0x1F107FBD,0x1F149E4D,0x1F18BC53,0x1F1CD9CC,0x1F20F6BB,0x1F25131E,0x1F292EF7,0x1F2D4A45,0x1F316508,0x1F357F42,0x1F3998F1,0x1F3DB217,0x1F41CAB3,0x1F45E2C6,0x1F49FA4F,0x1F4E1150,0x1F5227C8, -0x1F563DB7,0x1F5A531E,0x1F5E67FD,0x1F627C54,0x1F669024,0x1F6AA36C,0x1F6EB62D,0x1F72C866,0x1F76DA19,0x1F7AEB45,0x1F7EFBEB,0x1F830C0B,0x1F871BA4,0x1F8B2AB8,0x1F8F3946,0x1F93474E,0x1F9754D1,0x1F9B61D0,0x1F9F6E49,0x1FA37A3E,0x1FA785AE,0x1FAB909A,0x1FAF9B02,0x1FB3A4E7, -0x1FB7AE47,0x1FBBB724,0x1FBFBF7E,0x1FC3C755,0x1FC7CEA9,0x1FCBD57A,0x1FCFDBC9,0x1FD3E196,0x1FD7E6E0,0x1FDBEBA9,0x1FDFEFEF,0x1FE3F3B5,0x1FE7F6F9,0x1FEBF9BC,0x1FEFFBFD,0x1FF3FDBF,0x1FF7FEFF,0x1FFBFFBF,0x20000000}; // Add 1025th element HYL V4 - -// Non Interpolate Version - -int inverse_sqrt_lut[1025] = { -0x02000000,0x01000000,0x00B504F0,0x0093CD38,0x00800000,0x00727C90,0x006882F0,0x0060C240,0x005A8278,0x00555550,0x0050F448,0x004D2FD8,0x0049E698,0x00470068,0x00446B38,0x00421950,0x00400000,0x003E16D0,0x003C56F8,0x003ABAF8,0x00393E48,0x0037DD20,0x00369450,0x00356130, -0x00344178,0x00333330,0x003234A8,0x00314468,0x00306120,0x002F89B8,0x002EBD28,0x002DFA98,0x002D4138,0x002C9058,0x002BE750,0x002B4598,0x002AAAA8,0x002A1608,0x00298750,0x0028FE28,0x00287A20,0x0027FB00,0x00278068,0x00270A20,0x002697E8,0x00262980,0x0025BEC0,0x00255768, -0x0024F348,0x00249248,0x00243430,0x0023D8E0,0x00238030,0x00232A08,0x0022D650,0x002284D8,0x00223598,0x0021E870,0x00219D48,0x00215408,0x00210CA8,0x0020C700,0x00208310,0x002040C0,0x00200000,0x001FC0B8,0x001F82E8,0x001F4678,0x001F0B68,0x001ED198,0x001E9908,0x001E61B0, -0x001E2B78,0x001DF668,0x001DC260,0x001D8F70,0x001D5D78,0x001D2C80,0x001CFC78,0x001CCD60,0x001C9F20,0x001C71C0,0x001C4538,0x001C1980,0x001BEE90,0x001BC460,0x001B9AE8,0x001B7230,0x001B4A28,0x001B22C8,0x001AFC18,0x001AD608,0x001AB098,0x001A8BC0,0x001A6780,0x001A43D8, -0x001A20B8,0x0019FE28,0x0019DC20,0x0019BA98,0x00199998,0x00197910,0x00195900,0x00193970,0x00191A50,0x0018FBA8,0x0018DD68,0x0018BF98,0x0018A230,0x00188530,0x00186898,0x00184C60,0x00183090,0x00181518,0x0017FA00,0x0017DF40,0x0017C4D8,0x0017AAC8,0x00179110,0x001777A8, -0x00175E90,0x001745D0,0x00172D58,0x00171528,0x0016FD48,0x0016E5B0,0x0016CE68,0x0016B760,0x0016A098,0x00168A18,0x001673E0,0x00165DE8,0x00164828,0x001632B0,0x00161D70,0x00160870,0x0015F3A8,0x0015DF18,0x0015CAC8,0x0015B6B0,0x0015A2C8,0x00158F20,0x00157BA8,0x00156860, -0x00155550,0x00154270,0x00152FC8,0x00151D50,0x00150B00,0x0014F8E8,0x0014E6F8,0x0014D538,0x0014C3A8,0x0014B240,0x0014A108,0x00148FF8,0x00147F10,0x00146E50,0x00145DC0,0x00144D50,0x00143D10,0x00142CF0,0x00141CF8,0x00140D28,0x0013FD80,0x0013EDF8,0x0013DE90,0x0013CF50, -0x0013C030,0x0013B138,0x0013A260,0x001393A8,0x00138510,0x00137698,0x00136840,0x00135A08,0x00134BF0,0x00133DF8,0x00133020,0x00132260,0x001314C0,0x00130740,0x0012F9D8,0x0012EC88,0x0012DF60,0x0012D248,0x0012C550,0x0012B870,0x0012ABB0,0x00129F08,0x00129278,0x00128600, -0x001279A0,0x00126D60,0x00126130,0x00125520,0x00124920,0x00123D38,0x00123170,0x001225B8,0x00121A18,0x00120E88,0x00120318,0x0011F7B8,0x0011EC70,0x0011E138,0x0011D618,0x0011CB10,0x0011C018,0x0011B538,0x0011AA68,0x00119FA8,0x00119500,0x00118A70,0x00117FF0,0x00117580, -0x00116B28,0x001160D8,0x001156A8,0x00114C80,0x00114268,0x00113868,0x00112E78,0x00112498,0x00111AC8,0x00111110,0x00110760,0x0010FDC0,0x0010F438,0x0010EAB8,0x0010E150,0x0010D7F0,0x0010CEA0,0x0010C560,0x0010BC38,0x0010B318,0x0010AA00,0x0010A100,0x00109810,0x00108F28, -0x00108650,0x00107D88,0x001074D0,0x00106C20,0x00106380,0x00105AF0,0x00105268,0x001049F0,0x00104188,0x00103928,0x001030D8,0x00102898,0x00102060,0x00101830,0x00101018,0x00100800,0x00100000,0x000FF800,0x000FF010,0x000FE830,0x000FE058,0x000FD890,0x000FD0D0,0x000FC918, -0x000FC170,0x000FB9D8,0x000FB240,0x000FAAB8,0x000FA338,0x000F9BC8,0x000F9460,0x000F8D00,0x000F85B0,0x000F7E68,0x000F7728,0x000F6FF8,0x000F68C8,0x000F61A8,0x000F5A90,0x000F5388,0x000F4C80,0x000F4588,0x000F3E98,0x000F37B0,0x000F30D8,0x000F2A00,0x000F2338,0x000F1C70, -0x000F15B8,0x000F0F08,0x000F0868,0x000F01C8,0x000EFB30,0x000EF4A0,0x000EEE20,0x000EE7A0,0x000EE130,0x000EDAC8,0x000ED460,0x000ECE08,0x000EC7B8,0x000EC168,0x000EBB28,0x000EB4F0,0x000EAEB8,0x000EA890,0x000EA270,0x000E9C50,0x000E9640,0x000E9030,0x000E8A30,0x000E8430, -0x000E7E38,0x000E7850,0x000E7268,0x000E6C88,0x000E66B0,0x000E60D8,0x000E5B10,0x000E5548,0x000E4F90,0x000E49D8,0x000E4428,0x000E3E80,0x000E38E0,0x000E3348,0x000E2DB0,0x000E2820,0x000E2298,0x000E1D18,0x000E17A0,0x000E1228,0x000E0CC0,0x000E0758,0x000E01F8,0x000DFC98, -0x000DF748,0x000DF1F8,0x000DECB0,0x000DE768,0x000DE230,0x000DDCF8,0x000DD7C0,0x000DD298,0x000DCD70,0x000DC850,0x000DC338,0x000DBE28,0x000DB918,0x000DB408,0x000DAF08,0x000DAA08,0x000DA510,0x000DA020,0x000D9B30,0x000D9648,0x000D9160,0x000D8C88,0x000D87A8,0x000D82D8, -0x000D7E08,0x000D7940,0x000D7478,0x000D6FB8,0x000D6B00,0x000D6648,0x000D6198,0x000D5CF0,0x000D5848,0x000D53A8,0x000D4F08,0x000D4A70,0x000D45E0,0x000D4150,0x000D3CC8,0x000D3840,0x000D33C0,0x000D2F40,0x000D2AC8,0x000D2658,0x000D21E8,0x000D1D80,0x000D1918,0x000D14B8, -0x000D1058,0x000D0C00,0x000D07B0,0x000D0360,0x000CFF10,0x000CFAC8,0x000CF688,0x000CF248,0x000CEE10,0x000CE9D8,0x000CE5A0,0x000CE178,0x000CDD48,0x000CD928,0x000CD500,0x000CD0E0,0x000CCCC8,0x000CC8B0,0x000CC4A0,0x000CC090,0x000CBC88,0x000CB880,0x000CB478,0x000CB078, -0x000CAC80,0x000CA888,0x000CA490,0x000CA0A0,0x000C9CB8,0x000C98D0,0x000C94E8,0x000C9108,0x000C8D28,0x000C8948,0x000C8578,0x000C81A0,0x000C7DD0,0x000C7A00,0x000C7638,0x000C7278,0x000C6EB0,0x000C6AF0,0x000C6738,0x000C6380,0x000C5FC8,0x000C5C18,0x000C5868,0x000C54C0, -0x000C5118,0x000C4D70,0x000C49D0,0x000C4630,0x000C4298,0x000C3F00,0x000C3B68,0x000C37D8,0x000C3448,0x000C30C0,0x000C2D38,0x000C29B0,0x000C2630,0x000C22B0,0x000C1F38,0x000C1BB8,0x000C1848,0x000C14D0,0x000C1160,0x000C0DF8,0x000C0A88,0x000C0720,0x000C03C0,0x000C0060, -0x000BFD00,0x000BF9A0,0x000BF648,0x000BF2F0,0x000BEFA0,0x000BEC50,0x000BE900,0x000BE5B0,0x000BE268,0x000BDF28,0x000BDBE0,0x000BD8A0,0x000BD560,0x000BD228,0x000BCEF0,0x000BCBB8,0x000BC888,0x000BC558,0x000BC228,0x000BBEF8,0x000BBBD0,0x000BB8A8,0x000BB588,0x000BB268, -0x000BAF48,0x000BAC28,0x000BA910,0x000BA5F8,0x000BA2E8,0x000B9FD0,0x000B9CC0,0x000B99B8,0x000B96A8,0x000B93A0,0x000B9098,0x000B8D98,0x000B8A90,0x000B8790,0x000B8498,0x000B8198,0x000B7EA0,0x000B7BB0,0x000B78B8,0x000B75C8,0x000B72D8,0x000B6FE8,0x000B6D00,0x000B6A18, -0x000B6730,0x000B6450,0x000B6168,0x000B5E88,0x000B5BB0,0x000B58D0,0x000B55F8,0x000B5320,0x000B5048,0x000B4D78,0x000B4AA8,0x000B47D8,0x000B4508,0x000B4240,0x000B3F78,0x000B3CB0,0x000B39F0,0x000B3728,0x000B3468,0x000B31B0,0x000B2EF0,0x000B2C38,0x000B2980,0x000B26C8, -0x000B2410,0x000B2160,0x000B1EB0,0x000B1C00,0x000B1958,0x000B16A8,0x000B1400,0x000B1158,0x000B0EB8,0x000B0C10,0x000B0970,0x000B06D0,0x000B0438,0x000B0198,0x000AFF00,0x000AFC68,0x000AF9D0,0x000AF740,0x000AF4A8,0x000AF218,0x000AEF88,0x000AED00,0x000AEA70,0x000AE7E8, -0x000AE560,0x000AE2D8,0x000AE058,0x000ADDD8,0x000ADB58,0x000AD8D8,0x000AD658,0x000AD3E0,0x000AD160,0x000ACEE8,0x000ACC78,0x000ACA00,0x000AC790,0x000AC518,0x000AC2A8,0x000AC040,0x000ABDD0,0x000ABB68,0x000AB900,0x000AB698,0x000AB430,0x000AB1C8,0x000AAF68,0x000AAD08, -0x000AAAA8,0x000AA848,0x000AA5F0,0x000AA390,0x000AA138,0x000A9EE0,0x000A9C88,0x000A9A38,0x000A97E0,0x000A9590,0x000A9340,0x000A90F0,0x000A8EA8,0x000A8C58,0x000A8A10,0x000A87C8,0x000A8580,0x000A8338,0x000A80F8,0x000A7EB0,0x000A7C70,0x000A7A30,0x000A77F0,0x000A75B8, -0x000A7378,0x000A7140,0x000A6F08,0x000A6CD0,0x000A6A98,0x000A6868,0x000A6630,0x000A6400,0x000A61D0,0x000A5FA0,0x000A5D78,0x000A5B48,0x000A5920,0x000A56F8,0x000A54D0,0x000A52A8,0x000A5080,0x000A4E60,0x000A4C38,0x000A4A18,0x000A47F8,0x000A45D8,0x000A43C0,0x000A41A0, -0x000A3F88,0x000A3D70,0x000A3B58,0x000A3940,0x000A3728,0x000A3510,0x000A3300,0x000A30F0,0x000A2EE0,0x000A2CD0,0x000A2AC0,0x000A28B0,0x000A26A8,0x000A24A0,0x000A2298,0x000A2090,0x000A1E88,0x000A1C80,0x000A1A78,0x000A1878,0x000A1678,0x000A1478,0x000A1278,0x000A1078, -0x000A0E78,0x000A0C80,0x000A0A88,0x000A0888,0x000A0690,0x000A0498,0x000A02A8,0x000A00B0,0x0009FEC0,0x0009FCC8,0x0009FAD8,0x0009F8E8,0x0009F6F8,0x0009F508,0x0009F320,0x0009F130,0x0009EF48,0x0009ED60,0x0009EB70,0x0009E990,0x0009E7A8,0x0009E5C0,0x0009E3E0,0x0009E1F8, -0x0009E018,0x0009DE38,0x0009DC58,0x0009DA78,0x0009D898,0x0009D6C0,0x0009D4E0,0x0009D308,0x0009D130,0x0009CF58,0x0009CD80,0x0009CBA8,0x0009C9D0,0x0009C800,0x0009C628,0x0009C458,0x0009C288,0x0009C0B8,0x0009BEE8,0x0009BD18,0x0009BB48,0x0009B980,0x0009B7B0,0x0009B5E8, -0x0009B420,0x0009B258,0x0009B090,0x0009AEC8,0x0009AD00,0x0009AB40,0x0009A978,0x0009A7B8,0x0009A5F8,0x0009A438,0x0009A278,0x0009A0B8,0x00099EF8,0x00099D40,0x00099B80,0x000999C8,0x00099810,0x00099650,0x00099498,0x000992E8,0x00099130,0x00098F78,0x00098DC8,0x00098C10, -0x00098A60,0x000988B0,0x000986F8,0x00098548,0x000983A0,0x000981F0,0x00098040,0x00097E98,0x00097CE8,0x00097B40,0x00097998,0x000977E8,0x00097640,0x000974A0,0x000972F8,0x00097150,0x00096FB0,0x00096E08,0x00096C68,0x00096AC0,0x00096920,0x00096780,0x000965E0,0x00096448, -0x000962A8,0x00096108,0x00095F70,0x00095DD0,0x00095C38,0x00095AA0,0x00095908,0x00095770,0x000955D8,0x00095440,0x000952A8,0x00095118,0x00094F80,0x00094DF0,0x00094C58,0x00094AC8,0x00094938,0x000947A8,0x00094618,0x00094488,0x00094300,0x00094170,0x00093FE8,0x00093E58, -0x00093CD0,0x00093B48,0x000939C0,0x00093838,0x000936B0,0x00093528,0x000933A0,0x00093218,0x00093098,0x00092F10,0x00092D90,0x00092C10,0x00092A90,0x00092908,0x00092790,0x00092610,0x00092490,0x00092310,0x00092190,0x00092018,0x00091E98,0x00091D20,0x00091BA8,0x00091A30, -0x000918B8,0x00091740,0x000915C8,0x00091450,0x000912D8,0x00091160,0x00090FF0,0x00090E78,0x00090D08,0x00090B98,0x00090A28,0x000908B0,0x00090740,0x000905D0,0x00090468,0x000902F8,0x00090188,0x00090018,0x0008FEB0,0x0008FD40,0x0008FBD8,0x0008FA70,0x0008F908,0x0008F7A0, -0x0008F638,0x0008F4D0,0x0008F368,0x0008F200,0x0008F098,0x0008EF38,0x0008EDD0,0x0008EC70,0x0008EB08,0x0008E9A8,0x0008E848,0x0008E6E8,0x0008E588,0x0008E428,0x0008E2C8,0x0008E168,0x0008E008,0x0008DEB0,0x0008DD50,0x0008DBF0,0x0008DA98,0x0008D940,0x0008D7E0,0x0008D688, -0x0008D530,0x0008D3D8,0x0008D280,0x0008D128,0x0008CFD0,0x0008CE80,0x0008CD28,0x0008CBD0,0x0008CA80,0x0008C930,0x0008C7D8,0x0008C688,0x0008C538,0x0008C3E8,0x0008C298,0x0008C148,0x0008BFF8,0x0008BEA8,0x0008BD58,0x0008BC08,0x0008BAC0,0x0008B970,0x0008B828,0x0008B6D8, -0x0008B590,0x0008B448,0x0008B300,0x0008B1B8,0x0008B068,0x0008AF28,0x0008ADE0,0x0008AC98,0x0008AB50,0x0008AA08,0x0008A8C8,0x0008A780,0x0008A640,0x0008A4F8,0x0008A3B8,0x0008A278,0x0008A130,0x00089FF0,0x00089EB0,0x00089D70,0x00089C30,0x00089AF0,0x000899B8,0x00089878, -0x00089738,0x00089600,0x000894C0,0x00089388,0x00089248,0x00089110,0x00088FD8,0x00088EA0,0x00088D60,0x00088C28,0x00088AF0,0x000889B8,0x00088888,0x00088750,0x00088618,0x000884E0,0x000883B0,0x00088278,0x00088148,0x00088010,0x00087EE0,0x00087DB0,0x00087C78,0x00087B48, -0x00087A18,0x000878E8,0x000877B8,0x00087688,0x00087558,0x00087430,0x00087300,0x000871D0,0x000870A8,0x00086F78,0x00086E50,0x00086D20,0x00086BF8,0x00086AC8,0x000869A0,0x00086878,0x00086750,0x00086628,0x00086500,0x000863D8,0x000862B0,0x00086188,0x00086060,0x00085F40, -0x00085E18,0x00085CF0,0x00085BD0,0x00085AA8,0x00085988,0x00085868,0x00085740,0x00085620,0x00085500,0x000853E0,0x000852C0,0x000851A0,0x00085080,0x00084F60,0x00084E40,0x00084D20,0x00084C08,0x00084AE8,0x000849C8,0x000848B0,0x00084790,0x00084678,0x00084558,0x00084440, -0x00084328,0x00084210,0x000840F0,0x00083FD8,0x00083EC0,0x00083DA8,0x00083C90,0x00083B78,0x00083A68,0x00083950,0x00083838,0x00083720,0x00083610,0x000834F8,0x000833E8,0x000832D0,0x000831C0,0x000830A8,0x00082F98,0x00082E88,0x00082D78,0x00082C60,0x00082B50,0x00082A40, -0x00082930,0x00082820,0x00082710,0x00082608,0x000824F8,0x000823E8,0x000822D8,0x000821D0,0x000820C0,0x00081FB8,0x00081EA8,0x00081DA0,0x00081C90,0x00081B88,0x00081A80,0x00081970,0x00081868,0x00081760,0x00081658,0x00081550,0x00081448,0x00081340,0x00081238,0x00081130, -0x00081030,0x00080F28,0x00080E20,0x00080D20,0x00080C18,0x00080B10,0x00080A10,0x00080908,0x00080808,0x00080708,0x00080600,0x00080500,0x00080400,0x00080300,0x00080200,0x00080100,0x00080000 -} ; - -fixed32 fx32_sqrt_inv( fixed32 fa ) -{ - int s=0; - int fr, ans; - if (fa < 1024 ) - { - if (fa <= 0 ) - return(0); // Error it must Return NaN - return ((inverse_sqrt_lut[fa])); - } - do { - fa>>=2; - s++; - } while(fa >= 1024*64); // 6 bit of fractional Data - fr = fa & 0x3F; - fa >>= 6; - s +=3; - ans = inverse_sqrt_lut[fa]; - ans += ((inverse_sqrt_lut[fa+1] - ans)*fr)>>6; - return (ans>>s); -} - -fixed32 fx32_sqrt (fixed32 fa) -{ - int s=16; - int fr, ans; - if (fa < 1024 ) - { - if (fa <= 0 ) - return(0); // Error it must Return NaN - return ((sqrt_lut[fa])>>16); - } - do { - fa>>=2; - --s; - } while(fa >= 1024*64); // 6 bit of fractional Data - fr = fa & 0x3F; - fa >>= 6; - s -=3; - ans = sqrt_lut[fa]; - ans += ((sqrt_lut[fa+1] - ans)*fr)>>6; - return (ans>>s); -} - -// V4 HYL : NEED ��ġ ������ ���� ���� �ʿ� -fixed32 fx32_norm2(fixed32 fa, fixed32 fb) -{ - fixed32 ans; - fixed64 Lans; - ufixed32 ua, ub; - ua = abs(fa); ub = abs(fb); - if ( ua < 32768 && ub < 32768) - { - ua = (ua*ua); - ub = (ub*ub); - ans = fx32_sqrt(ua+ub); - ans >>= 8; - if ( ans == 0 ) // v4 HYL Not to make divide by 0 - ans++; - return(ans); - } - else - { - fixed64 la, lb; - la = ua; lb = ub; - Lans = la*la + lb*lb; - ans = (fixed32) (Lans >> 16); - return (fx32_sqrt(ans)); - } -} - - -// V4 HYL : NEED ��ġ ������ ���� ���� �ʿ� -fixed32 fx32_normalize(fixed32 fa, fixed32 fb, fixed32q14 *nx, fixed32q14 *ny) -{ - fixed32 ans; - fixed64 Lans; - fixed64 la, lb; - fixed32 ua, ub; - ua = ABS(fa); ub = ABS(fb); - - if ( ua < 32768 && ub < 32768) - { - ua = (ua*ua); - ub = (ub*ub); - ans = fx32_sqrt_inv(ua+ub); - *nx = (fa*ans)>>8; - *ny = (fb*ans)>>8; - return (ans); - } - else - { - la = fa; lb = fb; - Lans = la*la + lb*lb; - ans = (fixed32) (Lans >> 16); - ans = fx32_sqrt_inv(ans); - *nx = ((fa>>8) * ans)>>8; - *ny = ((fb>>8) * ans)>>8; - return(ans); - } -} - -fixed32 fx32_sind(fixed32 fa) -{ - int sign = 1; - fixed32 ret0, diff; - int idx; - if ( fa < 0 ) - { - sign = -1; - fa *= -1; - } - fa = fa % FX32_360; - if ( fa >= FX32_180 ) - { - sign *= -1; - fa -= FX32_180; - } - if ( fa > FX32_90 ) - fa = FX32_180 - fa; - idx = fa>>16; - ret0 = fx32_SinTable[idx]; - diff = fx32_SinTable[idx+1]-ret0; - return ( sign *( ret0 + ((diff*(fa&0xFFFF))>>16) )); -} - -void fx32_sincosd(fixed32 fa, fixed32 *fb, fixed32 *fc) -{ - *fb = fx32_sind( fa ); - *fc = fx32_cosd( fa ); // cosd is MACRO in vgeMath.h -} - -// V4 HYL New Atan Function : Table Search is not used anymore -#define __SQ2P1 0x00026A09 -#define __SQ2M1 0x00006A09 -#define __P4 0x00102755 -#define __P3 0x010C6CEC -#define __P2 0x04810783 -#define __P1 0x06F46804 -#define __P0 0x0380C935 -#define __Q4 0x003AF4FC -#define __Q3 0x021843EF -#define __Q2 0x0682C8A8 -#define __Q1 0x081F55C0 -#define __Q0 0x0380C935 -#define __PIO2 0x0001921F - -fixed32 _fx32_msatand(fixed32 fx) -{ - fixed64 arg, argsq, value; - - if(fx < __SQ2M1) - { - arg = fx; - argsq = (arg* arg)>>16; - value = ((((((((((((argsq*__P4)>>16) + __P3)*argsq)>>16) + __P2)*argsq)>>16) + __P1)*argsq)>>16) + __P0); - value *= arg*FX32_180_PI; - value /= ((((((((((((argsq + __Q4)*argsq)>>16) + __Q3)*argsq)>>16) + __Q2)*argsq)>>16) + __Q1)*argsq)>>16) + __Q0; - return ((fixed32) (value>>16)); - } - if(fx > __SQ2P1) - { - arg = FX64_1 / fx; - argsq = (arg* arg)>>16; - value = ((((((((((((argsq*__P4)>>16) + __P3)*argsq)>>16) + __P2)*argsq)>>16) + __P1)*argsq)>>16) + __P0); - value *= arg*FX32_180_PI; - value /= ((((((((((((argsq + __Q4)*argsq)>>16) + __Q3)*argsq)>>16) + __Q2)*argsq)>>16) + __Q1)*argsq)>>16) + __Q0; - return ((fixed32) ((90<<16)-(value>>16))); - } - - arg = fx-(1<<16); - arg = (arg<<16)/(arg+(2<<16)); - argsq = (arg* arg)>>16; - value = ((((((((((((argsq*__P4)>>16) + __P3)*argsq)>>16) + __P2)*argsq)>>16) + __P1)*argsq)>>16) + __P0); - value *= arg*FX32_180_PI; - value /= ((((((((((((argsq + __Q4)*argsq)>>16) + __Q3)*argsq)>>16) + __Q2)*argsq)>>16) + __Q1)*argsq)>>16) + __Q0; - return ((fixed32) ((45<<16)+(value>>16))); -} - -fixed32 fx32_atand(fixed32 arg) -{ - if(arg > 0) - return _fx32_msatand(arg); - return -_fx32_msatand(-arg); -} - -fixed32 fx32_atan2d(fixed32 arg1, fixed32 arg2) // Y, X -{ - fixed32 ret; - if(arg1+arg2 == arg1) - { - if(arg1 >= 0) - return FX32_90; - return -FX32_90; - } - ret = fx32_atand(fx32_div(arg1,arg2)); - if(arg2 < 0) - { - if(arg1 <= 0) - return ret + FX32_180; - return ret - FX32_180; - } - return ret; -} - -fixed32 fx32_asind(fixed32 arg) -{ - fixed32 temp; - int sign; - - sign = 1; - if(arg < 0) - { - arg = -arg; - sign= -1; - } - if(arg > FX32_1) - return 0; // Nan - temp = fx32_sqrt(FX32_1 - ((arg*arg)>>16)); - if(arg > 0.7) - temp = FX32_90 - fx32_atand(fx32_div(temp,arg)); - else - temp = fx32_atand(fx32_div(temp,arg)); - temp *= sign; - return temp; -} - -#endif // __FX32__ diff --git a/fx_project/vgeMath.h b/fx_project/vgeMath.h deleted file mode 100644 index 898e9f01b965e15f24d8d268364611b91e5d0767..0000000000000000000000000000000000000000 --- a/fx_project/vgeMath.h +++ /dev/null @@ -1,189 +0,0 @@ -#ifndef __VGE_MATH_H__ -#define __VGE_MATH_H__ - -#include <math.h> - -#ifndef VGE_API_CALL -#define VGE_API_CALL extern -#endif - -#ifndef VGE_EXT_CALL -#define VGE_EXT_CALL extern -#endif - - -#if defined(__cplusplus) -extern "C" { -#endif - -typedef long fixed32; -typedef long fixed32q14; -typedef unsigned long ufixed32; -#if defined(WIN32) -typedef __int64 fixed64; -#else -typedef long long fixed64; -#endif - -#define __FX32__ -#define FX32_QNUM 16 -#define FX32_QMULT 65536 -#define FLOAT_QMULT 65536.0F -#define FX32_QMASK 0x0000FFFF -#define FX32_IMASK 0xFFFF0000 -#define FX32_MAX_VALUE 0x7FFFFF7C -#define FX32_1_1000 0x00000041 -#define FX32_25_100 0x00004000 -#define FX32_99_100 0x0000FD70 -#define FX32_0 0x00000000 -#define FX32_1_2 0x00008000 -#define FX32_1_3 0x00005555 -#define FX32_1 0x00010000 -#define FX64_1 ((fixed64)(0x0000000100000000)) -#define FX32_2 0x00020000 -#define FX32_3 0x00030000 -#define FX32_4 0x00040000 -#define FX32_5 0x00050000 -#define FX32_6 0x00060000 -#define FX32_8 0x00080000 -#define FX32_10 0x000A0000 -#define FX32_15 0x000F0000 -#define FX32_30 0x001E0000 -#define FX32_45 0x002D0000 -#define FX32_90 0x005A0000 -#define FX32_128 0x00800000 -#define FX32_180 0x00B40000 -#define FX32_255 0x00FF0000 -#define FX32_360 0x01680000 -#define FX32_100 0x00640000 -#define FX32_1000 0x03E80000 -#define FX32_10000 0x27100000 -#define FX32_GAUSSIANBLUR 0x00006620 -#define FX32_GAUSSIAN_TOLERANCE 0x00027B47 -#define FX32_SIN45 0x0000B504 -#define FX32_SIN30 0x00008000 -#define FX32_SIN15 0x00004241 -#define FX32_SIN10 0x00002C74 -#define FX32_SIN5 0x00001653 -#define FX32_COS45 0x0000B504 -#define FX32_COS30 0x0000DDB3 -#define FX32_COS15 0x0000F746 -#define FX32_COS10 0x0000FC1C -#define FX32_COS5 0x0000FF07 -#define FX32_PI 0x0003243F -#define FX32_180_PI 0x00394BB8 -#define FX32_PI_180 0x00000477 -#define FX32_RT2 0x00016A09 -#define FX32_1_RT2 0x0000B504 - -#define int_fx32(__a) (fixed32) ((__a) << (FX32_QNUM)) -#define fx32_int(__a) ((__a) >> FX32_QNUM) -#define float_fx32(__a) ((fixed32)((__a) * FLOAT_QMULT)) -#define fx32_float(__a) ((float)(__a) / (FLOAT_QMULT)) - -#define fx32_abs(__a) ((__a) >= 0 ? (__a) : (-(__a))) -#define fx32_round_to_int(__x) ((__x + 0x8000) >> FX32_QNUM) -#define fx32_degree(__r) (fx32_mul((__r),FX32_180_PI)) -#define fx32_radian(__d) (fx32_mul((__d),FX32_PI_180)) -#define fx32_floor(x) ((fixed32)((x)&0xFFFF0000)) -#define fx32_round(x) ((fixed32)(((x)+0x00008000)&0xFFFF0000)) // V4 HYL Moved from vgeMath.c -#define fx32_ceil(x) ((fixed32)(((x)+0x0000FFFF)&0xFFFF0000)) // V4 HYL Moved from vgeMath.c -#define fx32_round_at(x,n) ((fixed32)(((x)&(0xFFFFFFFF<<(n+1)))+(((x)&(1<<(n))<<1)))) // V4 HYL Moved from vgeMath.c - -#define fx32_lmul(fa, fb) (fixed32)(((fixed64)(fa) * (fb)) >> FX32_QNUM ) // be careful : Overflow -#define fx32_mul(fa, fb) (fixed32)(((fixed64)(fa) * (fb)) >> FX32_QNUM ) // be careful : Overflow -#define fx32_qmul_dcs(fa, fb) ((fixed32)(((fa>>11) * fb)>>5)) // only use dynamic curve slice -#define fx32_imul(fa, k) ((fa) * (k)) // be careful : Overflow -#define fx32_muli(fa, k) ((fa) * (k)) // be careful : Overflow -#define fx32q14_mul(a,b) (((a) * (b)) >> 14) // it is used for 0.xxxx x 0.yyyyyy -#define fx32_mul_q16q14(fa, fb) (((fa)>>8) * ((fb)>>6)) // Return Value is fx32q16 -#define fx32_mul_q14q16(fa, fb) (((fa)>>6) * ((fb)>>8)) // Return Value is fx32q16 - -#if defined(__ALEXVG_CTS_PASS__) -#define fx32_qmul(fa, fb) fx32_mul(fa, fb) -#define fx32_qmul106(fa, fb) fx32_mul(fa, fb) -#define fx32_qmul97(fa, fb) fx32_mul(fa, fb) -#define fx32_Nmul(fa, fb) fx32_mul(fa, fb) -#define fx32_tmul(__a,__b) fx32_mul(fa,fb) - -#define fx32_qdiv(fa, fb) fx32_div(fa,fb) -#define fx32_qdiv2(fa, fb) fx32_div(fa,fb) -#define fx32_qdiv3(fa, fb) fx32_div(fa,fb) -#else -#define fx32_qmul(fa, fb) (((fa)>>10) * ((fb)>>6)) -//#define fx32_qmul(fa, fb) fx32_mul(fa, fb) -#define fx32_qmul106(fa, fb) (((fa)>>10) * ((fb)>>6)) -#define fx32_qmul97(fa, fb) (((fa)>>9) * ((fb)>>7)) -#define fx32_Nmul(fa, fb) ((((fa)>>2) * ((fb)>>2))>>12) // For Normalize Multiply -#define fx32_tmul(__a,__b) (((__a) * (__b)) >> FX32_QNUM // it is used for 0.xxxx x 0.yyyyyy - -#define fx32_qdiv(fa, fb) ((((0x7FFFFFFF/fb))*(fa>>5))>>10) // HYL It is used only for Rasterization -#define fx32_qdiv2(fa, fb) ((((fa)<<8)/(fb))<<8) // It Cannot be used for Big Number -#define fx32_qdiv3(fa, fb) ((fa)/((fb)>>16)) // It Cannot be used for Big Number -#endif - -#define fx32_div(fa, fb) (fixed32)( (((fixed64)(fa) << FX32_QNUM) /(fb))) // be careful : Overflow & divide by 0 -#define fx32_div_q16q14(fa, fb) (fixed32)( (((fixed64)(fa) << 14) /(fb))) // be careful : Overflow & divide by 0 -#define fx32_divi(fa, ia) ((fa)/(ia)) // be careful : Overflow & divide by 0 -#define fx32_idiv(ia, fb) (fixed32)( (((ia)<<FX32_QNUM)/((fb)>>8)) >>8) -#define fx32_mod(__a, __b) (((__b) == 0) ? 0 : ((__a) % (__b))) -#define fx32_exp( __a) float_fx32((float)(exp ( fx32_float((__a)) ))) //window �Լ� ����ص� ���ɿ� ���� ����. - -#define fx32_cosd(fa) fx32_sind(FX32_90 - (fixed32)fa) -#define fx32_tand(fa) fx32_mul ( fx32_sind((fixed32)fa) , fx32_secd((fixed32)fa) )//fixed32 fx32_tand(fixed32 fa); -#define fx32_cosecd(fa) fx32_secd( (fixed32)fa - FX32_90); //fixed32 fx32_cosecd(fixed32 fa); // 1/sind(__a) -#define fx32_acosd(fa) (FX32_90-fx32_asind((fixed32)fa)) //fixed32 fx32_acosd (fixed32 fa); - -#define fx32_cosec(__a) fx32_cosecd(fx32_degree(__a)) // 1/sin(__a) -#define fx32_sec(__a) fx32_secd(fx32_degree(__a)) // 1/cos(__a) -#define fx32_cotan(__a) fx32_cotand(fx32_degree(__a)) // 1/tan(__a) - -#define fx32_asin(__a) fx32_asind(fx32_degree(__a)) -#define fx32_acos(__a) fx32_acosd(fx32_degree(__a)) -#define fx32_atan(__a) fx32_atand(fx32_degree(__a)) -#define fx32_atan2(_y, _x ) fx32_radian(fx32_atan2d(fx32_degree(_y), fx32_degree(_x))) -#define fx32_PbyMA(R,P,M) {(R)[0]=(fixed32)(((fixed64)((M)[0])*(fixed64)((P)[0])+(fixed64)((M)[3])*(fixed64)((P)[1]))>>16)+((M)[6]);\ - (R)[1]=(fixed32)(((fixed64)((M)[1])*(fixed64)((P)[0])+(fixed64)((M)[4])*(fixed64)((P)[1]))>>16)+((M)[7]);} - //{(R)[0]=(fixed32)(((fixed64)((M)[0])*(P)[0]+(M)[3]*(P)[1])>>16)+(M)[6];\ (R)[1]=(fixed32)(((fixed64)((M)[1])*(P)[0]+(M)[4]*(P)[1])>>16)+(M)[7];} - -fixed32 fx32_sqrt (fixed32 fa); -fixed32 fx32_sqrt_inv (fixed32 fa); -fixed32 fx32_norm2 (fixed32 fa, fixed32 fb); -fixed32 fx32_normalize (fixed32 fa, fixed32 fb, fixed32q14 *na, fixed32q14 *nb); - -fixed32 fx32_sind (fixed32 fa); -fixed32 fx32_secd (fixed32 fa); // 1/cosd(__a) -fixed32 fx32_cotand (fixed32 fa); // 1/tand(__a) - -fixed32 fx32_asind (fixed32 fa); -fixed32 fx32_atand (fixed32 fa); -fixed32 fx32_atan2d (fixed32 fy, fixed32 fx); - -void fx32_sincosd(fixed32 fa, fixed32 *fb, fixed32 *fc); - -/* �������� ����ϴ� Common Function. */ -#define EPSILON_ZERO FX32_1_1000 -#define EPSILON_ONE 0xFFFF -#define PI FX32_PI - -#define MINMAX( X, L, H ) ( (((X) > (H)) ? (H) : ((X) < (L)) ? (L) : (X)) ) -#define MAX( X, Y ) ( ( (X) > (Y) ) ? (X) : (Y) ) -#define MIN( X, Y ) ( ( (X) < (Y) ) ? (X) : (Y) ) -#define ABS( X ) ( ( (X) < 0 ) ? -(X) : (X) ) -#define CROSSPRODUCT( a0, a1, b0, b1 ) ( fx32_mul(a0,b1) - fx32_mul(a1,b0) ) - -/* Platform dependent Stdlib Function */ -#define MOD fx32_mod -#define FLOOR fx32_floor -#define CEIL fx32_ceil -#define SQRT fx32_sqrt -#define SINCOS fx32_sincosd -#define ATAN fx32_atand -#define ATAN2 fx32_atan2d -#define NORM2 fx32_norm2 - -#if defined(__cplusplus) -} /* extern "C" */ -#endif - -#endif