linbox
SigmaBasis< _Field > Class Template Reference

implementation of \(\sigma\)-basis (minimal basis). More...

#include <sigma-basis.h>

Public Types

typedef _Field Field
 
typedef Field::Element Element
 
typedef BlasMatrix< FieldCoefficient
 

Public Member Functions

const Fieldfield () const
 
 SigmaBasis (const Field &F, std::vector< Coefficient > &PowerSerie)
 
void right_basis (std::vector< Coefficient > &SigmaBase, size_t degree, std::vector< size_t > &defect)
 
void left_basis (std::vector< Coefficient > &SigmaBase, size_t degree, std::vector< size_t > &defect)
 
void multi_left_basis (std::vector< Coefficient > &SigmaBase1, size_t degree1, std::vector< size_t > &defect1, std::vector< Coefficient > &SigmaBase2, size_t degree2, std::vector< size_t > &defect2)
 
void multi_right_basis (std::vector< Coefficient > &SigmaBase1, size_t degree1, std::vector< size_t > &defect1, std::vector< Coefficient > &SigmaBase2, size_t degree2, std::vector< size_t > &defect2)
 
void left_PadeMatrix (std::vector< Coefficient > &Approx, size_t degree, std::vector< size_t > &defect)
 
void right_PadeMatrix (std::vector< Coefficient > &Approx, size_t degree, std::vector< size_t > &defect)
 
void multi_left_PadeMatrix (std::vector< Coefficient > &Approx1, size_t degree1, std::vector< Coefficient > &Approx2, size_t degree2, std::vector< size_t > &defect)
 
void multi_right_PadeMatrix (std::vector< Coefficient > &Approx1, size_t degree1, std::vector< Coefficient > &Approx2, size_t degree2, std::vector< size_t > &defect)
 
template<class Polynomial1, class Polynomial2>
void PM_Basis (Polynomial1 &SigmaBase, const Polynomial2 &PowerSerie, size_t degree, std::vector< size_t > &defect)
 
void print_multime ()
 
template<class Polynomial1, class Polynomial2>
void M_Basis (Polynomial1 &SigmaBase, Polynomial2 &PowerSerie, size_t length, std::vector< size_t > &defect)
 
template<class Polynomial1, class Polynomial2, class Polynomial3>
void ComputeNewSerie (Polynomial1 &NewSerie, const Polynomial2 &SigmaBase, const Polynomial3 &OldSerie, size_t, size_t)
 
void ComputeNewSerieClassic (std::vector< Coefficient > &NewSerie, const std::vector< Coefficient > &SigmaBase, const std::vector< Coefficient > &OldSerie, size_t degree1, size_t degree2)
 
void MulSigmaBasis (std::vector< Coefficient > &C, std::vector< Coefficient > &A, std::vector< Coefficient > &B)
 
void PadeApproximant (std::vector< Coefficient > &Approx, const std::vector< Coefficient > &PowerSerie, size_t length, std::vector< size_t > &defect)
 
void MultiPadeApproximant (std::vector< Coefficient > &Approx1, size_t degree1, std::vector< Coefficient > &Approx2, size_t degree2, const std::vector< Coefficient > &PowerSerie, std::vector< size_t > &defect)
 
void new_M_Basis (std::vector< Coefficient > &SigmaBase, std::vector< Coefficient > &PowerSerie, size_t length, std::vector< size_t > &defect)
 
void new_PM_Basis (std::vector< Coefficient > &SigmaBase, std::vector< Coefficient > &PowerSerie, size_t degree, std::vector< size_t > &defect)
 
void UpdateSerie (std::vector< Coefficient > &NewSerie, std::vector< Coefficient > &SigmaBase, const std::vector< Coefficient > &OldSerie, size_t degree1, size_t degree2)
 
void write_maple (const char *name, const Coefficient &C)
 
void write_maple (const char *name, const std::vector< Coefficient > &P)
 

Detailed Description

template<class _Field>
class LinBox::SigmaBasis< _Field >

implementation of \(\sigma\)-basis (minimal basis).

Bibliography
  • P. Giorgi, C.P. Jeannerod and G. Villard. On the complexity of polynomial matrix computations. ISSAC'03 doi.

Member Typedef Documentation

◆ Field

template<class _Field>
typedef _Field Field

◆ Element

template<class _Field>
typedef Field::Element Element

◆ Coefficient

template<class _Field>
typedef BlasMatrix<Field> Coefficient

Constructor & Destructor Documentation

◆ SigmaBasis()

template<class _Field>
SigmaBasis ( const Field & F,
std::vector< Coefficient > & PowerSerie )
inline

Member Function Documentation

◆ field()

template<class _Field>
const Field & field ( ) const
inline

◆ right_basis()

template<class _Field>
void right_basis ( std::vector< Coefficient > & SigmaBase,
size_t degree,
std::vector< size_t > & defect )
inline

◆ left_basis()

template<class _Field>
void left_basis ( std::vector< Coefficient > & SigmaBase,
size_t degree,
std::vector< size_t > & defect )
inline

◆ multi_left_basis()

template<class _Field>
void multi_left_basis ( std::vector< Coefficient > & SigmaBase1,
size_t degree1,
std::vector< size_t > & defect1,
std::vector< Coefficient > & SigmaBase2,
size_t degree2,
std::vector< size_t > & defect2 )
inline

◆ multi_right_basis()

template<class _Field>
void multi_right_basis ( std::vector< Coefficient > & SigmaBase1,
size_t degree1,
std::vector< size_t > & defect1,
std::vector< Coefficient > & SigmaBase2,
size_t degree2,
std::vector< size_t > & defect2 )
inline

◆ left_PadeMatrix()

template<class _Field>
void left_PadeMatrix ( std::vector< Coefficient > & Approx,
size_t degree,
std::vector< size_t > & defect )
inline

◆ right_PadeMatrix()

template<class _Field>
void right_PadeMatrix ( std::vector< Coefficient > & Approx,
size_t degree,
std::vector< size_t > & defect )
inline

◆ multi_left_PadeMatrix()

template<class _Field>
void multi_left_PadeMatrix ( std::vector< Coefficient > & Approx1,
size_t degree1,
std::vector< Coefficient > & Approx2,
size_t degree2,
std::vector< size_t > & defect )
inline

◆ multi_right_PadeMatrix()

template<class _Field>
void multi_right_PadeMatrix ( std::vector< Coefficient > & Approx1,
size_t degree1,
std::vector< Coefficient > & Approx2,
size_t degree2,
std::vector< size_t > & defect )
inline

◆ PM_Basis()

template<class _Field>
template<class Polynomial1, class Polynomial2>
void PM_Basis ( Polynomial1 & SigmaBase,
const Polynomial2 & PowerSerie,
size_t degree,
std::vector< size_t > & defect )
inline

◆ print_multime()

template<class _Field>
void print_multime ( )
inline

◆ M_Basis()

template<class _Field>
template<class Polynomial1, class Polynomial2>
void M_Basis ( Polynomial1 & SigmaBase,
Polynomial2 & PowerSerie,
size_t length,
std::vector< size_t > & defect )
inline

◆ ComputeNewSerie()

template<class _Field>
template<class Polynomial1, class Polynomial2, class Polynomial3>
void ComputeNewSerie ( Polynomial1 & NewSerie,
const Polynomial2 & SigmaBase,
const Polynomial3 & OldSerie,
size_t ,
size_t  )
inline

◆ ComputeNewSerieClassic()

template<class _Field>
void ComputeNewSerieClassic ( std::vector< Coefficient > & NewSerie,
const std::vector< Coefficient > & SigmaBase,
const std::vector< Coefficient > & OldSerie,
size_t degree1,
size_t degree2 )
inline

◆ MulSigmaBasis()

template<class _Field>
void MulSigmaBasis ( std::vector< Coefficient > & C,
std::vector< Coefficient > & A,
std::vector< Coefficient > & B )
inline

◆ PadeApproximant()

template<class _Field>
void PadeApproximant ( std::vector< Coefficient > & Approx,
const std::vector< Coefficient > & PowerSerie,
size_t length,
std::vector< size_t > & defect )
inline

◆ MultiPadeApproximant()

template<class _Field>
void MultiPadeApproximant ( std::vector< Coefficient > & Approx1,
size_t degree1,
std::vector< Coefficient > & Approx2,
size_t degree2,
const std::vector< Coefficient > & PowerSerie,
std::vector< size_t > & defect )
inline

◆ new_M_Basis()

template<class _Field>
void new_M_Basis ( std::vector< Coefficient > & SigmaBase,
std::vector< Coefficient > & PowerSerie,
size_t length,
std::vector< size_t > & defect )
inline

◆ new_PM_Basis()

template<class _Field>
void new_PM_Basis ( std::vector< Coefficient > & SigmaBase,
std::vector< Coefficient > & PowerSerie,
size_t degree,
std::vector< size_t > & defect )
inline

◆ UpdateSerie()

template<class _Field>
void UpdateSerie ( std::vector< Coefficient > & NewSerie,
std::vector< Coefficient > & SigmaBase,
const std::vector< Coefficient > & OldSerie,
size_t degree1,
size_t degree2 )
inline

◆ write_maple() [1/2]

template<class _Field>
void write_maple ( const char * name,
const Coefficient & C )
inline

◆ write_maple() [2/2]

template<class _Field>
void write_maple ( const char * name,
const std::vector< Coefficient > & P )
inline

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