Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
libvmod-selector
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
uplex-varnish
libvmod-selector
Commits
38879fa6
Commit
38879fa6
authored
Sep 07, 2020
by
Geoff Simmons
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
For PH, all-odd keys in the vector are not necessary.
parent
3baf5288
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
3 additions
and
10 deletions
+3
-10
ph.c
src/ph.c
+3
-10
No files found.
src/ph.c
View file @
38879fa6
...
...
@@ -207,14 +207,8 @@ PH_Generate(char * const * const strings, unsigned n)
h1
->
minlen
=
min
;
h1
->
maxlen
=
max
;
h1
->
l
=
l
;
/*
* XXX the literature sometimes says that the keys should all be
* odd, since repeated multiplication makes the result tend to 0,
* but sometimes doesn't mention it. Not sure if |1 is needed
* here.
*/
for
(
unsigned
i
=
0
;
i
<
l
;
i
++
)
h1
->
k
[
i
]
=
rnd64
()
|
1
;
h1
->
k
[
i
]
=
rnd64
();
h1
->
mask
=
sz
-
1
;
for
(
unsigned
i
=
0
;
i
<
n
;
i
++
)
{
...
...
@@ -283,9 +277,8 @@ PH_Generate(char * const * const strings, unsigned n)
if
(
bhsh
->
k
==
NULL
)
goto
exit
;
bhsh
->
addend
=
rnd64
();
/* XXX as above, unsure about |1 here */
for
(
unsigned
j
=
0
;
j
<
bhsh
->
l
;
j
++
)
bhsh
->
k
[
j
]
=
rnd64
()
|
1
;
bhsh
->
k
[
j
]
=
rnd64
();
for
(
int
j
=
0
;
j
<
bucket
->
n
;
j
++
)
{
uint32_t
h
=
hash
(
bhsh
,
strings
[
bucket
->
idx
[
j
]],
...
...
@@ -297,7 +290,7 @@ PH_Generate(char * const * const strings, unsigned n)
bsz
*
sizeof
(
*
bhsh
->
tbl
));
bhsh
->
addend
=
rnd64
();
for
(
unsigned
k
=
0
;
k
<
bhsh
->
l
;
k
++
)
bhsh
->
k
[
k
]
=
rnd64
()
|
1
;
bhsh
->
k
[
k
]
=
rnd64
();
continue
;
}
bhsh
->
tbl
[
h
]
=
bucket
->
idx
[
j
];
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment