1 /* Bitset vectors. 2 Copyright (C) 2001, 2002, 2004, 2006 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 2 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, write to the Free Software Foundation, 16 Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ 17 18 #ifdef HAVE_CONFIG_H 19 # include <config.h> 20 #endif 21 22 #include <stdlib.h> 23 #include "bitsetv-print.h" 24 25 /*--------------------------------------------------------. 26 | Display the MATRIX array of SIZE bitsets of size SIZE. | 27 `--------------------------------------------------------*/ 28 29 void 30 bitsetv_matrix_dump (FILE * out, const char *title, bitsetv bset) 31 { 32 bitset_bindex i, j; 33 bitset_bindex hsize = bitset_size (bset[0]); 34 35 /* Title. */ 36 fprintf (out, "%s BEGIN\n", title); 37 38 /* Column numbers. */ 39 fputs (" ", out); 40 for (i = 0; i < hsize; ++i) 41 putc (i / 10 ? '0' + i / 10 : ' ', out); 42 putc ('\n', out); 43 fputs (" ", out); 44 for (i = 0; i < hsize; ++i) 45 fprintf (out, "%d", (int) (i % 10)); 46 putc ('\n', out); 47 48 /* Bar. */ 49 fputs (" .", out); 50 for (i = 0; i < hsize; ++i) 51 putc ('-', out); 52 fputs (".\n", out); 53 54 /* Contents. */ 55 for (i = 0; bset[i]; ++i) 56 { 57 fprintf (out, "%2lu|", (unsigned long int) i); 58 for (j = 0; j < hsize; ++j) 59 fputs (bitset_test (bset[i], j) ? "1" : " ", out); 60 fputs ("|\n", out); 61 } 62 63 /* Bar. */ 64 fputs (" `", out); 65 for (i = 0; i < hsize; ++i) 66 putc ('-', out); 67 fputs ("'\n", out); 68 69 /* End title. */ 70 fprintf (out, "%s END\n\n", title); 71 } 72