linbox

A tool for computations with integer and rational matrices. More...
#include <factory.h>
Public Member Functions  
virtual  ~BlackboxFactory () 
Virtual destructor.  
virtual Blackbox *  makeBlackbox (const Field &F)=0 
Given a field and vector type, construct a black box for the matrix over that field and using that vector type. More...  
virtual integer &  maxNorm (integer &res)=0 
Compute and return the maxnorm of the matrix. More...  
virtual integer &  hadamardBound (integer &res) const =0 
Compute and return the hadamard bound of the matrxi.  
virtual size_t  rowdim ()=0 
Give the row dimension of the matrix.  
virtual size_t  coldim ()=0 
Give the column dimension of the matrix.  
A tool for computations with integer and rational matrices.
The blackbox factory provides a facility for performing integer or rational computations by reducing modulo one or more primes and recovering the solution with Chinese Remaindering, lifting, or rational reconstruction. It is an interface that provides one method which, given a field, produces a black box representing a particular matrix over that field. The factory object may be passed to various procedures, such as rank, det, and solve, which will perform the required modular reductions to find integer or rational solutions.
In the typical case, the user provides an object whose class inherits from BlackboxFactory and implements the method makeBlackbox. The object represents the original integer or rational version of the black box, whose data might require some modification (e.g. modular reduction) to produce a true black box. Alternatively, the resulting black box might merely be a reinterpretation of the data in the original object, as is the case where matrix entries are all nonnegative and smaller than the modulus.

pure virtual 
Given a field and vector type, construct a black box for the matrix over that field and using that vector type.
This should be implemented by the user
F  Field over which to construct the black box 
Compute and return the maxnorm of the matrix.
res  Place to store result 