DDD  1.9.0.20240425101308
DataSet.h
Go to the documentation of this file.
1 /****************************************************************************/
2 /* */
3 /* This file is part of libDDD, a library for manipulation of DDD and SDD. */
4 /* */
5 /* Copyright (C) 2001-2008 Yann Thierry-Mieg, Jean-Michel Couvreur */
6 /* and Denis Poitrenaud */
7 /* */
8 /* This program is free software; you can redistribute it and/or modify */
9 /* it under the terms of the GNU Lesser General Public License as */
10 /* published by the Free Software Foundation; either version 3 of the */
11 /* License, or (at your option) any later version. */
12 /* This program is distributed in the hope that it will be useful, */
13 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
14 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
15 /* GNU LEsserGeneral Public License for more details. */
16 /* */
17 /* You should have received a copy of the GNU Lesser General Public License */
18 /* along with this program; if not, write to the Free Software */
19 /*Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
20 /* */
21 /****************************************************************************/
22 
23 #ifndef __DATASET_H__
24 #define __DATASET_H__
25 
26 #include <iosfwd>
27 
43 class DataSet
44 {
45  public :
47  virtual ~DataSet() {};
49  virtual DataSet *newcopy () const = 0;
51  virtual DataSet *set_intersect (const DataSet & b) const = 0;
53  virtual DataSet *set_union (const DataSet & b) const = 0;
55  virtual DataSet *set_minus (const DataSet & b) const = 0;
57  virtual bool empty() const = 0;
59  virtual DataSet *empty_set() const = 0;
61  virtual bool set_equal(const DataSet & b) const =0;
63  virtual bool set_less_than (const DataSet & b) const =0;
65  virtual long double set_size() const = 0;
67  virtual size_t set_hash() const =0;
69  virtual void set_print (std::ostream &os) const =0;
71  virtual void mark() const = 0;
72 #ifdef EVDDD
73  virtual DataSet *normalizeDistance(int n) const =0;
74  virtual int getMinDistance() const = 0;
75 #endif
76 
77 };
78 
79 
80 #endif
This class is an abstraction of a set of data.
Definition: DataSet.h:44
virtual bool set_less_than(const DataSet &b) const =0
Compares two sets with a total order.
virtual DataSet * set_union(const DataSet &b) const =0
returns a new instance with elements = this union b
virtual void mark() const =0
for memory management : if your DataSet references no GDD,GHom,GSDD,GShom, mark() should do nothing
virtual bool empty() const =0
returns true if this is the empty set
virtual void set_print(std::ostream &os) const =0
returns a formatted string description of the set
virtual ~DataSet()
destructor
Definition: DataSet.h:47
virtual DataSet * set_minus(const DataSet &b) const =0
returns a new instance with elements = this setminus b
virtual size_t set_hash() const =0
returns a hash function, used in the SDD hash function computation
virtual DataSet * set_intersect(const DataSet &b) const =0
returns a new instance with elements = this inter b
virtual DataSet * newcopy() const =0
returns a new instance copy of this
virtual DataSet * empty_set() const =0
returns a pointer to an instance of the empty set
virtual bool set_equal(const DataSet &b) const =0
Compares two sets for equality.
virtual long double set_size() const =0

Please comment this page and report errors about it on the RefDocComments page.
Generated on Thu Apr 25 2024 10:15:16 for DDD by doxygen 1.9.1