multi_compress 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (219) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +13 -0
  3. data/LICENSE.txt +21 -0
  4. data/README.md +116 -0
  5. data/ext/multi_compress/extconf.rb +171 -0
  6. data/ext/multi_compress/multi_compress.c +1534 -0
  7. data/ext/multi_compress/vendor/brotli/c/common/constants.c +15 -0
  8. data/ext/multi_compress/vendor/brotli/c/common/constants.h +201 -0
  9. data/ext/multi_compress/vendor/brotli/c/common/context.c +156 -0
  10. data/ext/multi_compress/vendor/brotli/c/common/context.h +113 -0
  11. data/ext/multi_compress/vendor/brotli/c/common/dictionary.c +5916 -0
  12. data/ext/multi_compress/vendor/brotli/c/common/dictionary.h +64 -0
  13. data/ext/multi_compress/vendor/brotli/c/common/platform.c +23 -0
  14. data/ext/multi_compress/vendor/brotli/c/common/platform.h +541 -0
  15. data/ext/multi_compress/vendor/brotli/c/common/shared_dictionary.c +521 -0
  16. data/ext/multi_compress/vendor/brotli/c/common/shared_dictionary_internal.h +75 -0
  17. data/ext/multi_compress/vendor/brotli/c/common/transform.c +291 -0
  18. data/ext/multi_compress/vendor/brotli/c/common/transform.h +85 -0
  19. data/ext/multi_compress/vendor/brotli/c/common/version.h +51 -0
  20. data/ext/multi_compress/vendor/brotli/c/dec/bit_reader.c +78 -0
  21. data/ext/multi_compress/vendor/brotli/c/dec/bit_reader.h +423 -0
  22. data/ext/multi_compress/vendor/brotli/c/dec/decode.c +2875 -0
  23. data/ext/multi_compress/vendor/brotli/c/dec/huffman.c +342 -0
  24. data/ext/multi_compress/vendor/brotli/c/dec/huffman.h +122 -0
  25. data/ext/multi_compress/vendor/brotli/c/dec/prefix.h +733 -0
  26. data/ext/multi_compress/vendor/brotli/c/dec/state.c +183 -0
  27. data/ext/multi_compress/vendor/brotli/c/dec/state.h +400 -0
  28. data/ext/multi_compress/vendor/brotli/c/enc/backward_references.c +207 -0
  29. data/ext/multi_compress/vendor/brotli/c/enc/backward_references.h +40 -0
  30. data/ext/multi_compress/vendor/brotli/c/enc/backward_references_hq.c +939 -0
  31. data/ext/multi_compress/vendor/brotli/c/enc/backward_references_hq.h +96 -0
  32. data/ext/multi_compress/vendor/brotli/c/enc/backward_references_inc.h +189 -0
  33. data/ext/multi_compress/vendor/brotli/c/enc/bit_cost.c +36 -0
  34. data/ext/multi_compress/vendor/brotli/c/enc/bit_cost.h +64 -0
  35. data/ext/multi_compress/vendor/brotli/c/enc/bit_cost_inc.h +127 -0
  36. data/ext/multi_compress/vendor/brotli/c/enc/block_encoder_inc.h +34 -0
  37. data/ext/multi_compress/vendor/brotli/c/enc/block_splitter.c +217 -0
  38. data/ext/multi_compress/vendor/brotli/c/enc/block_splitter.h +52 -0
  39. data/ext/multi_compress/vendor/brotli/c/enc/block_splitter_inc.h +481 -0
  40. data/ext/multi_compress/vendor/brotli/c/enc/brotli_bit_stream.c +1336 -0
  41. data/ext/multi_compress/vendor/brotli/c/enc/brotli_bit_stream.h +89 -0
  42. data/ext/multi_compress/vendor/brotli/c/enc/cluster.c +57 -0
  43. data/ext/multi_compress/vendor/brotli/c/enc/cluster.h +49 -0
  44. data/ext/multi_compress/vendor/brotli/c/enc/cluster_inc.h +325 -0
  45. data/ext/multi_compress/vendor/brotli/c/enc/command.c +28 -0
  46. data/ext/multi_compress/vendor/brotli/c/enc/command.h +191 -0
  47. data/ext/multi_compress/vendor/brotli/c/enc/compound_dictionary.c +207 -0
  48. data/ext/multi_compress/vendor/brotli/c/enc/compound_dictionary.h +74 -0
  49. data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment.c +800 -0
  50. data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment.h +86 -0
  51. data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment_two_pass.c +657 -0
  52. data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment_two_pass.h +72 -0
  53. data/ext/multi_compress/vendor/brotli/c/enc/dictionary_hash.c +1848 -0
  54. data/ext/multi_compress/vendor/brotli/c/enc/dictionary_hash.h +25 -0
  55. data/ext/multi_compress/vendor/brotli/c/enc/encode.c +1996 -0
  56. data/ext/multi_compress/vendor/brotli/c/enc/encoder_dict.c +640 -0
  57. data/ext/multi_compress/vendor/brotli/c/enc/encoder_dict.h +157 -0
  58. data/ext/multi_compress/vendor/brotli/c/enc/entropy_encode.c +504 -0
  59. data/ext/multi_compress/vendor/brotli/c/enc/entropy_encode.h +123 -0
  60. data/ext/multi_compress/vendor/brotli/c/enc/entropy_encode_static.h +542 -0
  61. data/ext/multi_compress/vendor/brotli/c/enc/fast_log.c +105 -0
  62. data/ext/multi_compress/vendor/brotli/c/enc/fast_log.h +67 -0
  63. data/ext/multi_compress/vendor/brotli/c/enc/find_match_length.h +72 -0
  64. data/ext/multi_compress/vendor/brotli/c/enc/hash.h +728 -0
  65. data/ext/multi_compress/vendor/brotli/c/enc/hash_composite_inc.h +140 -0
  66. data/ext/multi_compress/vendor/brotli/c/enc/hash_forgetful_chain_inc.h +295 -0
  67. data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match64_inc.h +262 -0
  68. data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match_inc.h +258 -0
  69. data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match_quickly_inc.h +266 -0
  70. data/ext/multi_compress/vendor/brotli/c/enc/hash_rolling_inc.h +212 -0
  71. data/ext/multi_compress/vendor/brotli/c/enc/hash_to_binary_tree_inc.h +330 -0
  72. data/ext/multi_compress/vendor/brotli/c/enc/histogram.c +100 -0
  73. data/ext/multi_compress/vendor/brotli/c/enc/histogram.h +64 -0
  74. data/ext/multi_compress/vendor/brotli/c/enc/histogram_inc.h +51 -0
  75. data/ext/multi_compress/vendor/brotli/c/enc/literal_cost.c +180 -0
  76. data/ext/multi_compress/vendor/brotli/c/enc/literal_cost.h +32 -0
  77. data/ext/multi_compress/vendor/brotli/c/enc/memory.c +194 -0
  78. data/ext/multi_compress/vendor/brotli/c/enc/memory.h +131 -0
  79. data/ext/multi_compress/vendor/brotli/c/enc/metablock.c +677 -0
  80. data/ext/multi_compress/vendor/brotli/c/enc/metablock.h +106 -0
  81. data/ext/multi_compress/vendor/brotli/c/enc/metablock_inc.h +185 -0
  82. data/ext/multi_compress/vendor/brotli/c/enc/params.h +47 -0
  83. data/ext/multi_compress/vendor/brotli/c/enc/prefix.h +54 -0
  84. data/ext/multi_compress/vendor/brotli/c/enc/quality.h +202 -0
  85. data/ext/multi_compress/vendor/brotli/c/enc/ringbuffer.h +168 -0
  86. data/ext/multi_compress/vendor/brotli/c/enc/state.h +104 -0
  87. data/ext/multi_compress/vendor/brotli/c/enc/static_dict.c +542 -0
  88. data/ext/multi_compress/vendor/brotli/c/enc/static_dict.h +41 -0
  89. data/ext/multi_compress/vendor/brotli/c/enc/static_dict_lut.h +5866 -0
  90. data/ext/multi_compress/vendor/brotli/c/enc/utf8_util.c +85 -0
  91. data/ext/multi_compress/vendor/brotli/c/enc/utf8_util.h +33 -0
  92. data/ext/multi_compress/vendor/brotli/c/enc/write_bits.h +88 -0
  93. data/ext/multi_compress/vendor/brotli/c/include/brotli/decode.h +409 -0
  94. data/ext/multi_compress/vendor/brotli/c/include/brotli/encode.h +501 -0
  95. data/ext/multi_compress/vendor/brotli/c/include/brotli/port.h +305 -0
  96. data/ext/multi_compress/vendor/brotli/c/include/brotli/shared_dictionary.h +100 -0
  97. data/ext/multi_compress/vendor/brotli/c/include/brotli/types.h +83 -0
  98. data/ext/multi_compress/vendor/lz4/lib/LICENSE +24 -0
  99. data/ext/multi_compress/vendor/lz4/lib/Makefile +244 -0
  100. data/ext/multi_compress/vendor/lz4/lib/README.md +193 -0
  101. data/ext/multi_compress/vendor/lz4/lib/dll/example/Makefile +63 -0
  102. data/ext/multi_compress/vendor/lz4/lib/dll/example/README.md +69 -0
  103. data/ext/multi_compress/vendor/lz4/lib/dll/example/fullbench-dll.sln +25 -0
  104. data/ext/multi_compress/vendor/lz4/lib/dll/example/fullbench-dll.vcxproj +182 -0
  105. data/ext/multi_compress/vendor/lz4/lib/liblz4-dll.rc.in +35 -0
  106. data/ext/multi_compress/vendor/lz4/lib/liblz4.pc.in +14 -0
  107. data/ext/multi_compress/vendor/lz4/lib/lz4.c +2829 -0
  108. data/ext/multi_compress/vendor/lz4/lib/lz4.h +884 -0
  109. data/ext/multi_compress/vendor/lz4/lib/lz4file.c +341 -0
  110. data/ext/multi_compress/vendor/lz4/lib/lz4file.h +93 -0
  111. data/ext/multi_compress/vendor/lz4/lib/lz4frame.c +2136 -0
  112. data/ext/multi_compress/vendor/lz4/lib/lz4frame.h +751 -0
  113. data/ext/multi_compress/vendor/lz4/lib/lz4frame_static.h +47 -0
  114. data/ext/multi_compress/vendor/lz4/lib/lz4hc.c +2192 -0
  115. data/ext/multi_compress/vendor/lz4/lib/lz4hc.h +414 -0
  116. data/ext/multi_compress/vendor/lz4/lib/xxhash.c +1030 -0
  117. data/ext/multi_compress/vendor/lz4/lib/xxhash.h +328 -0
  118. data/ext/multi_compress/vendor/zstd/lib/BUCK +232 -0
  119. data/ext/multi_compress/vendor/zstd/lib/Makefile +369 -0
  120. data/ext/multi_compress/vendor/zstd/lib/README.md +237 -0
  121. data/ext/multi_compress/vendor/zstd/lib/common/allocations.h +55 -0
  122. data/ext/multi_compress/vendor/zstd/lib/common/bits.h +200 -0
  123. data/ext/multi_compress/vendor/zstd/lib/common/bitstream.h +457 -0
  124. data/ext/multi_compress/vendor/zstd/lib/common/compiler.h +450 -0
  125. data/ext/multi_compress/vendor/zstd/lib/common/cpu.h +249 -0
  126. data/ext/multi_compress/vendor/zstd/lib/common/debug.c +30 -0
  127. data/ext/multi_compress/vendor/zstd/lib/common/debug.h +116 -0
  128. data/ext/multi_compress/vendor/zstd/lib/common/entropy_common.c +340 -0
  129. data/ext/multi_compress/vendor/zstd/lib/common/error_private.c +63 -0
  130. data/ext/multi_compress/vendor/zstd/lib/common/error_private.h +168 -0
  131. data/ext/multi_compress/vendor/zstd/lib/common/fse.h +640 -0
  132. data/ext/multi_compress/vendor/zstd/lib/common/fse_decompress.c +313 -0
  133. data/ext/multi_compress/vendor/zstd/lib/common/huf.h +286 -0
  134. data/ext/multi_compress/vendor/zstd/lib/common/mem.h +426 -0
  135. data/ext/multi_compress/vendor/zstd/lib/common/pool.c +371 -0
  136. data/ext/multi_compress/vendor/zstd/lib/common/pool.h +90 -0
  137. data/ext/multi_compress/vendor/zstd/lib/common/portability_macros.h +158 -0
  138. data/ext/multi_compress/vendor/zstd/lib/common/threading.c +182 -0
  139. data/ext/multi_compress/vendor/zstd/lib/common/threading.h +150 -0
  140. data/ext/multi_compress/vendor/zstd/lib/common/xxhash.c +18 -0
  141. data/ext/multi_compress/vendor/zstd/lib/common/xxhash.h +7020 -0
  142. data/ext/multi_compress/vendor/zstd/lib/common/zstd_common.c +48 -0
  143. data/ext/multi_compress/vendor/zstd/lib/common/zstd_deps.h +111 -0
  144. data/ext/multi_compress/vendor/zstd/lib/common/zstd_internal.h +392 -0
  145. data/ext/multi_compress/vendor/zstd/lib/common/zstd_trace.h +163 -0
  146. data/ext/multi_compress/vendor/zstd/lib/compress/clevels.h +134 -0
  147. data/ext/multi_compress/vendor/zstd/lib/compress/fse_compress.c +625 -0
  148. data/ext/multi_compress/vendor/zstd/lib/compress/hist.c +181 -0
  149. data/ext/multi_compress/vendor/zstd/lib/compress/hist.h +75 -0
  150. data/ext/multi_compress/vendor/zstd/lib/compress/huf_compress.c +1464 -0
  151. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress.c +7153 -0
  152. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_internal.h +1534 -0
  153. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_literals.c +235 -0
  154. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_literals.h +39 -0
  155. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_sequences.c +442 -0
  156. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_sequences.h +54 -0
  157. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_superblock.c +688 -0
  158. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_superblock.h +32 -0
  159. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_cwksp.h +748 -0
  160. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_double_fast.c +770 -0
  161. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_double_fast.h +50 -0
  162. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_fast.c +968 -0
  163. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_fast.h +38 -0
  164. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_lazy.c +2199 -0
  165. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_lazy.h +202 -0
  166. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_ldm.c +730 -0
  167. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_ldm.h +117 -0
  168. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_ldm_geartab.h +106 -0
  169. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_opt.c +1576 -0
  170. data/ext/multi_compress/vendor/zstd/lib/compress/zstd_opt.h +80 -0
  171. data/ext/multi_compress/vendor/zstd/lib/compress/zstdmt_compress.c +1882 -0
  172. data/ext/multi_compress/vendor/zstd/lib/compress/zstdmt_compress.h +113 -0
  173. data/ext/multi_compress/vendor/zstd/lib/decompress/huf_decompress.c +1944 -0
  174. data/ext/multi_compress/vendor/zstd/lib/decompress/huf_decompress_amd64.S +595 -0
  175. data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_ddict.c +244 -0
  176. data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_ddict.h +44 -0
  177. data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress.c +2407 -0
  178. data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress_block.c +2215 -0
  179. data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress_block.h +73 -0
  180. data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress_internal.h +240 -0
  181. data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff.h +214 -0
  182. data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff_common.c +26 -0
  183. data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff_compress.c +167 -0
  184. data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff_decompress.c +77 -0
  185. data/ext/multi_compress/vendor/zstd/lib/dictBuilder/cover.c +1261 -0
  186. data/ext/multi_compress/vendor/zstd/lib/dictBuilder/cover.h +152 -0
  187. data/ext/multi_compress/vendor/zstd/lib/dictBuilder/divsufsort.c +1913 -0
  188. data/ext/multi_compress/vendor/zstd/lib/dictBuilder/divsufsort.h +67 -0
  189. data/ext/multi_compress/vendor/zstd/lib/dictBuilder/fastcover.c +766 -0
  190. data/ext/multi_compress/vendor/zstd/lib/dictBuilder/zdict.c +1133 -0
  191. data/ext/multi_compress/vendor/zstd/lib/dll/example/Makefile +48 -0
  192. data/ext/multi_compress/vendor/zstd/lib/dll/example/README.md +63 -0
  193. data/ext/multi_compress/vendor/zstd/lib/dll/example/build_package.bat +20 -0
  194. data/ext/multi_compress/vendor/zstd/lib/dll/example/fullbench-dll.sln +25 -0
  195. data/ext/multi_compress/vendor/zstd/lib/dll/example/fullbench-dll.vcxproj +181 -0
  196. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_legacy.h +452 -0
  197. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v01.c +2127 -0
  198. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v01.h +94 -0
  199. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v02.c +3465 -0
  200. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v02.h +93 -0
  201. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v03.c +3105 -0
  202. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v03.h +93 -0
  203. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v04.c +3598 -0
  204. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v04.h +142 -0
  205. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v05.c +4005 -0
  206. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v05.h +162 -0
  207. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v06.c +4106 -0
  208. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v06.h +172 -0
  209. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v07.c +4490 -0
  210. data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v07.h +187 -0
  211. data/ext/multi_compress/vendor/zstd/lib/libzstd.mk +237 -0
  212. data/ext/multi_compress/vendor/zstd/lib/libzstd.pc.in +16 -0
  213. data/ext/multi_compress/vendor/zstd/lib/module.modulemap +35 -0
  214. data/ext/multi_compress/vendor/zstd/lib/zdict.h +474 -0
  215. data/ext/multi_compress/vendor/zstd/lib/zstd.h +3089 -0
  216. data/ext/multi_compress/vendor/zstd/lib/zstd_errors.h +114 -0
  217. data/lib/multi_compress/version.rb +5 -0
  218. data/lib/multi_compress.rb +329 -0
  219. metadata +322 -0
@@ -0,0 +1,105 @@
1
+ /* Copyright 2013 Google Inc. All Rights Reserved.
2
+
3
+ Distributed under MIT license.
4
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+ */
6
+
7
+ #include "fast_log.h"
8
+
9
+ #if defined(__cplusplus) || defined(c_plusplus)
10
+ extern "C" {
11
+ #endif
12
+
13
+ /* ", ".join(["%.16ff" % x for x in [0.0]+[log2(x) for x in range(1, 256)]]) */
14
+ const double kBrotliLog2Table[BROTLI_LOG2_TABLE_SIZE] = {
15
+ 0.0000000000000000f, 0.0000000000000000f, 1.0000000000000000f,
16
+ 1.5849625007211563f, 2.0000000000000000f, 2.3219280948873622f,
17
+ 2.5849625007211561f, 2.8073549220576042f, 3.0000000000000000f,
18
+ 3.1699250014423126f, 3.3219280948873626f, 3.4594316186372978f,
19
+ 3.5849625007211565f, 3.7004397181410922f, 3.8073549220576037f,
20
+ 3.9068905956085187f, 4.0000000000000000f, 4.0874628412503400f,
21
+ 4.1699250014423122f, 4.2479275134435852f, 4.3219280948873626f,
22
+ 4.3923174227787607f, 4.4594316186372973f, 4.5235619560570131f,
23
+ 4.5849625007211570f, 4.6438561897747244f, 4.7004397181410926f,
24
+ 4.7548875021634691f, 4.8073549220576037f, 4.8579809951275728f,
25
+ 4.9068905956085187f, 4.9541963103868758f, 5.0000000000000000f,
26
+ 5.0443941193584534f, 5.0874628412503400f, 5.1292830169449664f,
27
+ 5.1699250014423122f, 5.2094533656289501f, 5.2479275134435852f,
28
+ 5.2854022188622487f, 5.3219280948873626f, 5.3575520046180838f,
29
+ 5.3923174227787607f, 5.4262647547020979f, 5.4594316186372973f,
30
+ 5.4918530963296748f, 5.5235619560570131f, 5.5545888516776376f,
31
+ 5.5849625007211570f, 5.6147098441152083f, 5.6438561897747244f,
32
+ 5.6724253419714961f, 5.7004397181410926f, 5.7279204545631996f,
33
+ 5.7548875021634691f, 5.7813597135246599f, 5.8073549220576046f,
34
+ 5.8328900141647422f, 5.8579809951275719f, 5.8826430493618416f,
35
+ 5.9068905956085187f, 5.9307373375628867f, 5.9541963103868758f,
36
+ 5.9772799234999168f, 6.0000000000000000f, 6.0223678130284544f,
37
+ 6.0443941193584534f, 6.0660891904577721f, 6.0874628412503400f,
38
+ 6.1085244567781700f, 6.1292830169449672f, 6.1497471195046822f,
39
+ 6.1699250014423122f, 6.1898245588800176f, 6.2094533656289510f,
40
+ 6.2288186904958804f, 6.2479275134435861f, 6.2667865406949019f,
41
+ 6.2854022188622487f, 6.3037807481771031f, 6.3219280948873617f,
42
+ 6.3398500028846252f, 6.3575520046180847f, 6.3750394313469254f,
43
+ 6.3923174227787598f, 6.4093909361377026f, 6.4262647547020979f,
44
+ 6.4429434958487288f, 6.4594316186372982f, 6.4757334309663976f,
45
+ 6.4918530963296748f, 6.5077946401986964f, 6.5235619560570131f,
46
+ 6.5391588111080319f, 6.5545888516776376f, 6.5698556083309478f,
47
+ 6.5849625007211561f, 6.5999128421871278f, 6.6147098441152092f,
48
+ 6.6293566200796095f, 6.6438561897747253f, 6.6582114827517955f,
49
+ 6.6724253419714952f, 6.6865005271832185f, 6.7004397181410917f,
50
+ 6.7142455176661224f, 6.7279204545631988f, 6.7414669864011465f,
51
+ 6.7548875021634691f, 6.7681843247769260f, 6.7813597135246599f,
52
+ 6.7944158663501062f, 6.8073549220576037f, 6.8201789624151887f,
53
+ 6.8328900141647422f, 6.8454900509443757f, 6.8579809951275719f,
54
+ 6.8703647195834048f, 6.8826430493618416f, 6.8948177633079437f,
55
+ 6.9068905956085187f, 6.9188632372745955f, 6.9307373375628867f,
56
+ 6.9425145053392399f, 6.9541963103868758f, 6.9657842846620879f,
57
+ 6.9772799234999168f, 6.9886846867721664f, 7.0000000000000000f,
58
+ 7.0112272554232540f, 7.0223678130284544f, 7.0334230015374501f,
59
+ 7.0443941193584534f, 7.0552824355011898f, 7.0660891904577721f,
60
+ 7.0768155970508317f, 7.0874628412503400f, 7.0980320829605272f,
61
+ 7.1085244567781700f, 7.1189410727235076f, 7.1292830169449664f,
62
+ 7.1395513523987937f, 7.1497471195046822f, 7.1598713367783891f,
63
+ 7.1699250014423130f, 7.1799090900149345f, 7.1898245588800176f,
64
+ 7.1996723448363644f, 7.2094533656289492f, 7.2191685204621621f,
65
+ 7.2288186904958804f, 7.2384047393250794f, 7.2479275134435861f,
66
+ 7.2573878426926521f, 7.2667865406949019f, 7.2761244052742384f,
67
+ 7.2854022188622487f, 7.2946207488916270f, 7.3037807481771031f,
68
+ 7.3128829552843557f, 7.3219280948873617f, 7.3309168781146177f,
69
+ 7.3398500028846243f, 7.3487281542310781f, 7.3575520046180847f,
70
+ 7.3663222142458151f, 7.3750394313469254f, 7.3837042924740528f,
71
+ 7.3923174227787607f, 7.4008794362821844f, 7.4093909361377026f,
72
+ 7.4178525148858991f, 7.4262647547020979f, 7.4346282276367255f,
73
+ 7.4429434958487288f, 7.4512111118323299f, 7.4594316186372973f,
74
+ 7.4676055500829976f, 7.4757334309663976f, 7.4838157772642564f,
75
+ 7.4918530963296748f, 7.4998458870832057f, 7.5077946401986964f,
76
+ 7.5156998382840436f, 7.5235619560570131f, 7.5313814605163119f,
77
+ 7.5391588111080319f, 7.5468944598876373f, 7.5545888516776376f,
78
+ 7.5622424242210728f, 7.5698556083309478f, 7.5774288280357487f,
79
+ 7.5849625007211561f, 7.5924570372680806f, 7.5999128421871278f,
80
+ 7.6073303137496113f, 7.6147098441152075f, 7.6220518194563764f,
81
+ 7.6293566200796095f, 7.6366246205436488f, 7.6438561897747244f,
82
+ 7.6510516911789290f, 7.6582114827517955f, 7.6653359171851765f,
83
+ 7.6724253419714952f, 7.6794800995054464f, 7.6865005271832185f,
84
+ 7.6934869574993252f, 7.7004397181410926f, 7.7073591320808825f,
85
+ 7.7142455176661224f, 7.7210991887071856f, 7.7279204545631996f,
86
+ 7.7347096202258392f, 7.7414669864011465f, 7.7481928495894596f,
87
+ 7.7548875021634691f, 7.7615512324444795f, 7.7681843247769260f,
88
+ 7.7747870596011737f, 7.7813597135246608f, 7.7879025593914317f,
89
+ 7.7944158663501062f, 7.8008998999203047f, 7.8073549220576037f,
90
+ 7.8137811912170374f, 7.8201789624151887f, 7.8265484872909159f,
91
+ 7.8328900141647422f, 7.8392037880969445f, 7.8454900509443757f,
92
+ 7.8517490414160571f, 7.8579809951275719f, 7.8641861446542798f,
93
+ 7.8703647195834048f, 7.8765169465650002f, 7.8826430493618425f,
94
+ 7.8887432488982601f, 7.8948177633079446f, 7.9008668079807496f,
95
+ 7.9068905956085187f, 7.9128893362299619f, 7.9188632372745955f,
96
+ 7.9248125036057813f, 7.9307373375628867f, 7.9366379390025719f,
97
+ 7.9425145053392399f, 7.9483672315846778f, 7.9541963103868758f,
98
+ 7.9600019320680806f, 7.9657842846620870f, 7.9715435539507720f,
99
+ 7.9772799234999168f, 7.9829935746943104f, 7.9886846867721664f,
100
+ 7.9943534368588578f
101
+ };
102
+
103
+ #if defined(__cplusplus) || defined(c_plusplus)
104
+ } /* extern "C" */
105
+ #endif
@@ -0,0 +1,67 @@
1
+ /* Copyright 2013 Google Inc. All Rights Reserved.
2
+
3
+ Distributed under MIT license.
4
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+ */
6
+
7
+ /* Utilities for fast computation of logarithms. */
8
+
9
+ #ifndef BROTLI_ENC_FAST_LOG_H_
10
+ #define BROTLI_ENC_FAST_LOG_H_
11
+
12
+ #include <math.h>
13
+
14
+ #include <brotli/types.h>
15
+
16
+ #include "../common/platform.h"
17
+
18
+ #if defined(__cplusplus) || defined(c_plusplus)
19
+ extern "C" {
20
+ #endif
21
+
22
+ static BROTLI_INLINE uint32_t Log2FloorNonZero(size_t n) {
23
+ #if defined(BROTLI_BSR32)
24
+ return BROTLI_BSR32((uint32_t)n);
25
+ #else
26
+ uint32_t result = 0;
27
+ while (n >>= 1) result++;
28
+ return result;
29
+ #endif
30
+ }
31
+
32
+ #define BROTLI_LOG2_TABLE_SIZE 256
33
+
34
+ /* A lookup table for small values of log2(int) to be used in entropy
35
+ computation. */
36
+ BROTLI_INTERNAL extern const double kBrotliLog2Table[BROTLI_LOG2_TABLE_SIZE];
37
+
38
+ /* Visual Studio 2012 and Android API levels < 18 do not have the log2()
39
+ * function defined, so we use log() and a multiplication instead. */
40
+ #if !defined(BROTLI_HAVE_LOG2)
41
+ #if ((defined(_MSC_VER) && _MSC_VER <= 1700) || \
42
+ (defined(__ANDROID_API__) && __ANDROID_API__ < 18))
43
+ #define BROTLI_HAVE_LOG2 0
44
+ #else
45
+ #define BROTLI_HAVE_LOG2 1
46
+ #endif
47
+ #endif
48
+
49
+ #define LOG_2_INV 1.4426950408889634
50
+
51
+ /* Faster logarithm for small integers, with the property of log2(0) == 0. */
52
+ static BROTLI_INLINE double FastLog2(size_t v) {
53
+ if (v < BROTLI_LOG2_TABLE_SIZE) {
54
+ return kBrotliLog2Table[v];
55
+ }
56
+ #if !(BROTLI_HAVE_LOG2)
57
+ return log((double)v) * LOG_2_INV;
58
+ #else
59
+ return log2((double)v);
60
+ #endif
61
+ }
62
+
63
+ #if defined(__cplusplus) || defined(c_plusplus)
64
+ } /* extern "C" */
65
+ #endif
66
+
67
+ #endif /* BROTLI_ENC_FAST_LOG_H_ */
@@ -0,0 +1,72 @@
1
+ /* Copyright 2010 Google Inc. All Rights Reserved.
2
+
3
+ Distributed under MIT license.
4
+ See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+ */
6
+
7
+ /* Function to find maximal matching prefixes of strings. */
8
+
9
+ #ifndef BROTLI_ENC_FIND_MATCH_LENGTH_H_
10
+ #define BROTLI_ENC_FIND_MATCH_LENGTH_H_
11
+
12
+ #include <brotli/types.h>
13
+
14
+ #include "../common/platform.h"
15
+
16
+ #if defined(__cplusplus) || defined(c_plusplus)
17
+ extern "C" {
18
+ #endif
19
+
20
+ /* Separate implementation for little-endian 64-bit targets, for speed. */
21
+ #if defined(BROTLI_TZCNT64) && BROTLI_64_BITS && BROTLI_LITTLE_ENDIAN
22
+ static BROTLI_INLINE size_t FindMatchLengthWithLimit(const uint8_t* s1,
23
+ const uint8_t* s2,
24
+ size_t limit) {
25
+ const uint8_t *s1_orig = s1;
26
+ for (; limit >= 8; limit -= 8) {
27
+ uint64_t x = BROTLI_UNALIGNED_LOAD64LE(s2) ^
28
+ BROTLI_UNALIGNED_LOAD64LE(s1);
29
+ s2 += 8;
30
+ if (x != 0) {
31
+ size_t matching_bits = (size_t)BROTLI_TZCNT64(x);
32
+ return (size_t)(s1 - s1_orig) + (matching_bits >> 3);
33
+ }
34
+ s1 += 8;
35
+ }
36
+ while (limit && *s1 == *s2) {
37
+ limit--;
38
+ ++s2;
39
+ ++s1;
40
+ }
41
+ return (size_t)(s1 - s1_orig);
42
+ }
43
+ #else
44
+ static BROTLI_INLINE size_t FindMatchLengthWithLimit(const uint8_t* s1,
45
+ const uint8_t* s2,
46
+ size_t limit) {
47
+ size_t matched = 0;
48
+ const uint8_t* s2_limit = s2 + limit;
49
+ const uint8_t* s2_ptr = s2;
50
+ /* Find out how long the match is. We loop over the data 32 bits at a
51
+ time until we find a 32-bit block that doesn't match; then we find
52
+ the first non-matching bit and use that to calculate the total
53
+ length of the match. */
54
+ while (s2_ptr <= s2_limit - 4 &&
55
+ BrotliUnalignedRead32(s2_ptr) ==
56
+ BrotliUnalignedRead32(s1 + matched)) {
57
+ s2_ptr += 4;
58
+ matched += 4;
59
+ }
60
+ while ((s2_ptr < s2_limit) && (s1[matched] == *s2_ptr)) {
61
+ ++s2_ptr;
62
+ ++matched;
63
+ }
64
+ return matched;
65
+ }
66
+ #endif
67
+
68
+ #if defined(__cplusplus) || defined(c_plusplus)
69
+ } /* extern "C" */
70
+ #endif
71
+
72
+ #endif /* BROTLI_ENC_FIND_MATCH_LENGTH_H_ */