Math Processor Unit Library

libmpu – library of arithmetic functions for integer, real, and complex numbers of increased digit capacity

16 Commits   0 Branches   2 Tags

#ifndef   __REAL_EINTERNAL_ATAN2_002_32MSB
#define   __REAL_EINTERNAL_ATAN2_002_32MSB

#if BITS_PER_EMUSHORT == 32

#define N_ATAN2_A256  68

static EMUSHORT _ei_atan2__A_256_[N_ATAN2_A256][NPIR_256] =
{
/*   Sign        Exp         hgw         S i g n i f i c a n d                                                               lgw      */
/*  ==========  ==========  ==========  ==================================================================================  ==========*/
  { 0xffffffff, 0x3fffffef, 0x00000000, 0xcd2fc3f1, 0x59c8ee22, 0x3b9f9876, 0xcd7d2c22, 0x1e82f9aa, 0x7521f6f6, 0x8eaa5b6d, 0x00000000 }, /* -2.446014685624733574576641794311557740602454408195224215547727752073E-5 */
  { 0x00000000, 0x3ffffff2, 0x00000000, 0xc385aae8, 0xffcef7d7, 0x71ae9670, 0xe088ea04, 0x5561a30c, 0xd1ea5a9a, 0x771dda96, 0x00000000 }, /*  1.864644423789770731364180885710793420876267893566313838427590026253E-4 */
  { 0xffffffff, 0x3ffffff4, 0x00000000, 0xb7849ce3, 0x83b32c53, 0xfa5d48ac, 0xcc0429fb, 0xe7adeb57, 0x86bd7ef4, 0x9f9f5447, 0x00000000 }, /* -7.000656850128627218962733711219022270575389782305497825791749817340E-4 */
  { 0x00000000, 0x3ffffff5, 0x00000000, 0xe3a44570, 0xe3b20bde, 0x69d218e4, 0x37518300, 0xeb706c41, 0x23efb894, 0x7080174a, 0x00000000 }, /*  1.736768223458709836399459063365231699751919681145325078451582773613E-3 */
  { 0xffffffff, 0x3ffffff6, 0x00000000, 0xd3d0d58c, 0x737834db, 0x5e2a2edf, 0xf0bae4a4, 0x7db9f7cd, 0xf8d3afa2, 0xb8fb8191, 0x00000000 }, /* -3.232051978967368045418499284068442247883720061988958308636337980536E-3 */
  { 0x00000000, 0x3ffffff7, 0x00000000, 0x9fac5615, 0x210473e1, 0x8d357cc0, 0xb548f725, 0xd6b89658, 0x5334b8a2, 0x355eeb7e, 0x00000000 }, /*  4.872839004981823003992254180247834362126020734387451709836931199808E-3 */
  { 0xffffffff, 0x3ffffff7, 0x00000000, 0xce6f58bc, 0x32d8981f, 0xc8a1910c, 0x7e7cd775, 0x29cf09a5, 0x9d78a9ee, 0xc9b0d0f4, 0x00000000 }, /* -6.299894645414710731972679701099640197443768193565486104619632560520E-3 */
  { 0x00000000, 0x3ffffff7, 0x00000000, 0xefcec0d3, 0xf47aef94, 0x04fd1f0a, 0x5230f5e6, 0x5bb81625, 0xe52c493c, 0x0920fbca, 0x00000000 }, /*  7.318348078033524602213581284142194128318879485347887852317466028674E-3 */
  { 0xffffffff, 0x3ffffff8, 0x00000000, 0x82207338, 0xed025de6, 0xa82d06c5, 0x989459a0, 0xec7615e9, 0x2271d51e, 0x995109d0, 0x00000000 }, /* -7.942307016222247928504992988418838013421846787423069851093705790609E-3 */
  { 0x00000000, 0x3ffffff8, 0x00000000, 0x87fa5784, 0x34d3311e, 0xa5a10928, 0x74b3eaa3, 0xc113fcf5, 0xa1c25445, 0xea03a216, 0x00000000 }, /*  8.299432244553272656977567907396373998766271887209254500518552000489E-3 */
  { 0xffffffff, 0x3ffffff8, 0x00000000, 0x8b9b80f6, 0x9dc5736e, 0x8405d6da, 0xedb70da7, 0x02032ca4, 0x800b15a9, 0x9f5183e5, 0x00000000 }, /* -8.520961704985144430651076682860320515002209272437162401768444838225E-3 */
  { 0x00000000, 0x3ffffff8, 0x00000000, 0x8e656134, 0xe2e43350, 0xda3ae526, 0x75397a46, 0xcf281243, 0x50a394b7, 0x87b6b4c3, 0x00000000 }, /*  8.691162994678214318148326564221968411408084013557522935583917023306E-3 */
  { 0xffffffff, 0x3ffffff8, 0x00000000, 0x90fca5c4, 0x26471ce6, 0x523d7931, 0x98b4dba9, 0x8a8cb8c1, 0x2c2dab5e, 0x78303b68, 0x00000000 }, /* -8.849298363746211531467765650843861356097388735961438265949974902773E-3 */
  { 0x00000000, 0x3ffffff8, 0x00000000, 0x939b1499, 0x32550184, 0xd748178f, 0x90d87434, 0x5a1ce283, 0x6e4012a0, 0xf4a56fec, 0x00000000 }, /*  9.009142032288253495078241834341703246311101197153964492946295978699E-3 */
  { 0xffffffff, 0x3ffffff8, 0x00000000, 0x965012ae, 0x2de490e1, 0x34ca6662, 0x1a55c265, 0x87a60a98, 0xfe68b22b, 0x20ef0917, 0x00000000 }, /* -9.174364321294956933015802030708073901615126518880238432276189633235E-3 */
  { 0x00000000, 0x3ffffff8, 0x00000000, 0x991f243b, 0x10df9343, 0x9f41d01a, 0xb751fb41, 0xe8cf9b6f, 0x6fc42559, 0xc58fdac5, 0x00000000 }, /*  9.345803624695368808127445224200725277365368129080925662433949575293E-3 */
  { 0xffffffff, 0x3ffffff8, 0x00000000, 0x9c09c10a, 0x3cd400bc, 0xaf7d32a4, 0x50d3dc8e, 0xa663eed5, 0x763e45c3, 0x4daa3805, 0x00000000 }, /* -9.523809924713022727566630680465338993393542025127055748908740807988E-3 */
  { 0x00000000, 0x3ffffff8, 0x00000000, 0x9f1165a9, 0x6a0c254a, 0xcdac9a2c, 0x9fcd2956, 0xf1c37c7b, 0xc6451893, 0xde5726a5, 0x00000000 }, /*  9.708737639500205944412787867091857923310641146930789337610548417604E-3 */
  { 0xffffffff, 0x3ffffff8, 0x00000000, 0xa237c31a, 0x2f21573b, 0xba8f717f, 0xc1517dda, 0x0cd3f15b, 0x97514d1f, 0x30d40d86, 0x00000000 }, /* -9.900990037509845895510230774613443120521010079218003818323272357617E-3 */
  { 0x00000000, 0x3ffffff8, 0x00000000, 0xa57eb501, 0x04be8fc0, 0x4c4b0396, 0xe6e4c144, 0xb5954e76, 0x9a4010b4, 0x36d4b7c1, 0x00000000 }, /*  1.010101009530820279236267947663425608649613282217945937401023738682E-2 */
  { 0xffffffff, 0x3ffffff8, 0x00000000, 0xa8e83f57, 0x43394d67, 0x63d9d73c, 0xe4cdd43b, 0x763addc7, 0x1b344add, 0xa0f03caa, 0x00000000 }, /* -1.030927835113322767795245600717299645090771034655311886444596647230E-2 */
  { 0x00000000, 0x3ffffff8, 0x00000000, 0xac769184, 0x1c4adcbf, 0x4ab61347, 0x72a9e718, 0x6d6e480d, 0x8e87a417, 0x39812b1d, 0x00000000 }, /*  1.052631578972256577963372544472260248547779165798323634769040318679E-2 */
  { 0xffffffff, 0x3ffffff8, 0x00000000, 0xb02c0b02, 0xc27183b9, 0xd9cfd759, 0x589a54c0, 0x57f14d3f, 0xa0981026, 0x61ad3ffe, 0x00000000 }, /* -1.075268817206795427280411205255162426017766877610283035830704154895E-2 */
  { 0x00000000, 0x3ffffff8, 0x00000000, 0xb40b40b4, 0x0b219d55, 0xd13137d8, 0x0059e553, 0xb436025f, 0x60f85c52, 0xde32e989, 0x00000000 }, /*  1.098901098900926324112936053110619081420561243957412493481374653806E-2 */
  { 0xffffffff, 0x3ffffff8, 0x00000000, 0xb81702e0, 0x5bfe45d8, 0x2e41d0a8, 0x5723ee7f, 0x4f5a8afc, 0xa665c89f, 0x537eee09, 0x00000000 }, /* -1.123595505617904071359900302764892890296438482860479171215590082727E-2 */
  { 0x00000000, 0x3ffffff8, 0x00000000, 0xbc52640b, 0xc5252a58, 0x532f6ff3, 0x6da29933, 0x60aadcdf, 0x8cb387b7, 0x8e8908bd, 0x00000000 }, /*  1.149425287356315802446314155301498693091801936791141374555913372607E-2 */
  { 0xffffffff, 0x3ffffff8, 0x00000000, 0xc0c0c0c0, 0xc0c0dad6, 0xf54d5987, 0x0ecd5a21, 0xc45c6b55, 0xb3523842, 0x76680d8a, 0x00000000 }, /* -1.176470588235294683313048073766039917658380920285991538527146954620E-2 */
  { 0x00000000, 0x3ffffff8, 0x00000000, 0xc565c87b, 0x5f9d546a, 0xb6eff95b, 0xd2782761, 0x4309b809, 0x0d893389, 0xdac69f5f, 0x00000000 }, /*  1.204819277108433893415859512956172537939601633349595940018913630352E-2 */
  { 0xffffffff, 0x3ffffff8, 0x00000000, 0xca4587e6, 0xb74f0381, 0xbcb896c6, 0x16f2197e, 0x1391e087, 0x16b1bda3, 0x9826e2f5, 0x00000000 }, /* -1.234567901234567908743580356959827823036571353587969193154924525150E-2 */
  { 0x00000000, 0x3ffffff8, 0x00000000, 0xcf6474a8, 0x819ec8d7, 0x9a9de7ba, 0xfdd316a2, 0x28a212d4, 0xfbec68f1, 0x15e7890b, 0x00000000 }, /*  1.265822784810126580778175280914505890373738827136803459351620265801E-2 */
  { 0xffffffff, 0x3ffffff8, 0x00000000, 0xd4c77b03, 0x531dec0a, 0x9d66e33d, 0x44b9684d, 0x947d9093, 0x2c7aefa1, 0x8f43909a, 0x00000000 }, /* -1.298701298701298701071370352030129870039816316062209662498358557776E-2 */
  { 0x00000000, 0x3ffffff8, 0x00000000, 0xda740da7, 0x40da740d, 0xa6505a46, 0x43b5fa64, 0xfcf691ad, 0xdb98beeb, 0x834a5bd2, 0x00000000 }, /*  1.333333333333333333333022493465746789652427287285775376726557154263E-2 */
  { 0xffffffff, 0x3ffffff8, 0x00000000, 0xe070381c, 0x0e070381, 0xc878ce36, 0x4179c5ed, 0x00dfbd04, 0x9890ed19, 0xdf971a16, 0x00000000 }, /* -1.369863013698630136988814405515803855767251568367992867672752428077E-2 */
  { 0x00000000, 0x3ffffff8, 0x00000000, 0xe6c2b448, 0x1cd85689, 0x04246a32, 0xefeb726d, 0xd9534959, 0x3f48354e, 0xe7727291, 0x00000000 }, /*  1.408450704225352112676233887934444547307173133727422385304619147617E-2 */
  { 0xffffffff, 0x3ffffff8, 0x00000000, 0xed7303b5, 0xcc0ed730, 0x3b52e339, 0x3a6824c2, 0xca9cb6ef, 0x0b0d844d, 0xaa772325, 0x00000000 }, /* -1.449275362318840579710132175989768541832143770277301846445550523893E-2 */
  { 0x00000000, 0x3ffffff8, 0x00000000, 0xf4898d5f, 0x85bb3950, 0x3d20934d, 0xeec33404, 0x2d1105a5, 0x05854784, 0xacf1287e, 0x00000000 }, /*  1.492537313432835820895520045262169002850620579923862714169839723272E-2 */
  { 0xffffffff, 0x3ffffff8, 0x00000000, 0xfc0fc0fc, 0x0fc0fc0f, 0xc0fc0b11, 0x61b44e67, 0x8c81060f, 0x05863b0c, 0xb9b9c4fd, 0x00000000 }, /* -1.538461538461538461538461514803541580076517698386515879204538873499E-2 */
  { 0x00000000, 0x3ffffff9, 0x00000000, 0x82082082, 0x08208208, 0x208209c8, 0x7da3a2ca, 0x95175723, 0x46769b23, 0xd0521be4, 0x00000000 }, /*  1.587301587301587301587301604024761713821481852846754248614227788470E-2 */
  { 0xffffffff, 0x3ffffff9, 0x00000000, 0x864b8a7d, 0xe6d1d608, 0x64b8a7f6, 0x98c7fe93, 0x8c09a643, 0xab284759, 0xae03c378, 0x00000000 }, /* -1.639344262295081967213114755051721627617821458602574264856161593327E-2 */
  { 0x00000000, 0x3ffffff9, 0x00000000, 0x8ad8f2fb, 0xa9386822, 0xb63cbee8, 0x94c412cb, 0xaacb54a7, 0x2b27786d, 0xe19c4ab8, 0x00000000 }, /*  1.694915254237288135593220338915052303438773917668026110909244843930E-2 */
  { 0xffffffff, 0x3ffffff9, 0x00000000, 0x8fb823ee, 0x08fb823e, 0xe08fb823, 0xb7239d74, 0x86748e91, 0x8a27ef26, 0x9a3f1d4c, 0x00000000 }, /* -1.754385964912280701754385964903822638914047983926215520330816036845E-2 */
  { 0x00000000, 0x3ffffff9, 0x00000000, 0x94f2094f, 0x2094f209, 0x4f2094f2, 0x09bf621d, 0x3baf1275, 0xb11dd851, 0x82451433, 0x00000000 }, /*  1.818181818181818181818181818181885743432105700999037990586093226658E-2 */
  { 0xffffffff, 0x3ffffff9, 0x00000000, 0x9a90e7d9, 0x5bc609a9, 0x0e7d95bc, 0x60e6079f, 0xff9cbfef, 0x86261ee5, 0x8d693a4f, 0x00000000 }, /* -1.886792452830188679245283018867969946392770579905961310444111366994E-2 */
  { 0x00000000, 0x3ffffff9, 0x00000000, 0xa0a0a0a0, 0xa0a0a0a0, 0xa0a0a0a0, 0xa0a26be9, 0x07ce0cd9, 0x0c1b5f81, 0xd03e932b, 0x00000000 }, /*  1.960784313725490196078431372549020687611868190971167495353828835507E-2 */
  { 0xffffffff, 0x3ffffff9, 0x00000000, 0xa72f0539, 0x7829cbc1, 0x4e5e0a72, 0xf05351a7, 0xac8ba471, 0x6e57211a, 0xd96eb100, 0x00000000 }, /* -2.040816326530612244897959183673469223526251445543206420081095168897E-2 */
  { 0x00000000, 0x3ffffff9, 0x00000000, 0xae4c415c, 0x9882b931, 0x0572620a, 0xe4c41235, 0x2962ffb9, 0x80b9a3fb, 0x33b4fb44, 0x00000000 }, /*  2.127659574468085106382978723404255310733404530896070823241780072517E-2 */
  { 0xffffffff, 0x3ffffff9, 0x00000000, 0xb60b60b6, 0x0b60b60b, 0x60b60b60, 0xb60b60e0, 0x79285b49, 0x846ee2e6, 0x91270d38, 0x00000000 }, /* -2.222222222222222222222222222222222222611869465611009921633025778583E-2 */
  { 0x00000000, 0x3ffffff9, 0x00000000, 0xbe82fa0b, 0xe82fa0be, 0x82fa0be8, 0x2fa0be86, 0xd3ba8d4b, 0xe0645280, 0xd92fe311, 0x00000000 }, /*  2.325581395348837209302325581395348837244661940629555811233394075769E-2 */
  { 0xffffffff, 0x3ffffff9, 0x00000000, 0xc7ce0c7c, 0xe0c7ce0c, 0x7ce0c7ce, 0x0c7ce0c7, 0xc0e9d301, 0x75c5b9d6, 0xc402ad8f, 0x00000000 }, /* -2.439024390243902439024390243902439024389772692910218061018687856324E-2 */
  { 0x00000000, 0x3ffffff9, 0x00000000, 0xd20d20d2, 0x0d20d20d, 0x20d20d20, 0xd20d20d2, 0x0a4f2c11, 0x871043e2, 0xe7825309, 0x00000000 }, /*  2.564102564102564102564102564102564102564001439627245807837733995479E-2 */
  { 0xffffffff, 0x3ffffff9, 0x00000000, 0xdd67c8a6, 0x0dd67c8a, 0x60dd67c8, 0xa60dd67c, 0x8a5de4c3, 0x3c68b3f7, 0x8094438f, 0x00000000 }, /* -2.702702702702702702702702702702702702702702286340383040076185482346E-2 */
  { 0x00000000, 0x3ffffff9, 0x00000000, 0xea0ea0ea, 0x0ea0ea0e, 0xa0ea0ea0, 0xea0ea0ea, 0x0ea265ce, 0x51d83338, 0x8e044722, 0x00000000 }, /*  2.857142857142857142857142857142857142857143065010591966513847854157E-2 */
  { 0xffffffff, 0x3ffffff9, 0x00000000, 0xf83e0f83, 0xe0f83e0f, 0x83e0f83e, 0x0f83e0f8, 0x3e0f89cf, 0xc829aa41, 0xabbcf9c0, 0x00000000 }, /* -3.030303030303030303030303030303030303030303033550572398592234868768E-2 */
  { 0x00000000, 0x3ffffffa, 0x00000000, 0x84210842, 0x10842108, 0x42108421, 0x08421084, 0x210841c7, 0xf23eae48, 0xc17fa153, 0x00000000 }, /*  3.225806451612903225806451612903225806451612902915466993869802485475E-2 */
  { 0xffffffff, 0x3ffffffa, 0x00000000, 0x8d3dcb08, 0xd3dcb08d, 0x3dcb08d3, 0xdcb08d3d, 0xcb08d3da, 0xee231872, 0x9a2a1bf2, 0x00000000 }, /* -3.448275862068965517241379310344827586206896551716613853945457799573E-2 */
  { 0x00000000, 0x3ffffffa, 0x00000000, 0x97b425ed, 0x097b425e, 0xd097b425, 0xed097b42, 0x5ed097b4, 0x39df09d2, 0xbe2a09fc, 0x00000000 }, /*  3.703703703703703703703703703703703703703703703704036885836945562900E-2 */
  { 0xffffffff, 0x3ffffffa, 0x00000000, 0xa3d70a3d, 0x70a3d70a, 0x3d70a3d7, 0x0a3d70a3, 0xd70a3d70, 0xa4769285, 0xc8406dea, 0x00000000 }, /* -4.000000000000000000000000000000000000000000000000010409971813995400E-2 */
  { 0x00000000, 0x3ffffffa, 0x00000000, 0xb21642c8, 0x590b2164, 0x2c8590b2, 0x1642c859, 0x0b21642c, 0x858cd973, 0xedbcdf32, 0x00000000 }, /*  4.347826086956521739130434782608695652173913043478260618587195574569E-2 */
  { 0xffffffff, 0x3ffffffa, 0x00000000, 0xc30c30c3, 0x0c30c30c, 0x30c30c30, 0xc30c30c3, 0x0c30c30c, 0x30c2e7a7, 0xdcf1c4f2, 0x00000000 }, /* -4.761904761904761904761904761904761904761904761904761895449387581475E-2 */
  { 0x00000000, 0x3ffffffa, 0x00000000, 0xd79435e5, 0x0d79435e, 0x50d79435, 0xe50d7943, 0x5e50d794, 0x35e50df9, 0x6443af3e, 0x00000000 }, /*  5.263157894736842105263157894736842105263157894736842105390733192711E-2 */
  { 0xffffffff, 0x3ffffffa, 0x00000000, 0xf0f0f0f0, 0xf0f0f0f0, 0xf0f0f0f0, 0xf0f0f0f0, 0xf0f0f0f0, 0xf0f0f0f6, 0x47cbd7c6, 0x00000000 }, /* -5.882352941176470588235294117647058823529411764705882352946492695635E-2 */
  { 0x00000000, 0x3ffffffb, 0x00000000, 0x88888888, 0x88888888, 0x88888888, 0x88888888, 0x88888888, 0x88888888, 0x8337a7dd, 0x00000000 }, /*  6.666666666666666666666666666666666666666666666666666666666625315289E-2 */
  { 0xffffffff, 0x3ffffffb, 0x00000000, 0x9d89d89d, 0x89d89d89, 0xd89d89d8, 0x9d89d89d, 0x89d89d89, 0xd89d89d8, 0x9d4e28e0, 0x00000000 }, /* -7.692307692307692307692307692307692307692307692307692307692305878685E-2 */
  { 0x00000000, 0x3ffffffb, 0x00000000, 0xba2e8ba2, 0xe8ba2e8b, 0xa2e8ba2e, 0x8ba2e8ba, 0x2e8ba2e8, 0xba2e8ba2, 0xe8ba70b5, 0x00000000 }, /*  9.090909090909090909090909090909090909090909090909090909090909098762E-2 */
  { 0xffffffff, 0x3ffffffb, 0x00000000, 0xe38e38e3, 0x8e38e38e, 0x38e38e38, 0xe38e38e3, 0x8e38e38e, 0x38e38e38, 0xe38e3b9d, 0x00000000 }, /* -1.111111111111111111111111111111111111111111111111111111111111111143E-1 */
  { 0x00000000, 0x3ffffffc, 0x00000000, 0x92492492, 0x49249249, 0x24924924, 0x92492492, 0x49249249, 0x24924924, 0x92492491, 0x00000000 }, /*  1.428571428571428571428571428571428571428571428571428571428571428571E-1 */
  { 0xffffffff, 0x3ffffffc, 0x00000000, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0xcccccccc, 0x00000000 }, /* -2.000000000000000000000000000000000000000000000000000000000000000000E-1 */
  { 0x00000000, 0x3ffffffd, 0x00000000, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0xaaaaaaaa, 0x00000000 }  /*  3.333333333333333333333333333333333333333333333333333333333333333333E-1 */
};

#else  /* BITS_PER_EMUSHORT != 32 */
#error ei_atan2_002_emu32msb.dfn: ERROR: Failed size of EMUSHORT data type.
#endif /* BITS_PER_EMUSHORT == 32 */

#endif /* __REAL_EINTERNAL_ATAN2_002_32MSB */