field.hpp
Go to the documentation of this file.
1 
12 #ifndef _FIELD_H_
13 #define _FIELD_H_
14 
15 #include <gmp.h>
16 #include <gmpxx.h>
17 
18 #include "../group/group.hpp"
19 
20 
21 namespace arithm {
22 
32 class Field : public Group
33 {
34 protected:
38  mpz_class addOrder;
39 
40 public:
46  Field(mpz_class aOrder);
47 
52  Field(mpz_class aOrder, mpz_class mOrder, mpz_class gen);
53 
54 
57 
61  virtual Elmt addition(Elmt e1, Elmt e2);
62 
66  virtual Elmt addInverse(Elmt e);
67 
69 
72 
78 
84 
90 
92 
95 
99  Elmt getZero();
100 
105  ArrayOfElmts getZero(unsigned int n);
106 
108 
111 
115  mpz_class getAddOrder();
116 
117  unsigned int getLeafSize();
118 
119  virtual std::string getType();
120 
122 };
123 
124 
125 }
126 
127 #endif