My Project  debian-1:4.1.2-p1+ds-2
cf_random.h
Go to the documentation of this file.
1 /* emacs edit mode for this file is -*- C++ -*- */
2 
3 /**
4  * @file cf_random.h
5  *
6  * generate random integers, random elements of finite fields
7 **/
8 
9 #ifndef INCL_CF_RANDOM_H
10 #define INCL_CF_RANDOM_H
11 
12 // #include "config.h"
13 
14 #include "canonicalform.h"
15 
16 /*BEGINPUBLIC*/
17 
18 /**
19  * virtual class for random element generation
20 **/
21 class CFRandom {
22 public:
23  virtual ~CFRandom() {}
24  virtual CanonicalForm generate() const { return 0; }
25  virtual CFRandom * clone() const { return new CFRandom(); }
26 };
27 
28 /**
29  * generate random elements in GF
30 **/
31 class GFRandom : public CFRandom
32 {
33 public:
34  GFRandom() {};
35  ~GFRandom() {}
36  CanonicalForm generate() const;
37  CFRandom * clone() const;
38 };
39 
40 /**
41  * generate random elements in F_p
42 **/
43 class FFRandom : public CFRandom
44 {
45 public:
46  FFRandom() {}
47  ~FFRandom() {}
48  CanonicalForm generate() const;
49  CFRandom * clone() const;
50 };
51 
52 /**
53  * generate random integers
54 **/
55 class IntRandom : public CFRandom
56 {
57 private:
58  int max;
59 public:
60  IntRandom();
61  IntRandom( int m );
62  ~IntRandom();
63  CanonicalForm generate() const;
64  CFRandom * clone() const;
65 };
66 
67 /**
68  * generate random elements in F_p(alpha)
69 **/
70 class AlgExtRandomF : public CFRandom {
71 private:
74  int n;
75  AlgExtRandomF();
76  AlgExtRandomF( const Variable & v, CFRandom * g, int nn );
78 public:
79  AlgExtRandomF( const AlgExtRandomF & );
80  AlgExtRandomF( const Variable & v );
81  AlgExtRandomF( const Variable & v1, const Variable & v2 );
83  CanonicalForm generate() const;
84  CFRandom * clone() const;
85 };
86 
88 public:
89  static CFRandom * generate();
90 };
91 
92 /// random integers with abs less than n
93 int factoryrandom( int n );
94 
95 /// random seed initializer
96 void factoryseed( int s );
97 
98 /*ENDPUBLIC*/
99 
100 #endif /* ! INCL_CF_RANDOM_H */
IntRandom::~IntRandom
~IntRandom()
Definition: cf_random.cc:89
IntRandom::IntRandom
IntRandom()
Definition: cf_random.cc:79
FFRandom
generate random elements in F_p
Definition: cf_random.h:43
canonicalform.h
AlgExtRandomF::gen
CFRandom * gen
Definition: cf_random.h:73
AlgExtRandomF::algext
Variable algext
Definition: cf_random.h:72
IntRandom::clone
CFRandom * clone() const
Definition: cf_random.cc:96
AlgExtRandomF::AlgExtRandomF
AlgExtRandomF()
Definition: cf_random.cc:101
AlgExtRandomF
generate random elements in F_p(alpha)
Definition: cf_random.h:70
GFRandom::generate
CanonicalForm generate() const
Definition: cf_random.cc:66
g
g
Definition: cfModGcd.cc:4031
GFRandom::GFRandom
GFRandom()
Definition: cf_random.h:34
CanonicalForm
factory's main class
Definition: canonicalform.h:77
CFRandom::~CFRandom
virtual ~CFRandom()
Definition: cf_random.h:23
IntRandom::generate
CanonicalForm generate() const
Definition: cf_random.cc:91
CFRandom
virtual class for random element generation
Definition: cf_random.h:21
GFRandom::~GFRandom
~GFRandom()
Definition: cf_random.h:35
IntRandom
generate random integers
Definition: cf_random.h:55
AlgExtRandomF::operator=
AlgExtRandomF & operator=(const AlgExtRandomF &)
Definition: cf_random.cc:111
AlgExtRandomF::n
int n
Definition: cf_random.h:74
FFRandom::clone
CFRandom * clone() const
Definition: cf_random.cc:61
GFRandom
generate random elements in GF
Definition: cf_random.h:31
factoryrandom
int factoryrandom(int n)
random integers with abs less than n
Definition: cf_random.cc:168
CFRandom::clone
virtual CFRandom * clone() const
Definition: cf_random.h:25
CFRandom::generate
virtual CanonicalForm generate() const
Definition: cf_random.h:24
AlgExtRandomF::clone
CFRandom * clone() const
Definition: cf_random.cc:153
Variable
factory's class for variables
Definition: factory.h:117
CFRandomFactory
Definition: cf_random.h:87
FFRandom::FFRandom
FFRandom()
Definition: cf_random.h:46
IntRandom::max
int max
Definition: cf_random.h:58
GFRandom::clone
CFRandom * clone() const
Definition: cf_random.cc:73
FFRandom::generate
CanonicalForm generate() const
Definition: cf_random.cc:56
m
int m
Definition: cfEzgcd.cc:121
CFRandomFactory::generate
static CFRandom * generate()
Definition: cf_random.cc:158
factoryseed
void factoryseed(int s)
random seed initializer
Definition: cf_random.cc:176
v
const Variable & v
< [in] a sqrfree bivariate poly
Definition: facBivar.h:37
AlgExtRandomF::generate
CanonicalForm generate() const
Definition: cf_random.cc:145
s
const CanonicalForm int s
Definition: facAbsFact.cc:55
AlgExtRandomF::~AlgExtRandomF
~AlgExtRandomF()
Definition: cf_random.cc:140
FFRandom::~FFRandom
~FFRandom()
Definition: cf_random.h:47