Frobby
0.9.0
src
VarSorter.h
Go to the documentation of this file.
1
/* Frobby: Software for monomial ideal computations.
2
Copyright (C) 2007 Bjarke Hammersholt Roune (www.broune.com)
3
4
This program is free software; you can redistribute it and/or modify
5
it under the terms of the GNU General Public License as published by
6
the Free Software Foundation; either version 2 of the License, or
7
(at your option) any later version.
8
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
GNU General Public License for more details.
13
14
You should have received a copy of the GNU General Public License
15
along with this program. If not, see http://www.gnu.org/licenses/.
16
*/
17
18
#ifndef VAR_SORTER_GUARD
19
#define VAR_SORTER_GUARD
20
21
#include "
VarNames.h
"
22
#include <vector>
23
#include "
Term.h
"
24
25
class
TermTranslator
;
26
27
struct
VarSorter
{
28
// Makes this object represent a sorted permutation of names.
29
VarSorter
(
const
VarNames
& names);
30
31
// Permute the variables according to the permutation generated at
32
// construction.
33
void
permute
(vector<mpz_class>& term);
34
void
permute
(
Exponent
* term);
35
void
permute
(
TermTranslator
* translator);
36
37
// Set the parameter equal the names this object represents in
38
// sorted order.
39
void
getOrderedNames
(
VarNames
& names);
40
41
private
:
42
vector<size_t>
_permutation
;
43
VarNames
_names
;
44
vector<mpz_class>
_bigTmpTerm
;
45
Term
_tmpTerm
;
46
};
47
48
#endif
Term.h
TermTranslator
TermTranslator handles translation between terms whose exponents are infinite precision integers and ...
Definition:
TermTranslator.h:41
VarSorter::permute
void permute(vector< mpz_class > &term)
Definition:
VarSorter.cpp:56
Exponent
unsigned int Exponent
Definition:
stdinc.h:88
VarSorter::_tmpTerm
Term _tmpTerm
Definition:
VarSorter.h:45
VarNames.h
VarSorter
Definition:
VarSorter.h:27
Term
Term represents a product of variables which does not include a coefficient.
Definition:
Term.h:49
VarSorter::VarSorter
VarSorter(const VarNames &names)
Definition:
VarSorter.cpp:40
VarSorter::_names
VarNames _names
Definition:
VarSorter.h:43
VarSorter::_bigTmpTerm
vector< mpz_class > _bigTmpTerm
Definition:
VarSorter.h:44
VarNames
Defines the variables of a polynomial ring and facilities IO involving them.
Definition:
VarNames.h:40
VarSorter::_permutation
vector< size_t > _permutation
Definition:
VarSorter.h:42
VarSorter::getOrderedNames
void getOrderedNames(VarNames &names)
Definition:
VarSorter.cpp:50
Generated by
1.8.17