]> git.saurik.com Git - bison.git/blame_incremental - lib/bitsetv.h
Akim Demaille <akim@epita.fr>
[bison.git] / lib / bitsetv.h
... / ...
CommitLineData
1/* Bitset vectors.
2 Copyright (C) 2002, 2004 Free Software Foundation, Inc.
3 Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz).
4
5This program is free software; you can redistribute it and/or modify
6it under the terms of the GNU General Public License as published by
7the Free Software Foundation; either version 2 of the License, or
8(at your option) any later version.
9
10This program is distributed in the hope that it will be useful,
11but WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with this program; if not, write to the Free Software
17Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
18
19#ifndef _BITSETV_H
20#define _BITSETV_H
21
22#include "bitset.h"
23
24typedef bitset * bitsetv;
25
26/* Create a vector of N_VECS bitsets, each of N_BITS, and of
27 type TYPE. */
28extern bitsetv bitsetv_alloc (bitset_bindex, bitset_bindex, enum bitset_type);
29
30/* Create a vector of N_VECS bitsets, each of N_BITS, and with
31 attribute hints specified by ATTR. */
32extern bitsetv bitsetv_create (bitset_bindex, bitset_bindex, unsigned int);
33
34/* Free vector of bitsets. */
35extern void bitsetv_free (bitsetv);
36
37/* Zero vector of bitsets. */
38extern void bitsetv_zero (bitsetv);
39
40/* Set vector of bitsets. */
41extern void bitsetv_ones (bitsetv);
42
43/* Given a vector BSETV of N bitsets of size N, modify its contents to
44 be the transitive closure of what was given. */
45extern void bitsetv_transitive_closure (bitsetv);
46
47/* Given a vector BSETV of N bitsets of size N, modify its contents to
48 be the reflexive transitive closure of what was given. This is
49 the same as transitive closure but with all bits on the diagonal
50 of the bit matrix set. */
51extern void bitsetv_reflexive_transitive_closure (bitsetv);
52
53/* Dump vector of bitsets. */
54extern void bitsetv_dump (FILE *, const char *, const char *, bitsetv);
55
56/* Function to debug vector of bitsets from debugger. */
57extern void debug_bitsetv (bitsetv);
58
59#endif /* _BITSETV_H */