~ubuntu-branches/ubuntu/saucy/gfan/saucy-proposed

« back to all changes in this revision

Viewing changes to field_zmodpz.cpp

  • Committer: Package Import Robot
  • Author(s): Cédric Boutillier
  • Date: 2013-07-09 10:44:01 UTC
  • mfrom: (2.1.2 experimental)
  • Revision ID: package-import@ubuntu.com-20130709104401-5q66ozz5j5af0dak
Tags: 0.5+dfsg-3
* Upload to unstable.
* modify remove_failing_tests_on_32bits.patch to replace command of
  0009RenderStairCase test with an empty one instead of deleting it.
* remove lintian override about spelling error

Show diffs side-by-side

added added

removed removed

Lines of Context:
100
100
}
101
101
 
102
102
 
103
 
int FieldZModPZImplementation::getP()
 
103
int FieldZModPZImplementation::getP()const
104
104
{
105
105
  return p;
106
106
}
133
133
    {
134
134
      value=modP(n_,getF().getP());
135
135
    }
136
 
  ~FieldElementZModPZ()
 
136
  virtual ~FieldElementZModPZ() //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
137
137
    {
138
138
    }
139
139
  FieldElementZModPZ& operator=(const FieldElementZModPZ& a)
145
145
      }
146
146
      return *this;
147
147
    }
148
 
  
 
148
 
149
149
  void operator*=(const FieldElementImplementation &a)
150
150
    {
151
151
      const FieldElementZModPZ *A=(const FieldElementZModPZ*)&a;
152
152
      assert(A);
153
153
      value=modP(value*A->value,getF().getP());
154
154
    }
 
155
  void operator+=(const FieldElementImplementation &a)
 
156
    {
 
157
      const FieldElementZModPZ *A=(const FieldElementZModPZ*)&a;
 
158
      assert(A);
 
159
      value=modP(value+(A->value),getF().getP());
 
160
    }
 
161
  void madd(const FieldElementImplementation &a,const FieldElementImplementation &b)
 
162
    {
 
163
      const FieldElementZModPZ *A=(const FieldElementZModPZ*)&a;
 
164
      const FieldElementZModPZ *B=(const FieldElementZModPZ*)&b;
 
165
      assert(A);
 
166
      assert(B);
 
167
      value=modP(value+modP(A->value*B->value,getF().getP()),getF().getP());
 
168
    }
155
169
  FieldElementZModPZ *one()const
156
170
  {
157
171
    return new FieldElementZModPZ(getF(),1);
194
208
        P_.printString("\n");
195
209
        assert(0);
196
210
      }
197
 
    
 
211
 
198
212
    //r->value=value; // Very simple when P=2
199
213
 
200
214
    int R,S;
202
216
    R=modP(R,getF().getP());
203
217
    assert(d==1);
204
218
    r->value=R;
205
 
    
 
219
 
206
220
 
207
221
    if(!(modP(R*value,getF().getP())==1))
208
222
      {
239
253
      return std::string("+")+intToString(value);
240
254
    return intToString(value);
241
255
  }
242
 
  
 
256
 
243
257
  FieldElementZModPZ *copy()const
244
258
  {
245
259
    FieldElementZModPZ *r= new FieldElementZModPZ(getF());
247
261
    r->value=value;
248
262
    return r;
249
263
  }
 
264
  int integerRepresentative()const
 
265
  {
 
266
    return value;
 
267
  }
250
268
};
251
269
 
252
270
FieldElementImplementation *FieldZModPZImplementation::zHomomorphismImplementation(int n)
253
271
{
254
272
  FieldElementImplementation *ret=new FieldElementZModPZ(*this,n);
255
 
  ret->refCount++;
 
273
  //  ret->refCount++; //!!!!!!!!!!!
256
274
  return ret;
257
275
}
258
276