AMulet 2.0
AIG Multiplier Verification Tool
monomial.h
Go to the documentation of this file.
1 /*------------------------------------------------------------------------*/
9 /*------------------------------------------------------------------------*/
10 #ifndef _monomial_H
11 #define _monomial_H
12 /*------------------------------------------------------------------------*/
13 #include <gmp.h>
14 
15 #include "term.h"
16 /*------------------------------------------------------------------------*/
17 
23 class Monomial {
24 
27 
29  unsigned ref;
30 
31 public:
33  mpz_t coeff;
34 
40  Monomial(mpz_t _c, Term * _t);
41 
46  Term * get_term() const {return term;};
47 
52  Term * get_term_copy() const {return term->copy();};
53 
58  unsigned get_term_size() const {return term->size();};
59 
64  unsigned dec_ref() {return --ref;};
65 
70  unsigned get_ref() const {return ref;}
71 
77  Monomial * copy();
78 
85  void print(FILE * file, bool lm = 0) const;
86 
88  ~Monomial();
89 
90 
91 
92 };
93 /*------------------------------------------------------------------------*/
94 
103 Monomial * multiply_monomial (const Monomial * m1, const Monomial *m2);
104 
111 void deallocate_monomial(Monomial * m);
112 
113 
114 
115 
116 #endif
Term * term
Term*.
Definition: monomial.h:26
Term * copy()
Definition: term.cpp:22
Monomial * multiply_monomial(const Monomial *m1, const Monomial *m2)
Definition: monomial.cpp:61
Monomial(mpz_t _c, Term *_t)
Definition: monomial.cpp:13
Term * get_term() const
Definition: monomial.h:46
unsigned get_ref() const
Definition: monomial.h:70
unsigned ref
reference counter
Definition: monomial.h:29
Monomial * copy()
Definition: monomial.cpp:21
void print(FILE *file, bool lm=0) const
Definition: monomial.cpp:42
Definition: monomial.h:23
void deallocate_monomial(Monomial *m)
Definition: monomial.cpp:83
unsigned dec_ref()
Definition: monomial.h:64
mpz_t coeff
Coefficient.
Definition: monomial.h:33
Term * get_term_copy() const
Definition: monomial.h:52
unsigned get_term_size() const
Definition: monomial.h:58
contains the class Term and further functions to manipulate terms
unsigned size() const
Definition: term.cpp:43
Definition: term.h:23
~Monomial()
Definition: monomial.cpp:33