MeatAxe  2.4
Characteristic and Minimal Polynomials

Detailed Description

Functions

Poly_tCharPolFactor (const Matrix_t *mat)
 Characteristic Polynomial. More...
 
FPoly_tCharPol (const Matrix_t *mat)
 Characteristic Polynomial. More...
 
Poly_tMinPolFactor (Matrix_t *mat)
 Minimal Polynomial. More...
 
FPoly_tMinPol (Matrix_t *mat)
 Minimal polynomial. More...
 

Variables

long CharPolSeed = 0
 Seed for Characteristic Polynomial. More...
 

Function Documentation

◆ CharPol()

FPoly_t* CharPol ( const Matrix_t mat)

Characteristic Polynomial.

This function calculates the characteristic polynomial of a matrix in factored form. The return value is a pointer to a FPoly_t structure containing the irreducible factors of the characteristic polynomial.

Parameters
matPointer to the matrix.
Returns
The characteristic polynomial of mat or 0 on error.

◆ CharPolFactor()

Poly_t* CharPolFactor ( const Matrix_t mat)

Characteristic Polynomial.

This function returns one factor of the characteristic polynomial of a given matrix. Further calls with a 0 argument return more factors or 0, if there are no more factors. Note that the factors obtained in this way are in general not irreducible.

Here is how CharPolFactor() works: If mat is different from 0, CharPolFactor() initializes its internal data and starts computing one cyclic subspace. The choice of starting vector for this first subspace depends on the global variable CharPolSeed. Usually, this variable has a value of 0, corresponding to the vector (1,0,...,0). Then, the polynomial of the matrix restricted to that cyclic subspace is constructed and returned to the caller.

If mat is 0 on the next call, CharPolFactor() resumes at the point where it returned the last time, calculates the next cyclic subspace and so on, until the complete space is exhausted.

Attention
Since the function uses static variables to store information across multiple calls, your program must not use CharPolFactor() on more than one matrix at the same time.
Parameters
matPointer to the matrix.
Returns
A factor of the characteristic polynomial, or 0 if there are no more factors.

◆ MinPol()

FPoly_t* MinPol ( Matrix_t mat)

Minimal polynomial.

This function calculates the minimal polynomial of a matrix in factored form. The return value is a pointer to a FPoly_t structure containing the irreducible factors of the minimal polynomial.

Parameters
matPointer to the matrix.
Returns
Minimal polynomial of mat, or 0 on error.

◆ MinPolFactor()

Poly_t* MinPolFactor ( Matrix_t mat)

Minimal Polynomial.

This function returns one factor of the minimal polynomial of a given matrix. Further calls with a 0 argument return more factors or 0, if there are no more factors. Note that the factors obtained in this way are in general not irreducible.

If mat is different from 0, MinPolFactor() initializes its internal data and starts computing one cyclic subspace. Then, the polynomial of the matrix restricted to that cyclic subspace is constructed and returned to the caller.

If mat is 0 on the next call, MinPolFactor() resumes at the point where it returned the last time, calculates the next cyclic subspace and so on, until the complete space is exhausted.

Attention
Since the function stores information across multiple calls in static buffers, your program must not use MinPolFactor() on more than one matrix at the same time.
Parameters
matPointer to the matrix, or 0.
Returns
One factor of the minmal polynomial or 0 if there are no more factors.

Variable Documentation

◆ CharPolSeed

long CharPolSeed = 0

Seed for Characteristic Polynomial.

This variable is used by CharPolFactor() to select the first seed vector. By default, CharPolSeed has the value 0, i.e., the first seed vector is (1,0,...,0). Assigning the value 1 selects the start vector (0,1,...,0) in all subsequent calls to CharPolFactor(). If CharPolSeed is out of bounds, CharPolFactor() will reset it to 0.


MeatAxe 2.4 documentation, generated on Mon Jun 7 2021 11:42:24