| /* |
| * Copyright (c) Yann Collet, Facebook, Inc. |
| * All rights reserved. |
| * |
| * This source code is licensed under both the BSD-style license (found in the |
| * LICENSE file in the root directory of this source tree) and the GPLv2 (found |
| * in the COPYING file in the root directory of this source tree). |
| * You may select, at your option, one of the above-listed licenses. |
| */ |
| |
| #ifndef ZSTD_COMPRESS_SEQUENCES_H |
| #define ZSTD_COMPRESS_SEQUENCES_H |
| |
| #include "../common/fse.h" /* FSE_repeat, FSE_CTable */ |
| #include "../common/zstd_internal.h" /* symbolEncodingType_e, ZSTD_strategy */ |
| |
| typedef enum { |
| ZSTD_defaultDisallowed = 0, |
| ZSTD_defaultAllowed = 1 |
| } ZSTD_defaultPolicy_e; |
| |
| symbolEncodingType_e |
| ZSTD_selectEncodingType( |
| FSE_repeat* repeatMode, unsigned const* count, unsigned const max, |
| size_t const mostFrequent, size_t nbSeq, unsigned const FSELog, |
| FSE_CTable const* prevCTable, |
| short const* defaultNorm, U32 defaultNormLog, |
| ZSTD_defaultPolicy_e const isDefaultAllowed, |
| ZSTD_strategy const strategy); |
| |
| size_t |
| ZSTD_buildCTable(void* dst, size_t dstCapacity, |
| FSE_CTable* nextCTable, U32 FSELog, symbolEncodingType_e type, |
| unsigned* count, U32 max, |
| const BYTE* codeTable, size_t nbSeq, |
| const S16* defaultNorm, U32 defaultNormLog, U32 defaultMax, |
| const FSE_CTable* prevCTable, size_t prevCTableSize, |
| void* entropyWorkspace, size_t entropyWorkspaceSize); |
| |
| size_t ZSTD_encodeSequences( |
| void* dst, size_t dstCapacity, |
| FSE_CTable const* CTable_MatchLength, BYTE const* mlCodeTable, |
| FSE_CTable const* CTable_OffsetBits, BYTE const* ofCodeTable, |
| FSE_CTable const* CTable_LitLength, BYTE const* llCodeTable, |
| seqDef const* sequences, size_t nbSeq, int longOffsets, int bmi2); |
| |
| size_t ZSTD_fseBitCost( |
| FSE_CTable const* ctable, |
| unsigned const* count, |
| unsigned const max); |
| |
| size_t ZSTD_crossEntropyCost(short const* norm, unsigned accuracyLog, |
| unsigned const* count, unsigned const max); |
| #endif /* ZSTD_COMPRESS_SEQUENCES_H */ |