1static const uint16_t in_angles[23] = { 2 0x0, 0x3a48, 0x3e48, 0x40b6, 0x4248, 0x43db, 0x44b6, 0x4648, 3 0xba48, 0xbe48, 0xc0b6, 0xc248, 0xc3db, 0xc4b6, 0xc648, 0x4648, 4 0x4712, 0x47db, 0x4852, 0x48b6, 0x491b, 0x497f, 0x4a48 5 }; 6 7static const uint16_t in_sqrt[8] = { 8 0xb666, 0x0, 0x2e66, 0x3c00, 0x4000, 0x4200, 0x4300, 0x4333 9 }; 10 11static const uint16_t in_log[25] = { 12 0x2e66, 0x34cd, 0x3800, 0x3c00, 0x4000, 0x2d2a, 0x3c00, 0x198f, 13 0x342a, 0x365a, 0x247a, 0x2d19, 0x37c1, 0x339b, 0x343e, 0x319c, 14 0x3b7c, 0x3852, 0x3708, 0x3299, 0x3437, 0x36c4, 0x356f, 0x306e, 15 0x30e5 16 }; 17 18static const uint16_t in_exp[52] = { 19 0x0, 0x3c00, 0xb666, 0xb624, 0xb5e1, 0xb59e, 0xb55b, 0xb518, 20 0xb4d5, 0xb492, 0xb44f, 0xb40d, 0xb393, 0xb30e, 0xb288, 0xb202, 21 0xb17c, 0xb0f7, 0xb071, 0xafd6, 0xaecb, 0xadbf, 0xacb4, 0xab50, 22 0xa939, 0xa645, 0xa02e, 0x202e, 0x2645, 0x2939, 0x2b50, 0x2cb4, 23 0x2dbf, 0x2ecb, 0x2fd6, 0x3071, 0x30f7, 0x317c, 0x3202, 0x3288, 24 0x330e, 0x3393, 0x340d, 0x344f, 0x3492, 0x34d5, 0x3518, 0x355b, 25 0x359e, 0x35e1, 0x3624, 0x3666 26 }; 27 28static const uint16_t in_vinverse[256] = { 29 0x2cd1, 0x22d8, 0x330f, 0x3446, 0x368f, 0x312d, 0x33fe, 0x2dac, 30 0x3854, 0x31c4, 0x3935, 0x2844, 0x2811, 0x2b4c, 0x369d, 0x335b, 31 0x329c, 0x2fe6, 0x301e, 0x2dd7, 0x3822, 0x2c50, 0x364e, 0x36df, 32 0x3abc, 0x2ec4, 0x30e6, 0x288e, 0x35c4, 0x38f7, 0x3373, 0x2f87, 33 0x30fa, 0x38dd, 0x325f, 0x257c, 0x300a, 0x3807, 0x2d38, 0x323e, 34 0x3489, 0x352a, 0x2dac, 0x31a0, 0x28f7, 0x281b, 0x31eb, 0x3bf8, 35 0x3677, 0x3216, 0x30af, 0x3774, 0x33da, 0x30bd, 0x34da, 0x34fb, 36 0x1ea1, 0x367c, 0x2ccb, 0x3586, 0x2db7, 0x37a3, 0x3161, 0x1814, 37 0x2e8a, 0x2930, 0x2f00, 0x329c, 0x36f0, 0x3644, 0x30e7, 0x2d13, 38 0x2e4c, 0x32c0, 0x353a, 0x2c3f, 0x2a96, 0x1aba, 0x3454, 0x3aaa, 39 0x2d51, 0x3117, 0x261b, 0x2c74, 0x35a0, 0x3693, 0x2acf, 0x3475, 40 0x2593, 0x2ba5, 0x2eba, 0x1bac, 0x1f36, 0x3a48, 0x33df, 0x353b, 41 0x3539, 0x2d37, 0x2b83, 0x3a5a, 0x35ac, 0x30ab, 0x304b, 0x38f8, 42 0x2d85, 0x2fcf, 0x356c, 0x36ec, 0x2ea0, 0x3949, 0x2173, 0x2195, 43 0x3573, 0x26ec, 0x38c1, 0x342c, 0x33f6, 0x2f5e, 0x342d, 0x31aa, 44 0x1e21, 0x2e07, 0x37d9, 0x350c, 0x2035, 0x3814, 0x3475, 0x30e2, 45 0x370a, 0x3128, 0x3a59, 0x3a05, 0x3073, 0x324f, 0x33ce, 0x2c5f, 46 0x2f8e, 0x2724, 0x28f1, 0x2fbb, 0x30dd, 0x3507, 0x3511, 0x2821, 47 0x3273, 0x2885, 0x34c3, 0x2ccb, 0x3033, 0x2d1a, 0x34fd, 0x292d, 48 0x358d, 0x32c1, 0x2d84, 0x2eb6, 0x2baf, 0x35d9, 0x30d3, 0x2d9d, 49 0x384e, 0x2dc3, 0x3776, 0x349c, 0x3073, 0x371c, 0x31fa, 0x375a, 50 0x3096, 0x2de9, 0x33ec, 0x2aa2, 0x2c65, 0x388b, 0x335e, 0x382f, 51 0x2012, 0x3135, 0x34d1, 0x1f3d, 0x3697, 0x3254, 0x2b54, 0x31d5, 52 0x3455, 0x3197, 0x35af, 0x2b37, 0x1e89, 0x2ea7, 0x3477, 0x307e, 53 0x3436, 0x2a14, 0x3092, 0x38c2, 0x28e1, 0x3749, 0x353c, 0x25d2, 54 0x3292, 0x245d, 0x3822, 0x251a, 0x2c8c, 0x3707, 0x2c2f, 0x344e, 55 0x342b, 0x3489, 0x3696, 0x2dc9, 0x318a, 0x3584, 0x32ef, 0x359f, 56 0x2f8e, 0x31ca, 0x33dd, 0x336c, 0x36a3, 0x32ad, 0x3819, 0x36ce, 57 0x3724, 0x3160, 0x313a, 0x30d0, 0x2b8b, 0x3c00, 0x325e, 0x31bf, 58 0x2fcb, 0x366e, 0x3811, 0x34bf, 0x2852, 0x3501, 0x3970, 0x2f2c, 59 0x3553, 0x354a, 0x335f, 0x3839, 0x347e, 0x34f3, 0x38e9, 0x35bb, 60 0x2fc5, 0x2f44, 0x271c, 0x2d03, 0x315d, 0x38c9, 0x35ee, 0x2bcd 61 }; 62 63static const uint16_t ref_cos[23] = { 64 0x3c00, 0x39a8, 0x0, 0xb9a8, 0xbc00, 0xb9a8, 0x8000, 0x3c00, 65 0x39a8, 0x0, 0xb9a8, 0xbc00, 0xb9a8, 0x8000, 0x3c00, 0x3c00, 66 0x39a8, 0x0, 0xb9a8, 0xbc00, 0xb9a8, 0x8000, 0x3c00 67 }; 68 69static const uint16_t ref_sin[23] = { 70 0x0, 0x39a8, 0x3c00, 0x39a8, 0x0, 0xb9a8, 0xbc00, 0x8011, 71 0xb9a8, 0xbc00, 0xb9a8, 0x8000, 0x39a8, 0x3c00, 0x8011, 0x8000, 72 0x39a8, 0x3c00, 0x39a8, 0x0, 0xb9a8, 0xbc00, 0x8011 73 }; 74 75static const uint16_t ref_sqrt[8] = { 76 0x0, 0x0, 0x350f, 0x3c00, 0x3da8, 0x3eee, 0x3f7c, 0x3f97 77 }; 78 79static const uint16_t ref_log[25] = { 80 0xc09b, 0xbcd1, 0xb98c, 0x0, 0x398c, 0xc109, 0x0, 0xc5e9, 81 0xbd62, 0xbb64, 0xc40c, 0xc10f, 0xb9cb, 0xbdbf, 0xbd4f, 0xbef7, 82 0xac45, 0xb8ee, 0xba94, 0xbe51, 0xbd56, 0xbae2, 0xbc52, 0xbfe9, 83 0xbf83 84 }; 85 86static const uint16_t ref_exp[52] = { 87 0x3c00, 0x4170, 0x395d, 0x3973, 0x398a, 0x39a2, 0x39b9, 0x39d2, 88 0x39ea, 0x3a03, 0x3a1c, 0x3a36, 0x3a50, 0x3a6b, 0x3a86, 0x3aa1, 89 0x3abd, 0x3ada, 0x3af7, 0x3b14, 0x3b32, 0x3b50, 0x3b6f, 0x3b8e, 90 0x3bae, 0x3bce, 0x3bef, 0x3c08, 0x3c19, 0x3c2b, 0x3c3c, 0x3c4e, 91 0x3c60, 0x3c73, 0x3c85, 0x3c98, 0x3cac, 0x3cbf, 0x3cd3, 0x3ce8, 92 0x3cfd, 0x3d12, 0x3d27, 0x3d3d, 0x3d53, 0x3d69, 0x3d80, 0x3d97, 93 0x3daf, 0x3dc7, 0x3ddf, 0x3df8 94 }; 95 96static const uint16_t ref_vinverse[256] = { 97 0x4aa4, 0x54ad, 0x4489, 0x437e, 0x40e1, 0x462e, 0x4401, 0x49a4, 98 0x3f64, 0x458d, 0x3e25, 0x4f80, 0x4fde, 0x4c63, 0x40d7, 0x445a, 99 0x44d7, 0x480d, 0x47c7, 0x497b, 0x3fbe, 0x4b6c, 0x4114, 0x40a8, 100 0x3cc0, 0x48bb, 0x4688, 0x4f07, 0x418d, 0x3e71, 0x444c, 0x4840, 101 0x466f, 0x3e94, 0x4506, 0x51d6, 0x47ec, 0x3ff2, 0x4a22, 0x4521, 102 0x430e, 0x4233, 0x49a4, 0x45b1, 0x4e72, 0x4fcb, 0x4568, 0x3c04, 103 0x40f3, 0x4542, 0x46d5, 0x404b, 0x4413, 0x46c1, 0x4299, 0x426c, 104 0x58d4, 0x40ef, 0x4aad, 0x41cb, 0x4999, 0x4031, 0x45f3, 0x5fd9, 105 0x48e5, 0x4e2c, 0x4892, 0x44d8, 0x409d, 0x411c, 0x4688, 0x4a4f, 106 0x4915, 0x44be, 0x4220, 0x4b89, 0x4cdc, 0x5cc2, 0x4365, 0x3ccd, 107 0x4a05, 0x4649, 0x513e, 0x4b2f, 0x41b0, 0x40de, 0x4cb3, 0x432e, 108 0x51bd, 0x4c30, 0x48c2, 0x5c2c, 0x5870, 0x3d18, 0x4411, 0x421e, 109 0x4221, 0x4a23, 0x4c43, 0x3d0a, 0x41a4, 0x46db, 0x4774, 0x3e70, 110 0x49cc, 0x4819, 0x41e7, 0x40a0, 0x48d5, 0x3e0e, 0x55df, 0x55bc, 111 0x41df, 0x509f, 0x3ebb, 0x43ac, 0x4405, 0x4858, 0x43aa, 0x45a7, 112 0x5938, 0x4950, 0x4014, 0x4257, 0x579b, 0x3fd9, 0x432d, 0x468d, 113 0x408c, 0x4635, 0x3d0a, 0x3d51, 0x4731, 0x4513, 0x4419, 0x4b52, 114 0x483c, 0x507b, 0x4e7a, 0x4824, 0x4694, 0x425e, 0x4251, 0x4fbf, 115 0x44f6, 0x4f14, 0x42b9, 0x4aae, 0x479e, 0x4a46, 0x426a, 0x4e2f, 116 0x41c4, 0x44bd, 0x49cd, 0x48c5, 0x4c2a, 0x4179, 0x46a2, 0x49b4, 117 0x3f6f, 0x498e, 0x404a, 0x42f1, 0x4732, 0x4080, 0x455b, 0x405a, 118 0x46fa, 0x496a, 0x440a, 0x4cd3, 0x4b49, 0x3f0b, 0x4458, 0x3fa6, 119 0x57dd, 0x4626, 0x42a5, 0x586c, 0x40db, 0x450f, 0x4c5e, 0x457d, 120 0x4363, 0x45b9, 0x41a2, 0x4c6f, 0x58e6, 0x48d0, 0x432a, 0x471f, 121 0x439a, 0x4d44, 0x4701, 0x3eba, 0x4e8f, 0x4065, 0x421d, 0x517f, 122 0x44df, 0x5356, 0x3fbe, 0x5246, 0x4b0a, 0x408e, 0x4ba6, 0x4370, 123 0x43ae, 0x430e, 0x40dc, 0x4988, 0x45c7, 0x41ce, 0x449d, 0x41b1, 124 0x483c, 0x4587, 0x4412, 0x4450, 0x40d2, 0x44cb, 0x3fcf, 0x40b4, 125 0x407b, 0x45f4, 0x461f, 0x46a6, 0x4c3e, 0x3c00, 0x4506, 0x4592, 126 0x481b, 0x40fa, 0x3fde, 0x42be, 0x4f67, 0x4265, 0x3de2, 0x4876, 127 0x4203, 0x420d, 0x4457, 0x3f94, 0x4320, 0x4277, 0x3e84, 0x4195, 128 0x481e, 0x4868, 0x5080, 0x4a62, 0x45f7, 0x3eb0, 0x4166, 0x4c1a 129 }; 130 131