linbox
RationalChineseRemainder< RatCRABase > Struct Template Reference

Chinese remainder of rationals. More...

#include <rational-cra.h>

Public Types

typedef RatCRABase::Domain Domain
 
typedef RatCRABase::DomainElement DomainElement
 

Public Member Functions

template<class Param>
 RationalChineseRemainder (const Param &b)
 
template<class Function, class RandPrimeIterator>
Integeroperator() (Integer &num, Integer &den, Function &Iteration, RandPrimeIterator &genprime)
 The Rational CRA loop.
 
template<class Function, class RandPrimeIterator>
BlasVector< Givaro::ZRing< Integer > > & operator() (BlasVector< Givaro::ZRing< Integer > > &num, Integer &den, Function &Iteration, RandPrimeIterator &genprime)
 

Protected Attributes

RatCRABase Builder_
 

Detailed Description

template<class RatCRABase>
struct LinBox::RationalChineseRemainder< RatCRABase >

Chinese remainder of rationals.

Compute the reconstruction of rational numbers Either by Early Termination see [Dumas, Saunder, Villard, JSC 32 (1/2), pp 71-99, 2001], Or via a bound on the size of the integers.

Member Typedef Documentation

◆ Domain

template<class RatCRABase>
typedef RatCRABase::Domain Domain

◆ DomainElement

template<class RatCRABase>
typedef RatCRABase::DomainElement DomainElement

Constructor & Destructor Documentation

◆ RationalChineseRemainder()

template<class RatCRABase>
template<class Param>
RationalChineseRemainder ( const Param & b)
inline

Member Function Documentation

◆ operator()() [1/2]

template<class RatCRABase>
template<class Function, class RandPrimeIterator>
Integer & operator() ( Integer & num,
Integer & den,
Function & Iteration,
RandPrimeIterator & genprime )
inline

The Rational CRA loop.

Given a function to generate residues mod a single prime, this loop produces the residues resulting from the Chinese remainder process on sufficiently many primes to meet the termination condition.

Parameters
IterationFunction object of two arguments, Iteration(r, p), given prime p it outputs residue(s) r. This loop may be parallelized. Iteration must be reentrant, thread safe. For example, Iteration may be returning the coefficients of the minimal polynomial of a matrix mod p.
Warning
we won't detect bad primes.
Parameters
genprimeRandIter object for generating primes.
[out]numthe rational numerator
[out]denthe rational denominator

◆ operator()() [2/2]

template<class RatCRABase>
template<class Function, class RandPrimeIterator>
BlasVector< Givaro::ZRing< Integer > > & operator() ( BlasVector< Givaro::ZRing< Integer > > & num,
Integer & den,
Function & Iteration,
RandPrimeIterator & genprime )
inline

Field Documentation

◆ Builder_

template<class RatCRABase>
RatCRABase Builder_
protected

The documentation for this struct was generated from the following file: