| 
									
										
										
										
											2019-11-01 21:36:06 -05:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2023-05-22 14:32:14 +02:00
										 |  |  |  * Copyright (c) Meta Platforms, Inc. and affiliates. | 
					
						
							| 
									
										
										
										
											2019-11-01 21:36:06 -05:00
										 |  |  |  * 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
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-18 21:38:36 +02:00
										 |  |  | #include "../common/fse.h" /* FSE_repeat, FSE_CTable */
 | 
					
						
							|  |  |  | #include "../common/zstd_internal.h" /* symbolEncodingType_e, ZSTD_strategy */
 | 
					
						
							| 
									
										
										
										
											2019-11-01 21:36:06 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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, | 
					
						
							| 
									
										
										
										
											2019-11-09 22:31:00 -06:00
										 |  |  |                 void* entropyWorkspace, size_t entropyWorkspaceSize); | 
					
						
							| 
									
										
										
										
											2019-11-01 21:36:06 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-18 21:38:36 +02:00
										 |  |  | 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); | 
					
						
							| 
									
										
										
										
											2019-11-01 21:36:06 -05:00
										 |  |  | #endif /* ZSTD_COMPRESS_SEQUENCES_H */
 |