summaryrefslogtreecommitdiffstats
path: root/programs/datagen.c
diff options
context:
space:
mode:
authorPrzemyslaw Skibinski <inikep@gmail.com>2016-11-16 08:01:45 (GMT)
committerPrzemyslaw Skibinski <inikep@gmail.com>2016-11-16 08:01:45 (GMT)
commit7b6a9d86383579099fd174000b857a5ea1671f0b (patch)
tree9e1dd4dbed190a957cbd580a20d9c0fb39ca9ad0 /programs/datagen.c
parent2e10aab20f17adfffb2379e828124be12c774779 (diff)
downloadlz4-7b6a9d86383579099fd174000b857a5ea1671f0b.zip
lz4-7b6a9d86383579099fd174000b857a5ea1671f0b.tar.gz
lz4-7b6a9d86383579099fd174000b857a5ea1671f0b.tar.bz2
Merge remote-tracking branch 'refs/remotes/lz4/dev' into dev
Diffstat (limited to 'programs/datagen.c')
-rw-r--r--programs/datagen.c29
1 files changed, 10 insertions, 19 deletions
diff --git a/programs/datagen.c b/programs/datagen.c
index d851418..ed37c2a 100644
--- a/programs/datagen.c
+++ b/programs/datagen.c
@@ -81,10 +81,10 @@ typedef BYTE litDistribTable[LTSIZE];
-
/*********************************************************
* Local Functions
*********************************************************/
+#define MIN(a,b) ( (a) < (b) ? (a) :(b) )
#define RDG_rotl32(x,r) ((x << r) | (x >> (32 - r)))
static unsigned int RDG_rand(U32* src)
{
@@ -99,24 +99,15 @@ static unsigned int RDG_rand(U32* src)
static void RDG_fillLiteralDistrib(litDistribTable lt, double ld)
{
- U32 i = 0;
- BYTE character = '0';
- BYTE firstChar = '(';
- BYTE lastChar = '}';
-
- if (ld==0.0)
- {
- character = 0;
- firstChar = 0;
- lastChar =255;
- }
- while (i<LTSIZE)
- {
- U32 weight = (U32)((double)(LTSIZE - i) * ld) + 1;
- U32 end;
- if (weight + i > LTSIZE) weight = LTSIZE-i;
- end = i + weight;
- while (i < end) lt[i++] = character;
+ BYTE const firstChar = ld <= 0.0 ? 0 : '(';
+ BYTE const lastChar = ld <= 0.0 ? 255 : '}';
+ BYTE character = ld <= 0.0 ? 0 : '0';
+ U32 u = 0;
+
+ while (u<LTSIZE) {
+ U32 const weight = (U32)((double)(LTSIZE - u) * ld) + 1;
+ U32 const end = MIN(u+weight, LTSIZE);
+ while (u < end) lt[u++] = character;
character++;
if (character > lastChar) character = firstChar;
}