Public Member Functions | Private Attributes
modpk Class Reference

class to do operations mod p^k for int's p and k More...

#include <fac_util.h>

Public Member Functions

 modpk ()
 
 modpk (int q, int l)
 
 modpk (const modpk &m)
 
modpkoperator= (const modpk &m)
 
 ~modpk ()
 
int getp () const
 
int getk () const
 
CanonicalForm inverse (const CanonicalForm &f, bool symmetric=true) const
 
CanonicalForm getpk () const
 
CanonicalForm operator() (const CanonicalForm &f, bool symmetric=true) const
 
 modpk ()
 
 modpk (int q, int l)
 
 modpk (const modpk &m)
 
modpkoperator= (const modpk &m)
 
 ~modpk ()
 
int getp () const
 
int getk () const
 
CanonicalForm inverse (const CanonicalForm &f, bool symmetric=true) const
 
CanonicalForm getpk () const
 
CanonicalForm operator() (const CanonicalForm &f, bool symmetric=true) const
 
 modpk ()
 
 modpk (int q, int l)
 
 modpk (const modpk &m)
 
modpkoperator= (const modpk &m)
 
 ~modpk ()
 
int getp () const
 
int getk () const
 
CanonicalForm inverse (const CanonicalForm &f, bool symmetric=true) const
 
CanonicalForm getpk () const
 
CanonicalForm operator() (const CanonicalForm &f, bool symmetric=true) const
 

Private Attributes

CanonicalForm pk
 
CanonicalForm pkhalf
 
int p
 
int k
 

Detailed Description

class to do operations mod p^k for int's p and k

Definition at line 22 of file fac_util.h.

Constructor & Destructor Documentation

modpk::modpk ( )

Definition at line 21 of file fac_util.cc.

22 {
23  p = 0;
24  k = 0;
25  pk = 1;
26  pkhalf = 0;
27 }
int p
Definition: fac_util.h:27
CanonicalForm pk
Definition: fac_util.h:25
int k
Definition: fac_util.h:28
CanonicalForm pkhalf
Definition: fac_util.h:26
modpk::modpk ( int  q,
int  l 
)

Definition at line 29 of file fac_util.cc.

30 {
31  p = q;
32  k = l;
33  pk = power( CanonicalForm( p ), k );
34  pkhalf = pk / 2;
35 }
CanonicalForm power(const CanonicalForm &f, int n)
exponentiation
int p
Definition: fac_util.h:27
factory&#39;s main class
Definition: canonicalform.h:75
CanonicalForm pk
Definition: fac_util.h:25
int k
Definition: fac_util.h:28
int l
Definition: cfEzgcd.cc:94
CanonicalForm pkhalf
Definition: fac_util.h:26
modpk::modpk ( const modpk m)

Definition at line 37 of file fac_util.cc.

38 {
39  p = m.p;
40  k = m.k;
41  pk = m.pk;
42  pkhalf = m.pkhalf;
43 }
int p
Definition: fac_util.h:27
CanonicalForm pk
Definition: fac_util.h:25
int k
Definition: fac_util.h:28
CanonicalForm pkhalf
Definition: fac_util.h:26
modpk::~modpk ( )
inline

Definition at line 34 of file fac_util.h.

34 {}
modpk::modpk ( )
modpk::modpk ( int  q,
int  l 
)
modpk::modpk ( const modpk m)
modpk::~modpk ( )
inline

Definition at line 918 of file factory.h.

918 {}
modpk::modpk ( )
modpk::modpk ( int  q,
int  l 
)
modpk::modpk ( const modpk m)
modpk::~modpk ( )
inline

Definition at line 918 of file factory.h.

918 {}

Member Function Documentation

int modpk::getk ( ) const
inline

Definition at line 36 of file fac_util.h.

36 { return k; }
int k
Definition: fac_util.h:28
int modpk::getk ( ) const
inline

Definition at line 920 of file factory.h.

920 { return k; }
int k
Definition: fac_util.h:28
int modpk::getk ( ) const
inline

Definition at line 920 of file factory.h.

920 { return k; }
int k
Definition: fac_util.h:28
int modpk::getp ( ) const
inline

Definition at line 35 of file fac_util.h.

35 { return p; }
int p
Definition: fac_util.h:27
int modpk::getp ( ) const
inline

Definition at line 919 of file factory.h.

919 { return p; }
int p
Definition: fac_util.h:27
int modpk::getp ( ) const
inline

Definition at line 919 of file factory.h.

919 { return p; }
int p
Definition: fac_util.h:27
CanonicalForm modpk::getpk ( ) const
inline

Definition at line 38 of file fac_util.h.

38 { return pk; }
CanonicalForm pk
Definition: fac_util.h:25
CanonicalForm modpk::getpk ( ) const
inline

Definition at line 922 of file factory.h.

922 { return pk; }
CanonicalForm pk
Definition: fac_util.h:25
CanonicalForm modpk::getpk ( ) const
inline

Definition at line 922 of file factory.h.

922 { return pk; }
CanonicalForm pk
Definition: fac_util.h:25
CanonicalForm modpk::inverse ( const CanonicalForm f,
bool  symmetric = true 
) const

Definition at line 58 of file fac_util.cc.

59 {
60  CanonicalForm u, r0 = this->operator()( f, false ), r1 = pk, q0 = 1, q1 = 0;
61  while ( ( r0 > 0 ) && ( r1 > 0 ) ) {
62  u = r0 / r1;
63  r0 = r0 % r1;
64  q0 = u*q1 + q0;
65  if ( r0 > 0 ) {
66  u = r1 / r0;
67  r1 = r1 % r0;
68  q1 = u*q0 + q1;
69  }
70  }
71  if ( r0 == 0 )
72  return this->operator()( pk-q1, symmetric );
73  else
74  return this->operator()( q0, symmetric );
75 }
factory&#39;s main class
Definition: canonicalform.h:75
CanonicalForm pk
Definition: fac_util.h:25
CanonicalForm operator()(const CanonicalForm &f, bool symmetric=true) const
Definition: fac_util.cc:78
CanonicalForm modpk::inverse ( const CanonicalForm f,
bool  symmetric = true 
) const
CanonicalForm modpk::inverse ( const CanonicalForm f,
bool  symmetric = true 
) const
CanonicalForm modpk::operator() ( const CanonicalForm f,
bool  symmetric = true 
) const

Definition at line 78 of file fac_util.cc.

79 {
80  PKHALF = pkhalf;
81  PK = pk;
82  if ( symmetric )
83  return mapdomain( f, mappksymmetric );
84  else
85  return mapdomain( f, mappk );
86 }
CanonicalForm pk
Definition: fac_util.h:25
static CanonicalForm mappk(const CanonicalForm &)
Definition: fac_util.cc:108
static CanonicalForm PKHALF
Definition: fac_util.cc:14
static CanonicalForm mappksymmetric(const CanonicalForm &)
Definition: fac_util.cc:98
static CanonicalForm PK
Definition: fac_util.cc:14
CanonicalForm mapdomain(const CanonicalForm &f, CanonicalForm(*mf)(const CanonicalForm &))
CanonicalForm mapdomain ( const CanonicalForm & f, CanonicalForm (*mf)( const CanonicalForm & ) ) ...
Definition: cf_ops.cc:440
CanonicalForm pkhalf
Definition: fac_util.h:26
CanonicalForm modpk::operator() ( const CanonicalForm f,
bool  symmetric = true 
) const
CanonicalForm modpk::operator() ( const CanonicalForm f,
bool  symmetric = true 
) const
modpk & modpk::operator= ( const modpk m)

Definition at line 46 of file fac_util.cc.

47 {
48  if ( this != &m ) {
49  p = m.p;
50  k = m.k;
51  pk = m.pk;
52  pkhalf = m.pkhalf;
53  }
54  return *this;
55 }
int p
Definition: fac_util.h:27
CanonicalForm pk
Definition: fac_util.h:25
int k
Definition: fac_util.h:28
CanonicalForm pkhalf
Definition: fac_util.h:26
modpk& modpk::operator= ( const modpk m)
modpk& modpk::operator= ( const modpk m)

Field Documentation

int modpk::k
private

Definition at line 28 of file fac_util.h.

int modpk::p
private

Definition at line 27 of file fac_util.h.

CanonicalForm modpk::pk
private

Definition at line 25 of file fac_util.h.

CanonicalForm modpk::pkhalf
private

Definition at line 26 of file fac_util.h.


The documentation for this class was generated from the following files: