65 const int disableLiteralsCompression,
66 void* workspace,
size_t wkspSize)
68 BYTE*
const wkspStart = (
BYTE*)workspace;
69 BYTE*
const wkspEnd = wkspStart + wkspSize;
70 BYTE*
const countWkspStart = wkspStart;
71 unsigned*
const countWksp = (
unsigned*)workspace;
72 const size_t countWkspSize = (HUF_SYMBOLVALUE_MAX + 1) *
sizeof(
unsigned);
73 BYTE*
const nodeWksp = countWkspStart + countWkspSize;
74 const size_t nodeWkspSize = wkspEnd-nodeWksp;
75 unsigned maxSymbolValue = 255;
76 unsigned huffLog = HUF_TABLELOG_DEFAULT;
79 DEBUGLOG(5,
"ZSTD_buildSuperBlockEntropy_literal (srcSize=%zu)", srcSize);
82 memcpy(nextHuf, prevHuf,
sizeof(*prevHuf));
84 if (disableLiteralsCompression) {
91# define COMPRESS_LITERALS_SIZE_MIN 63
93 if (srcSize <= minLitSize) {
94 DEBUGLOG(5,
"set_basic - too small");
101 {
size_t const largest =
HIST_count_wksp (countWksp, &maxSymbolValue, (
const BYTE*)
src, srcSize, workspace, wkspSize);
103 if (largest == srcSize) {
108 if (largest <= (srcSize >> 7)+4) {
124 maxSymbolValue, huffLog,
125 nodeWksp, nodeWkspSize);
127 huffLog = (
U32)maxBits;
130 (HUF_CElt*)nextHuf->
CTable, countWksp, maxSymbolValue);
133 (HUF_CElt*)nextHuf->
CTable, maxSymbolValue, huffLog);
135 if (
repeat != HUF_repeat_none) {
137 (HUF_CElt
const*)prevHuf->
CTable, countWksp, maxSymbolValue);
138 if (oldCSize < srcSize && (oldCSize <= hSize + newCSize || hSize + 12 >= srcSize)) {
139 DEBUGLOG(5,
"set_repeat - smaller");
140 memcpy(nextHuf, prevHuf,
sizeof(*prevHuf));
145 if (newCSize + hSize >= srcSize) {
146 DEBUGLOG(5,
"set_basic - no gains");
147 memcpy(nextHuf, prevHuf,
sizeof(*prevHuf));
151 DEBUGLOG(5,
"set_compressed (hSize=%u)", (
U32)hSize);
166 const ZSTD_CCtx_params* cctxParams,
168 void* workspace,
size_t wkspSize)
170 BYTE*
const wkspStart = (
BYTE*)workspace;
171 BYTE*
const wkspEnd = wkspStart + wkspSize;
172 BYTE*
const countWkspStart = wkspStart;
173 unsigned*
const countWksp = (
unsigned*)workspace;
174 const size_t countWkspSize = (
MaxSeq + 1) *
sizeof(
unsigned);
175 BYTE*
const cTableWksp = countWkspStart + countWkspSize;
176 const size_t cTableWkspSize = wkspEnd-cTableWksp;
181 const BYTE*
const ofCodeTable = seqStorePtr->
ofCode;
182 const BYTE*
const llCodeTable = seqStorePtr->
llCode;
183 const BYTE*
const mlCodeTable = seqStorePtr->
mlCode;
189 assert(cTableWkspSize >= (1 <<
MaxFSELog) *
sizeof(FSE_FUNCTION_TYPE));
190 DEBUGLOG(5,
"ZSTD_buildSuperBlockEntropy_sequences (nbSeq=%zu)", nbSeq);
191 memset(workspace, 0, wkspSize);
199 size_t const mostFrequent =
HIST_countFast_wksp(countWksp, &
max, llCodeTable, nbSeq, workspace, wkspSize);
203 countWksp,
max, mostFrequent, nbSeq,
208 assert(!(LLtype < set_compressed && nextEntropy->litlength_repeatMode != FSE_repeat_none));
212 cTableWksp, cTableWkspSize);
222 size_t const mostFrequent =
HIST_countFast_wksp(countWksp, &
max, ofCodeTable, nbSeq, workspace, wkspSize);
228 countWksp,
max, mostFrequent, nbSeq,
231 defaultPolicy, strategy);
232 assert(!(Offtype < set_compressed && nextEntropy->offcode_repeatMode != FSE_repeat_none));
236 cTableWksp, cTableWkspSize);
246 size_t const mostFrequent =
HIST_countFast_wksp(countWksp, &
max, mlCodeTable, nbSeq, workspace, wkspSize);
247 DEBUGLOG(5,
"Building ML table (remaining space : %i)", (
int)(oend-
op));
250 countWksp,
max, mostFrequent, nbSeq,
254 assert(!(MLtype < set_compressed && nextEntropy->matchlength_repeatMode != FSE_repeat_none));
258 cTableWksp, cTableWkspSize);
277 const ZSTD_CCtx_params* cctxParams,
279 void* workspace,
size_t wkspSize)
281 size_t const litSize = seqStorePtr->
lit - seqStorePtr->
litStart;
282 DEBUGLOG(5,
"ZSTD_buildSuperBlockEntropy");
285 &prevEntropy->
huf, &nextEntropy->
huf,
288 workspace, wkspSize);
292 &prevEntropy->
fse, &nextEntropy->
fse,
295 workspace, wkspSize);
321 const BYTE* literals,
size_t litSize,
322 void*
dst,
size_t dstSize,
323 const int bmi2,
int writeEntropy,
int* entropyWritten)
325 size_t const header = writeEntropy ? 200 : 0;
326 size_t const lhSize = 3 + (litSize >= (1
KB -
header)) + (litSize >= (16
KB -
header));
328 BYTE*
const oend = ostart + dstSize;
329 BYTE*
op = ostart + lhSize;
330 U32 const singleStream = lhSize == 3;
336 DEBUGLOG(5,
"ZSTD_compressSubBlock_literal (litSize=%zu, lhSize=%zu, writeEntropy=%d)", litSize, lhSize, writeEntropy);
340 DEBUGLOG(5,
"ZSTD_compressSubBlock_literal using raw literal");
343 DEBUGLOG(5,
"ZSTD_compressSubBlock_literal using rle literal");
367 if (!writeEntropy && cLitSize >= litSize) {
368 DEBUGLOG(5,
"ZSTD_compressSubBlock_literal using raw literal because uncompressible");
372 if (lhSize < (
size_t)(3 + (cLitSize >= 1
KB) + (cLitSize >= 16
KB))) {
373 assert(cLitSize > litSize);
374 DEBUGLOG(5,
"Literals expanded beyond allowed header size");
377 DEBUGLOG(5,
"ZSTD_compressSubBlock_literal (cSize=%zu)", cSize);
384 {
U32 const lhc = hType + ((!singleStream) << 2) + ((
U32)litSize<<4) + ((
U32)cLitSize<<14);
389 {
U32 const lhc = hType + (2 << 2) + ((
U32)litSize<<4) + ((
U32)cLitSize<<18);
394 {
U32 const lhc = hType + (3 << 2) + ((
U32)litSize<<4) + ((
U32)cLitSize<<22);
396 ostart[4] = (
BYTE)(cLitSize >> 10);
403 DEBUGLOG(5,
"Compressed literals: %u -> %u", (
U32)litSize, (
U32)(
op-ostart));
411 size_t matchLengthSum = 0;
412 size_t litLengthSum = 0;
419 assert(litLengthSum <= litSize);
421 assert(litLengthSum == litSize);
423 return matchLengthSum + litSize;
439 const BYTE* llCode,
const BYTE* mlCode,
const BYTE* ofCode,
440 const ZSTD_CCtx_params* cctxParams,
441 void*
dst,
size_t dstCapacity,
442 const int bmi2,
int writeEntropy,
int* entropyWritten)
446 BYTE*
const oend = ostart + dstCapacity;
450 DEBUGLOG(5,
"ZSTD_compressSubBlock_sequences (nbSeq=%zu, writeEntropy=%d, longOffsets=%d)", nbSeq, writeEntropy, longOffsets);
455 dstSize_tooSmall,
"");
469 DEBUGLOG(5,
"ZSTD_compressSubBlock_sequences (seqHeadSize=%u)", (
unsigned)(
op-ostart));
476 *seqHead = (
BYTE)((LLtype<<6) + (Offtype<<4) + (MLtype<<2));
501#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
505 DEBUGLOG(5,
"Avoiding bug in zstd decoder in versions <= 1.3.4 by "
506 "emitting an uncompressed block.");
510 DEBUGLOG(5,
"ZSTD_compressSubBlock_sequences (bitstreamSize=%zu)", bitstreamSize);
520#ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
521 if (
op-seqHead < 4) {
522 DEBUGLOG(5,
"Avoiding bug in zstd decoder in versions <= 1.4.0 by emitting "
523 "an uncompressed block when sequences are < 4 bytes");
539 const BYTE* literals,
size_t litSize,
540 const BYTE* llCode,
const BYTE* mlCode,
const BYTE* ofCode,
541 const ZSTD_CCtx_params* cctxParams,
542 void*
dst,
size_t dstCapacity,
544 int writeLitEntropy,
int writeSeqEntropy,
545 int* litEntropyWritten,
int* seqEntropyWritten,
549 BYTE*
const oend = ostart + dstCapacity;
551 DEBUGLOG(5,
"ZSTD_compressSubBlock (litSize=%zu, nbSeq=%zu, writeLitEntropy=%d, writeSeqEntropy=%d, lastBlock=%d)",
552 litSize, nbSeq, writeLitEntropy, writeSeqEntropy, lastBlock);
555 op, oend-
op, bmi2, writeLitEntropy, litEntropyWritten);
557 if (cLitSize == 0)
return 0;
563 llCode, mlCode, ofCode,
566 bmi2, writeSeqEntropy, seqEntropyWritten);
568 if (cSeqSize == 0)
return 0;
582 void* workspace,
size_t wkspSize,
585 unsigned*
const countWksp = (
unsigned*)workspace;
586 unsigned maxSymbolValue = 255;
587 size_t literalSectionHeaderSize = 3;
592 size_t const largest =
HIST_count_wksp (countWksp, &maxSymbolValue, (
const BYTE*)literals, litSize, workspace, wkspSize);
595 if (writeEntropy) cLitSizeEstimate += hufMetadata->
hufDesSize;
596 return cLitSizeEstimate + literalSectionHeaderSize;
603 const BYTE* codeTable,
unsigned maxCode,
605 const U32* additionalBits,
606 short const* defaultNorm,
U32 defaultNormLog,
607 void* workspace,
size_t wkspSize)
609 unsigned*
const countWksp = (
unsigned*)workspace;
610 const BYTE* ctp = codeTable;
611 const BYTE*
const ctStart = ctp;
612 const BYTE*
const ctEnd = ctStart + nbSeq;
613 size_t cSymbolTypeSizeEstimateInBits = 0;
614 unsigned max = maxCode;
620 cSymbolTypeSizeEstimateInBits = 0;
624 if (
ZSTD_isError(cSymbolTypeSizeEstimateInBits))
return nbSeq * 10;
625 while (ctp < ctEnd) {
626 if (additionalBits) cSymbolTypeSizeEstimateInBits += additionalBits[*ctp];
627 else cSymbolTypeSizeEstimateInBits += *ctp;
630 return cSymbolTypeSizeEstimateInBits / 8;
634 const BYTE* llCodeTable,
635 const BYTE* mlCodeTable,
639 void* workspace,
size_t wkspSize,
642 size_t sequencesSectionHeaderSize = 3;
643 size_t cSeqSizeEstimate = 0;
647 workspace, wkspSize);
651 workspace, wkspSize);
655 workspace, wkspSize);
656 if (writeEntropy) cSeqSizeEstimate += fseMetadata->
fseTablesSize;
657 return cSeqSizeEstimate + sequencesSectionHeaderSize;
661 const BYTE* ofCodeTable,
662 const BYTE* llCodeTable,
663 const BYTE* mlCodeTable,
667 void* workspace,
size_t wkspSize,
668 int writeLitEntropy,
int writeSeqEntropy) {
669 size_t cSizeEstimate = 0;
672 workspace, wkspSize, writeLitEntropy);
675 workspace, wkspSize, writeSeqEntropy);
701 const ZSTD_CCtx_params* cctxParams,
702 void*
dst,
size_t dstCapacity,
703 const void*
src,
size_t srcSize,
704 const int bmi2,
U32 lastBlock,
705 void* workspace,
size_t wkspSize)
711 const BYTE*
const lend = seqStorePtr->
lit;
712 const BYTE* lp = lstart;
714 BYTE const*
const iend =
ip + srcSize;
716 BYTE*
const oend = ostart + dstCapacity;
721 size_t targetCBlockSize = cctxParams->targetCBlockSize;
722 size_t litSize, seqCount;
724 int writeSeqEntropy = 1;
725 int lastSequence = 0;
727 DEBUGLOG(5,
"ZSTD_compressSubBlock_multi (litSize=%u, nbSeq=%u)",
728 (
unsigned)(lend-lp), (
unsigned)(
send-sstart));
733 size_t cBlockSizeEstimate = 0;
734 if (sstart ==
send) {
744 assert(litSize <= (
size_t)(lend - lp));
745 litSize = (
size_t)(lend - lp);
753 &nextCBlock->
entropy, entropyMetadata,
754 workspace, wkspSize, writeLitEntropy, writeSeqEntropy);
755 if (cBlockSizeEstimate > targetCBlockSize || lastSequence) {
756 int litEntropyWritten = 0;
757 int seqEntropyWritten = 0;
762 llCodePtr, mlCodePtr, ofCodePtr,
765 bmi2, writeLitEntropy, writeSeqEntropy,
766 &litEntropyWritten, &seqEntropyWritten,
767 lastBlock && lastSequence);
769 if (cSize > 0 && cSize < decompressedSize) {
770 DEBUGLOG(5,
"Committed the sub-block");
771 assert(
ip + decompressedSize <= iend);
772 ip += decompressedSize;
776 llCodePtr += seqCount;
777 mlCodePtr += seqCount;
778 ofCodePtr += seqCount;
782 if (litEntropyWritten) {
785 if (seqEntropyWritten) {
790 }
while (!lastSequence);
791 if (writeLitEntropy) {
792 DEBUGLOG(5,
"ZSTD_compressSubBlock_multi has literal entropy tables unwritten");
799 DEBUGLOG(5,
"ZSTD_compressSubBlock_multi has sequence entropy tables unwritten");
804 DEBUGLOG(5,
"ZSTD_compressSubBlock_multi last sub-block uncompressed, %zu bytes", (
size_t)(iend -
ip));
812 memcpy(&rep, prevCBlock->
rep,
sizeof(rep));
813 for (seq = sstart; seq <
sp; ++seq) {
816 memcpy(nextCBlock->
rep, &rep,
sizeof(rep));
819 DEBUGLOG(5,
"ZSTD_compressSubBlock_multi compressed");
824 void*
dst,
size_t dstCapacity,
825 void const*
src,
size_t srcSize,
826 unsigned lastBlock) {
#define STREAM_ACCUMULATOR_MIN
INT WSAAPI send(IN SOCKET s, IN CONST CHAR FAR *buf, IN INT len, IN INT flags)
MEM_STATIC void MEM_writeLE16(void *memPtr, U16 val)
MEM_STATIC void MEM_writeLE32(void *memPtr, U32 val32)
MEM_STATIC void MEM_writeLE24(void *memPtr, U32 val)
ERR_STATIC unsigned ERR_isError(size_t code)
GLuint GLuint GLsizei GLenum type
size_t HIST_count_wksp(unsigned *count, unsigned *maxSymbolValuePtr, const void *source, size_t sourceSize, void *workSpace, size_t workSpaceSize)
size_t HIST_countFast_wksp(unsigned *count, unsigned *maxSymbolValuePtr, const void *source, size_t sourceSize, void *workSpace, size_t workSpaceSize)
#define HUF_WORKSPACE_SIZE
int HUF_validateCTable(const HUF_CElt *CTable, const unsigned *count, unsigned maxSymbolValue)
size_t HUF_compress4X_usingCTable(void *dst, size_t dstSize, const void *src, size_t srcSize, const HUF_CElt *CTable)
unsigned HUF_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue)
size_t HUF_writeCTable(void *dst, size_t maxDstSize, const HUF_CElt *CTable, unsigned maxSymbolValue, unsigned huffLog)
size_t HUF_compress1X_usingCTable(void *dst, size_t dstSize, const void *src, size_t srcSize, const HUF_CElt *CTable)
size_t HUF_estimateCompressedSize(const HUF_CElt *CTable, const unsigned *count, unsigned maxSymbolValue)
size_t HUF_buildCTable_wksp(HUF_CElt *tree, const unsigned *count, U32 maxSymbolValue, U32 maxNbBits, void *workSpace, size_t wkspSize)
#define memcpy(s1, s2, n)
ZSTD_CCtx_params appliedParams
ZSTD_blockState_t blockState
ZSTD_compressedBlockState_t * prevCBlock
ZSTD_compressedBlockState_t * nextCBlock
ZSTD_entropyCTables_t entropy
FSE_repeat matchlength_repeatMode
FSE_CTable offcodeCTable[FSE_CTABLE_SIZE_U32(OffFSELog, MaxOff)]
FSE_repeat offcode_repeatMode
FSE_CTable litlengthCTable[FSE_CTABLE_SIZE_U32(LLFSELog, MaxLL)]
FSE_repeat litlength_repeatMode
FSE_CTable matchlengthCTable[FSE_CTABLE_SIZE_U32(MLFSELog, MaxML)]
U32 CTable[HUF_CTABLE_SIZE_U32(255)]
ZSTDLIB_API const char * ZSTD_getErrorName(size_t code)
void ZSTD_seqToCodes(const seqStore_t *seqStorePtr)
MEM_STATIC size_t ZSTD_noCompressBlock(void *dst, size_t dstCapacity, const void *src, size_t srcSize, U32 lastBlock)
MEM_STATIC repcodes_t ZSTD_updateRep(U32 const rep[3], U32 const offset, U32 const ll0)
MEM_STATIC int ZSTD_disableLiteralsCompression(const ZSTD_CCtx_params *cctxParams)
size_t ZSTD_noCompressLiterals(void *dst, size_t dstCapacity, const void *src, size_t srcSize)
size_t ZSTD_compressRleLiteralsBlock(void *dst, size_t dstCapacity, const void *src, size_t srcSize)
size_t ZSTD_crossEntropyCost(short const *norm, unsigned accuracyLog, unsigned const *count, unsigned const max)
size_t ZSTD_fseBitCost(FSE_CTable const *ctable, unsigned const *count, unsigned const max)
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)
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_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)
static size_t ZSTD_buildSuperBlockEntropy_literal(void *const src, size_t srcSize, const ZSTD_hufCTables_t *prevHuf, ZSTD_hufCTables_t *nextHuf, ZSTD_hufCTablesMetadata_t *hufMetadata, const int disableLiteralsCompression, void *workspace, size_t wkspSize)
static size_t ZSTD_estimateSubBlockSize_symbolType(symbolEncodingType_e type, const BYTE *codeTable, unsigned maxCode, size_t nbSeq, const FSE_CTable *fseCTable, const U32 *additionalBits, short const *defaultNorm, U32 defaultNormLog, void *workspace, size_t wkspSize)
static size_t ZSTD_compressSubBlock_literal(const HUF_CElt *hufTable, const ZSTD_hufCTablesMetadata_t *hufMetadata, const BYTE *literals, size_t litSize, void *dst, size_t dstSize, const int bmi2, int writeEntropy, int *entropyWritten)
static size_t ZSTD_estimateSubBlockSize_sequences(const BYTE *ofCodeTable, const BYTE *llCodeTable, const BYTE *mlCodeTable, size_t nbSeq, const ZSTD_fseCTables_t *fseTables, const ZSTD_fseCTablesMetadata_t *fseMetadata, void *workspace, size_t wkspSize, int writeEntropy)
static int ZSTD_needSequenceEntropyTables(ZSTD_fseCTablesMetadata_t const *fseMetadata)
static size_t ZSTD_estimateSubBlockSize_literal(const BYTE *literals, size_t litSize, const ZSTD_hufCTables_t *huf, const ZSTD_hufCTablesMetadata_t *hufMetadata, void *workspace, size_t wkspSize, int writeEntropy)
static size_t ZSTD_estimateSubBlockSize(const BYTE *literals, size_t litSize, const BYTE *ofCodeTable, const BYTE *llCodeTable, const BYTE *mlCodeTable, size_t nbSeq, const ZSTD_entropyCTables_t *entropy, const ZSTD_entropyCTablesMetadata_t *entropyMetadata, void *workspace, size_t wkspSize, int writeLitEntropy, int writeSeqEntropy)
#define COMPRESS_LITERALS_SIZE_MIN
static size_t ZSTD_buildSuperBlockEntropy(seqStore_t *seqStorePtr, const ZSTD_entropyCTables_t *prevEntropy, ZSTD_entropyCTables_t *nextEntropy, const ZSTD_CCtx_params *cctxParams, ZSTD_entropyCTablesMetadata_t *entropyMetadata, void *workspace, size_t wkspSize)
static size_t ZSTD_seqDecompressedSize(seqStore_t const *seqStore, const seqDef *sequences, size_t nbSeq, size_t litSize, int lastSequence)
static size_t ZSTD_compressSubBlock_sequences(const ZSTD_fseCTables_t *fseTables, const ZSTD_fseCTablesMetadata_t *fseMetadata, const seqDef *sequences, size_t nbSeq, const BYTE *llCode, const BYTE *mlCode, const BYTE *ofCode, const ZSTD_CCtx_params *cctxParams, void *dst, size_t dstCapacity, const int bmi2, int writeEntropy, int *entropyWritten)
static size_t ZSTD_compressSubBlock(const ZSTD_entropyCTables_t *entropy, const ZSTD_entropyCTablesMetadata_t *entropyMetadata, const seqDef *sequences, size_t nbSeq, const BYTE *literals, size_t litSize, const BYTE *llCode, const BYTE *mlCode, const BYTE *ofCode, const ZSTD_CCtx_params *cctxParams, void *dst, size_t dstCapacity, const int bmi2, int writeLitEntropy, int writeSeqEntropy, int *litEntropyWritten, int *seqEntropyWritten, U32 lastBlock)
static size_t ZSTD_compressSubBlock_multi(const seqStore_t *seqStorePtr, const ZSTD_compressedBlockState_t *prevCBlock, ZSTD_compressedBlockState_t *nextCBlock, const ZSTD_entropyCTablesMetadata_t *entropyMetadata, const ZSTD_CCtx_params *cctxParams, void *dst, size_t dstCapacity, const void *src, size_t srcSize, const int bmi2, U32 lastBlock, void *workspace, size_t wkspSize)
size_t ZSTD_compressSuperBlock(ZSTD_CCtx *zc, void *dst, size_t dstCapacity, void const *src, size_t srcSize, unsigned lastBlock)
static size_t ZSTD_buildSuperBlockEntropy_sequences(seqStore_t *seqStorePtr, const ZSTD_fseCTables_t *prevEntropy, ZSTD_fseCTables_t *nextEntropy, const ZSTD_CCtx_params *cctxParams, ZSTD_fseCTablesMetadata_t *fseMetadata, void *workspace, size_t wkspSize)
#define FORWARD_IF_ERROR(err,...)
static const U32 LL_defaultNormLog
static const size_t ZSTD_blockHeaderSize
#define RETURN_ERROR_IF(cond, err,...)
static const U32 OF_defaultNormLog
static const U32 ML_bits[MaxML+1]
static const S16 LL_defaultNorm[MaxLL+1]
static const U32 LL_bits[MaxLL+1]
static const S16 ML_defaultNorm[MaxML+1]
static const U32 ML_defaultNormLog
static const S16 OF_defaultNorm[DefaultMaxOff+1]
MEM_STATIC ZSTD_sequenceLength ZSTD_getSequenceLength(seqStore_t const *seqStore, seqDef const *seq)