Givaro
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
RNSsystem< RING, Domain > Class Template Reference

class RNSsystem. More...

#include <givrns.h>

+ Collaboration diagram for RNSsystem< RING, Domain >:

Public Types

typedef RING ring
 
typedef Domain::Element modulo
 
typedef Array0< moduloarray
 
typedef Array0< Domaindomains
 

Public Member Functions

 RNSsystem ()
 
 ~RNSsystem ()
 
 RNSsystem (const Self_t &R)
 
 RNSsystem (const domains &primes)
 
void RnsToMixedRadix (array &mixrad, const array &residu)
 
RING & MixedRadixToRing (RING &res, const array &mixrad) const
 
void RingToRns (array &rns, const RING &a) const
 
RING & RnsToRing (RING &a, const array &rns)
 
size_t size () const
 
const domainsPrimes () const
 
const Domain ith (const size_t i) const
 
const arrayReciprocals () const
 – Returns an array of the reciprocal $ck = \left(\prod_{j=0..k-1}p_j\right)^{-1} \mod pk$ More...
 
const modulo reciprocal (const size_t i) const
 
void setPrimes (const domains &primes)
 

Protected Member Functions

void ComputeCk ()
 

Protected Attributes

domains _primes
 
array _ck
 

Detailed Description

template<class RING, class Domain>
class Givaro::RNSsystem< RING, Domain >

class RNSsystem.

Structure which manages list of domains in order to convert integer to/from RNS number system using a mixed radix form. This class is parameterized by the type of RING and of Domain. The ring should have:

Member Typedef Documentation

◆ ring

typedef RING ring

◆ modulo

◆ array

typedef Array0<modulo> array

◆ domains

typedef Array0<Domain> domains

Constructor & Destructor Documentation

◆ RNSsystem() [1/3]

◆ ~RNSsystem()

◆ RNSsystem() [2/3]

RNSsystem ( const Self_t R)

◆ RNSsystem() [3/3]

RNSsystem ( const domains primes)

Member Function Documentation

◆ RnsToMixedRadix()

void RnsToMixedRadix ( array mixrad,
const array residu 
)

◆ MixedRadixToRing()

RING & MixedRadixToRing ( RING &  res,
const array mixrad 
) const

◆ RingToRns()

void RingToRns ( array rns,
const RING &  a 
) const

◆ RnsToRing()

RING & RnsToRing ( RING &  a,
const array rns 
)

◆ size()

size_t size ( ) const
inline

◆ Primes()

const RNSsystem< RING, Domain >::domains & Primes

◆ ith()

const Domain ith ( const size_t  i) const

◆ Reciprocals()

const RNSsystem< RING, Domain >::array & Reciprocals

– Returns an array of the reciprocal $ck = \left(\prod_{j=0..k-1}p_j\right)^{-1} \mod pk$

◆ reciprocal()

const RNSsystem< RING, Domain >::modulo reciprocal ( const size_t  i) const

◆ setPrimes()

void setPrimes ( const domains primes)

◆ ComputeCk()

void ComputeCk
protected

Field Documentation

◆ _primes

domains _primes
protected

◆ _ck

array _ck
protected

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