My Project  debian-1:4.1.2-p1+ds-2
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() [1/9]

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 }

◆ modpk() [2/9]

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 }

◆ modpk() [3/9]

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 }

◆ ~modpk() [1/3]

modpk::~modpk ( )
inline

Definition at line 34 of file fac_util.h.

34 {}

◆ modpk() [4/9]

modpk::modpk ( )

◆ modpk() [5/9]

modpk::modpk ( int  q,
int  l 
)

◆ modpk() [6/9]

modpk::modpk ( const modpk m)

◆ ~modpk() [2/3]

modpk::~modpk ( )
inline

Definition at line 922 of file factory.h.

922 {}

◆ modpk() [7/9]

modpk::modpk ( )

◆ modpk() [8/9]

modpk::modpk ( int  q,
int  l 
)

◆ modpk() [9/9]

modpk::modpk ( const modpk m)

◆ ~modpk() [3/3]

modpk::~modpk ( )
inline

Definition at line 922 of file factory.h.

922 {}

Member Function Documentation

◆ getk() [1/3]

int modpk::getk ( ) const
inline

Definition at line 36 of file fac_util.h.

36 { return k; }

◆ getk() [2/3]

int modpk::getk ( ) const
inline

Definition at line 924 of file factory.h.

924 { return k; }

◆ getk() [3/3]

int modpk::getk ( ) const
inline

Definition at line 924 of file factory.h.

924 { return k; }

◆ getp() [1/3]

int modpk::getp ( ) const
inline

Definition at line 35 of file fac_util.h.

35 { return p; }

◆ getp() [2/3]

int modpk::getp ( ) const
inline

Definition at line 923 of file factory.h.

923 { return p; }

◆ getp() [3/3]

int modpk::getp ( ) const
inline

Definition at line 923 of file factory.h.

923 { return p; }

◆ getpk() [1/3]

CanonicalForm modpk::getpk ( ) const
inline

Definition at line 38 of file fac_util.h.

38 { return pk; }

◆ getpk() [2/3]

CanonicalForm modpk::getpk ( ) const
inline

Definition at line 926 of file factory.h.

926 { return pk; }

◆ getpk() [3/3]

CanonicalForm modpk::getpk ( ) const
inline

Definition at line 926 of file factory.h.

926 { return pk; }

◆ inverse() [1/3]

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 }

◆ inverse() [2/3]

CanonicalForm modpk::inverse ( const CanonicalForm f,
bool  symmetric = true 
) const

◆ inverse() [3/3]

CanonicalForm modpk::inverse ( const CanonicalForm f,
bool  symmetric = true 
) const

◆ operator()() [1/3]

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 }

◆ operator()() [2/3]

CanonicalForm modpk::operator() ( const CanonicalForm f,
bool  symmetric = true 
) const

◆ operator()() [3/3]

CanonicalForm modpk::operator() ( const CanonicalForm f,
bool  symmetric = true 
) const

◆ operator=() [1/3]

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 }

◆ operator=() [2/3]

modpk& modpk::operator= ( const modpk m)

◆ operator=() [3/3]

modpk& modpk::operator= ( const modpk m)

Field Documentation

◆ k

int modpk::k
private

Definition at line 28 of file fac_util.h.

◆ p

int modpk::p
private

Definition at line 27 of file fac_util.h.

◆ pk

CanonicalForm modpk::pk
private

Definition at line 25 of file fac_util.h.

◆ pkhalf

CanonicalForm modpk::pkhalf
private

Definition at line 26 of file fac_util.h.


The documentation for this class was generated from the following files:
f
FILE * f
Definition: checklibs.c:9
mappk
static CanonicalForm mappk(const CanonicalForm &)
Definition: fac_util.cc:108
power
CanonicalForm power(const CanonicalForm &f, int n)
exponentiation
Definition: canonicalform.cc:1837
modpk::operator()
CanonicalForm operator()(const CanonicalForm &f, bool symmetric=true) const
Definition: fac_util.cc:78
modpk::k
int k
Definition: fac_util.h:28
CanonicalForm
factory's main class
Definition: canonicalform.h:77
modpk::pkhalf
CanonicalForm pkhalf
Definition: fac_util.h:26
modpk::p
int p
Definition: fac_util.h:27
PK
STATIC_INST_VAR CanonicalForm PK
Definition: fac_util.cc:14
PKHALF
STATIC_INST_VAR CanonicalForm PKHALF
Definition: fac_util.cc:14
mappksymmetric
static CanonicalForm mappksymmetric(const CanonicalForm &)
Definition: fac_util.cc:98
m
int m
Definition: cfEzgcd.cc:121
l
int l
Definition: cfEzgcd.cc:93
mapdomain
CanonicalForm mapdomain(const CanonicalForm &f, CanonicalForm(*mf)(const CanonicalForm &))
CanonicalForm mapdomain ( const CanonicalForm & f, CanonicalForm (*mf)( const CanonicalForm & ) )
Definition: cf_ops.cc:440
modpk::pk
CanonicalForm pk
Definition: fac_util.h:25