Lines Matching full:best
405 * Selects the best segment in an epoch.
423 /* Try each segment (activeSegment) and save the best (bestSegment) */ in COVER_selectSegment()
433 * Save the best segment in bestSegment. in COVER_selectSegment()
464 /* If this segment is the best so far save it */ in COVER_selectSegment()
725 /* We fill the dictionary from the back to allow the best segments to be in COVER_buildDictionary()
854 void COVER_best_init(COVER_best_t *best) { in COVER_best_init() argument
855 if (best==NULL) return; /* compatible with init on NULL */ in COVER_best_init()
856 (void)ZSTD_pthread_mutex_init(&best->mutex, NULL); in COVER_best_init()
857 (void)ZSTD_pthread_cond_init(&best->cond, NULL); in COVER_best_init()
858 best->liveJobs = 0; in COVER_best_init()
859 best->dict = NULL; in COVER_best_init()
860 best->dictSize = 0; in COVER_best_init()
861 best->compressedSize = (size_t)-1; in COVER_best_init()
862 memset(&best->parameters, 0, sizeof(best->parameters)); in COVER_best_init()
868 void COVER_best_wait(COVER_best_t *best) { in COVER_best_wait() argument
869 if (!best) { in COVER_best_wait()
872 ZSTD_pthread_mutex_lock(&best->mutex); in COVER_best_wait()
873 while (best->liveJobs != 0) { in COVER_best_wait()
874 ZSTD_pthread_cond_wait(&best->cond, &best->mutex); in COVER_best_wait()
876 ZSTD_pthread_mutex_unlock(&best->mutex); in COVER_best_wait()
882 void COVER_best_destroy(COVER_best_t *best) { in COVER_best_destroy() argument
883 if (!best) { in COVER_best_destroy()
886 COVER_best_wait(best); in COVER_best_destroy()
887 if (best->dict) { in COVER_best_destroy()
888 free(best->dict); in COVER_best_destroy()
890 ZSTD_pthread_mutex_destroy(&best->mutex); in COVER_best_destroy()
891 ZSTD_pthread_cond_destroy(&best->cond); in COVER_best_destroy()
898 void COVER_best_start(COVER_best_t *best) { in COVER_best_start() argument
899 if (!best) { in COVER_best_start()
902 ZSTD_pthread_mutex_lock(&best->mutex); in COVER_best_start()
903 ++best->liveJobs; in COVER_best_start()
904 ZSTD_pthread_mutex_unlock(&best->mutex); in COVER_best_start()
910 * If this dictionary is the best so far save it and its parameters.
912 void COVER_best_finish(COVER_best_t* best, in COVER_best_finish() argument
919 if (!best) { in COVER_best_finish()
924 ZSTD_pthread_mutex_lock(&best->mutex); in COVER_best_finish()
925 --best->liveJobs; in COVER_best_finish()
926 liveJobs = best->liveJobs; in COVER_best_finish()
928 if (compressedSize < best->compressedSize) { in COVER_best_finish()
930 if (!best->dict || best->dictSize < dictSize) { in COVER_best_finish()
931 if (best->dict) { in COVER_best_finish()
932 free(best->dict); in COVER_best_finish()
934 best->dict = malloc(dictSize); in COVER_best_finish()
935 if (!best->dict) { in COVER_best_finish()
936 best->compressedSize = ERROR(GENERIC); in COVER_best_finish()
937 best->dictSize = 0; in COVER_best_finish()
938 ZSTD_pthread_cond_signal(&best->cond); in COVER_best_finish()
939 ZSTD_pthread_mutex_unlock(&best->mutex); in COVER_best_finish()
945 memcpy(best->dict, dict, dictSize); in COVER_best_finish()
946 best->dictSize = dictSize; in COVER_best_finish()
947 best->parameters = parameters; in COVER_best_finish()
948 best->compressedSize = compressedSize; in COVER_best_finish()
952 ZSTD_pthread_cond_broadcast(&best->cond); in COVER_best_finish()
954 ZSTD_pthread_mutex_unlock(&best->mutex); in COVER_best_finish()
1071 COVER_best_t *best; member
1119 COVER_best_finish(data->best, parameters, selection); in COVER_tryParameters()
1149 COVER_best_t best; in ZDICT_optimizeTrainFromBuffer_cover() local
1178 COVER_best_init(&best); in ZDICT_optimizeTrainFromBuffer_cover()
1192 COVER_best_destroy(&best); in ZDICT_optimizeTrainFromBuffer_cover()
1209 COVER_best_destroy(&best); in ZDICT_optimizeTrainFromBuffer_cover()
1215 data->best = &best; in ZDICT_optimizeTrainFromBuffer_cover()
1231 COVER_best_start(&best); in ZDICT_optimizeTrainFromBuffer_cover()
1242 COVER_best_wait(&best); in ZDICT_optimizeTrainFromBuffer_cover()
1246 /* Fill the output buffer and parameters with output of the best parameters */ in ZDICT_optimizeTrainFromBuffer_cover()
1248 const size_t dictSize = best.dictSize; in ZDICT_optimizeTrainFromBuffer_cover()
1249 if (ZSTD_isError(best.compressedSize)) { in ZDICT_optimizeTrainFromBuffer_cover()
1250 const size_t compressedSize = best.compressedSize; in ZDICT_optimizeTrainFromBuffer_cover()
1251 COVER_best_destroy(&best); in ZDICT_optimizeTrainFromBuffer_cover()
1255 *parameters = best.parameters; in ZDICT_optimizeTrainFromBuffer_cover()
1256 memcpy(dictBuffer, best.dict, dictSize); in ZDICT_optimizeTrainFromBuffer_cover()
1257 COVER_best_destroy(&best); in ZDICT_optimizeTrainFromBuffer_cover()