#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 */