File: cl_types.hh

package info (click to toggle)
packup 0.6-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, stretch
  • size: 836 kB
  • ctags: 1,686
  • sloc: cpp: 10,857; makefile: 111; sh: 6
file content (137 lines) | stat: -rw-r--r-- 4,664 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/******************************************************************************\
 *    This file is part of packup.                                            *
 *                                                                            *
 *    packup is free software: you can redistribute it and/or modify          *
 *    it under the terms of the GNU General Public License as published by    *
 *    the Free Software Foundation, either version 3 of the License, or       *
 *    (at your option) any later version.                                     *
 *                                                                            *
 *    packup is distributed in the hope that it will be useful,               *
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of          *
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           *
 *    GNU General Public License for more details.                            *
 *                                                                            *
 *    You should have received a copy of the GNU General Public License       *
 *    along with packup.  If not, see <http://www.gnu.org/licenses/>.         *            
\******************************************************************************/           
//jpms:bc
/*----------------------------------------------------------------------------*\
 * File:        cl_types.hh
 *
 * Description: Types derived from clauses and clause sets.
 *
 * Author:      jpms
 * 
 * Revision:    $Id$.
 *
 *                                     Copyright (c) 2009, Joao Marques-Silva
\*----------------------------------------------------------------------------*/
//jpms:ec

#ifndef _CL_TYPES_H
#define _CL_TYPES_H 1

#include "basic_clause.hh"
#include "cl_functors.hh"


typedef enum ClTypes {
  CL_HARD = 0x10,
  CL_SOFT = 0x20,
  CL_WEIGHTED = 0x30
} ClauseTypes;


//jpms:bc
/*----------------------------------------------------------------------------*\
 * Type definitions.
\*----------------------------------------------------------------------------*/
//jpms:ec

class BasicClauseSet;

typedef BasicClause* BasicClausePtr;
typedef BasicClause** BasicClausePtrPtr;

//typedef hash_set<BasicClause*,ClauseHash,ClauseEqual> HashedClauseSet;
typedef hash_set<BasicClause*,ClPtrHash,ClPtrEqual> HashedClauseSet;
typedef HashedClauseSet::iterator ClSetIterator;
typedef HashedClauseSet::iterator cset_iterator;

typedef hash_map<BasicClause*,LINT,ClPtrHash,ClPtrEqual> Clause2IntMap;

typedef hash_map<IntVector*,BasicClause*,LitVectHash,LitVectEqual> IVec2ClMap;
typedef IVec2ClMap::iterator iv2cl_iterator;

typedef vector<BasicClause*> BasicClauseVector;
typedef BasicClauseVector::iterator ClVectIterator;

//typedef slist<BasicClause*> BasicClauseSList;

typedef list<BasicClause*> BasicClauseList;

typedef vector<BasicClauseSet*> BasicClauseSetVector;

typedef IntKeyMap<vector<BasicClause*>*> Int2ClVectMap;
//typedef hash_map<ULINT,vector<BasicClause*>*,IntHash,IntEqual> Int2ClVectMap;

typedef hash_map<BasicClause*,vector<LINT>*,ClPtrHash,ClPtrEqual> Cl2IntVMap;

typedef hash_map<BasicClause*,vector<BasicClause*>*,ClPtrHash,ClPtrEqual> Cl2ClVMap;

typedef hash_map<BasicClause*,LINT,ClPtrHash,ClPtrEqual> Cl2IntMap;
typedef Cl2IntMap::iterator c2n_iterator;

typedef hash_map<LINT,BasicClause*,IntHash,IntEqual> Int2ClMap;

//typedef hash_map<LINT,vector<LINT>*,IntHash,IntEqual> Int2IntVMap;

typedef hash_map<BasicClause*,BasicClause*,ClPtrHash,ClPtrEqual> Cl2ClMap;

typedef
vector<BasicClauseSet*> ClauseSetVector;

typedef 
hash_map<LINT,BasicClauseVector*,IntHash,IntEqual> Int2ClVMap;

typedef 
hash_map<XLINT,BasicClauseVector*,XLIntHash,XLIntEqual> XLInt2ClVMap;

typedef
hash_map<BasicClause*,vector<LINT>*,ClPtrHash,ClPtrEqual> Cl2IntVMap;

typedef
hash_map<BasicClause*,vector<BasicClause*>*,ClPtrHash,ClPtrEqual> Cl2ClVMap;

typedef
hash_map<BasicClause*,LINT,ClPtrHash,ClPtrEqual> Cl2IntMap;

typedef
hash_map<LINT,BasicClause*,IntHash,IntEqual> Int2ClMap;

typedef
hash_map<LINT,vector<LINT>*,IntHash,IntEqual> Int2IntVMap;

//typedef
//hash_map<LINT,BasicClause*,IntHash,IntEqual> Int2ClVMap;

typedef 
vector<Cl2IntMap*> VectCl2IntMap;

typedef
vector<HashedClauseSet*> VectClSet;

typedef
vector<HashedClauseSet> VectHashedClauseSet;

//typedef
//vector<hash_map<BasicClause*,LINT,ClPtrHash,ClPtrEqual>*> IntVCl2IntMap;

//typedef hash_map<LINT,vector<BasicClause*>,IntHash,IntEqual> Int2ClVMap;

//typedef
//hash_map<BasicClausePtr,BasicClausePtrPtr,ClPtrHash,ClPtrEqual> Cl2ClPMap;

#endif /* _CL_TYPES_H */

/*----------------------------------------------------------------------------*/