Home | History | Annotate | Download | only in lib
      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