IT++ 4.3.1
itpp::GFX Class Reference

Polynomials over GF(q)[x], where q=2^m, m=1,...,16. More...

#include <itpp/comm/galois.h>

Public Member Functions

 GFX ()
 Constructor.
 
 GFX (int qvalue)
 Constructor.
 
 GFX (int qvalue, int indegree)
 Constructor.
 
 GFX (int qvalue, const ivec &invalues)
 Constructor.
 
 GFX (int qvalue, char *invalues)
 Constructor.
 
 GFX (int qvalue, std::string invalues)
 Constructor.
 
 GFX (const GFX &ingfx)
 Copy constructor.
 
int get_size () const
 Return q.
 
int get_degree () const
 Return degree of GF(q)[x].
 
void set_degree (int indegree, bool copy=false)
 Resize the polynomial to the given indegree. If copy is set to true, the old polynomial's coefficients are kept in the new polynomial, otherwise they are set to zero.
 
int get_true_degree () const
 Return true degree of GF(q)[x].
 
void set (int qvalue, const char *invalues)
 Set the GF(q)[x] polynomial.
 
void set (int qvalue, const std::string invalues)
 Set the GF(q)[x] polynomial.
 
void set (int qvalue, const ivec &invalues)
 Set the GF(q)[x] polynomial.
 
void clear ()
 Set all coefficients to zero.
 
GF operator[] (int index) const
 Acces to individual element in the GF(q)[x] polynomial.
 
GFoperator[] (int index)
 Acces to individual element in the GF(q)[x] polynomial.
 
void operator= (const GFX &ingfx)
 Copy.
 
void operator+= (const GFX &ingfx)
 sum of two GF(q)[x]
 
GFX operator+ (const GFX &ingfx) const
 sum of two GF(q)[x]
 
void operator-= (const GFX &ingfx)
 Difference of two GF(q), same as sum for q=2^m.
 
GFX operator- (const GFX &ingfx) const
 Difference of two GF(q), same as sum for q=2^m.
 
void operator*= (const GFX &ingfx)
 product of two GF(q)[x]
 
GFX operator* (const GFX &ingfx) const
 product of two GF(q)[x]
 
GF operator() (const GF &ingf)
 Evaluate polynom at alpha^inexp.
 

Friends

ITPP_EXPORT friend GFX operator* (const GF &ingf, const GFX &ingfx)
 Multiply a GF element with a GF(q)[x].
 
ITPP_EXPORT friend GFX operator* (const GFX &ingfx, const GF &ingf)
 Multiply a GF(q)[x] with a GF element.
 
ITPP_EXPORT friend GFX operator/ (const GFX &ingfx, const GF &ingf)
 Divide a GF(q)[x] with a GF element.
 
ITPP_EXPORT friend std::ostream & operator<< (std::ostream &os, const GFX &ingfx)
 Output stream.
 

Related Symbols

(Note that these are not member symbols.)

ITPP_EXPORT GFX divgfx (const GFX &c, const GFX &g)
 Int division of GF[q](x) polynomials: m(x) = c(x)/g(x).
 
ITPP_EXPORT GFX modgfx (const GFX &a, const GFX &b)
 Function that performs int division of gf[q](x) polynomials (a(x)/g(x)) and returns the reminder.
 

Detailed Description

Polynomials over GF(q)[x], where q=2^m, m=1,...,16.

Definition at line 175 of file galois.h.

Constructor & Destructor Documentation

◆ GFX() [1/7]

itpp::GFX::GFX ( )
inline

◆ GFX() [2/7]

itpp::GFX::GFX ( int qvalue)
inline

Constructor.

Definition at line 392 of file galois.h.

References it_assert_debug.

◆ GFX() [3/7]

itpp::GFX::GFX ( int qvalue,
int indegree )
inline

Constructor.

Definition at line 418 of file galois.h.

References it_assert_debug.

◆ GFX() [4/7]

itpp::GFX::GFX ( int qvalue,
const ivec & invalues )
inline

Constructor.

Definition at line 427 of file galois.h.

References set().

◆ GFX() [5/7]

itpp::GFX::GFX ( int qvalue,
char * invalues )
inline

Constructor.

Definition at line 432 of file galois.h.

References set().

◆ GFX() [6/7]

itpp::GFX::GFX ( int qvalue,
std::string invalues )
inline

Constructor.

Definition at line 437 of file galois.h.

References set().

◆ GFX() [7/7]

itpp::GFX::GFX ( const GFX & ingfx)
inline

Copy constructor.

Definition at line 442 of file galois.h.

References GFX().

Member Function Documentation

◆ get_size()

int itpp::GFX::get_size ( ) const
inline

Return q.

Definition at line 449 of file galois.h.

Referenced by divgfx(), itpp::formal_derivate(), and modgfx().

◆ get_degree()

int itpp::GFX::get_degree ( ) const
inline

Return degree of GF(q)[x].

Definition at line 454 of file galois.h.

Referenced by divgfx(), and modgfx().

◆ set_degree()

void itpp::GFX::set_degree ( int indegree,
bool copy = false )
inline

Resize the polynomial to the given indegree. If copy is set to true, the old polynomial's coefficients are kept in the new polynomial, otherwise they are set to zero.

Definition at line 459 of file galois.h.

References it_assert_debug.

Referenced by itpp::Reed_Solomon::decode(), divgfx(), and modgfx().

◆ get_true_degree()

int itpp::GFX::get_true_degree ( ) const
inline

Return true degree of GF(q)[x].

Definition at line 466 of file galois.h.

Referenced by divgfx(), itpp::formal_derivate(), and modgfx().

◆ set() [1/3]

void itpp::GFX::set ( int qvalue,
const char * invalues )
inline

Set the GF(q)[x] polynomial.

Definition at line 408 of file galois.h.

References set().

Referenced by GFX(), GFX(), GFX(), set(), and set().

◆ set() [2/3]

void itpp::GFX::set ( int qvalue,
const std::string invalues )
inline

Set the GF(q)[x] polynomial.

Definition at line 413 of file galois.h.

References set().

◆ set() [3/3]

void itpp::GFX::set ( int qvalue,
const ivec & invalues )
inline

Set the GF(q)[x] polynomial.

Definition at line 398 of file galois.h.

References it_assert_debug.

◆ clear()

void itpp::GFX::clear ( )
inline

Set all coefficients to zero.

Definition at line 477 of file galois.h.

References it_assert_debug.

Referenced by divgfx(), itpp::formal_derivate(), and modgfx().

◆ operator[]() [1/2]

GF itpp::GFX::operator[] ( int index) const
inline

Acces to individual element in the GF(q)[x] polynomial.

Definition at line 211 of file galois.h.

References it_assert_debug.

◆ operator[]() [2/2]

GF & itpp::GFX::operator[] ( int index)
inline

Acces to individual element in the GF(q)[x] polynomial.

Definition at line 216 of file galois.h.

References it_assert_debug.

◆ operator=()

void itpp::GFX::operator= ( const GFX & ingfx)
inline

Copy.

Definition at line 484 of file galois.h.

References GFX().

◆ operator+=()

void itpp::GFX::operator+= ( const GFX & ingfx)
inline

sum of two GF(q)[x]

Definition at line 491 of file galois.h.

References GFX(), and it_assert_debug.

◆ operator+()

GFX itpp::GFX::operator+ ( const GFX & ingfx) const
inline

sum of two GF(q)[x]

Definition at line 503 of file galois.h.

References GFX().

◆ operator-=()

void itpp::GFX::operator-= ( const GFX & ingfx)
inline

Difference of two GF(q), same as sum for q=2^m.

Definition at line 510 of file galois.h.

References GFX().

◆ operator-()

GFX itpp::GFX::operator- ( const GFX & ingfx) const
inline

Difference of two GF(q), same as sum for q=2^m.

Definition at line 515 of file galois.h.

References GFX().

◆ operator*=()

void itpp::GFX::operator*= ( const GFX & ingfx)
inline

product of two GF(q)[x]

Definition at line 522 of file galois.h.

References GFX(), it_assert_debug, and itpp::Array< T >::set_size().

◆ operator*()

GFX itpp::GFX::operator* ( const GFX & ingfx) const
inline

product of two GF(q)[x]

Definition at line 536 of file galois.h.

References GFX().

◆ operator()()

GF itpp::GFX::operator() ( const GF & ingf)
inline

Evaluate polynom at alpha^inexp.

Definition at line 566 of file galois.h.

References itpp::GF::get_size(), and it_assert_debug.

Friends And Related Symbol Documentation

◆ operator* [1/2]

ITPP_EXPORT friend GFX operator* ( const GF & ingf,
const GFX & ingfx )
friend

Multiply a GF element with a GF(q)[x].

Definition at line 543 of file galois.h.

References itpp::GF::get_size(), GFX(), and it_assert_debug.

◆ operator* [2/2]

ITPP_EXPORT friend GFX operator* ( const GFX & ingfx,
const GF & ingf )
friend

Multiply a GF(q)[x] with a GF element.

Definition at line 552 of file galois.h.

References GFX().

◆ operator/

ITPP_EXPORT friend GFX operator/ ( const GFX & ingfx,
const GF & ingf )
friend

Divide a GF(q)[x] with a GF element.

Definition at line 557 of file galois.h.

References itpp::GF::get_size(), GFX(), and it_assert_debug.

◆ operator<<

ITPP_EXPORT friend std::ostream & operator<< ( std::ostream & os,
const GFX & ingfx )
friend

Output stream.

Output stream.

Definition at line 135 of file galois.cpp.

References GFX().

◆ divgfx()

ITPP_EXPORT GFX divgfx ( const GFX & c,
const GFX & g )
related

Int division of GF[q](x) polynomials: m(x) = c(x)/g(x).

The reminder r(x) is not returned by this function.

Definition at line 157 of file galois.cpp.

References clear(), get_degree(), get_size(), get_true_degree(), GFX(), and set_degree().

◆ modgfx()

ITPP_EXPORT GFX modgfx ( const GFX & a,
const GFX & b )
related

Function that performs int division of gf[q](x) polynomials (a(x)/g(x)) and returns the reminder.

Definition at line 183 of file galois.cpp.

References clear(), get_degree(), get_size(), get_true_degree(), GFX(), and set_degree().


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