1 /* vim: set noexpandtab tabstop=4 shiftwidth=4:
2 *----------------------------------------------------------------------------
4 *----------------------------------------------------------------------------
5 * This file is part of emufs.
7 * emufs is free software; you can redistribute it and/or modify it under the
8 * terms of the GNU General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option) any later
12 * emufs is distributed in the hope that it will be useful, but WITHOUT ANY
13 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
17 * You should have received a copy of the GNU General Public License along
18 * with emufs; if not, write to the Free Software Foundation, Inc., 59 Temple
19 * Place, Suite 330, Boston, MA 02111-1307 USA
20 *----------------------------------------------------------------------------
21 * Creado: dom may 30 07:48:10 ART 2004
22 * Autores: Leandro Lucarella <llucare@fi.uba.ar>
23 *----------------------------------------------------------------------------
25 * $Id: bufford.h 609 2004-05-30 10:14:21Z llucare $
31 * Algoritmo de ordenamiento externo.
33 * Interfaz del algoritmo de ordenamiento externo.
37 #ifndef _EXTSORT_BASE_H_
38 #define _EXTSORT_BASE_H_
40 /** Función utilizada para comparar al ordenar los datos.
41 * \return 0 si son iguales, mayor que cero si el primer argumento es mayor y
42 * menor que cero si el primer argumento es menor.
44 typedef int (*CMP_FUNC)(void*, void*);
46 /** \defgroup cmp_macros Macros para comparar datos.
47 * Macros para comparar datos utilizando la función de comparación.
50 /** Prueba si \c x es menor que \c y usando la función de comparación. */
51 #define LT(b, x, y) (b->cmp(x, y) < 0)
52 /** Prueba si \c x es mayor que \c y usando la función de comparación. */
53 #define GT(b, x, y) (b->cmp(x, y) > 0)
54 /** Prueba si \c x es igual a \c y usando la función de comparación. */
55 #define EQ(b, x, y) (b->cmp(x, y) == 0)
56 /** Prueba si \c x es distinto a \c y usando la función de comparación. */
57 #define NE(b, x, y) (b->cmp(x, y) != 0)
58 /** Prueba si \c x es menor o igual a \c y usando la función de comparación. */
59 #define LE(b, x, y) (b->cmp(x, y) <= 0)
60 /** Prueba si \c x es mayor o igual a \c y usando la función de comparación. */
61 #define GE(b, x, y) (b->cmp(x, y) >= 0)
62 /** \} */ /* fin del grupo cmp_macros */
64 #endif /* _EXTSORT_BASE_H_ */