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.
GF & | operator[] (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

Constructor.

Definition at line 386 of file galois.h.

## 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, and itpp::Array< T >::set_size().

## 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.

## Member Function Documentation

## get_size()

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

inline

Return q.

Definition at line 449 of file galois.h.

Referenced by itpp::formal_derivate().

## get_degree()

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

inline

Return degree of GF(q)[x].

Definition at line 454 of file galois.h.

## 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, and itpp::Array< T >::set_size().

## 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 itpp::BCH::BCH(), 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 itpp::BCH::BCH(), itpp::BCH::BCH(), GFX(), GFX(), GFX(), itpp::Reed_Solomon::Reed_Solomon(), 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, itpp::Array< T >::set_size(), and itpp::Array< T >::size().

## clear()

void itpp::GFX::clear | ( |  | ) |

inline

Set all coefficients to zero.

Definition at line 477 of file galois.h.

References it_assert_debug.

## 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.

## operator+=()

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

inline

sum of two GF(q)[x]

Definition at line 491 of file galois.h.

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

## operator+()

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

inline

sum of two GF(q)[x]

Definition at line 503 of file galois.h.

## 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.

## 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.

## operator*=()

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

inline

product of two GF(q)[x]

Definition at line 522 of file galois.h.

References it_assert_debug, itpp::Array< T >::set_size(), and itpp::Array< T >::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.

## operator()()

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

inline

Evaluate polynom at alpha^inexp.

Definition at line 566 of file galois.h.

References 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.

## 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.

## 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.

## 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.

## 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 get_true_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 get_true_degree().

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

- itpp/comm/galois.h

Generated on Mon Apr 22 2024 09:45:27 for IT++ by Doxygen 1.9.8