summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Collet <cyan@fb.com>2017-03-17 22:51:08 (GMT)
committerYann Collet <cyan@fb.com>2017-03-17 22:51:21 (GMT)
commiteff6166eb84a7aca764cf310bc9eef23d003c354 (patch)
treef82e56e867f5d8bcd4012b6c9e3d2b715505cc2d
parent0d073d4d287b08659eada92c614bec30fa277cd0 (diff)
downloadlz4-eff6166eb84a7aca764cf310bc9eef23d003c354.zip
lz4-eff6166eb84a7aca764cf310bc9eef23d003c354.tar.gz
lz4-eff6166eb84a7aca764cf310bc9eef23d003c354.tar.bz2
minor price function optimization
-rw-r--r--lib/lz4opt.h14
1 files changed, 6 insertions, 8 deletions
diff --git a/lib/lz4opt.h b/lib/lz4opt.h
index 582aa14..7e2e0f6 100644
--- a/lib/lz4opt.h
+++ b/lib/lz4opt.h
@@ -36,14 +36,12 @@
#define LZ4_OPT_NUM (1<<12)
-typedef struct
-{
+typedef struct {
int off;
int len;
} LZ4HC_match_t;
-typedef struct
-{
+typedef struct {
int price;
int off;
int mlen;
@@ -54,8 +52,8 @@ typedef struct
/* price in bits */
FORCE_INLINE size_t LZ4HC_literalsPrice(size_t litlen)
{
- size_t price = 8*litlen;
- if (litlen >= (size_t)RUN_MASK) price+=8*(1+(litlen-RUN_MASK)/255);
+ size_t price = litlen;
+ if (litlen >= (size_t)RUN_MASK) price += 1+(litlen-RUN_MASK)/255;
return price;
}
@@ -63,12 +61,12 @@ FORCE_INLINE size_t LZ4HC_literalsPrice(size_t litlen)
/* requires mlen >= MINMATCH */
FORCE_INLINE size_t LZ4HC_sequencePrice(size_t litlen, size_t mlen)
{
- size_t price = 16 + 8; /* 16-bit offset + token */
+ size_t price = 2 + 1; /* 16-bit offset + token */
price += LZ4HC_literalsPrice(litlen);
mlen -= MINMATCH;
- if (mlen >= (size_t)ML_MASK) price+=8*(1+(mlen-ML_MASK)/255);
+ if (mlen >= (size_t)ML_MASK) price+= 1+(mlen-ML_MASK)/255;
return price;
}