/ocr/ocrservice/jni/hydrogen/include/leptonica/array.h
http://eyes-free.googlecode.com/ · C Header · 107 lines · 49 code · 21 blank · 37 comment · 0 complexity · cca3e2d2688b625776828e6956ed6733 MD5 · raw file
- /*====================================================================*
- - Copyright (C) 2001 Leptonica. All rights reserved.
- - This software is distributed in the hope that it will be
- - useful, but with NO WARRANTY OF ANY KIND.
- - No author or distributor accepts responsibility to anyone for the
- - consequences of using this software, or for whether it serves any
- - particular purpose or works at all, unless he or she says so in
- - writing. Everyone is granted permission to copy, modify and
- - redistribute this source code, for commercial or non-commercial
- - purposes, with the following restrictions: (1) the origin of this
- - source code must not be misrepresented; (2) modified versions must
- - be plainly marked as such; and (3) this notice may not be removed
- - or altered from any source or modified source distribution.
- *====================================================================*/
- #ifndef LEPTONICA_ARRAY_H
- #define LEPTONICA_ARRAY_H
- /*
- * Contains the following structs:
- * struct Numa
- * struct Numaa
- * struct Numa2d
- * struct NumaHash
- * struct Sarray
- *
- * Contains definitions for:
- * Numa interpolation flags
- */
- /*------------------------------------------------------------------------*
- * Array Structs *
- *------------------------------------------------------------------------*/
- #define NUMA_VERSION_NUMBER 1
- /* Number array: an array of floats */
- struct Numa
- {
- l_int32 nalloc; /* size of allocated number array */
- l_int32 n; /* number of numbers saved */
- l_int32 refcount; /* reference count (1 if no clones) */
- l_float32 startx; /* x value assigned to array[0] */
- l_float32 delx; /* change in x value as i --> i + 1 */
- l_float32 *array; /* number array */
- };
- typedef struct Numa NUMA;
- /* Array of number arrays */
- struct Numaa
- {
- l_int32 nalloc; /* size of allocated ptr array */
- l_int32 n; /* number of Numa saved */
- struct Numa **numa; /* array of Numa */
- };
- typedef struct Numaa NUMAA;
- /* Sparse 2-dimensional array of number arrays */
- struct Numa2d
- {
- l_int32 nrows; /* number of rows allocated for ptr array */
- l_int32 ncols; /* number of cols allocated for ptr array */
- l_int32 initsize; /* initial size of each numa that is made */
- struct Numa ***numa; /* 2D array of Numa */
- };
- typedef struct Numa2d NUMA2D;
- /* A hash table of Numas */
- struct NumaHash
- {
- l_int32 nbuckets;
- l_int32 initsize; /* initial size of each numa that is made */
- struct Numa **numa;
- };
- typedef struct NumaHash NUMAHASH;
- #define SARRAY_VERSION_NUMBER 1
- /* String array: an array of C strings */
- struct Sarray
- {
- l_int32 nalloc; /* size of allocated ptr array */
- l_int32 n; /* number of strings allocated */
- l_int32 refcount; /* reference count (1 if no clones) */
- char **array; /* string array */
- };
- typedef struct Sarray SARRAY;
- /*------------------------------------------------------------------------*
- * Array flags *
- *------------------------------------------------------------------------*/
- /* Flags for interpolation in Numa */
- enum {
- L_LINEAR_INTERP = 1, /* linear */
- L_QUADRATIC_INTERP = 2 /* quadratic */
- };
- #endif /* LEPTONICA_ARRAY_H */