linbox
SmithFormAdaptive Class Reference

#include <smith-form-adaptive.h>

Static Public Member Functions

template<class Matrix>
static void compute_local_long (BlasVector< Givaro::ZRing< Integer > > &s, const Matrix &A, int64_t p, int64_t e)
 
template<class Matrix>
static void compute_local_big (BlasVector< Givaro::ZRing< Integer > > &s, const Matrix &A, int64_t p, int64_t e)
 
template<class Matrix>
static void compute_local (BlasVector< Givaro::ZRing< Integer > > &s, const Matrix &A, int64_t p, int64_t e)
 
template<class Matrix>
static void smithFormSmooth (BlasVector< Givaro::ZRing< Integer > > &s, const Matrix &A, long r, const std::vector< int64_t > &sev)
 
template<class Matrix>
static void smithFormRough (BlasVector< Givaro::ZRing< Integer > > &s, const Matrix &A, integer m)
 
template<class Matrix>
static void smithFormVal (BlasVector< Givaro::ZRing< Integer > > &s, const Matrix &A, long r, const std::vector< int64_t > &sev)
 
template<class Matrix>
static void smithForm (BlasVector< Givaro::ZRing< Integer > > &s, const Matrix &A)
 Smith form of a dense matrix by adaptive algorithm.
 
template<class IRing, class _Rep>
static void smithForm (BlasVector< Givaro::ZRing< Integer > > &s, const BlasMatrix< IRing, _Rep > &A)
 Specialization for dense case.
 

Static Public Attributes

static const int64_t prime [] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97}
 
static const int NPrime = 25
 

Member Function Documentation

◆ compute_local_long()

template<class Matrix>
void compute_local_long ( BlasVector< Givaro::ZRing< Integer > > & s,
const Matrix & A,
int64_t p,
int64_t e )
static

◆ compute_local_big()

template<class Matrix>
void compute_local_big ( BlasVector< Givaro::ZRing< Integer > > & s,
const Matrix & A,
int64_t p,
int64_t e )
static

◆ compute_local()

template<class Matrix>
void compute_local ( BlasVector< Givaro::ZRing< Integer > > & s,
const Matrix & A,
int64_t p,
int64_t e )
static

◆ smithFormSmooth()

template<class Matrix>
void smithFormSmooth ( BlasVector< Givaro::ZRing< Integer > > & s,
const Matrix & A,
long r,
const std::vector< int64_t > & sev )
static

◆ smithFormRough()

template<class Matrix>
void smithFormRough ( BlasVector< Givaro::ZRing< Integer > > & s,
const Matrix & A,
integer m )
static

◆ smithFormVal()

template<class Matrix>
void smithFormVal ( BlasVector< Givaro::ZRing< Integer > > & s,
const Matrix & A,
long r,
const std::vector< int64_t > & sev )
static

◆ smithForm() [1/2]

template<class Matrix>
void smithForm ( BlasVector< Givaro::ZRing< Integer > > & s,
const Matrix & A )
static

Smith form of a dense matrix by adaptive algorithm.

Compute the largest invariant factor, then, based on that, compute the rough and smooth part, separately. Should work with SparseMatrix and BlasMatrix

◆ smithForm() [2/2]

template<class IRing, class _Rep>
void smithForm ( BlasVector< Givaro::ZRing< Integer > > & s,
const BlasMatrix< IRing, _Rep > & A )
static

Specialization for dense case.

Field Documentation

◆ prime

const int64_t prime = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97}
static

◆ NPrime

const int NPrime = 25
static

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