csky_common_tables.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. /******************************************************************************
  2. * @file csky_common_tables.h
  3. * @brief This file has extern declaration for common tables like
  4. * Bitreverse, reciprocal etc which are used across different functions.
  5. * @version V1.0
  6. * @date 20. Dec 2016
  7. ******************************************************************************/
  8. /* ---------------------------------------------------------------------------
  9. * Copyright (C) 2016 CSKY Limited. All rights reserved.
  10. *
  11. * Redistribution and use of this software in source and binary forms,
  12. * with or without modification, are permitted provided that the following
  13. * conditions are met:
  14. * * Redistributions of source code must retain the above copyright notice,
  15. * this list of conditions and the following disclaimer.
  16. * * Redistributions in binary form must reproduce the above copyright notice,
  17. * this list of conditions and the following disclaimer in the documentation
  18. * and/or other materials provided with the distribution.
  19. * * Neither the name of CSKY Ltd. nor the names of CSKY's contributors may
  20. * be used to endorse or promote products derived from this software without
  21. * specific prior written permission of CSKY Ltd.
  22. *
  23. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  24. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  25. * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  26. * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
  27. * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
  28. * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  29. * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  30. * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  31. * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  32. * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  33. * THE POSSIBILITY OF SUCH DAMAGE.
  34. * -------------------------------------------------------------------------- */
  35. #ifndef _CSKY_COMMON_TABLES_H
  36. #define _CSKY_COMMON_TABLES_H
  37. #include "csky_math.h"
  38. extern const uint16_t cskyBitRevTable[1024];
  39. extern const q15_t cskyRecipTableQ15[64];
  40. extern const q31_t cskyRecipTableQ31[64];
  41. extern const float32_t twiddleCoef_16[32];
  42. extern const float32_t twiddleCoef_32[64];
  43. extern const float32_t twiddleCoef_64[128];
  44. extern const float32_t twiddleCoef_128[256];
  45. extern const float32_t twiddleCoef_256[512];
  46. extern const float32_t twiddleCoef_512[1024];
  47. extern const float32_t twiddleCoef_1024[2048];
  48. extern const float32_t twiddleCoef_2048[4096];
  49. extern const float32_t twiddleCoef_4096[8192];
  50. extern const q31_t twiddleCoef_16_q31[24];
  51. extern const q31_t twiddleCoef_32_q31[48];
  52. extern const q31_t twiddleCoef_64_q31[96];
  53. extern const q31_t twiddleCoef_128_q31[192];
  54. extern const q31_t twiddleCoef_256_q31[384];
  55. extern const q31_t twiddleCoef_512_q31[768];
  56. extern const q31_t twiddleCoef_1024_q31[1536];
  57. extern const q31_t twiddleCoef_2048_q31[3072];
  58. extern const q31_t twiddleCoef_4096_q31[6144];
  59. extern const q15_t twiddleCoef_16_q15[24];
  60. extern const q15_t twiddleCoef_32_q15[48];
  61. extern const q15_t twiddleCoef_64_q15[96];
  62. extern const q15_t twiddleCoef_128_q15[192];
  63. extern const q15_t twiddleCoef_256_q15[384];
  64. extern const q15_t twiddleCoef_512_q15[768];
  65. extern const q15_t twiddleCoef_1024_q15[1536];
  66. extern const q15_t twiddleCoef_2048_q15[3072];
  67. extern const q15_t twiddleCoef_4096_q15[6144];
  68. extern const float32_t twiddleCoef_rfft_32[32];
  69. extern const float32_t twiddleCoef_rfft_64[64];
  70. extern const float32_t twiddleCoef_rfft_128[128];
  71. extern const float32_t twiddleCoef_rfft_256[256];
  72. extern const float32_t twiddleCoef_rfft_512[512];
  73. extern const float32_t twiddleCoef_rfft_1024[1024];
  74. extern const float32_t twiddleCoef_rfft_2048[2048];
  75. extern const float32_t twiddleCoef_rfft_4096[4096];
  76. extern const float32_t twiddleCoef_rfft_8192[8192];
  77. extern const q15_t realCoefAQ15_8192[8192];
  78. extern const q31_t realCoefAQ31_8192[8192];
  79. /*Tables for RFFT.*/
  80. extern const q15_t ALIGN4 realCoefAQ15_32[32];
  81. extern const q15_t ALIGN4 realCoefAQ15_64[64];
  82. extern const q15_t ALIGN4 realCoefAQ15_128[128];
  83. extern const q15_t ALIGN4 realCoefAQ15_256[256];
  84. extern const q15_t ALIGN4 realCoefAQ15_512[512];
  85. extern const q15_t ALIGN4 realCoefAQ15_1024[1024];
  86. extern const q15_t ALIGN4 realCoefAQ15_2048[2048];
  87. extern const q15_t ALIGN4 realCoefAQ15_4096[4096];
  88. extern const q31_t realCoefAQ31_32[32];
  89. extern const q31_t realCoefAQ31_64[64];
  90. extern const q31_t realCoefAQ31_128[128];
  91. extern const q31_t realCoefAQ31_256[256];
  92. extern const q31_t realCoefAQ31_512[512];
  93. extern const q31_t realCoefAQ31_1024[1024];
  94. extern const q31_t realCoefAQ31_2048[2048];
  95. extern const q31_t realCoefAQ31_4096[4096];
  96. extern const float32_t realCoefA[8192];
  97. extern const float32_t realCoefB[8192];
  98. /*Tables for DCT4*/
  99. extern const q15_t ALIGN4 WeightsQ15_128[128+2];
  100. extern const q15_t ALIGN4 WeightsQ15_512[512+2];
  101. extern const q15_t ALIGN4 WeightsQ15_2048[2048+2];
  102. extern const q15_t ALIGN4 WeightsQ15_8192[8192+2];
  103. extern const q15_t ALIGN4 cos_factorsQ15_128[128];
  104. extern const q15_t ALIGN4 cos_factorsQ15_512[512];
  105. extern const q15_t ALIGN4 cos_factorsQ15_2048[2048];
  106. extern const q15_t ALIGN4 cos_factorsQ15_8192[8192];
  107. extern const q31_t WeightsQ31_128[128+2];
  108. extern const q31_t WeightsQ31_512[512+2];
  109. extern const q31_t WeightsQ31_2048[2048+2];
  110. extern const q31_t WeightsQ31_8192[8192+2];
  111. extern const q31_t cos_factorsQ31_128[128];
  112. extern const q31_t cos_factorsQ31_512[512];
  113. extern const q31_t cos_factorsQ31_2048[2048];
  114. extern const q31_t cos_factorsQ31_8192[8192];
  115. extern const float32_t Weights_128[128+2];
  116. extern const float32_t Weights_512[512+2];
  117. extern const float32_t Weights_2048[2048+2];
  118. extern const float32_t Weights_8192[8192+2];
  119. extern const float32_t cos_factors_128[128];
  120. extern const float32_t cos_factors_512[512];
  121. extern const float32_t cos_factors_2048[2048];
  122. extern const float32_t cos_factors_8192[8192];
  123. /* floating-point bit reversal tables */
  124. #define CSKYBITREVINDEXTABLE__16_TABLE_LENGTH ((uint16_t)20 )
  125. #define CSKYBITREVINDEXTABLE__32_TABLE_LENGTH ((uint16_t)48 )
  126. #define CSKYBITREVINDEXTABLE__64_TABLE_LENGTH ((uint16_t)56 )
  127. #define CSKYBITREVINDEXTABLE_128_TABLE_LENGTH ((uint16_t)208 )
  128. #define CSKYBITREVINDEXTABLE_256_TABLE_LENGTH ((uint16_t)440 )
  129. #define CSKYBITREVINDEXTABLE_512_TABLE_LENGTH ((uint16_t)448 )
  130. #define CSKYBITREVINDEXTABLE1024_TABLE_LENGTH ((uint16_t)1800)
  131. #define CSKYBITREVINDEXTABLE2048_TABLE_LENGTH ((uint16_t)3808)
  132. #define CSKYBITREVINDEXTABLE4096_TABLE_LENGTH ((uint16_t)4032)
  133. extern const uint16_t cskyBitRevIndexTable16[CSKYBITREVINDEXTABLE__16_TABLE_LENGTH];
  134. extern const uint16_t cskyBitRevIndexTable32[CSKYBITREVINDEXTABLE__32_TABLE_LENGTH];
  135. extern const uint16_t cskyBitRevIndexTable64[CSKYBITREVINDEXTABLE__64_TABLE_LENGTH];
  136. extern const uint16_t cskyBitRevIndexTable128[CSKYBITREVINDEXTABLE_128_TABLE_LENGTH];
  137. extern const uint16_t cskyBitRevIndexTable256[CSKYBITREVINDEXTABLE_256_TABLE_LENGTH];
  138. extern const uint16_t cskyBitRevIndexTable512[CSKYBITREVINDEXTABLE_512_TABLE_LENGTH];
  139. extern const uint16_t cskyBitRevIndexTable1024[CSKYBITREVINDEXTABLE1024_TABLE_LENGTH];
  140. extern const uint16_t cskyBitRevIndexTable2048[CSKYBITREVINDEXTABLE2048_TABLE_LENGTH];
  141. extern const uint16_t cskyBitRevIndexTable4096[CSKYBITREVINDEXTABLE4096_TABLE_LENGTH];
  142. /* fixed-point bit reversal tables */
  143. #define CSKYBITREVINDEXTABLE_FIXED___16_TABLE_LENGTH ((uint16_t)12 )
  144. #define CSKYBITREVINDEXTABLE_FIXED___32_TABLE_LENGTH ((uint16_t)24 )
  145. #define CSKYBITREVINDEXTABLE_FIXED___64_TABLE_LENGTH ((uint16_t)56 )
  146. #define CSKYBITREVINDEXTABLE_FIXED__128_TABLE_LENGTH ((uint16_t)112 )
  147. #define CSKYBITREVINDEXTABLE_FIXED__256_TABLE_LENGTH ((uint16_t)240 )
  148. #define CSKYBITREVINDEXTABLE_FIXED__512_TABLE_LENGTH ((uint16_t)480 )
  149. #define CSKYBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH ((uint16_t)992 )
  150. #define CSKYBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH ((uint16_t)1984)
  151. #define CSKYBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH ((uint16_t)4032)
  152. extern const uint16_t cskyBitRevIndexTable_fixed_16[CSKYBITREVINDEXTABLE_FIXED___16_TABLE_LENGTH];
  153. extern const uint16_t cskyBitRevIndexTable_fixed_32[CSKYBITREVINDEXTABLE_FIXED___32_TABLE_LENGTH];
  154. extern const uint16_t cskyBitRevIndexTable_fixed_64[CSKYBITREVINDEXTABLE_FIXED___64_TABLE_LENGTH];
  155. extern const uint16_t cskyBitRevIndexTable_fixed_128[CSKYBITREVINDEXTABLE_FIXED__128_TABLE_LENGTH];
  156. extern const uint16_t cskyBitRevIndexTable_fixed_256[CSKYBITREVINDEXTABLE_FIXED__256_TABLE_LENGTH];
  157. extern const uint16_t cskyBitRevIndexTable_fixed_512[CSKYBITREVINDEXTABLE_FIXED__512_TABLE_LENGTH];
  158. extern const uint16_t cskyBitRevIndexTable_fixed_1024[CSKYBITREVINDEXTABLE_FIXED_1024_TABLE_LENGTH];
  159. extern const uint16_t cskyBitRevIndexTable_fixed_2048[CSKYBITREVINDEXTABLE_FIXED_2048_TABLE_LENGTH];
  160. extern const uint16_t cskyBitRevIndexTable_fixed_4096[CSKYBITREVINDEXTABLE_FIXED_4096_TABLE_LENGTH];
  161. /* Tables for Fast Math Sine and Cosine */
  162. extern const float32_t sinTable_f32[FAST_MATH_TABLE_SIZE + 1];
  163. extern const q31_t sinTable_q31[FAST_MATH_TABLE_SIZE + 1];
  164. extern const q15_t sinTable_q15[FAST_MATH_TABLE_SIZE + 1];
  165. /*Table for Fast math pow*/
  166. extern const log2_cof1 ui;
  167. extern const log2_cof2 vj;
  168. extern const exp_cof1 coar;
  169. extern const exp_cof2 fine;
  170. /*Table for Fast math pow2*/
  171. extern const float64_t exp2_accuratetable[512];
  172. extern const float32_t exp2_deltatable[512];
  173. /*Table for Fast math pow2*/
  174. extern const mynumber Iu[182];
  175. extern const mynumber Iv[362];
  176. extern const mynumber Lu[182][2];
  177. extern const mynumber Lv[362][2];
  178. /*constant for Fast math*/
  179. const static mynumber
  180. nZERO = {{0, 0x80000000}}, /* -0.0 */
  181. INF = {{0x00000000, 0x7ff00000}}, /* INF */
  182. nINF = {{0x00000000, 0xfff00000}}, /* -INF */
  183. sqrt_2 = {{0x667f3bcc, 0x3ff6a09e}}, /* sqrt(2) */
  184. ln2a = {{0xfefa3800, 0x3fe62e42}}, /* ln(2) 43 bits */
  185. ln2b = {{0x93c76730, 0x3d2ef357}}, /* ln(2)-ln2a */
  186. bigu = {{0xfffffd2c, 0x4297ffff}}, /* 1.5*2**42 -724*2**-10 */
  187. bigv = {{0xfff8016a, 0x4207ffff}}, /* 1.5*2**33-1+362*2**-19 */
  188. t52 = {{0x00000000, 0x43300000}}, /* 2**52 */
  189. two52e = {{0x000003ff, 0x43300000}}, /* 2**52' */
  190. //nan = {{0x00000000, 0x7ff80000}}, /* NAN */
  191. t256 = {{0, 0x4ff00000}}, /* 2^256 */
  192. ln_two1 = {{0xFEFA3800, 0x3FE62E42}}, /* 0.69314718055989033 */
  193. ln_two2 = {{0x93C76730, 0x3D2EF357}}, /* 5.4979230187083712e-14*/
  194. log2e = {{0x652B82FE, 0x3FF71547}}, /* 1.4426950408889634 */
  195. ep2 = {{0x000004DC, 0x3FE00000}}, /* 0.50000000000013811 */
  196. ep3 = {{0x55555A0F, 0x3FC55555}}, /* 0.16666666666670024 */
  197. three33 = {{0, 0x42180000}}, /* 25769803776 */
  198. three51 = {{0, 0x43380000}}; /* 6755399441055744 */
  199. const static float64_t
  200. p2 = -0.5, p3 = 3.3333333333333333333e-1, p4 = -0.25,
  201. q2 = -0.5, q3 = 3.3333333333331404e-01, q4 = -2.4999999999996436e-01,
  202. q5 = 2.0000010500004459e-01, q6 = -1.6666678916688004e-01,
  203. r3 = 3.33333333333333333372884096563030E-01,
  204. r4 = -2.50000000000000000213574153875908E-01,
  205. r5 = 1.99999999999683593814072199830603E-01,
  206. r6 = -1.66666666666065494878165510225378E-01,
  207. r7 = 1.42857517857114380606360005067609E-01,
  208. r8 = -1.25000449999974370683775964001702E-01,
  209. s3 = 0.333251953125000000e0,
  210. ss3 = 8.138020833333333333e-05,
  211. s4 = -2.500000000000000000e-01,
  212. s5 = 1.999999999999960937e-01,
  213. s6 = -1.666666666666592447e-01,
  214. s7 = 1.428571845238194705e-01;
  215. // s8 = -1.250000500000149097e-01;
  216. const static float64_t huge = 1.0e300, tiny = 1.0e-300;
  217. const static float64_t err_0 = 1.000014, err_1 = 0.000016, zero = 0.0;
  218. const static q31_t bigint = 0x40862002,
  219. badint = 0x40876000, smallint = 0x3C8fffff;
  220. const static q31_t hugeint = 0x7fffffff, infint = 0x7ff00000;
  221. static const mynumber
  222. /* polynomial I */
  223. a2 = {{0x0001aa8f, 0xbfe00000} }, /* -0.500... */
  224. a3 = {{0x55588d2e, 0x3fd55555} }, /* 0.333... */
  225. /*polynomial II */
  226. b0 = {{0x55555555, 0x3fd55555} }, /* 0.333... */
  227. b1 = {{0xffffffbb, 0xbfcfffff} }, /* -0.249... */
  228. b2 = {{0x9999992f, 0x3fc99999} }, /* 0.199... */
  229. b3 = {{0x556503fd, 0xbfc55555} }, /* -0.166... */
  230. b4 = {{0x925b3d62, 0x3fc24924} }, /* 0.142... */
  231. b5 = {{0x160472fc, 0xbfbffffe} }, /* -0.124... */
  232. b6 = {{0x25db58ac, 0x3fbc71c5} }, /* 0.111... */
  233. b7 = {{0x11a2a61c, 0xbfb9a4ac} }, /* -0.100... */
  234. b8 = {{0x0df2b591, 0x3fb75077} }, /* 0.091... */
  235. /*polynomial III */
  236. c2 = {{0x00000000, 0xbfe00000} }, /* -1/2 */
  237. c3 = {{0x55555555, 0x3fd55555} }, /* 1/3 */
  238. c4 = {{0x00000000, 0xbfd00000} }, /* -1/4 */
  239. c5 = {{0x9999999a, 0x3fc99999} }, /* 1/5 */
  240. /*polynomial IV */
  241. d2 = {{0x00000000, 0xbfe00000} }, /* -1/2 */
  242. dd2 = {{0x00000000, 0x00000000} }, /* -1/2-d2 */
  243. d3 = {{0x55555555, 0x3fd55555} }, /* 1/3 */
  244. dd3 = {{0x55555555, 0x3c755555} }, /* 1/3-d3 */
  245. d4 = {{0x00000000, 0xbfd00000} }, /* -1/4 */
  246. dd4 = {{0x00000000, 0x00000000} }, /* -1/4-d4 */
  247. d5 = {{0x9999999a, 0x3fc99999} }, /* 1/5 */
  248. dd5 = {{0x9999999a, 0xbc699999} }, /* 1/5-d5 */
  249. d6 = {{0x55555555, 0xbfc55555} }, /* -1/6 */
  250. dd6 = {{0x55555555, 0xbc655555} }, /* -1/6-d6 */
  251. d7 = {{0x92492492, 0x3fc24924} }, /* 1/7 */
  252. dd7 = {{0x92492492, 0x3c624924} }, /* 1/7-d7 */
  253. d8 = {{0x00000000, 0xbfc00000} }, /* -1/8 */
  254. dd8 = {{0x00000000, 0x00000000} }, /* -1/8-d8 */
  255. d9 = {{0x1c71c71c, 0x3fbc71c7} }, /* 1/9 */
  256. dd9 = {{0x1c71c71c, 0x3c5c71c7} }, /* 1/9-d9 */
  257. d10 = {{0x9999999a, 0xbfb99999} }, /* -1/10 */
  258. dd10 = {{0x9999999a, 0x3c599999} }, /* -1/10-d10 */
  259. d11 = {{0x745d1746, 0x3fb745d1} }, /* 1/11 */
  260. d12 = {{0x55555555, 0xbfb55555} }, /* -1/12 */
  261. d13 = {{0x13b13b14, 0x3fb3b13b} }, /* 1/13 */
  262. d14 = {{0x92492492, 0xbfb24924} }, /* -1/14 */
  263. d15 = {{0x11111111, 0x3fb11111} }, /* 1/15 */
  264. d16 = {{0x00000000, 0xbfb00000} }, /* -1/16 */
  265. d17 = {{0x1e1e1e1e, 0x3fae1e1e} }, /* 1/17 */
  266. d18 = {{0x1c71c71c, 0xbfac71c7} }, /* -1/18 */
  267. d19 = {{0xbca1af28, 0x3faaf286} }, /* 1/19 */
  268. d20 = {{0x9999999a, 0xbfa99999} }, /* -1/20 */
  269. /*constants */
  270. h1 = {{0x00000000, 0x3fd2e000} }, /* 151/2**9 */
  271. h2 = {{0x00000000, 0x3f669000} }, /* 361/2**17 */
  272. delu = {{0x00000000, 0x3f700000} }, /* 1/2**8 */
  273. delv = {{0x00000000, 0x3ef00000} }, /* 1/2**16 */
  274. e1 = {{0x00000000, 0x3bbcc868} }, /* 6.095e-21 */
  275. e2 = {{0x00000000, 0x3c1138ce} }, /* 2.334e-19 */
  276. e3 = {{0x00000000, 0x3aa1565d} }, /* 2.801e-26 */
  277. e4 = {{0x00000000, 0x39809d88} }, /* 1.024e-31 */
  278. e[4] = {{{0x00000000, 0x37da223a} },/* 1.2e-39 */
  279. {{0x00000000, 0x35c851c4} }, /* 1.3e-49 */
  280. {{0x00000000, 0x2ab85e51} }, /* 6.8e-103 */
  281. {{0x00000000, 0x17383827} }},/* 8.1e-197 */
  282. two54 = {{0x00000000, 0x43500000} }, /* 2**54 */
  283. u03 = {{0xeb851eb8, 0x3f9eb851} }; /* 0.03 */
  284. #define SQRT_2 sqrt_2.x
  285. #define DEL_U delu.x
  286. #define DEL_V delv.x
  287. #define LN2A ln2a.x
  288. #define LN2B ln2b.x
  289. #define E1 e1.x
  290. #define E2 e2.x
  291. #define E3 e3.x
  292. #define E4 e4.x
  293. #define U03 u03.x
  294. #define HALF 0x1.0p-1 /* 1/2 */
  295. #define MHALF -0x1.0p-1 /* -1/2 */
  296. /*coeffient for log2 funtion*/
  297. static const float64_t
  298. ln2 = 0.69314718055994530942,
  299. two54_d = 1.80143985094819840000e+16, /* 43500000 00000000 */
  300. Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */
  301. Lg2 = 3.999999999940941908e-01, /* 3FD99999 9997FA04 */
  302. Lg3 = 2.857142874366239149e-01, /* 3FD24924 94229359 */
  303. Lg4 = 2.222219843214978396e-01, /* 3FCC71C5 1D8E78AF */
  304. Lg5 = 1.818357216161805012e-01, /* 3FC74664 96CB03DE */
  305. Lg6 = 1.531383769920937332e-01, /* 3FC39A09 D078C69F */
  306. Lg7 = 1.479819860511658591e-01; /* 3FC2F112 DF3E5244 */
  307. /*coeffient for log10 function*/
  308. static const float64_t
  309. ivln10 = 4.34294481903251816668e-01, /* 0x3FDBCB7B, 0x1526E50E */
  310. log10_2hi = 3.01029995663611771306e-01, /* 0x3FD34413, 0x509F6000 */
  311. log10_2lo = 3.69423907715893078616e-13; /* 0x3D59FEF3, 0x11F12B36 */
  312. /*constant for log10 function*/
  313. static const float64_t
  314. TWO1023 = 8.988465674311579539e+307,
  315. TWOM1000 = 9.3326361850321887899e-302;
  316. #endif /* CSKY_COMMON_TABLES_H */