Judy(3X)																  Judy(3X)

NAME
Judy functions - C libraries for creating and accessing dynamic arrays SYNOPSIS
Judy1 - maps an Index (word) to a bit JudyL - maps an Index (word) to a word JudySL - maps an Index (string) to a word DESCRIPTION
The Judy family of functions supports fully dynamic arrays. These arrays may be indexed by a 32- or 64-bit word (depending on the proces- sor) or a string. A dynamic array that is sparsely populated can be thought of as a mapping function. There are 3 different Judy mappings currently supported: Judy1 maps an Index (word) to a bit. JudyL maps an Index (word) to a word. JudySL maps an Index (string) to a word. For Judy1 functions and JudyL functions, Index should be declared as a Word_t type. Word_t is defined in the Judy.h header file as a 32- or 64-bit unsigned native integer, and has the same number of bits as a pointer. For JudySL functions, each index is a null-terminated string. Judy arrays are both speed- and memory-efficient, with no tuning or configuration required, across a wide range of index set types (sequen- tial, periodic, clustered, random). Judy's speed and memory usage are typically better than other data storage models such as skiplists, binary trees, b-trees, or even hashing, and improves with very large data sets. A Judy array is created merely by defining a null pointer and then storing (inserting) the first element into the array under that pointer. The memory used by a Judy array is proportional to the population (number of elements). Judy has two Application Program Interfaces (APIs): a C macro interface, and a function call interface. Because the macro forms are faster and have a simpler error handling interface than the equivalent functions, they are the preferred way of calling the Judy functions. Since an initial (empty) Judy array is represented by a null pointer, it is possible to construct an array of Judy arrays. In other words, a Judy array's values (except Judy1) can be pointers to other Judy arrays. AUTHOR
Judy was invented and implemented by Hewlett-Packard. (Note: Judy is named for the inventor's sister.) FILES
Locations of interest include: Documents, including HTML versions of the manual entries. Demonstration program source files. SEE ALSO
Judy1(3X), JudyL(3X), JudySL(3X), the Judy website, http://www.hp.com/go/judy/, for more information and Application Notes. Judy(3X)