My Project  debian-1:4.1.2-p1+ds-2
cf_char.cc
Go to the documentation of this file.
1 /* emacs edit mode for this file is -*- C++ -*- */
2 
3 /**
4  * @file cf_char.cc
5  *
6  * getting and setting the characteristic of a finite field
7 **/
8 
9 #include "config.h"
10 
11 
12 #include "cf_assert.h"
13 
14 #include "cf_defs.h"
15 #include "canonicalform.h"
16 #include "imm.h"
17 #include "cf_primes.h"
18 #include "cf_util.h"
19 
22 
23 void setCharacteristic( int c )
24 {
25  if ( c == 0 )
26  {
27  theDegree = 0;
30  }
31  else
32  {
33  theDegree = 1;
37  if (c > 536870909) factoryError("characteristic is too large(max is 2^29)");
38  ff_setprime( c );
39  }
40 }
41 
42 void setCharacteristic( int c, int n, char name )
43 {
44  ASSERT( c != 0 && n > 1, "illegal GF(q)" );
45  setCharacteristic( c );
46  gf_setcharacteristic( c, n, name );
47  theDegree = n;
49 }
50 
52 {
53  return theCharacteristic;
54 }
55 
57 {
58  //ASSERT( theDegree > 0, "not in GF(q)" );
59  return theDegree;
60 }
61 
63 {
64  ASSERT( theDegree > 1, "not in GF(q)" );
65  return int2imm_gf( 1 );
66 }
Header for factory's main class CanonicalForm.
assertions for Factory
#define ASSERT(expression, message)
Definition: cf_assert.h:99
int getCharacteristic()
Definition: cf_char.cc:51
int getGFDegree()
Definition: cf_char.cc:56
STATIC_VAR int theCharacteristic
Definition: cf_char.cc:20
STATIC_VAR int theDegree
Definition: cf_char.cc:21
CanonicalForm getGFGenerator()
Definition: cf_char.cc:62
void setCharacteristic(int c)
Definition: cf_char.cc:23
factory switches.
#define FiniteFieldDomain
Definition: cf_defs.h:24
#define IntegerDomain
Definition: cf_defs.h:26
#define GaloisFieldDomain
Definition: cf_defs.h:23
int cf_getNumSmallPrimes()
Definition: cf_primes.cc:34
int cf_getSmallPrime(int i)
Definition: cf_primes.cc:28
access to prime tables
VAR void(* factoryError)(const char *s)
Definition: cf_util.cc:76
static void settype(int type)
Definition: cf_factory.h:29
factory's main class
Definition: canonicalform.h:83
char name(const Variable &v)
Definition: factory.h:180
VAR bool ff_big
Definition: ffops.cc:16
void ff_setprime(const int p)
Definition: ffops.cc:19
void gf_setcharacteristic(int p, int n, char name)
Definition: gfops.cc:219
#define STATIC_VAR
Definition: globaldefs.h:7
operations on immediates, that is elements of F_p, GF, Z, Q that fit into intrinsic int,...
InternalCF * int2imm_gf(long i)
Definition: imm.h:106