1cb93a386Sopenharmony_ci#ifndef BROTLI_RESEARCH_DEORUMMOLAE_H_ 2cb93a386Sopenharmony_ci#define BROTLI_RESEARCH_DEORUMMOLAE_H_ 3cb93a386Sopenharmony_ci 4cb93a386Sopenharmony_ci#include <cstddef> 5cb93a386Sopenharmony_ci#include <cstdint> 6cb93a386Sopenharmony_ci#include <string> 7cb93a386Sopenharmony_ci#include <vector> 8cb93a386Sopenharmony_ci 9cb93a386Sopenharmony_ci/* log2(maximal number of files). Value 6 provides some speedups. */ 10cb93a386Sopenharmony_ci#define DM_LOG_MAX_FILES 6 11cb93a386Sopenharmony_ci 12cb93a386Sopenharmony_ci/* Non tunable definitions. */ 13cb93a386Sopenharmony_ci#define DM_MAX_FILES (1 << DM_LOG_MAX_FILES) 14cb93a386Sopenharmony_ci 15cb93a386Sopenharmony_ci/** 16cb93a386Sopenharmony_ci * Generate a dictionary for given samples. 17cb93a386Sopenharmony_ci * 18cb93a386Sopenharmony_ci * @param dictionary_size_limit maximal dictionary size 19cb93a386Sopenharmony_ci * @param sample_sizes vector with sample sizes 20cb93a386Sopenharmony_ci * @param sample_data concatenated samples 21cb93a386Sopenharmony_ci * @return generated dictionary 22cb93a386Sopenharmony_ci */ 23cb93a386Sopenharmony_cistd::string DM_generate(size_t dictionary_size_limit, 24cb93a386Sopenharmony_ci const std::vector<size_t>& sample_sizes, const uint8_t* sample_data); 25cb93a386Sopenharmony_ci 26cb93a386Sopenharmony_ci#endif // BROTLI_RESEARCH_DEORUMMOLAE_H_ 27