linbox
RNS< Unsigned > Class Template Reference

RNS. More...

#include <rns.h>

Public Member Functions

 RNS (size_t l, size_t ps=21)
 Create a RNS able to recover any integer of at most l bits.
 
void initCRA ()
 Inits cra.
 
void cra (integer &result, const std::vector< double > &residues)
 Computes result corresponding to the residues.
 
void cra (std::vector< integer > &result, const std::vector< std::vector< double > > &residues)
 Computes result corresponding to the residues.
 
template<typename Iteration>
void cra (Ivect &result, Iteration &iter)
 Computes result corresponding to the iteration.
 
template<class Tinteger, class Tresidue>
void cra (Tinteger &result, Tresidue &residues)
 
template<class Tinteger, class Tresidue>
void convert (Tinteger &result, Tresidue &residues)
 
template<typename Function>
void cra (Ivect &result, Function &unitCRA)
 

Detailed Description

template<bool Unsigned>
class LinBox::RNS< Unsigned >

RNS.

Creates a RNS than can recover any number between 0 and q-1 if Unsigned=true or -q+1 and q-1 otherwise (where q=2 <up>bits </up>).

Todo
template by field and ring

Constructor & Destructor Documentation

◆ RNS()

template<bool Unsigned>
RNS ( size_t l,
size_t ps = 21 )

Create a RNS able to recover any integer of at most l bits.

Builds ceil(l/ps) different primes for the RNS

Parameters
lmax recoverable bits
psbitsize of the primes (defaulting to 21 because...)
Todo
if log2(maxint/curint)<ps use smaller genprime.

Member Function Documentation

◆ initCRA()

template<bool Unsigned>
void initCRA ( )

Inits cra.

◆ cra() [1/5]

template<bool Unsigned>
void cra ( integer & result,
const std::vector< double > & residues )

Computes result corresponding to the residues.

◆ cra() [2/5]

template<bool Unsigned>
void cra ( std::vector< integer > & result,
const std::vector< std::vector< double > > & residues )

Computes result corresponding to the residues.

◆ cra() [3/5]

template<bool Unsigned>
template<typename Iteration>
void cra ( Ivect & result,
Iteration & iter )

Computes result corresponding to the iteration.

◆ cra() [4/5]

template<bool Unsigned>
template<class Tinteger, class Tresidue>
void cra ( Tinteger & result,
Tresidue & residues )

◆ convert()

template<bool Unsigned>
template<class Tinteger, class Tresidue>
void convert ( Tinteger & result,
Tresidue & residues )

◆ cra() [5/5]

template<bool Unsigned>
template<typename Function>
void cra ( Ivect & result,
Function & unitCRA )

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