CGAL::Exponent_vector

Definition

For a given (multivariate) monomial the vector of its exponents is called the exponent vector. The class Exponent_vector is meant to represent such a vector.

A vector is considered as valid, in case it represents a valid monomial. that is, it should not contain negative exponents. We decided to use int as the value type, since negative exponents may appear in intermediate results. The set of exponent vectors with elementwise addition forms an Abelian Group.

Beside the constructors Exponent_vector has almost the same interface as an std::vector<int>. Moreover the comparison is changed such that the lexicographic order starts the comparison at the last entry. This reflects the fact that the last entry corresponds to the outermost variable of a multivariate polynomial.

#include <CGAL/Exponent_vector.h>

Is Model for the Concepts

Random Access Container
Back Insertion Sequence

DefaultConstructible
Assignable
CopyConstructible

EqualityComparable
LessThanComparable

Creation

Exponent_vector fo;
introduces an uninitialized variable fo.

Exponent_vector fo ( ev_);
The copy constructor

Exponent_vector fo ( int e1);
Creates a vector containing the given element.

Exponent_vector fo ( int e1, int e2);
Creates a vector containing the given elements.

Exponent_vector fo ( int e1, int e2, int e3);
Creates a vector containing the given elements.

Exponent_vector fo ( int e1, int e2, int e3, int e4);
Creates a vector containing the given elements.

template < class InputIterator >
Exponent_vector fo ( InputIterator begin, InputIterator end);
Creates a vector with a copy of the given range.
Precondition: InputIterator must allow the value type int.

Operations

bool is_valid ( ev) Returns true if all entries of ev are not negative.

Operations

Group Operation:

Exponent_vector + ev1
Exponent_vector - ev1
Exponent_vector ev1 + ev2
Precondition: ev1.size() == ev2.size()
Exponent_vector ev1 - ev2
Precondition: ev1.size() == ev2.size()
Exponent_vector fo += ev2
Precondition: fo.size() == ev2.size()
Exponent_vector fo -= ev2
Precondition: fo.size() == ev2.size()

EqualityComparable:

bool ev1 == ev2
bool ev1 != ev2

LessThanComparable:

bool ev1 < ev2 Lexicographic compare, starting with the last variable.

See Also

Polynomial_d
PolynomialTraits_d