1 /* PSPP - a program for statistical analysis. 2 Copyright (C) 2008, 2011 Free Software Foundation, Inc. 3 4 This program is free software: you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation, either version 3 of the License, or 7 (at your option) any later version. 8 9 This program is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 16 17 #ifndef __EXTREMA_H__ 18 #define __EXTREMA_H__ 1 19 20 #include <stddef.h> 21 #include "data/case.h" 22 #include "libpspp/ll.h" 23 24 struct extremum 25 { 26 double value; 27 casenumber location; 28 double weight; 29 30 /* Internal use only */ 31 struct ll ll; 32 }; 33 34 35 enum extreme_end 36 { 37 EXTREME_MAXIMA, 38 EXTREME_MINIMA 39 }; 40 41 struct extrema; 42 43 struct extrema *extrema_create (size_t n, enum extreme_end); 44 45 void extrema_destroy (struct extrema *extrema); 46 47 void extrema_add (struct extrema *extrema, double val, 48 double weight, 49 casenumber location); 50 51 void extrema_show (const struct extrema *extrema); 52 53 const struct ll_list * extrema_list (const struct extrema *); 54 55 bool extrema_top (const struct extrema *, double *); 56 57 58 #endif 59