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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +13 -0
- data/LICENSE.txt +21 -0
- data/README.md +116 -0
- data/ext/multi_compress/extconf.rb +171 -0
- data/ext/multi_compress/multi_compress.c +1534 -0
- data/ext/multi_compress/vendor/brotli/c/common/constants.c +15 -0
- data/ext/multi_compress/vendor/brotli/c/common/constants.h +201 -0
- data/ext/multi_compress/vendor/brotli/c/common/context.c +156 -0
- data/ext/multi_compress/vendor/brotli/c/common/context.h +113 -0
- data/ext/multi_compress/vendor/brotli/c/common/dictionary.c +5916 -0
- data/ext/multi_compress/vendor/brotli/c/common/dictionary.h +64 -0
- data/ext/multi_compress/vendor/brotli/c/common/platform.c +23 -0
- data/ext/multi_compress/vendor/brotli/c/common/platform.h +541 -0
- data/ext/multi_compress/vendor/brotli/c/common/shared_dictionary.c +521 -0
- data/ext/multi_compress/vendor/brotli/c/common/shared_dictionary_internal.h +75 -0
- data/ext/multi_compress/vendor/brotli/c/common/transform.c +291 -0
- data/ext/multi_compress/vendor/brotli/c/common/transform.h +85 -0
- data/ext/multi_compress/vendor/brotli/c/common/version.h +51 -0
- data/ext/multi_compress/vendor/brotli/c/dec/bit_reader.c +78 -0
- data/ext/multi_compress/vendor/brotli/c/dec/bit_reader.h +423 -0
- data/ext/multi_compress/vendor/brotli/c/dec/decode.c +2875 -0
- data/ext/multi_compress/vendor/brotli/c/dec/huffman.c +342 -0
- data/ext/multi_compress/vendor/brotli/c/dec/huffman.h +122 -0
- data/ext/multi_compress/vendor/brotli/c/dec/prefix.h +733 -0
- data/ext/multi_compress/vendor/brotli/c/dec/state.c +183 -0
- data/ext/multi_compress/vendor/brotli/c/dec/state.h +400 -0
- data/ext/multi_compress/vendor/brotli/c/enc/backward_references.c +207 -0
- data/ext/multi_compress/vendor/brotli/c/enc/backward_references.h +40 -0
- data/ext/multi_compress/vendor/brotli/c/enc/backward_references_hq.c +939 -0
- data/ext/multi_compress/vendor/brotli/c/enc/backward_references_hq.h +96 -0
- data/ext/multi_compress/vendor/brotli/c/enc/backward_references_inc.h +189 -0
- data/ext/multi_compress/vendor/brotli/c/enc/bit_cost.c +36 -0
- data/ext/multi_compress/vendor/brotli/c/enc/bit_cost.h +64 -0
- data/ext/multi_compress/vendor/brotli/c/enc/bit_cost_inc.h +127 -0
- data/ext/multi_compress/vendor/brotli/c/enc/block_encoder_inc.h +34 -0
- data/ext/multi_compress/vendor/brotli/c/enc/block_splitter.c +217 -0
- data/ext/multi_compress/vendor/brotli/c/enc/block_splitter.h +52 -0
- data/ext/multi_compress/vendor/brotli/c/enc/block_splitter_inc.h +481 -0
- data/ext/multi_compress/vendor/brotli/c/enc/brotli_bit_stream.c +1336 -0
- data/ext/multi_compress/vendor/brotli/c/enc/brotli_bit_stream.h +89 -0
- data/ext/multi_compress/vendor/brotli/c/enc/cluster.c +57 -0
- data/ext/multi_compress/vendor/brotli/c/enc/cluster.h +49 -0
- data/ext/multi_compress/vendor/brotli/c/enc/cluster_inc.h +325 -0
- data/ext/multi_compress/vendor/brotli/c/enc/command.c +28 -0
- data/ext/multi_compress/vendor/brotli/c/enc/command.h +191 -0
- data/ext/multi_compress/vendor/brotli/c/enc/compound_dictionary.c +207 -0
- data/ext/multi_compress/vendor/brotli/c/enc/compound_dictionary.h +74 -0
- data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment.c +800 -0
- data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment.h +86 -0
- data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment_two_pass.c +657 -0
- data/ext/multi_compress/vendor/brotli/c/enc/compress_fragment_two_pass.h +72 -0
- data/ext/multi_compress/vendor/brotli/c/enc/dictionary_hash.c +1848 -0
- data/ext/multi_compress/vendor/brotli/c/enc/dictionary_hash.h +25 -0
- data/ext/multi_compress/vendor/brotli/c/enc/encode.c +1996 -0
- data/ext/multi_compress/vendor/brotli/c/enc/encoder_dict.c +640 -0
- data/ext/multi_compress/vendor/brotli/c/enc/encoder_dict.h +157 -0
- data/ext/multi_compress/vendor/brotli/c/enc/entropy_encode.c +504 -0
- data/ext/multi_compress/vendor/brotli/c/enc/entropy_encode.h +123 -0
- data/ext/multi_compress/vendor/brotli/c/enc/entropy_encode_static.h +542 -0
- data/ext/multi_compress/vendor/brotli/c/enc/fast_log.c +105 -0
- data/ext/multi_compress/vendor/brotli/c/enc/fast_log.h +67 -0
- data/ext/multi_compress/vendor/brotli/c/enc/find_match_length.h +72 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash.h +728 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_composite_inc.h +140 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_forgetful_chain_inc.h +295 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match64_inc.h +262 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match_inc.h +258 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_longest_match_quickly_inc.h +266 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_rolling_inc.h +212 -0
- data/ext/multi_compress/vendor/brotli/c/enc/hash_to_binary_tree_inc.h +330 -0
- data/ext/multi_compress/vendor/brotli/c/enc/histogram.c +100 -0
- data/ext/multi_compress/vendor/brotli/c/enc/histogram.h +64 -0
- data/ext/multi_compress/vendor/brotli/c/enc/histogram_inc.h +51 -0
- data/ext/multi_compress/vendor/brotli/c/enc/literal_cost.c +180 -0
- data/ext/multi_compress/vendor/brotli/c/enc/literal_cost.h +32 -0
- data/ext/multi_compress/vendor/brotli/c/enc/memory.c +194 -0
- data/ext/multi_compress/vendor/brotli/c/enc/memory.h +131 -0
- data/ext/multi_compress/vendor/brotli/c/enc/metablock.c +677 -0
- data/ext/multi_compress/vendor/brotli/c/enc/metablock.h +106 -0
- data/ext/multi_compress/vendor/brotli/c/enc/metablock_inc.h +185 -0
- data/ext/multi_compress/vendor/brotli/c/enc/params.h +47 -0
- data/ext/multi_compress/vendor/brotli/c/enc/prefix.h +54 -0
- data/ext/multi_compress/vendor/brotli/c/enc/quality.h +202 -0
- data/ext/multi_compress/vendor/brotli/c/enc/ringbuffer.h +168 -0
- data/ext/multi_compress/vendor/brotli/c/enc/state.h +104 -0
- data/ext/multi_compress/vendor/brotli/c/enc/static_dict.c +542 -0
- data/ext/multi_compress/vendor/brotli/c/enc/static_dict.h +41 -0
- data/ext/multi_compress/vendor/brotli/c/enc/static_dict_lut.h +5866 -0
- data/ext/multi_compress/vendor/brotli/c/enc/utf8_util.c +85 -0
- data/ext/multi_compress/vendor/brotli/c/enc/utf8_util.h +33 -0
- data/ext/multi_compress/vendor/brotli/c/enc/write_bits.h +88 -0
- data/ext/multi_compress/vendor/brotli/c/include/brotli/decode.h +409 -0
- data/ext/multi_compress/vendor/brotli/c/include/brotli/encode.h +501 -0
- data/ext/multi_compress/vendor/brotli/c/include/brotli/port.h +305 -0
- data/ext/multi_compress/vendor/brotli/c/include/brotli/shared_dictionary.h +100 -0
- data/ext/multi_compress/vendor/brotli/c/include/brotli/types.h +83 -0
- data/ext/multi_compress/vendor/lz4/lib/LICENSE +24 -0
- data/ext/multi_compress/vendor/lz4/lib/Makefile +244 -0
- data/ext/multi_compress/vendor/lz4/lib/README.md +193 -0
- data/ext/multi_compress/vendor/lz4/lib/dll/example/Makefile +63 -0
- data/ext/multi_compress/vendor/lz4/lib/dll/example/README.md +69 -0
- data/ext/multi_compress/vendor/lz4/lib/dll/example/fullbench-dll.sln +25 -0
- data/ext/multi_compress/vendor/lz4/lib/dll/example/fullbench-dll.vcxproj +182 -0
- data/ext/multi_compress/vendor/lz4/lib/liblz4-dll.rc.in +35 -0
- data/ext/multi_compress/vendor/lz4/lib/liblz4.pc.in +14 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4.c +2829 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4.h +884 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4file.c +341 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4file.h +93 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4frame.c +2136 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4frame.h +751 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4frame_static.h +47 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4hc.c +2192 -0
- data/ext/multi_compress/vendor/lz4/lib/lz4hc.h +414 -0
- data/ext/multi_compress/vendor/lz4/lib/xxhash.c +1030 -0
- data/ext/multi_compress/vendor/lz4/lib/xxhash.h +328 -0
- data/ext/multi_compress/vendor/zstd/lib/BUCK +232 -0
- data/ext/multi_compress/vendor/zstd/lib/Makefile +369 -0
- data/ext/multi_compress/vendor/zstd/lib/README.md +237 -0
- data/ext/multi_compress/vendor/zstd/lib/common/allocations.h +55 -0
- data/ext/multi_compress/vendor/zstd/lib/common/bits.h +200 -0
- data/ext/multi_compress/vendor/zstd/lib/common/bitstream.h +457 -0
- data/ext/multi_compress/vendor/zstd/lib/common/compiler.h +450 -0
- data/ext/multi_compress/vendor/zstd/lib/common/cpu.h +249 -0
- data/ext/multi_compress/vendor/zstd/lib/common/debug.c +30 -0
- data/ext/multi_compress/vendor/zstd/lib/common/debug.h +116 -0
- data/ext/multi_compress/vendor/zstd/lib/common/entropy_common.c +340 -0
- data/ext/multi_compress/vendor/zstd/lib/common/error_private.c +63 -0
- data/ext/multi_compress/vendor/zstd/lib/common/error_private.h +168 -0
- data/ext/multi_compress/vendor/zstd/lib/common/fse.h +640 -0
- data/ext/multi_compress/vendor/zstd/lib/common/fse_decompress.c +313 -0
- data/ext/multi_compress/vendor/zstd/lib/common/huf.h +286 -0
- data/ext/multi_compress/vendor/zstd/lib/common/mem.h +426 -0
- data/ext/multi_compress/vendor/zstd/lib/common/pool.c +371 -0
- data/ext/multi_compress/vendor/zstd/lib/common/pool.h +90 -0
- data/ext/multi_compress/vendor/zstd/lib/common/portability_macros.h +158 -0
- data/ext/multi_compress/vendor/zstd/lib/common/threading.c +182 -0
- data/ext/multi_compress/vendor/zstd/lib/common/threading.h +150 -0
- data/ext/multi_compress/vendor/zstd/lib/common/xxhash.c +18 -0
- data/ext/multi_compress/vendor/zstd/lib/common/xxhash.h +7020 -0
- data/ext/multi_compress/vendor/zstd/lib/common/zstd_common.c +48 -0
- data/ext/multi_compress/vendor/zstd/lib/common/zstd_deps.h +111 -0
- data/ext/multi_compress/vendor/zstd/lib/common/zstd_internal.h +392 -0
- data/ext/multi_compress/vendor/zstd/lib/common/zstd_trace.h +163 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/clevels.h +134 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/fse_compress.c +625 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/hist.c +181 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/hist.h +75 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/huf_compress.c +1464 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress.c +7153 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_internal.h +1534 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_literals.c +235 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_literals.h +39 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_sequences.c +442 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_sequences.h +54 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_superblock.c +688 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_compress_superblock.h +32 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_cwksp.h +748 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_double_fast.c +770 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_double_fast.h +50 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_fast.c +968 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_fast.h +38 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_lazy.c +2199 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_lazy.h +202 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_ldm.c +730 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_ldm.h +117 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_ldm_geartab.h +106 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_opt.c +1576 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstd_opt.h +80 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstdmt_compress.c +1882 -0
- data/ext/multi_compress/vendor/zstd/lib/compress/zstdmt_compress.h +113 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/huf_decompress.c +1944 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/huf_decompress_amd64.S +595 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_ddict.c +244 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_ddict.h +44 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress.c +2407 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress_block.c +2215 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress_block.h +73 -0
- data/ext/multi_compress/vendor/zstd/lib/decompress/zstd_decompress_internal.h +240 -0
- data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff.h +214 -0
- data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff_common.c +26 -0
- data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff_compress.c +167 -0
- data/ext/multi_compress/vendor/zstd/lib/deprecated/zbuff_decompress.c +77 -0
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/cover.c +1261 -0
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/cover.h +152 -0
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/divsufsort.c +1913 -0
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/divsufsort.h +67 -0
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/fastcover.c +766 -0
- data/ext/multi_compress/vendor/zstd/lib/dictBuilder/zdict.c +1133 -0
- data/ext/multi_compress/vendor/zstd/lib/dll/example/Makefile +48 -0
- data/ext/multi_compress/vendor/zstd/lib/dll/example/README.md +63 -0
- data/ext/multi_compress/vendor/zstd/lib/dll/example/build_package.bat +20 -0
- data/ext/multi_compress/vendor/zstd/lib/dll/example/fullbench-dll.sln +25 -0
- data/ext/multi_compress/vendor/zstd/lib/dll/example/fullbench-dll.vcxproj +181 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_legacy.h +452 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v01.c +2127 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v01.h +94 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v02.c +3465 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v02.h +93 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v03.c +3105 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v03.h +93 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v04.c +3598 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v04.h +142 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v05.c +4005 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v05.h +162 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v06.c +4106 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v06.h +172 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v07.c +4490 -0
- data/ext/multi_compress/vendor/zstd/lib/legacy/zstd_v07.h +187 -0
- data/ext/multi_compress/vendor/zstd/lib/libzstd.mk +237 -0
- data/ext/multi_compress/vendor/zstd/lib/libzstd.pc.in +16 -0
- data/ext/multi_compress/vendor/zstd/lib/module.modulemap +35 -0
- data/ext/multi_compress/vendor/zstd/lib/zdict.h +474 -0
- data/ext/multi_compress/vendor/zstd/lib/zstd.h +3089 -0
- data/ext/multi_compress/vendor/zstd/lib/zstd_errors.h +114 -0
- data/lib/multi_compress/version.rb +5 -0
- data/lib/multi_compress.rb +329 -0
- 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_ */
|