\doxysection{lookup3.\+c}
\hypertarget{lookup3_8c_source}{}\label{lookup3_8c_source}\index{workspace/post-\/scarcity/src/memory/lookup3.c@{workspace/post-\/scarcity/src/memory/lookup3.c}}
\mbox{\hyperlink{lookup3_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00001}00001\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00002}00002\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00003}00003\ \textcolor{comment}{lookup3.c,\ by\ Bob\ Jenkins,\ May\ 2006,\ Public\ Domain.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00004}00004\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00005}00005\ \textcolor{comment}{These\ are\ functions\ for\ producing\ 32-\/bit\ hashes\ for\ hash\ table\ lookup.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00006}00006\ \textcolor{comment}{hashword(),\ hashlittle(),\ hashlittle2(),\ hashbig(),\ mix(),\ and\ final()}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00007}00007\ \textcolor{comment}{are\ externally\ useful\ functions.\ \ Routines\ to\ test\ the\ hash\ are\ included}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00008}00008\ \textcolor{comment}{if\ SELF\_TEST\ is\ defined.\ \ You\ can\ use\ this\ free\ for\ any\ purpose.\ \ It's\ in}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00009}00009\ \textcolor{comment}{the\ public\ domain.\ \ It\ has\ no\ warranty.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00010}00010\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00011}00011\ \textcolor{comment}{You\ probably\ want\ to\ use\ hashlittle().\ \ hashlittle()\ and\ hashbig()}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00012}00012\ \textcolor{comment}{hash\ byte\ arrays.\ \ hashlittle()\ is\ is\ faster\ than\ hashbig()\ on}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00013}00013\ \textcolor{comment}{little-\/endian\ machines.\ \ Intel\ and\ AMD\ are\ little-\/endian\ machines.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00014}00014\ \textcolor{comment}{On\ second\ thought,\ you\ probably\ want\ hashlittle2(),\ which\ is\ identical\ to}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00015}00015\ \textcolor{comment}{hashlittle()\ except\ it\ returns\ two\ 32-\/bit\ hashes\ for\ the\ price\ of\ one.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00016}00016\ \textcolor{comment}{You\ could\ implement\ hashbig2()\ if\ you\ wanted\ but\ I\ haven't\ bothered\ here.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00017}00017\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00018}00018\ \textcolor{comment}{If\ you\ want\ to\ find\ a\ hash\ of,\ say,\ exactly\ 7\ integers,\ do}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00019}00019\ \textcolor{comment}{\ \ a\ =\ i1;\ \ b\ =\ i2;\ \ c\ =\ i3;}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00020}00020\ \textcolor{comment}{\ \ mix(a,b,c);}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00021}00021\ \textcolor{comment}{\ \ a\ +=\ i4;\ b\ +=\ i5;\ c\ +=\ i6;}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00022}00022\ \textcolor{comment}{\ \ mix(a,b,c);}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00023}00023\ \textcolor{comment}{\ \ a\ +=\ i7;}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00024}00024\ \textcolor{comment}{\ \ final(a,b,c);}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00025}00025\ \textcolor{comment}{then\ use\ c\ as\ the\ hash\ value.\ \ If\ you\ have\ a\ variable\ length\ array\ of}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00026}00026\ \textcolor{comment}{4-\/byte\ integers\ to\ hash,\ use\ hashword().\ \ If\ you\ have\ a\ byte\ array\ (like}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00027}00027\ \textcolor{comment}{a\ character\ string),\ use\ hashlittle().\ \ If\ you\ have\ several\ byte\ arrays,\ or}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00028}00028\ \textcolor{comment}{a\ mix\ of\ things,\ see\ the\ comments\ above\ hashlittle().}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00029}00029\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00030}00030\ \textcolor{comment}{Why\ is\ this\ so\ big?\ \ I\ read\ 12\ bytes\ at\ a\ time\ into\ 3\ 4-\/byte\ integers,}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00031}00031\ \textcolor{comment}{then\ mix\ those\ integers.\ \ This\ is\ fast\ (you\ can\ do\ a\ lot\ more\ thorough}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00032}00032\ \textcolor{comment}{mixing\ with\ 12*3\ instructions\ on\ 3\ integers\ than\ you\ can\ with\ 3\ instructions}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00033}00033\ \textcolor{comment}{on\ 1\ byte),\ but\ shoehorning\ those\ bytes\ into\ integers\ efficiently\ is\ messy.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00034}00034\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00035}00035\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00036}00036\ \textcolor{comment}{//\ \#define\ SELF\_TEST\ 1}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00037}00037\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00038}00038\ \textcolor{preprocessor}{\#include\ <stdio.h>}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ defines\ printf\ for\ tests\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00039}00039\ \textcolor{preprocessor}{\#include\ <time.h>}\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ defines\ time\_t\ for\ timings\ in\ the\ test\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00040}00040\ \textcolor{preprocessor}{\#include\ <stdint.h>}\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ defines\ uint32\_t\ etc\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00041}00041\ \textcolor{preprocessor}{\#include\ <sys/param.h>}\ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ attempt\ to\ define\ endianness\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00042}00042\ \textcolor{preprocessor}{\#ifdef\ linux}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00043}00043\ \textcolor{preprocessor}{\#include\ <endian.h>}\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ attempt\ to\ define\ endianness\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00044}00044\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00045}00045\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00046}00046\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00047}00047\ \textcolor{comment}{\ *\ My\ best\ guess\ at\ if\ you\ are\ big-\/endian\ or\ little-\/endian.\ \ This\ may}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00048}00048\ \textcolor{comment}{\ *\ need\ adjustment.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00049}00049\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00050}00050\ \textcolor{preprocessor}{\#if\ (defined(\_\_BYTE\_ORDER)\ \&\&\ defined(\_\_LITTLE\_ENDIAN)\ \&\&\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00051}00051\ \textcolor{preprocessor}{\ \ \ \ \ \_\_BYTE\_ORDER\ ==\ \_\_LITTLE\_ENDIAN)\ ||\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00052}00052\ \textcolor{preprocessor}{\ \ \ \ (defined(i386)\ ||\ defined(\_\_i386\_\_)\ ||\ defined(\_\_i486\_\_)\ ||\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00053}00053\ \textcolor{preprocessor}{\ \ \ \ \ defined(\_\_i586\_\_)\ ||\ defined(\_\_i686\_\_)\ ||\ defined(vax)\ ||\ defined(MIPSEL))}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00054}00054\ \textcolor{preprocessor}{\#define\ HASH\_LITTLE\_ENDIAN\ 1}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00055}00055\ \textcolor{preprocessor}{\#define\ HASH\_BIG\_ENDIAN\ 0}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00056}00056\ \textcolor{preprocessor}{\#elif\ (defined(\_\_BYTE\_ORDER)\ \&\&\ defined(\_\_BIG\_ENDIAN)\ \&\&\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00057}00057\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \_\_BYTE\_ORDER\ ==\ \_\_BIG\_ENDIAN)\ ||\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00058}00058\ \textcolor{preprocessor}{\ \ \ \ \ \ (defined(sparc)\ ||\ defined(POWERPC)\ ||\ defined(mc68000)\ ||\ defined(sel))}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00059}00059\ \textcolor{preprocessor}{\#define\ HASH\_LITTLE\_ENDIAN\ 0}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00060}00060\ \textcolor{preprocessor}{\#define\ HASH\_BIG\_ENDIAN\ 1}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00061}00061\ \textcolor{preprocessor}{\#else}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00062}\mbox{\hyperlink{lookup3_8c_a8c49a94782a573ded31a7bb1949cbf47}{00062}}\ \textcolor{preprocessor}{\#define\ HASH\_LITTLE\_ENDIAN\ 0}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00063}\mbox{\hyperlink{lookup3_8c_a129f72057b84147c7c3e2a6d107f0e3b}{00063}}\ \textcolor{preprocessor}{\#define\ HASH\_BIG\_ENDIAN\ 0}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00064}00064\ \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00065}00065\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00066}\mbox{\hyperlink{lookup3_8c_a86173ca25b300cf3276b088d3fc6bdaf}{00066}}\ \textcolor{preprocessor}{\#define\ hashsize(n)\ ((uint32\_t)1<<(n))}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00067}\mbox{\hyperlink{lookup3_8c_aacd6ed104463685849b2550389d05ff3}{00067}}\ \textcolor{preprocessor}{\#define\ hashmask(n)\ (hashsize(n)-\/1)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00068}\mbox{\hyperlink{lookup3_8c_aae44e21ada356d9d84450d5440fbb0c4}{00068}}\ \textcolor{preprocessor}{\#define\ rot(x,k)\ (((x)<<(k))\ |\ ((x)>>(32-\/(k))))}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00069}00069\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00070}00070\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00071}00071\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00072}00072\ \textcolor{comment}{mix\ -\/-\/\ mix\ 3\ 32-\/bit\ values\ reversibly.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00073}00073\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00074}00074\ \textcolor{comment}{This\ is\ reversible,\ so\ any\ information\ in\ (a,b,c)\ before\ mix()\ is}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00075}00075\ \textcolor{comment}{still\ in\ (a,b,c)\ after\ mix().}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00076}00076\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00077}00077\ \textcolor{comment}{If\ four\ pairs\ of\ (a,b,c)\ inputs\ are\ run\ through\ mix(),\ or\ through}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00078}00078\ \textcolor{comment}{mix()\ in\ reverse,\ there\ are\ at\ least\ 32\ bits\ of\ the\ output\ that}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00079}00079\ \textcolor{comment}{are\ sometimes\ the\ same\ for\ one\ pair\ and\ different\ for\ another\ pair.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00080}00080\ \textcolor{comment}{This\ was\ tested\ for:}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00081}00081\ \textcolor{comment}{*\ pairs\ that\ differed\ by\ one\ bit,\ by\ two\ bits,\ in\ any\ combination}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00082}00082\ \textcolor{comment}{\ \ of\ top\ bits\ of\ (a,b,c),\ or\ in\ any\ combination\ of\ bottom\ bits\ of}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00083}00083\ \textcolor{comment}{\ \ (a,b,c).}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00084}00084\ \textcolor{comment}{*\ "{}differ"{}\ is\ defined\ as\ +,\ -\/,\ \string^,\ or\ \string~\string^.\ \ For\ +\ and\ -\/,\ I\ transformed}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00085}00085\ \textcolor{comment}{\ \ the\ output\ delta\ to\ a\ Gray\ code\ (a\string^(a>>1))\ so\ a\ string\ of\ 1's\ (as}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00086}00086\ \textcolor{comment}{\ \ is\ commonly\ produced\ by\ subtraction)\ look\ like\ a\ single\ 1-\/bit}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00087}00087\ \textcolor{comment}{\ \ difference.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00088}00088\ \textcolor{comment}{*\ the\ base\ values\ were\ pseudorandom,\ all\ zero\ but\ one\ bit\ set,\ or}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00089}00089\ \textcolor{comment}{\ \ all\ zero\ plus\ a\ counter\ that\ starts\ at\ zero.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00090}00090\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00091}00091\ \textcolor{comment}{Some\ k\ values\ for\ my\ "{}a-\/=c;\ a\string^=rot(c,k);\ c+=b;"{}\ arrangement\ that}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00092}00092\ \textcolor{comment}{satisfy\ this\ are}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00093}00093\ \textcolor{comment}{\ \ \ \ 4\ \ 6\ \ 8\ 16\ 19\ \ 4}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00094}00094\ \textcolor{comment}{\ \ \ \ 9\ 15\ \ 3\ 18\ 27\ 15}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00095}00095\ \textcolor{comment}{\ \ \ 14\ \ 9\ \ 3\ \ 7\ 17\ \ 3}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00096}00096\ \textcolor{comment}{Well,\ "{}9\ 15\ 3\ 18\ 27\ 15"{}\ didn't\ quite\ get\ 32\ bits\ diffing}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00097}00097\ \textcolor{comment}{for\ "{}differ"{}\ defined\ as\ +\ with\ a\ one-\/bit\ base\ and\ a\ two-\/bit\ delta.\ \ I}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00098}00098\ \textcolor{comment}{used\ http://burtleburtle.net/bob/hash/avalanche.html\ to\ choose}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00099}00099\ \textcolor{comment}{the\ operations,\ constants,\ and\ arrangements\ of\ the\ variables.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00100}00100\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00101}00101\ \textcolor{comment}{This\ does\ not\ achieve\ avalanche.\ \ There\ are\ input\ bits\ of\ (a,b,c)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00102}00102\ \textcolor{comment}{that\ fail\ to\ affect\ some\ output\ bits\ of\ (a,b,c),\ especially\ of\ a.\ \ The}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00103}00103\ \textcolor{comment}{most\ thoroughly\ mixed\ value\ is\ c,\ but\ it\ doesn't\ really\ even\ achieve}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00104}00104\ \textcolor{comment}{avalanche\ in\ c.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00105}00105\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00106}00106\ \textcolor{comment}{This\ allows\ some\ parallelism.\ \ Read-\/after-\/writes\ are\ good\ at\ doubling}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00107}00107\ \textcolor{comment}{the\ number\ of\ bits\ affected,\ so\ the\ goal\ of\ mixing\ pulls\ in\ the\ opposite}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00108}00108\ \textcolor{comment}{direction\ as\ the\ goal\ of\ parallelism.\ \ I\ did\ what\ I\ could.\ \ Rotates}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00109}00109\ \textcolor{comment}{seem\ to\ cost\ as\ much\ as\ shifts\ on\ every\ machine\ I\ could\ lay\ my\ hands}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00110}00110\ \textcolor{comment}{on,\ and\ rotates\ are\ much\ kinder\ to\ the\ top\ and\ bottom\ bits,\ so\ I\ used}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00111}00111\ \textcolor{comment}{rotates.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00112}00112\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00113}00113\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00114}\mbox{\hyperlink{lookup3_8c_afd9fa1747724ec6142812721997394c3}{00114}}\ \textcolor{preprocessor}{\#define\ mix(a,b,c)\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00115}00115\ \textcolor{preprocessor}{\{\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00116}00116\ \textcolor{preprocessor}{\ \ a\ -\/=\ c;\ \ a\ \string^=\ rot(c,\ 4);\ \ c\ +=\ b;\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00117}00117\ \textcolor{preprocessor}{\ \ b\ -\/=\ a;\ \ b\ \string^=\ rot(a,\ 6);\ \ a\ +=\ c;\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00118}00118\ \textcolor{preprocessor}{\ \ c\ -\/=\ b;\ \ c\ \string^=\ rot(b,\ 8);\ \ b\ +=\ a;\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00119}00119\ \textcolor{preprocessor}{\ \ a\ -\/=\ c;\ \ a\ \string^=\ rot(c,16);\ \ c\ +=\ b;\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00120}00120\ \textcolor{preprocessor}{\ \ b\ -\/=\ a;\ \ b\ \string^=\ rot(a,19);\ \ a\ +=\ c;\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00121}00121\ \textcolor{preprocessor}{\ \ c\ -\/=\ b;\ \ c\ \string^=\ rot(b,\ 4);\ \ b\ +=\ a;\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00122}00122\ \textcolor{preprocessor}{\}}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00123}00123\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00124}00124\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00125}00125\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00126}00126\ \textcolor{comment}{final\ -\/-\/\ final\ mixing\ of\ 3\ 32-\/bit\ values\ (a,b,c)\ into\ c}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00127}00127\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00128}00128\ \textcolor{comment}{Pairs\ of\ (a,b,c)\ values\ differing\ in\ only\ a\ few\ bits\ will\ usually}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00129}00129\ \textcolor{comment}{produce\ values\ of\ c\ that\ look\ totally\ different.\ \ This\ was\ tested\ for}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00130}00130\ \textcolor{comment}{*\ pairs\ that\ differed\ by\ one\ bit,\ by\ two\ bits,\ in\ any\ combination}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00131}00131\ \textcolor{comment}{\ \ of\ top\ bits\ of\ (a,b,c),\ or\ in\ any\ combination\ of\ bottom\ bits\ of}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00132}00132\ \textcolor{comment}{\ \ (a,b,c).}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00133}00133\ \textcolor{comment}{*\ "{}differ"{}\ is\ defined\ as\ +,\ -\/,\ \string^,\ or\ \string~\string^.\ \ For\ +\ and\ -\/,\ I\ transformed}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00134}00134\ \textcolor{comment}{\ \ the\ output\ delta\ to\ a\ Gray\ code\ (a\string^(a>>1))\ so\ a\ string\ of\ 1's\ (as}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00135}00135\ \textcolor{comment}{\ \ is\ commonly\ produced\ by\ subtraction)\ look\ like\ a\ single\ 1-\/bit}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00136}00136\ \textcolor{comment}{\ \ difference.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00137}00137\ \textcolor{comment}{*\ the\ base\ values\ were\ pseudorandom,\ all\ zero\ but\ one\ bit\ set,\ or}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00138}00138\ \textcolor{comment}{\ \ all\ zero\ plus\ a\ counter\ that\ starts\ at\ zero.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00139}00139\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00140}00140\ \textcolor{comment}{These\ constants\ passed:}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00141}00141\ \textcolor{comment}{\ 14\ 11\ 25\ 16\ 4\ 14\ 24}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00142}00142\ \textcolor{comment}{\ 12\ 14\ 25\ 16\ 4\ 14\ 24}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00143}00143\ \textcolor{comment}{and\ these\ came\ close:}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00144}00144\ \textcolor{comment}{\ \ 4\ \ 8\ 15\ 26\ 3\ 22\ 24}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00145}00145\ \textcolor{comment}{\ 10\ \ 8\ 15\ 26\ 3\ 22\ 24}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00146}00146\ \textcolor{comment}{\ 11\ \ 8\ 15\ 26\ 3\ 22\ 24}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00147}00147\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00148}00148\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00149}\mbox{\hyperlink{lookup3_8c_ab4646d77540701d2eb2c877effbe5739}{00149}}\ \textcolor{preprocessor}{\#define\ final(a,b,c)\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00150}00150\ \textcolor{preprocessor}{\{\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00151}00151\ \textcolor{preprocessor}{\ \ c\ \string^=\ b;\ c\ -\/=\ rot(b,14);\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00152}00152\ \textcolor{preprocessor}{\ \ a\ \string^=\ c;\ a\ -\/=\ rot(c,11);\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00153}00153\ \textcolor{preprocessor}{\ \ b\ \string^=\ a;\ b\ -\/=\ rot(a,25);\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00154}00154\ \textcolor{preprocessor}{\ \ c\ \string^=\ b;\ c\ -\/=\ rot(b,16);\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00155}00155\ \textcolor{preprocessor}{\ \ a\ \string^=\ c;\ a\ -\/=\ rot(c,4);\ \ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00156}00156\ \textcolor{preprocessor}{\ \ b\ \string^=\ a;\ b\ -\/=\ rot(a,14);\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00157}00157\ \textcolor{preprocessor}{\ \ c\ \string^=\ b;\ c\ -\/=\ rot(b,24);\ \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00158}00158\ \textcolor{preprocessor}{\}}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00159}00159\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00160}00160\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00161}00161\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00162}00162\ \textcolor{comment}{\ This\ works\ on\ all\ machines.\ \ To\ be\ useful,\ it\ requires}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00163}00163\ \textcolor{comment}{\ -\/-\/\ that\ the\ key\ be\ an\ array\ of\ uint32\_t's,\ and}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00164}00164\ \textcolor{comment}{\ -\/-\/\ that\ the\ length\ be\ the\ number\ of\ uint32\_t's\ in\ the\ key}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00165}00165\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00166}00166\ \textcolor{comment}{\ The\ function\ hashword()\ is\ identical\ to\ hashlittle()\ on\ little-\/endian}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00167}00167\ \textcolor{comment}{\ machines,\ and\ identical\ to\ hashbig()\ on\ big-\/endian\ machines,}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00168}00168\ \textcolor{comment}{\ except\ that\ the\ length\ has\ to\ be\ measured\ in\ uint32\_ts\ rather\ than\ in}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00169}00169\ \textcolor{comment}{\ bytes.\ \ hashlittle()\ is\ more\ complicated\ than\ hashword()\ only\ because}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00170}00170\ \textcolor{comment}{\ hashlittle()\ has\ to\ dance\ around\ fitting\ the\ key\ bytes\ into\ registers.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00171}00171\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00172}00172\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00173}\mbox{\hyperlink{lookup3_8c_a6b57e35d1649b351ed629d3e022bf85f}{00173}}\ uint32\_t\ \mbox{\hyperlink{lookup3_8c_a6b57e35d1649b351ed629d3e022bf85f}{hashword}}(\ \textcolor{keyword}{const}\ uint32\_t\ *k,\ \textcolor{comment}{/*\ the\ key,\ an\ array\ of\ uint32\_t\ values\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00174}00174\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{size\_t}\ length,\ \textcolor{comment}{/*\ the\ length\ of\ the\ key,\ in\ uint32\_ts\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00175}00175\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint32\_t\ initval\ )\ \{\ \textcolor{comment}{/*\ the\ previous\ hash,\ or\ an\ arbitrary\ value\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00176}00176\ \ \ \ \ uint32\_t\ a,\ b,\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00177}00177\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00178}00178\ \ \ \ \ \textcolor{comment}{/*\ Set\ up\ the\ internal\ state\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00179}00179\ \ \ \ \ a\ =\ b\ =\ c\ =\ 0xdeadbeef\ +\ (\ (\ (\ uint32\_t\ )\ length\ )\ <<\ 2\ )\ +\ initval;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00180}00180\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00181}00181\ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ handle\ most\ of\ the\ key\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00182}00182\ \ \ \ \ \textcolor{keywordflow}{while}\ (\ length\ >\ 3\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00183}00183\ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00184}00184\ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00185}00185\ \ \ \ \ \ \ \ \ c\ +=\ k[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00186}00186\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_afd9fa1747724ec6142812721997394c3}{mix}}(\ a,\ b,\ c\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00187}00187\ \ \ \ \ \ \ \ \ length\ -\/=\ 3;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00188}00188\ \ \ \ \ \ \ \ \ k\ +=\ 3;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00189}00189\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00190}00190\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00191}00191\ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ handle\ the\ last\ 3\ uint32\_t's\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00192}00192\ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ length\ )\ \{\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ all\ the\ case\ statements\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00193}00193\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00194}00194\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00195}00195\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00196}00196\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00197}00197\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00198}00198\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00199}00199\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{final}(\ a,\ b,\ c\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00200}00200\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ case\ 0:\ nothing\ left\ to\ add\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00201}00201\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00202}00202\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00203}00203\ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ report\ the\ result\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00204}00204\ \ \ \ \ \textcolor{keywordflow}{return}\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00205}00205\ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00206}00206\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00207}00207\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00208}00208\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00209}00209\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00210}00210\ \textcolor{comment}{hashword2()\ -\/-\/\ same\ as\ hashword(),\ but\ take\ two\ seeds\ and\ return\ two}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00211}00211\ \textcolor{comment}{32-\/bit\ values.\ \ pc\ and\ pb\ must\ both\ be\ nonnull,\ and\ *pc\ and\ *pb\ must}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00212}00212\ \textcolor{comment}{both\ be\ initialized\ with\ seeds.\ \ If\ you\ pass\ in\ (*pb)==0,\ the\ output}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00213}00213\ \textcolor{comment}{(*pc)\ will\ be\ the\ same\ as\ the\ return\ value\ from\ hashword().}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00214}00214\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00215}00215\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00216}\mbox{\hyperlink{lookup3_8c_af4b16260e69ab4fc6a2584d04332404b}{00216}}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{lookup3_8c_af4b16260e69ab4fc6a2584d04332404b}{hashword2}}(\ \textcolor{keyword}{const}\ uint32\_t\ *k,\ \ \textcolor{comment}{/*\ the\ key,\ an\ array\ of\ uint32\_t\ values\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00217}00217\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{size\_t}\ length,\ \ \textcolor{comment}{/*\ the\ length\ of\ the\ key,\ in\ uint32\_ts\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00218}00218\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint32\_t\ *pc,\ \ \ \textcolor{comment}{/*\ IN:\ seed\ OUT:\ primary\ hash\ value\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00219}00219\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint32\_t\ *pb\ )\ \{\ \ \textcolor{comment}{/*\ IN:\ more\ seed\ OUT:\ secondary\ hash\ value\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00220}00220\ \ \ \ \ uint32\_t\ a,\ b,\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00221}00221\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00222}00222\ \ \ \ \ \textcolor{comment}{/*\ Set\ up\ the\ internal\ state\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00223}00223\ \ \ \ \ a\ =\ b\ =\ c\ =\ 0xdeadbeef\ +\ (\ (\ uint32\_t\ )\ (\ length\ <<\ 2\ )\ )\ +\ *pc;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00224}00224\ \ \ \ \ c\ +=\ *pb;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00225}00225\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00226}00226\ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ handle\ most\ of\ the\ key\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00227}00227\ \ \ \ \ \textcolor{keywordflow}{while}\ (\ length\ >\ 3\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00228}00228\ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00229}00229\ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00230}00230\ \ \ \ \ \ \ \ \ c\ +=\ k[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00231}00231\ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_afd9fa1747724ec6142812721997394c3}{mix}}(\ a,\ b,\ c\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00232}00232\ \ \ \ \ \ \ \ \ length\ -\/=\ 3;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00233}00233\ \ \ \ \ \ \ \ \ k\ +=\ 3;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00234}00234\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00235}00235\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00236}00236\ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ handle\ the\ last\ 3\ uint32\_t's\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00237}00237\ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ length\ )\ \{\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ all\ the\ case\ statements\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00238}00238\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00239}00239\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00240}00240\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00241}00241\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00242}00242\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00243}00243\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00244}00244\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{final}(\ a,\ b,\ c\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00245}00245\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ case\ 0:\ nothing\ left\ to\ add\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00246}00246\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00247}00247\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00248}00248\ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ report\ the\ result\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00249}00249\ \ \ \ \ *pc\ =\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00250}00250\ \ \ \ \ *pb\ =\ b;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00251}00251\ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00252}00252\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00253}00253\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00254}00254\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00255}00255\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00256}00256\ \textcolor{comment}{hashlittle()\ -\/-\/\ hash\ a\ variable-\/length\ key\ into\ a\ 32-\/bit\ value}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00257}00257\ \textcolor{comment}{\ \ k\ \ \ \ \ \ \ :\ the\ key\ (the\ unaligned\ variable-\/length\ array\ of\ bytes)}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00258}00258\ \textcolor{comment}{\ \ length\ \ :\ the\ length\ of\ the\ key,\ counting\ by\ bytes}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00259}00259\ \textcolor{comment}{\ \ initval\ :\ can\ be\ any\ 4-\/byte\ value}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00260}00260\ \textcolor{comment}{Returns\ a\ 32-\/bit\ value.\ \ Every\ bit\ of\ the\ key\ affects\ every\ bit\ of}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00261}00261\ \textcolor{comment}{the\ return\ value.\ \ Two\ keys\ differing\ by\ one\ or\ two\ bits\ will\ have}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00262}00262\ \textcolor{comment}{totally\ different\ hash\ values.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00263}00263\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00264}00264\ \textcolor{comment}{The\ best\ hash\ table\ sizes\ are\ powers\ of\ 2.\ \ There\ is\ no\ need\ to\ do}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00265}00265\ \textcolor{comment}{mod\ a\ prime\ (mod\ is\ sooo\ slow!).\ \ If\ you\ need\ less\ than\ 32\ bits,}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00266}00266\ \textcolor{comment}{use\ a\ bitmask.\ \ For\ example,\ if\ you\ need\ only\ 10\ bits,\ do}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00267}00267\ \textcolor{comment}{\ \ h\ =\ (h\ \&\ hashmask(10));}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00268}00268\ \textcolor{comment}{In\ which\ case,\ the\ hash\ table\ should\ have\ hashsize(10)\ elements.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00269}00269\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00270}00270\ \textcolor{comment}{If\ you\ are\ hashing\ n\ strings\ (uint8\_t\ **)k,\ do\ it\ like\ this:}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00271}00271\ \textcolor{comment}{\ \ for\ (i=0,\ h=0;\ i<n;\ ++i)\ h\ =\ hashlittle(\ k[i],\ len[i],\ h);}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00272}00272\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00273}00273\ \textcolor{comment}{By\ Bob\ Jenkins,\ 2006.\ \ bob\_jenkins@burtleburtle.net.\ \ You\ may\ use\ this}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00274}00274\ \textcolor{comment}{code\ any\ way\ you\ wish,\ private,\ educational,\ or\ commercial.\ \ It's\ free.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00275}00275\ \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00276}00276\ \textcolor{comment}{Use\ for\ hash\ table\ lookup,\ or\ anything\ where\ one\ collision\ in\ 2\string^\string^32\ is}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00277}00277\ \textcolor{comment}{acceptable.\ \ Do\ NOT\ use\ for\ cryptographic\ purposes.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00278}00278\ \textcolor{comment}{-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00279}00279\ \textcolor{comment}{*/}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00280}00280\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00281}\mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{00281}}\ uint32\_t\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *key,\ \textcolor{keywordtype}{size\_t}\ length,\ uint32\_t\ initval\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00282}00282\ \ \ \ \ uint32\_t\ a,\ b,\ c;\ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ internal\ state\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00283}00283\ \ \ \ \ \textcolor{keyword}{union\ }\{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00284}00284\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *ptr;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00285}00285\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{size\_t}\ i;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00286}00286\ \ \ \ \ \}\ u;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ needed\ for\ Mac\ Powerbook\ G4\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00287}00287\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00288}00288\ \ \ \ \ \textcolor{comment}{/*\ Set\ up\ the\ internal\ state\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00289}00289\ \ \ \ \ a\ =\ b\ =\ c\ =\ 0xdeadbeef\ +\ (\ (\ uint32\_t\ )\ length\ )\ +\ initval;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00290}00290\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00291}00291\ \ \ \ \ u.ptr\ =\ key;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00292}00292\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{lookup3_8c_a8c49a94782a573ded31a7bb1949cbf47}{HASH\_LITTLE\_ENDIAN}}\ \&\&\ (\ (\ u.i\ \&\ 0x3\ )\ ==\ 0\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00293}00293\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint32\_t\ *k\ =\ (\ \textcolor{keyword}{const}\ uint32\_t\ *\ )\ key;\ \textcolor{comment}{/*\ read\ 32-\/bit\ chunks\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00294}00294\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint8\_t\ *k8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00295}00295\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00296}00296\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/\ all\ but\ last\ block:\ aligned\ reads\ and\ affect\ 32\ bits\ of\ (a,b,c)\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00297}00297\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (\ length\ >\ 12\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00298}00298\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00299}00299\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00300}00300\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00301}00301\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_afd9fa1747724ec6142812721997394c3}{mix}}(\ a,\ b,\ c\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00302}00302\ \ \ \ \ \ \ \ \ \ \ \ \ length\ -\/=\ 12;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00303}00303\ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 3;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00304}00304\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00305}00305\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00306}00306\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ handle\ the\ last\ (probably\ partial)\ block\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00307}00307\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00308}00308\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ "{}k[2]\&0xffffff"{}\ actually\ reads\ beyond\ the\ end\ of\ the\ string,\ but}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00309}00309\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ then\ masks\ off\ the\ part\ it's\ not\ allowed\ to\ read.\ \ Because\ the}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00310}00310\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ string\ is\ aligned,\ the\ masked-\/off\ tail\ is\ in\ the\ same\ word\ as\ the}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00311}00311\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ rest\ of\ the\ string.\ \ Every\ machine\ with\ memory\ protection\ I've\ seen}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00312}00312\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ does\ it\ on\ word\ boundaries,\ so\ is\ OK\ with\ this.\ \ But\ VALGRIND\ will}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00313}00313\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ still\ catch\ it\ and\ complain.\ \ The\ masking\ trick\ does\ make\ the\ hash}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00314}00314\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ noticably\ faster\ for\ short\ strings\ (like\ English\ words).}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00315}00315\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00316}00316\ \textcolor{preprocessor}{\#ifndef\ VALGRIND}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00317}00317\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00318}00318\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ length\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00319}00319\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 12:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00320}00320\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00321}00321\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00322}00322\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00323}00323\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00324}00324\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 11:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00325}00325\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2]\ \&\ 0xffffff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00326}00326\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00327}00327\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00328}00328\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00329}00329\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 10:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00330}00330\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2]\ \&\ 0xffff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00331}00331\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00332}00332\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00333}00333\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00334}00334\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 9:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00335}00335\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2]\ \&\ 0xff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00336}00336\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00337}00337\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00338}00338\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00339}00339\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 8:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00340}00340\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00341}00341\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00342}00342\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00343}00343\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 7:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00344}00344\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1]\ \&\ 0xffffff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00345}00345\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00346}00346\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00347}00347\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 6:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00348}00348\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1]\ \&\ 0xffff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00349}00349\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00350}00350\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00351}00351\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 5:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00352}00352\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1]\ \&\ 0xff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00353}00353\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00354}00354\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00355}00355\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 4:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00356}00356\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00357}00357\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00358}00358\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00359}00359\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ \&\ 0xffffff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00360}00360\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00361}00361\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00362}00362\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ \&\ 0xffff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00363}00363\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00364}00364\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00365}00365\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ \&\ 0xff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00366}00366\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00367}00367\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00368}00368\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ c;\ \ \ \ \ \ \ \textcolor{comment}{/*\ zero\ length\ strings\ require\ no\ mixing\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00369}00369\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00370}00370\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00371}00371\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{/*\ make\ valgrind\ happy\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00372}00372\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00373}00373\ \ \ \ \ \ \ \ \ k8\ =\ (\ \textcolor{keyword}{const}\ uint8\_t\ *\ )\ k;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00374}00374\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ length\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00375}00375\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 12:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00376}00376\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00377}00377\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00378}00378\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00379}00379\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00380}00380\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 11:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00381}00381\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k8[10]\ )\ <<\ 16;\ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00382}00382\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 10:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00383}00383\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k8[9]\ )\ <<\ 8;\ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00384}00384\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 9:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00385}00385\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k8[8];\ \ \ \ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00386}00386\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 8:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00387}00387\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00388}00388\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00389}00389\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00390}00390\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 7:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00391}00391\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k8[6]\ )\ <<\ 16;\ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00392}00392\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 6:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00393}00393\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k8[5]\ )\ <<\ 8;\ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00394}00394\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 5:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00395}00395\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k8[4];\ \ \ \ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00396}00396\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 4:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00397}00397\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00398}00398\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00399}00399\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00400}00400\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k8[2]\ )\ <<\ 16;\ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00401}00401\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00402}00402\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k8[1]\ )\ <<\ 8;\ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00403}00403\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00404}00404\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k8[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00405}00405\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00406}00406\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00407}00407\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00408}00408\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00409}00409\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00410}00410\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*\ !valgrind\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00411}00411\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00412}00412\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{lookup3_8c_a8c49a94782a573ded31a7bb1949cbf47}{HASH\_LITTLE\_ENDIAN}}\ \&\&\ (\ (\ u.i\ \&\ 0x1\ )\ ==\ 0\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00413}00413\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint16\_t\ *k\ =\ (\ \textcolor{keyword}{const}\ uint16\_t\ *\ )\ key;\ \textcolor{comment}{/*\ read\ 16-\/bit\ chunks\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00414}00414\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint8\_t\ *k8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00415}00415\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00416}00416\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ all\ but\ last\ block:\ aligned\ reads\ and\ different\ mixing\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00417}00417\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (\ length\ >\ 12\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00418}00418\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ +\ (\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00419}00419\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[2]\ +\ (\ (\ (\ uint32\_t\ )\ k[3]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00420}00420\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[4]\ +\ (\ (\ (\ uint32\_t\ )\ k[5]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00421}00421\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_afd9fa1747724ec6142812721997394c3}{mix}}(\ a,\ b,\ c\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00422}00422\ \ \ \ \ \ \ \ \ \ \ \ \ length\ -\/=\ 12;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00423}00423\ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 6;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00424}00424\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00425}00425\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00426}00426\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ handle\ the\ last\ (probably\ partial)\ block\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00427}00427\ \ \ \ \ \ \ \ \ k8\ =\ (\ \textcolor{keyword}{const}\ uint8\_t\ *\ )\ k;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00428}00428\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ length\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00429}00429\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 12:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00430}00430\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[4]\ +\ (\ (\ (\ uint32\_t\ )\ k[5]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00431}00431\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[2]\ +\ (\ (\ (\ uint32\_t\ )\ k[3]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00432}00432\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ +\ (\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00433}00433\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00434}00434\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 11:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00435}00435\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k8[10]\ )\ <<\ 16;\ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00436}00436\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 10:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00437}00437\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[4];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00438}00438\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[2]\ +\ (\ (\ (\ uint32\_t\ )\ k[3]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00439}00439\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ +\ (\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00440}00440\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00441}00441\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 9:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00442}00442\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k8[8];\ \ \ \ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00443}00443\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 8:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00444}00444\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[2]\ +\ (\ (\ (\ uint32\_t\ )\ k[3]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00445}00445\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ +\ (\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00446}00446\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00447}00447\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 7:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00448}00448\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k8[6]\ )\ <<\ 16;\ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00449}00449\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 6:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00450}00450\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00451}00451\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ +\ (\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00452}00452\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00453}00453\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 5:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00454}00454\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k8[4];\ \ \ \ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00455}00455\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 4:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00456}00456\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ +\ (\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00457}00457\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00458}00458\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00459}00459\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k8[2]\ )\ <<\ 16;\ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00460}00460\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00461}00461\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00462}00462\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00463}00463\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00464}00464\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k8[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00465}00465\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00466}00466\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00467}00467\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ c;\ \ \ \ \ \ \ \textcolor{comment}{/*\ zero\ length\ requires\ no\ mixing\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00468}00468\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00469}00469\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00470}00470\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ need\ to\ read\ the\ key\ one\ byte\ at\ a\ time\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00471}00471\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint8\_t\ *k\ =\ (\ \textcolor{keyword}{const}\ uint8\_t\ *\ )\ key;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00472}00472\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00473}00473\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ all\ but\ the\ last\ block:\ affect\ some\ 32\ bits\ of\ (a,b,c)\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00474}00474\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (\ length\ >\ 12\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00475}00475\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00476}00476\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00477}00477\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[2]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00478}00478\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[3]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00479}00479\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[4];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00480}00480\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[5]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00481}00481\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[6]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00482}00482\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[7]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00483}00483\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[8];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00484}00484\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[9]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00485}00485\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[10]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00486}00486\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[11]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00487}00487\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_afd9fa1747724ec6142812721997394c3}{mix}}(\ a,\ b,\ c\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00488}00488\ \ \ \ \ \ \ \ \ \ \ \ \ length\ -\/=\ 12;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00489}00489\ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 12;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00490}00490\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00491}00491\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00492}00492\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ last\ block:\ affect\ all\ 32\ bits\ of\ (c)\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00493}00493\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ length\ )\ \{\ \ \ \ \ \textcolor{comment}{/*\ all\ the\ case\ statements\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00494}00494\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 12:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00495}00495\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[11]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00496}00496\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 11:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00497}00497\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[10]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00498}00498\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 10:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00499}00499\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[9]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00500}00500\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 9:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00501}00501\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[8];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00502}00502\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 8:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00503}00503\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[7]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00504}00504\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 7:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00505}00505\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[6]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00506}00506\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 6:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00507}00507\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[5]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00508}00508\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 5:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00509}00509\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[4];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00510}00510\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 4:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00511}00511\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[3]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00512}00512\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00513}00513\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[2]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00514}00514\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00515}00515\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00516}00516\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00517}00517\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00518}00518\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00519}00519\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00520}00520\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00521}00521\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00522}00522\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00523}00523\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00524}00524\ \ \ \ \ \textcolor{keyword}{final}(\ a,\ b,\ c\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00525}00525\ \ \ \ \ \textcolor{keywordflow}{return}\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00526}00526\ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00527}00527\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00528}00528\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00529}00529\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00530}00530\ \textcolor{comment}{\ *\ hashlittle2:\ return\ 2\ 32-\/bit\ hash\ values}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00531}00531\ \textcolor{comment}{\ *}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00532}00532\ \textcolor{comment}{\ *\ This\ is\ identical\ to\ hashlittle(),\ except\ it\ returns\ two\ 32-\/bit\ hash}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00533}00533\ \textcolor{comment}{\ *\ values\ instead\ of\ just\ one.\ \ This\ is\ good\ enough\ for\ hash\ table}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00534}00534\ \textcolor{comment}{\ *\ lookup\ with\ 2\string^\string^64\ buckets,\ or\ if\ you\ want\ a\ second\ hash\ if\ you're\ not}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00535}00535\ \textcolor{comment}{\ *\ happy\ with\ the\ first,\ or\ if\ you\ want\ a\ probably-\/unique\ 64-\/bit\ ID\ for}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00536}00536\ \textcolor{comment}{\ *\ the\ key.\ \ *pc\ is\ better\ mixed\ than\ *pb,\ so\ use\ *pc\ first.\ \ If\ you\ want}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00537}00537\ \textcolor{comment}{\ *\ a\ 64-\/bit\ value\ do\ something\ like\ "{}*pc\ +\ (((uint64\_t)*pb)<<32)"{}.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00538}00538\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00539}\mbox{\hyperlink{lookup3_8c_a28bbffa78951ac929184f31d92a05388}{00539}}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{lookup3_8c_a28bbffa78951ac929184f31d92a05388}{hashlittle2}}(\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *key,\ \ \textcolor{comment}{/*\ the\ key\ to\ hash\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00540}00540\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{size\_t}\ length,\ \ \textcolor{comment}{/*\ length\ of\ the\ key\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00541}00541\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint32\_t\ *pc,\ \textcolor{comment}{/*\ IN:\ primary\ initval,\ OUT:\ primary\ hash\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00542}00542\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint32\_t\ *pb\ )\ \{\ \ \textcolor{comment}{/*\ IN:\ secondary\ initval,\ OUT:\ secondary\ hash\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00543}00543\ \ \ \ \ uint32\_t\ a,\ b,\ c;\ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ internal\ state\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00544}00544\ \ \ \ \ \textcolor{keyword}{union\ }\{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00545}00545\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *ptr;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00546}00546\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{size\_t}\ i;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00547}00547\ \ \ \ \ \}\ u;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ needed\ for\ Mac\ Powerbook\ G4\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00548}00548\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00549}00549\ \ \ \ \ \textcolor{comment}{/*\ Set\ up\ the\ internal\ state\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00550}00550\ \ \ \ \ a\ =\ b\ =\ c\ =\ 0xdeadbeef\ +\ (\ (\ uint32\_t\ )\ length\ )\ +\ *pc;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00551}00551\ \ \ \ \ c\ +=\ *pb;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00552}00552\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00553}00553\ \ \ \ \ u.ptr\ =\ key;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00554}00554\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{lookup3_8c_a8c49a94782a573ded31a7bb1949cbf47}{HASH\_LITTLE\_ENDIAN}}\ \&\&\ (\ (\ u.i\ \&\ 0x3\ )\ ==\ 0\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00555}00555\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint32\_t\ *k\ =\ (\ \textcolor{keyword}{const}\ uint32\_t\ *\ )\ key;\ \textcolor{comment}{/*\ read\ 32-\/bit\ chunks\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00556}00556\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint8\_t\ *k8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00557}00557\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00558}00558\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/\ all\ but\ last\ block:\ aligned\ reads\ and\ affect\ 32\ bits\ of\ (a,b,c)\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00559}00559\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (\ length\ >\ 12\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00560}00560\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00561}00561\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00562}00562\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00563}00563\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_afd9fa1747724ec6142812721997394c3}{mix}}(\ a,\ b,\ c\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00564}00564\ \ \ \ \ \ \ \ \ \ \ \ \ length\ -\/=\ 12;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00565}00565\ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 3;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00566}00566\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00567}00567\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00568}00568\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ handle\ the\ last\ (probably\ partial)\ block\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00569}00569\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00570}00570\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ "{}k[2]\&0xffffff"{}\ actually\ reads\ beyond\ the\ end\ of\ the\ string,\ but}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00571}00571\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ then\ masks\ off\ the\ part\ it's\ not\ allowed\ to\ read.\ \ Because\ the}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00572}00572\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ string\ is\ aligned,\ the\ masked-\/off\ tail\ is\ in\ the\ same\ word\ as\ the}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00573}00573\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ rest\ of\ the\ string.\ \ Every\ machine\ with\ memory\ protection\ I've\ seen}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00574}00574\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ does\ it\ on\ word\ boundaries,\ so\ is\ OK\ with\ this.\ \ But\ VALGRIND\ will}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00575}00575\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ still\ catch\ it\ and\ complain.\ \ The\ masking\ trick\ does\ make\ the\ hash}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00576}00576\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ noticably\ faster\ for\ short\ strings\ (like\ English\ words).}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00577}00577\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00578}00578\ \textcolor{preprocessor}{\#ifndef\ VALGRIND}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00579}00579\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00580}00580\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ length\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00581}00581\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 12:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00582}00582\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00583}00583\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00584}00584\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00585}00585\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00586}00586\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 11:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00587}00587\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2]\ \&\ 0xffffff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00588}00588\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00589}00589\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00590}00590\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00591}00591\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 10:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00592}00592\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2]\ \&\ 0xffff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00593}00593\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00594}00594\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00595}00595\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00596}00596\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 9:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00597}00597\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2]\ \&\ 0xff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00598}00598\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00599}00599\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00600}00600\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00601}00601\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 8:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00602}00602\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00603}00603\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00604}00604\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00605}00605\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 7:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00606}00606\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1]\ \&\ 0xffffff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00607}00607\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00608}00608\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00609}00609\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 6:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00610}00610\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1]\ \&\ 0xffff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00611}00611\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00612}00612\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00613}00613\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 5:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00614}00614\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1]\ \&\ 0xff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00615}00615\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00616}00616\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00617}00617\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 4:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00618}00618\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00619}00619\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00620}00620\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00621}00621\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ \&\ 0xffffff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00622}00622\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00623}00623\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00624}00624\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ \&\ 0xffff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00625}00625\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00626}00626\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00627}00627\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ \&\ 0xff;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00628}00628\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00629}00629\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00630}00630\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *pc\ =\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00631}00631\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *pb\ =\ b;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00632}00632\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return};\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ zero\ length\ strings\ require\ no\ mixing\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00633}00633\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00634}00634\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00635}00635\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{/*\ make\ valgrind\ happy\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00636}00636\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00637}00637\ \ \ \ \ \ \ \ \ k8\ =\ (\ \textcolor{keyword}{const}\ uint8\_t\ *\ )\ k;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00638}00638\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ length\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00639}00639\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 12:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00640}00640\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00641}00641\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00642}00642\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00643}00643\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00644}00644\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 11:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00645}00645\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k8[10]\ )\ <<\ 16;\ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00646}00646\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 10:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00647}00647\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k8[9]\ )\ <<\ 8;\ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00648}00648\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 9:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00649}00649\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k8[8];\ \ \ \ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00650}00650\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 8:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00651}00651\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00652}00652\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00653}00653\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00654}00654\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 7:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00655}00655\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k8[6]\ )\ <<\ 16;\ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00656}00656\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 6:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00657}00657\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k8[5]\ )\ <<\ 8;\ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00658}00658\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 5:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00659}00659\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k8[4];\ \ \ \ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00660}00660\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 4:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00661}00661\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00662}00662\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00663}00663\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00664}00664\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k8[2]\ )\ <<\ 16;\ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00665}00665\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00666}00666\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k8[1]\ )\ <<\ 8;\ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00667}00667\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00668}00668\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k8[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00669}00669\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00670}00670\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00671}00671\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *pc\ =\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00672}00672\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *pb\ =\ b;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00673}00673\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return};\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ zero\ length\ strings\ require\ no\ mixing\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00674}00674\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00675}00675\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00676}00676\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*\ !valgrind\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00677}00677\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00678}00678\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{lookup3_8c_a8c49a94782a573ded31a7bb1949cbf47}{HASH\_LITTLE\_ENDIAN}}\ \&\&\ (\ (\ u.i\ \&\ 0x1\ )\ ==\ 0\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00679}00679\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint16\_t\ *k\ =\ (\ \textcolor{keyword}{const}\ uint16\_t\ *\ )\ key;\ \textcolor{comment}{/*\ read\ 16-\/bit\ chunks\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00680}00680\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint8\_t\ *k8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00681}00681\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00682}00682\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ all\ but\ last\ block:\ aligned\ reads\ and\ different\ mixing\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00683}00683\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (\ length\ >\ 12\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00684}00684\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ +\ (\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00685}00685\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[2]\ +\ (\ (\ (\ uint32\_t\ )\ k[3]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00686}00686\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[4]\ +\ (\ (\ (\ uint32\_t\ )\ k[5]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00687}00687\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_afd9fa1747724ec6142812721997394c3}{mix}}(\ a,\ b,\ c\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00688}00688\ \ \ \ \ \ \ \ \ \ \ \ \ length\ -\/=\ 12;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00689}00689\ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 6;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00690}00690\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00691}00691\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00692}00692\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ handle\ the\ last\ (probably\ partial)\ block\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00693}00693\ \ \ \ \ \ \ \ \ k8\ =\ (\ \textcolor{keyword}{const}\ uint8\_t\ *\ )\ k;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00694}00694\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ length\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00695}00695\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 12:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00696}00696\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[4]\ +\ (\ (\ (\ uint32\_t\ )\ k[5]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00697}00697\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[2]\ +\ (\ (\ (\ uint32\_t\ )\ k[3]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00698}00698\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ +\ (\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00699}00699\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00700}00700\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 11:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00701}00701\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k8[10]\ )\ <<\ 16;\ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00702}00702\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 10:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00703}00703\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[4];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00704}00704\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[2]\ +\ (\ (\ (\ uint32\_t\ )\ k[3]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00705}00705\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ +\ (\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00706}00706\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00707}00707\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 9:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00708}00708\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k8[8];\ \ \ \ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00709}00709\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 8:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00710}00710\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[2]\ +\ (\ (\ (\ uint32\_t\ )\ k[3]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00711}00711\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ +\ (\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00712}00712\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00713}00713\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 7:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00714}00714\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k8[6]\ )\ <<\ 16;\ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00715}00715\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 6:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00716}00716\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00717}00717\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ +\ (\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00718}00718\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00719}00719\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 5:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00720}00720\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k8[4];\ \ \ \ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00721}00721\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 4:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00722}00722\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ +\ (\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 16\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00723}00723\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00724}00724\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00725}00725\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k8[2]\ )\ <<\ 16;\ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00726}00726\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00727}00727\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00728}00728\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00729}00729\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00730}00730\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k8[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00731}00731\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00732}00732\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00733}00733\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *pc\ =\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00734}00734\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *pb\ =\ b;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00735}00735\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return};\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ zero\ length\ strings\ require\ no\ mixing\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00736}00736\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00737}00737\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00738}00738\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ need\ to\ read\ the\ key\ one\ byte\ at\ a\ time\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00739}00739\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint8\_t\ *k\ =\ (\ \textcolor{keyword}{const}\ uint8\_t\ *\ )\ key;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00740}00740\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00741}00741\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ all\ but\ the\ last\ block:\ affect\ some\ 32\ bits\ of\ (a,b,c)\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00742}00742\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (\ length\ >\ 12\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00743}00743\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00744}00744\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00745}00745\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[2]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00746}00746\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[3]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00747}00747\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[4];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00748}00748\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[5]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00749}00749\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[6]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00750}00750\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[7]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00751}00751\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[8];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00752}00752\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[9]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00753}00753\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[10]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00754}00754\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[11]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00755}00755\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_afd9fa1747724ec6142812721997394c3}{mix}}(\ a,\ b,\ c\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00756}00756\ \ \ \ \ \ \ \ \ \ \ \ \ length\ -\/=\ 12;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00757}00757\ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 12;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00758}00758\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00759}00759\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00760}00760\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ last\ block:\ affect\ all\ 32\ bits\ of\ (c)\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00761}00761\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ length\ )\ \{\ \ \ \ \ \textcolor{comment}{/*\ all\ the\ case\ statements\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00762}00762\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 12:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00763}00763\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[11]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00764}00764\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 11:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00765}00765\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[10]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00766}00766\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 10:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00767}00767\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[9]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00768}00768\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 9:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00769}00769\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[8];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00770}00770\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 8:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00771}00771\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[7]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00772}00772\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 7:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00773}00773\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[6]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00774}00774\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 6:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00775}00775\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[5]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00776}00776\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 5:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00777}00777\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[4];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00778}00778\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 4:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00779}00779\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[3]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00780}00780\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00781}00781\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[2]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00782}00782\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00783}00783\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00784}00784\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00785}00785\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00786}00786\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00787}00787\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00788}00788\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *pc\ =\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00789}00789\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *pb\ =\ b;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00790}00790\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return};\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ zero\ length\ strings\ require\ no\ mixing\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00791}00791\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00792}00792\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00793}00793\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00794}00794\ \ \ \ \ \textcolor{keyword}{final}(\ a,\ b,\ c\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00795}00795\ \ \ \ \ *pc\ =\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00796}00796\ \ \ \ \ *pb\ =\ b;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00797}00797\ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00798}00798\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00799}00799\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00800}00800\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00801}00801\ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00802}00802\ \textcolor{comment}{\ *\ hashbig():}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00803}00803\ \textcolor{comment}{\ *\ This\ is\ the\ same\ as\ hashword()\ on\ big-\/endian\ machines.\ \ It\ is\ different}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00804}00804\ \textcolor{comment}{\ *\ from\ hashlittle()\ on\ all\ machines.\ \ hashbig()\ takes\ advantage\ of}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00805}00805\ \textcolor{comment}{\ *\ big-\/endian\ byte\ ordering.}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00806}00806\ \textcolor{comment}{\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00807}\mbox{\hyperlink{lookup3_8c_a04a1acea05ca32ed5d3d90c595012be3}{00807}}\ uint32\_t\ \mbox{\hyperlink{lookup3_8c_a04a1acea05ca32ed5d3d90c595012be3}{hashbig}}(\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *key,\ \textcolor{keywordtype}{size\_t}\ length,\ uint32\_t\ initval\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00808}00808\ \ \ \ \ uint32\_t\ a,\ b,\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00809}00809\ \ \ \ \ \textcolor{keyword}{union\ }\{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00810}00810\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{void}\ *ptr;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00811}00811\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{size\_t}\ i;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00812}00812\ \ \ \ \ \}\ u;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ to\ cast\ key\ to\ (size\_t)\ happily\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00813}00813\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00814}00814\ \ \ \ \ \textcolor{comment}{/*\ Set\ up\ the\ internal\ state\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00815}00815\ \ \ \ \ a\ =\ b\ =\ c\ =\ 0xdeadbeef\ +\ (\ (\ uint32\_t\ )\ length\ )\ +\ initval;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00816}00816\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00817}00817\ \ \ \ \ u.ptr\ =\ key;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00818}00818\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{lookup3_8c_a129f72057b84147c7c3e2a6d107f0e3b}{HASH\_BIG\_ENDIAN}}\ \&\&\ (\ (\ u.i\ \&\ 0x3\ )\ ==\ 0\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00819}00819\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint32\_t\ *k\ =\ (\ \textcolor{keyword}{const}\ uint32\_t\ *\ )\ key;\ \textcolor{comment}{/*\ read\ 32-\/bit\ chunks\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00820}00820\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint8\_t\ *k8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00821}00821\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00822}00822\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/\ all\ but\ last\ block:\ aligned\ reads\ and\ affect\ 32\ bits\ of\ (a,b,c)\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00823}00823\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (\ length\ >\ 12\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00824}00824\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00825}00825\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00826}00826\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00827}00827\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_afd9fa1747724ec6142812721997394c3}{mix}}(\ a,\ b,\ c\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00828}00828\ \ \ \ \ \ \ \ \ \ \ \ \ length\ -\/=\ 12;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00829}00829\ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 3;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00830}00830\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00831}00831\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00832}00832\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ handle\ the\ last\ (probably\ partial)\ block\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00833}00833\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00834}00834\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ "{}k[2]<<8"{}\ actually\ reads\ beyond\ the\ end\ of\ the\ string,\ but}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00835}00835\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ then\ shifts\ out\ the\ part\ it's\ not\ allowed\ to\ read.\ \ Because\ the}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00836}00836\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ string\ is\ aligned,\ the\ illegal\ read\ is\ in\ the\ same\ word\ as\ the}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00837}00837\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ rest\ of\ the\ string.\ \ Every\ machine\ with\ memory\ protection\ I've\ seen}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00838}00838\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ does\ it\ on\ word\ boundaries,\ so\ is\ OK\ with\ this.\ \ But\ VALGRIND\ will}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00839}00839\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ still\ catch\ it\ and\ complain.\ \ The\ masking\ trick\ does\ make\ the\ hash}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00840}00840\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ noticably\ faster\ for\ short\ strings\ (like\ English\ words).}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00841}00841\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00842}00842\ \textcolor{preprocessor}{\#ifndef\ VALGRIND}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00843}00843\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00844}00844\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ length\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00845}00845\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 12:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00846}00846\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00847}00847\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00848}00848\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00849}00849\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00850}00850\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 11:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00851}00851\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2]\ \&\ 0xffffff00;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00852}00852\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00853}00853\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00854}00854\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00855}00855\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 10:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00856}00856\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2]\ \&\ 0xffff0000;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00857}00857\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00858}00858\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00859}00859\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00860}00860\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 9:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00861}00861\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2]\ \&\ 0xff000000;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00862}00862\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00863}00863\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00864}00864\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00865}00865\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 8:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00866}00866\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00867}00867\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00868}00868\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00869}00869\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 7:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00870}00870\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1]\ \&\ 0xffffff00;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00871}00871\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00872}00872\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00873}00873\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 6:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00874}00874\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1]\ \&\ 0xffff0000;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00875}00875\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00876}00876\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00877}00877\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 5:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00878}00878\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1]\ \&\ 0xff000000;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00879}00879\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00880}00880\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00881}00881\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 4:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00882}00882\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00883}00883\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00884}00884\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00885}00885\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ \&\ 0xffffff00;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00886}00886\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00887}00887\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00888}00888\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ \&\ 0xffff0000;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00889}00889\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00890}00890\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00891}00891\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0]\ \&\ 0xff000000;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00892}00892\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00893}00893\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00894}00894\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ c;\ \ \ \ \ \ \ \textcolor{comment}{/*\ zero\ length\ strings\ require\ no\ mixing\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00895}00895\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00896}00896\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00897}00897\ \textcolor{preprocessor}{\#else\ }\textcolor{comment}{/*\ make\ valgrind\ happy\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00898}00898\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00899}00899\ \ \ \ \ \ \ \ \ k8\ =\ (\ \textcolor{keyword}{const}\ uint8\_t\ *\ )\ k;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00900}00900\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ length\ )\ \{\ \ \ \ \ \textcolor{comment}{/*\ all\ the\ case\ statements\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00901}00901\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 12:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00902}00902\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00903}00903\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00904}00904\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00905}00905\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00906}00906\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 11:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00907}00907\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k8[10]\ )\ <<\ 8;\ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00908}00908\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 10:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00909}00909\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k8[9]\ )\ <<\ 16;\ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00910}00910\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 9:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00911}00911\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k8[8]\ )\ <<\ 24;\ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00912}00912\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 8:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00913}00913\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00914}00914\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00915}00915\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00916}00916\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 7:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00917}00917\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k8[6]\ )\ <<\ 8;\ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00918}00918\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 6:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00919}00919\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k8[5]\ )\ <<\ 16;\ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00920}00920\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 5:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00921}00921\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k8[4]\ )\ <<\ 24;\ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00922}00922\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 4:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00923}00923\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[0];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00924}00924\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00925}00925\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00926}00926\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k8[2]\ )\ <<\ 8;\ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00927}00927\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00928}00928\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k8[1]\ )\ <<\ 16;\ \ \textcolor{comment}{/*\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00929}00929\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00930}00930\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k8[0]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00931}00931\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00932}00932\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00933}00933\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00934}00934\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00935}00935\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00936}00936\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*\ !VALGRIND\ */}\textcolor{preprocessor}{}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00937}00937\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00938}00938\ \ \ \ \ \}\ \textcolor{keywordflow}{else}\ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ need\ to\ read\ the\ key\ one\ byte\ at\ a\ time\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00939}00939\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint8\_t\ *k\ =\ (\ \textcolor{keyword}{const}\ uint8\_t\ *\ )\ key;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00940}00940\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00941}00941\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ all\ but\ the\ last\ block:\ affect\ some\ 32\ bits\ of\ (a,b,c)\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00942}00942\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{while}\ (\ length\ >\ 12\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00943}00943\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[0]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00944}00944\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00945}00945\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[2]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00946}00946\ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[3]\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00947}00947\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[4]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00948}00948\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[5]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00949}00949\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[6]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00950}00950\ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[7]\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00951}00951\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[8]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00952}00952\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[9]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00953}00953\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[10]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00954}00954\ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[11]\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00955}00955\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_afd9fa1747724ec6142812721997394c3}{mix}}(\ a,\ b,\ c\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00956}00956\ \ \ \ \ \ \ \ \ \ \ \ \ length\ -\/=\ 12;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00957}00957\ \ \ \ \ \ \ \ \ \ \ \ \ k\ +=\ 12;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00958}00958\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00959}00959\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00960}00960\ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ last\ block:\ affect\ all\ 32\ bits\ of\ (c)\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00961}00961\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{switch}\ (\ length\ )\ \{\ \ \ \ \ \textcolor{comment}{/*\ all\ the\ case\ statements\ fall\ through\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00962}00962\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 12:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00963}00963\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ k[11];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00964}00964\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 11:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00965}00965\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[10]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00966}00966\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 10:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00967}00967\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[9]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00968}00968\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 9:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00969}00969\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c\ +=\ (\ (\ uint32\_t\ )\ k[8]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00970}00970\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 8:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00971}00971\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ k[7];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00972}00972\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 7:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00973}00973\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[6]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00974}00974\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 6:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00975}00975\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[5]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00976}00976\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 5:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00977}00977\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b\ +=\ (\ (\ uint32\_t\ )\ k[4]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00978}00978\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 4:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00979}00979\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ k[3];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00980}00980\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 3:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00981}00981\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[2]\ )\ <<\ 8;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00982}00982\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 2:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00983}00983\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[1]\ )\ <<\ 16;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00984}00984\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 1:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00985}00985\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a\ +=\ (\ (\ uint32\_t\ )\ k[0]\ )\ <<\ 24;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00986}00986\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00987}00987\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{case}\ 0:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00988}00988\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{return}\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00989}00989\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00990}00990\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00991}00991\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00992}00992\ \ \ \ \ \textcolor{keyword}{final}(\ a,\ b,\ c\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00993}00993\ \ \ \ \ \textcolor{keywordflow}{return}\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00994}00994\ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00995}00995\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00996}00996\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00997}00997\ \textcolor{preprocessor}{\#ifdef\ SELF\_TEST}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00998}00998\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l00999}00999\ \textcolor{comment}{/*\ used\ for\ timings\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01000}01000\ \textcolor{keywordtype}{void}\ driver1(\ \ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01001}01001\ \ \ \ \ uint8\_t\ buf[256];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01002}01002\ \ \ \ \ uint32\_t\ i;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01003}01003\ \ \ \ \ uint32\_t\ h\ =\ 0;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01004}01004\ \ \ \ \ time\_t\ a,\ z;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01005}01005\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01006}01006\ \ \ \ \ time(\ \&a\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01007}01007\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ i\ =\ 0;\ i\ <\ 256;\ ++i\ )}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01008}01008\ \ \ \ \ \ \ \ \ buf[i]\ =\ \textcolor{charliteral}{'x'};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01009}01009\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ i\ =\ 0;\ i\ <\ 1;\ ++i\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01010}01010\ \ \ \ \ \ \ \ \ h\ =\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ \&buf[0],\ 1,\ h\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01011}01011\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01012}01012\ \ \ \ \ time(\ \&z\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01013}01013\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ z\ -\/\ a\ >\ 0\ )}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01014}01014\ \ \ \ \ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}time\ \%d\ \%.8x\(\backslash\)n"{}},\ z\ -\/\ a,\ h\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01015}01015\ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01016}01016\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01017}01017\ \textcolor{comment}{/*\ check\ that\ every\ input\ bit\ changes\ every\ output\ bit\ half\ the\ time\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01018}01018\ \textcolor{preprocessor}{\#define\ HASHSTATE\ 1}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01019}01019\ \textcolor{preprocessor}{\#define\ HASHLEN\ \ \ 1}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01020}01020\ \textcolor{preprocessor}{\#define\ MAXPAIR\ 60}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01021}01021\ \textcolor{preprocessor}{\#define\ MAXLEN\ \ 70}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01022}01022\ \textcolor{keywordtype}{void}\ driver2(\ \ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01023}01023\ \ \ \ \ uint8\_t\ qa[MAXLEN\ +\ 1],\ qb[MAXLEN\ +\ 2],\ *a\ =\ \&qa[0],\ *b\ =\ \&qb[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01024}01024\ \ \ \ \ uint32\_t\ c[HASHSTATE],\ d[HASHSTATE],\ i\ =\ 0,\ j\ =\ 0,\ k,\ l,\ m\ =\ 0,\ z;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01025}01025\ \ \ \ \ uint32\_t\ e[HASHSTATE],\ f[HASHSTATE],\ g[HASHSTATE],\ h[HASHSTATE];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01026}01026\ \ \ \ \ uint32\_t\ x[HASHSTATE],\ y[HASHSTATE];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01027}01027\ \ \ \ \ uint32\_t\ hlen;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01028}01028\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01029}01029\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}No\ more\ than\ \%d\ trials\ should\ ever\ be\ needed\ \(\backslash\)n"{}},\ MAXPAIR\ /\ 2\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01030}01030\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ hlen\ =\ 0;\ hlen\ <\ MAXLEN;\ ++hlen\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01031}01031\ \ \ \ \ \ \ \ \ z\ =\ 0;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01032}01032\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ i\ =\ 0;\ i\ <\ hlen;\ ++i\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01033}01033\ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ for\ each\ input\ byte,\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01034}01034\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ j\ =\ 0;\ j\ <\ 8;\ ++j\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01035}01035\ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ for\ each\ input\ bit,\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01036}01036\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ m\ =\ 1;\ m\ <\ 8;\ ++m\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01037}01037\ \textcolor{comment}{/*-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/\ for\ serveral\ possible\ initvals,\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01038}01038\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ l\ =\ 0;\ l\ <\ HASHSTATE;\ ++l\ )}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01039}01039\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ e[l]\ =\ f[l]\ =\ g[l]\ =\ h[l]\ =\ x[l]\ =\ y[l]\ =}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01040}01040\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \string~(\ (\ uint32\_t\ )\ 0\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01041}01041\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01042}01042\ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*-\/-\/-\/-\/\ check\ that\ every\ output\ bit\ is\ affected\ by\ that\ input\ bit\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01043}01043\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ k\ =\ 0;\ k\ <\ MAXPAIR;\ k\ +=\ 2\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01044}01044\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint32\_t\ finished\ =\ 1;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01045}01045\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ keys\ have\ one\ bit\ different\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01046}01046\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ l\ =\ 0;\ l\ <\ hlen\ +\ 1;\ ++l\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01047}01047\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a[l]\ =\ b[l]\ =\ (\ uint8\_t\ )\ 0;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01048}01048\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01049}01049\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ have\ a\ and\ b\ be\ two\ keys\ differing\ in\ only\ one\ bit\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01050}01050\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a[i]\ \string^=\ (\ k\ <<\ j\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01051}01051\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ a[i]\ \string^=\ (\ k\ >>\ (\ 8\ -\/\ j\ )\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01052}01052\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ c[0]\ =\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ a,\ hlen,\ m\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01053}01053\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b[i]\ \string^=\ (\ (\ k\ +\ 1\ )\ <<\ j\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01054}01054\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ b[i]\ \string^=\ (\ (\ k\ +\ 1\ )\ >>\ (\ 8\ -\/\ j\ )\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01055}01055\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ d[0]\ =\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ b,\ hlen,\ m\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01056}01056\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ check\ every\ bit\ is\ 1,\ 0,\ set,\ and\ not\ set\ at\ least\ once\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01057}01057\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ l\ =\ 0;\ l\ <\ HASHSTATE;\ ++l\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01058}01058\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ e[l]\ \&=\ (\ c[l]\ \string^\ d[l]\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01059}01059\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ f[l]\ \&=\ \string~(\ c[l]\ \string^\ d[l]\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01060}01060\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ g[l]\ \&=\ c[l];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01061}01061\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ h[l]\ \&=\ \string~c[l];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01062}01062\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x[l]\ \&=\ d[l];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01063}01063\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ y[l]\ \&=\ \string~d[l];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01064}01064\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ e[l]\ |\ f[l]\ |\ g[l]\ |\ h[l]\ |\ x[l]\ |\ y[l]\ )}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01065}01065\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ finished\ =\ 0;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01066}01066\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01067}01067\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ finished\ )}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01068}01068\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01069}01069\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01070}01070\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ k\ >\ z\ )}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01071}01071\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z\ =\ k;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01072}01072\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ k\ ==\ MAXPAIR\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01073}01073\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}Some\ bit\ didn't\ change:\ "{}}\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01074}01074\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}\%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \ "{}},}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01075}01075\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ e[0],\ f[0],\ g[0],\ h[0],\ x[0],\ y[0]\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01076}01076\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}i\ \%d\ j\ \%d\ m\ \%d\ len\ \%d\(\backslash\)n"{}},\ i,\ j,\ m,\ hlen\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01077}01077\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01078}01078\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ z\ ==\ MAXPAIR\ )}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01079}01079\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{goto}\ done;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01080}01080\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01081}01081\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01082}01082\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01083}01083\ \ \ \ \ \ \ done:}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01084}01084\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ z\ <\ MAXPAIR\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01085}01085\ \ \ \ \ \ \ \ \ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}Mix\ success\ \ \%2d\ bytes\ \ \%2d\ initvals\ \ "{}},\ i,\ m\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01086}01086\ \ \ \ \ \ \ \ \ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}required\ \ \%d\ \ trials\(\backslash\)n"{}},\ z\ /\ 2\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01087}01087\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01088}01088\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01089}01089\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}}\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01090}01090\ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01091}01091\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01092}01092\ \textcolor{comment}{/*\ Check\ for\ reading\ beyond\ the\ end\ of\ the\ buffer\ and\ alignment\ problems\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01093}01093\ \textcolor{keywordtype}{void}\ driver3(\ \ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01094}01094\ \ \ \ \ uint8\_t\ buf[MAXLEN\ +\ 20],\ *b;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01095}01095\ \ \ \ \ uint32\_t\ len;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01096}01096\ \ \ \ \ uint8\_t\ q[]\ =}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01097}01097\ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}This\ is\ the\ time\ for\ all\ good\ men\ to\ come\ to\ the\ aid\ of\ their\ country..."{}};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01098}01098\ \ \ \ \ uint32\_t\ h;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01099}01099\ \ \ \ \ uint8\_t\ qq[]\ =}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01100}01100\ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}xThis\ is\ the\ time\ for\ all\ good\ men\ to\ come\ to\ the\ aid\ of\ their\ country..."{}};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01101}01101\ \ \ \ \ uint32\_t\ i;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01102}01102\ \ \ \ \ uint8\_t\ qqq[]\ =}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01103}01103\ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}xxThis\ is\ the\ time\ for\ all\ good\ men\ to\ come\ to\ the\ aid\ of\ their\ country..."{}};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01104}01104\ \ \ \ \ uint32\_t\ j;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01105}01105\ \ \ \ \ uint8\_t\ qqqq[]\ =}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01106}01106\ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}xxxThis\ is\ the\ time\ for\ all\ good\ men\ to\ come\ to\ the\ aid\ of\ their\ country..."{}};}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01107}01107\ \ \ \ \ uint32\_t\ ref,\ x,\ y;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01108}01108\ \ \ \ \ uint8\_t\ *p;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01109}01109\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01110}01110\ \ \ \ \ printf}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01111}01111\ \ \ \ \ \ \ \ \ (\ \textcolor{stringliteral}{"{}Endianness.\ \ These\ lines\ should\ all\ be\ the\ same\ (for\ values\ filled\ in):\(\backslash\)n"{}}\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01112}01112\ \ \ \ \ printf}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01113}01113\ \ \ \ \ \ \ \ \ (\ \textcolor{stringliteral}{"{}\%.8x\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \%.8x\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \%.8x\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01114}01114\ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a6b57e35d1649b351ed629d3e022bf85f}{hashword}}(\ (\ \textcolor{keyword}{const}\ uint32\_t\ *\ )\ q,\ (\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 1\ )\ /\ 4,\ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01115}01115\ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a6b57e35d1649b351ed629d3e022bf85f}{hashword}}(\ (\ \textcolor{keyword}{const}\ uint32\_t\ *\ )\ q,\ (\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 5\ )\ /\ 4,\ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01116}01116\ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a6b57e35d1649b351ed629d3e022bf85f}{hashword}}(\ (\ \textcolor{keyword}{const}\ uint32\_t\ *\ )\ q,\ (\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 9\ )\ /\ 4,\ 13\ )\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01117}01117\ \ \ \ \ p\ =\ q;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01118}01118\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}\%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01119}01119\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 1,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01120}01120\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 2,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01121}01121\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01122}01122\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 3,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01123}01123\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 4,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01124}01124\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01125}01125\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 5,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01126}01126\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 6,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01127}01127\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01128}01128\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 7,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01129}01129\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 8,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01130}01130\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01131}01131\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 9,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01132}01132\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 10,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01133}01133\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01134}01134\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 11,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01135}01135\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01136}01136\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 12,\ 13\ )\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01137}01137\ \ \ \ \ p\ =\ \&qq[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01138}01138\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}\%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01139}01139\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 1,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01140}01140\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 2,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01141}01141\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01142}01142\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 3,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01143}01143\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 4,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01144}01144\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01145}01145\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 5,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01146}01146\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 6,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01147}01147\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01148}01148\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 7,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01149}01149\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 8,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01150}01150\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01151}01151\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 9,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01152}01152\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 10,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01153}01153\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01154}01154\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 11,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01155}01155\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01156}01156\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 12,\ 13\ )\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01157}01157\ \ \ \ \ p\ =\ \&qqq[2];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01158}01158\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}\%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01159}01159\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 1,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01160}01160\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 2,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01161}01161\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01162}01162\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 3,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01163}01163\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 4,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01164}01164\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01165}01165\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 5,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01166}01166\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 6,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01167}01167\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01168}01168\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 7,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01169}01169\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 8,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01170}01170\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01171}01171\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 9,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01172}01172\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 10,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01173}01173\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01174}01174\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 11,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01175}01175\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01176}01176\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 12,\ 13\ )\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01177}01177\ \ \ \ \ p\ =\ \&qqqq[3];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01178}01178\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}\%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\ \%.8x\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01179}01179\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 1,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01180}01180\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 2,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01181}01181\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01182}01182\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 3,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01183}01183\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 4,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01184}01184\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01185}01185\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 5,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01186}01186\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 6,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01187}01187\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01188}01188\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 7,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01189}01189\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 8,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01190}01190\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01191}01191\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 9,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01192}01192\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 10,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01193}01193\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 13\ ),}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01194}01194\ \ \ \ \ \ \ \ \ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,\ \textcolor{keyword}{sizeof}(\ q\ )\ -\/\ 11,\ 13\ ),\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ p,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01195}01195\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{sizeof}(\ q\ )\ -\/}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01196}01196\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 12,\ 13\ )\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01197}01197\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}\(\backslash\)n"{}}\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01198}01198\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01199}01199\ \ \ \ \ \textcolor{comment}{/*\ check\ that\ hashlittle2\ and\ hashlittle\ produce\ the\ same\ results\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01200}01200\ \ \ \ \ i\ =\ 47;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01201}01201\ \ \ \ \ j\ =\ 0;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01202}01202\ \ \ \ \ \mbox{\hyperlink{lookup3_8c_a28bbffa78951ac929184f31d92a05388}{hashlittle2}}(\ q,\ \textcolor{keyword}{sizeof}(\ q\ ),\ \&i,\ \&j\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01203}01203\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ q,\ \textcolor{keyword}{sizeof}(\ q\ ),\ 47\ )\ !=\ i\ )}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01204}01204\ \ \ \ \ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}hashlittle2\ and\ hashlittle\ mismatch\(\backslash\)n"{}}\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01205}01205\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01206}01206\ \ \ \ \ \textcolor{comment}{/*\ check\ that\ hashword2\ and\ hashword\ produce\ the\ same\ results\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01207}01207\ \ \ \ \ len\ =\ 0xdeadbeef;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01208}01208\ \ \ \ \ i\ =\ 47,\ j\ =\ 0;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01209}01209\ \ \ \ \ \mbox{\hyperlink{lookup3_8c_af4b16260e69ab4fc6a2584d04332404b}{hashword2}}(\ \&len,\ 1,\ \&i,\ \&j\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01210}01210\ \ \ \ \ \textcolor{keywordflow}{if}\ (\ \mbox{\hyperlink{lookup3_8c_a6b57e35d1649b351ed629d3e022bf85f}{hashword}}(\ \&len,\ 1,\ 47\ )\ !=\ i\ )}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01211}01211\ \ \ \ \ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}hashword2\ and\ hashword\ mismatch\ \%x\ \%x\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01212}01212\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ i,\ \mbox{\hyperlink{lookup3_8c_a6b57e35d1649b351ed629d3e022bf85f}{hashword}}(\ \&len,\ 1,\ 47\ )\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01213}01213\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01214}01214\ \ \ \ \ \textcolor{comment}{/*\ check\ hashlittle\ doesn't\ read\ before\ or\ after\ the\ ends\ of\ the\ string\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01215}01215\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ h\ =\ 0,\ b\ =\ buf\ +\ 1;\ h\ <\ 8;\ ++h,\ ++b\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01216}01216\ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ i\ =\ 0;\ i\ <\ MAXLEN;\ ++i\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01217}01217\ \ \ \ \ \ \ \ \ \ \ \ \ len\ =\ i;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01218}01218\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{for}\ (\ j\ =\ 0;\ j\ <\ i;\ ++j\ )}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01219}01219\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *(\ b\ +\ j\ )\ =\ 0;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01220}01220\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01221}01221\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ these\ should\ all\ be\ equal\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01222}01222\ \ \ \ \ \ \ \ \ \ \ \ \ ref\ =\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ b,\ len,\ (\ uint32\_t\ )\ 1\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01223}01223\ \ \ \ \ \ \ \ \ \ \ \ \ *(\ b\ +\ i\ )\ =\ (\ uint8\_t\ )\ \string~\ 0;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01224}01224\ \ \ \ \ \ \ \ \ \ \ \ \ *(\ b\ -\/\ 1\ )\ =\ (\ uint8\_t\ )\ \string~\ 0;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01225}01225\ \ \ \ \ \ \ \ \ \ \ \ \ x\ =\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ b,\ len,\ (\ uint32\_t\ )\ 1\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01226}01226\ \ \ \ \ \ \ \ \ \ \ \ \ y\ =\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ b,\ len,\ (\ uint32\_t\ )\ 1\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01227}01227\ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordflow}{if}\ (\ (\ ref\ !=\ x\ )\ ||\ (\ ref\ !=\ y\ )\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01228}01228\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}alignment\ error:\ \%.8x\ \%.8x\ \%.8x\ \%d\ \%d\(\backslash\)n"{}},\ ref,\ x,\ y,}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01229}01229\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ h,\ i\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01230}01230\ \ \ \ \ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01231}01231\ \ \ \ \ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01232}01232\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01233}01233\ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01234}01234\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01235}01235\ \textcolor{comment}{/*\ check\ for\ problems\ with\ nulls\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01236}01236\ \textcolor{keywordtype}{void}\ driver4(\ \ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01237}01237\ \ \ \ \ uint8\_t\ buf[1];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01238}01238\ \ \ \ \ uint32\_t\ h,\ i,\ state[HASHSTATE];}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01239}01239\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01240}01240\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01241}01241\ \ \ \ \ buf[0]\ =\ \string~0;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01242}01242\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ i\ =\ 0;\ i\ <\ HASHSTATE;\ ++i\ )}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01243}01243\ \ \ \ \ \ \ \ \ state[i]\ =\ 1;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01244}01244\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}These\ should\ all\ be\ different\(\backslash\)n"{}}\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01245}01245\ \ \ \ \ \textcolor{keywordflow}{for}\ (\ i\ =\ 0,\ h\ =\ 0;\ i\ <\ 8;\ ++i\ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01246}01246\ \ \ \ \ \ \ \ \ h\ =\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ buf,\ 0,\ h\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01247}01247\ \ \ \ \ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}\%2ld\ \ 0-\/byte\ strings,\ hash\ is\ \ \%.8x\(\backslash\)n"{}},\ i,\ h\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01248}01248\ \ \ \ \ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01249}01249\ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01250}01250\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01251}01251\ \textcolor{keywordtype}{void}\ driver5(\ \ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01252}01252\ \ \ \ \ uint32\_t\ b,\ c;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01253}01253\ \ \ \ \ b\ =\ 0,\ c\ =\ 0,\ \mbox{\hyperlink{lookup3_8c_a28bbffa78951ac929184f31d92a05388}{hashlittle2}}(\ \textcolor{stringliteral}{"{}"{}},\ 0,\ \&c,\ \&b\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01254}01254\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}hash\ is\ \%.8lx\ \%.8lx\(\backslash\)n"{}},\ c,\ b\ );\ \ \textcolor{comment}{/*\ deadbeef\ deadbeef\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01255}01255\ \ \ \ \ b\ =\ 0xdeadbeef,\ c\ =\ 0,\ \mbox{\hyperlink{lookup3_8c_a28bbffa78951ac929184f31d92a05388}{hashlittle2}}(\ \textcolor{stringliteral}{"{}"{}},\ 0,\ \&c,\ \&b\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01256}01256\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}hash\ is\ \%.8lx\ \%.8lx\(\backslash\)n"{}},\ c,\ b\ );\ \ \textcolor{comment}{/*\ bd5b7dde\ deadbeef\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01257}01257\ \ \ \ \ b\ =\ 0xdeadbeef,\ c\ =\ 0xdeadbeef,\ \mbox{\hyperlink{lookup3_8c_a28bbffa78951ac929184f31d92a05388}{hashlittle2}}(\ \textcolor{stringliteral}{"{}"{}},\ 0,\ \&c,\ \&b\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01258}01258\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}hash\ is\ \%.8lx\ \%.8lx\(\backslash\)n"{}},\ c,\ b\ );\ \ \textcolor{comment}{/*\ 9c093ccd\ bd5b7dde\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01259}01259\ \ \ \ \ b\ =\ 0,\ c\ =\ 0,\ \mbox{\hyperlink{lookup3_8c_a28bbffa78951ac929184f31d92a05388}{hashlittle2}}(\ \textcolor{stringliteral}{"{}Four\ score\ and\ seven\ years\ ago"{}},\ 30,\ \&c,\ \&b\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01260}01260\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}hash\ is\ \%.8lx\ \%.8lx\(\backslash\)n"{}},\ c,\ b\ );\ \ \textcolor{comment}{/*\ 17770551\ ce7226e6\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01261}01261\ \ \ \ \ b\ =\ 1,\ c\ =\ 0,\ \mbox{\hyperlink{lookup3_8c_a28bbffa78951ac929184f31d92a05388}{hashlittle2}}(\ \textcolor{stringliteral}{"{}Four\ score\ and\ seven\ years\ ago"{}},\ 30,\ \&c,\ \&b\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01262}01262\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}hash\ is\ \%.8lx\ \%.8lx\(\backslash\)n"{}},\ c,\ b\ );\ \ \textcolor{comment}{/*\ e3607cae\ bd371de4\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01263}01263\ \ \ \ \ b\ =\ 0,\ c\ =\ 1,\ \mbox{\hyperlink{lookup3_8c_a28bbffa78951ac929184f31d92a05388}{hashlittle2}}(\ \textcolor{stringliteral}{"{}Four\ score\ and\ seven\ years\ ago"{}},\ 30,\ \&c,\ \&b\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01264}01264\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}hash\ is\ \%.8lx\ \%.8lx\(\backslash\)n"{}},\ c,\ b\ );\ \ \textcolor{comment}{/*\ cd628161\ 6cbea4b3\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01265}01265\ \ \ \ \ c\ =\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ \textcolor{stringliteral}{"{}Four\ score\ and\ seven\ years\ ago"{}},\ 30,\ 0\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01266}01266\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}hash\ is\ \%.8lx\(\backslash\)n"{}},\ c\ );\ \textcolor{comment}{/*\ 17770551\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01267}01267\ \ \ \ \ c\ =\ \mbox{\hyperlink{lookup3_8c_a8fcafa39241f09d13a63a0f9756772cc}{hashlittle}}(\ \textcolor{stringliteral}{"{}Four\ score\ and\ seven\ years\ ago"{}},\ 30,\ 1\ );}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01268}01268\ \ \ \ \ printf(\ \textcolor{stringliteral}{"{}hash\ is\ \%.8lx\(\backslash\)n"{}},\ c\ );\ \textcolor{comment}{/*\ cd628161\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01269}01269\ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01270}01270\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01271}01271\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01272}01272\ \textcolor{keywordtype}{int}\ \mbox{\hyperlink{init_8c_a0ddf1224851353fc92bfbff6f499fa97}{main}}(\ \ )\ \{}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01273}01273\ \ \ \ \ driver1(\ \ );\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ test\ that\ the\ key\ is\ hashed:\ used\ for\ timings\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01274}01274\ \ \ \ \ driver2(\ \ );\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ test\ that\ whole\ key\ is\ hashed\ thoroughly\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01275}01275\ \ \ \ \ driver3(\ \ );\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ test\ that\ nothing\ but\ the\ key\ is\ hashed\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01276}01276\ \ \ \ \ driver4(\ \ );\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ test\ hashing\ multiple\ buffers\ (all\ buffers\ are\ null)\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01277}01277\ \ \ \ \ driver5(\ \ );\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ test\ the\ hash\ against\ known\ vectors\ */}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01278}01278\ \ \ \ \ \textcolor{keywordflow}{return}\ 1;}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01279}01279\ \}}
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01280}01280\ }
\DoxyCodeLine{\Hypertarget{lookup3_8c_source_l01281}01281\ \textcolor{preprocessor}{\#endif\ }\textcolor{comment}{/*\ SELF\_TEST\ */}\textcolor{preprocessor}{}}

\end{DoxyCode}
