![]() |
rssoft
0.0.0
Reed-Solomon codes library with soft decision decoding
|
Bivariate Monomial class. More...
#include <GFq_BivariateMonomial.h>
Bivariate Monomial class.
| rssoft::gf::GFq_BivariateMonomial::GFq_BivariateMonomial | ( | const GFq_Element & | coeff, |
| unsigned int | eX, | ||
| unsigned int | eY | ||
| ) |
| rssoft::gf::GFq_BivariateMonomial::GFq_BivariateMonomial | ( | const GFq_Element & | coeff, |
| const GFq_BivariateMonomialExponents & | exponents | ||
| ) |
:
std::pair<GFq_BivariateMonomialExponents, GFq_Element>(exponents, coeff)
{}
| rssoft::gf::GFq_BivariateMonomial::GFq_BivariateMonomial | ( | const GFq_BivariateMonomialKeyValueRepresentation & | monomial_rep | ) |
:
std::pair<GFq_BivariateMonomialExponents, GFq_Element>(monomial_rep)
{}
| const GFq_Element& rssoft::gf::GFq_BivariateMonomial::coeff | ( | ) | const [inline] |
{
return second;
}
| unsigned int rssoft::gf::GFq_BivariateMonomial::eX | ( | ) | const [inline] |
{
return first.first;
}
| unsigned int rssoft::gf::GFq_BivariateMonomial::eY | ( | ) | const [inline] |
{
return first.second;
}
| const GFq_BivariateMonomialExponents& rssoft::gf::GFq_BivariateMonomial::get_exponents | ( | ) | const [inline] |
{
return first;
}
| GFq_BivariateMonomial & rssoft::gf::GFq_BivariateMonomial::operator*= | ( | const GFq_BivariateMonomial & | monomial | ) |
{
second *= monomial.second;
first.first += monomial.first.first;
first.second += monomial.first.second;
return *this;
}
| GFq_BivariateMonomial & rssoft::gf::GFq_BivariateMonomial::operator*= | ( | const GFq_Element & | gfe | ) |
{
second *= gfe;
return *this;
}
| GFq_BivariateMonomial & rssoft::gf::GFq_BivariateMonomial::operator+= | ( | const GFq_BivariateMonomial & | monomial | ) |
{
if (first != monomial.first)
{
throw GF_Exception("Cannot add monomials of different exponents");
}
else
{
second += monomial.second;
}
return *this;
}
| GFq_BivariateMonomial & rssoft::gf::GFq_BivariateMonomial::operator+= | ( | const GFq_Element & | gfe | ) |
{
second += gfe;
return *this;
}
| GFq_BivariateMonomial & rssoft::gf::GFq_BivariateMonomial::operator-= | ( | const GFq_BivariateMonomial & | monomial | ) |
{
*this += monomial;
return *this;
}
| GFq_BivariateMonomial & rssoft::gf::GFq_BivariateMonomial::operator-= | ( | const GFq_Element & | gfe | ) |
{
*this += gfe;
return *this;
}
| GFq_BivariateMonomial & rssoft::gf::GFq_BivariateMonomial::operator/= | ( | const GFq_BivariateMonomial & | monomial | ) |
{
if (monomial.second == 0)
{
throw GF_Exception("Zero divide monomial");
}
second /= monomial.second;
if (first.first - monomial.first.first < 0)
{
throw GF_Exception("Cannot divide by a monomial with a higher degree in X");
}
else if (first.second - monomial.first.second < 0)
{
throw GF_Exception("Cannot divide by a monomial with a higher degree in Y");
}
else
{
first.first -= monomial.first.first;
first.second -= monomial.first.second;
}
return *this;
}
| GFq_BivariateMonomial & rssoft::gf::GFq_BivariateMonomial::operator/= | ( | const GFq_Element & | gfe | ) |
{
if (gfe == 0)
{
throw GF_Exception("Zero divide monomial");
}
second /= gfe;
return *this;
}
| GFq_BivariateMonomial & rssoft::gf::GFq_BivariateMonomial::operator= | ( | const GFq_BivariateMonomial & | monomial | ) |
{
*this = monomial;
return *this;
}
| unsigned int rssoft::gf::GFq_BivariateMonomial::wdeg | ( | unsigned int | wX, |
| unsigned int | wY | ||
| ) | const [inline] |
{
return first.wdeg(wX, wY);
}
| unsigned int rssoft::gf::GFq_BivariateMonomial::wdeg | ( | const std::pair< unsigned int, unsigned int > & | weights | ) | const [inline] |
{
return first.wdeg(weights);
}