IdealFacade.h
Go to the documentation of this file.
/* Frobby: Software for monomial ideal computations.
Copyright (C) 2007 Bjarke Hammersholt Roune (www.broune.com)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.
*/
#ifndef IDEAL_FACADE_GUARD
#define IDEAL_FACADE_GUARD
#include "Facade.h"
#include "BigattiPivotStrategy.h"
#include <vector>
class VarNames;
class BigIdeal;
class IOHandler;
class IdealFacade : private Facade {
public:
IdealFacade(bool printActions);
void deform(BigIdeal& ideal);
void takeRadical(BigIdeal& ideal);
void swap01(BigIdeal& ideal);
mpz_class computeDimension(const BigIdeal& ideal,
bool codimension = false,
bool squareFreeAndMinimal = false);
void takeProducts(const vector<BigIdeal*>& ideals, BigIdeal& ideal);
void sortAllAndMinimize(BigIdeal& bigIdeal);
void projectVar(BigIdeal& bigIdeal, size_t var);
void trimVariables(const vector<BigIdeal*>& ideals, VarNames& names);
void addPurePowers(BigIdeal& bigIdeal);
void sortGeneratorsUnique(BigIdeal& ideal);
void sortGenerators(BigIdeal& ideal);
void sortVariables(BigIdeal& ideal);
void printAnalysis(FILE* out, BigIdeal& ideal);
void printLcm(BigIdeal& ideal, IOHandler* handler, FILE* out);
};
#endif
BigattiPivotStrategy.h
Facade.h
BigIdeal
Definition BigIdeal.h:27
Facade::Facade
Facade(bool printActions)
Constructs a facade that prints out what it is doing if printActions is true.
Definition Facade.cpp:20
IOHandler
An IOHandler implements input and output for some format in such a way that client code does not need...
Definition IOHandler.h:41
IdealFacade::sortAllAndMinimize
void sortAllAndMinimize(BigIdeal &bigIdeal)
Remove redundant generators from ideal.
Definition IdealFacade.cpp:156
IdealFacade::trimVariables
void trimVariables(const vector< BigIdeal * > &ideals, VarNames &names)
Remove those variables that do not appear in any generator.
Definition IdealFacade.cpp:181
IdealFacade::addPurePowers
void addPurePowers(BigIdeal &bigIdeal)
Adds x_i^(l_i+1) to the ideal for each i where that will be a minimal generator, where x^l is the lcm...
Definition IdealFacade.cpp:209
IdealFacade::swap01
void swap01(BigIdeal &ideal)
Change all 0 exponents to 1 and vice versa.
Definition IdealFacade.cpp:65
IdealFacade::sortGenerators
void sortGenerators(BigIdeal &ideal)
Sorts the generators of ideal.
Definition IdealFacade.cpp:237
IdealFacade::computeDimension
mpz_class computeDimension(const BigIdeal &ideal, bool codimension=false, bool squareFreeAndMinimal=false)
Compute the Krull dimension of ideal.
Definition IdealFacade.cpp:82
IdealFacade::deform
void deform(BigIdeal &ideal)
Applies some generic deformation to the ideal.
Definition IdealFacade.cpp:37
IdealFacade::takeRadical
void takeRadical(BigIdeal &ideal)
Takes the radical of the generators of ideal.
Definition IdealFacade.cpp:51
IdealFacade::printAnalysis
void printAnalysis(FILE *out, BigIdeal &ideal)
Definition IdealFacade.cpp:253
IdealFacade::IdealFacade
IdealFacade(bool printActions)
Definition IdealFacade.cpp:33
IdealFacade::sortVariables
void sortVariables(BigIdeal &ideal)
Sorts the variables of ideal.
Definition IdealFacade.cpp:245
IdealFacade::projectVar
void projectVar(BigIdeal &bigIdeal, size_t var)
Remove the variable var from the ideal and ring by substituting it by 1.
Definition IdealFacade.cpp:171
IdealFacade::sortGeneratorsUnique
void sortGeneratorsUnique(BigIdeal &ideal)
Sorts the generators of ideal and removes duplicates.
Definition IdealFacade.cpp:229
IdealFacade::takeProducts
void takeProducts(const vector< BigIdeal * > &ideals, BigIdeal &ideal)
Take the product of the minimal generators of each ideal, and add the resulting monomials as generato...
Definition IdealFacade.cpp:120
IdealFacade::printLcm
void printLcm(BigIdeal &ideal, IOHandler *handler, FILE *out)
Definition IdealFacade.cpp:277
VarNames
Defines the variables of a polynomial ring and facilities IO involving them.
Definition VarNames.h:40