Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Project: cocalc-sagemath-dev-slelievre
Path: gap4r8 / pkg / NormalizInterface-1.0.2 / Normaliz.git / Qsource / libQnormaliz / libQnormaliz.h
Views: 418386/*1* Normaliz2* Copyright (C) 2007-2014 Winfried Bruns, Bogdan Ichim, Christof Soeger3* This program is free software: you can redistribute it and/or modify4* it under the terms of the GNU General Public License as published by5* the Free Software Foundation, either version 3 of the License, or6* (at your option) any later version.7*8* This program is distributed in the hope that it will be useful,9* but WITHOUT ANY WARRANTY; without even the implied warranty of10* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the11* GNU General Public License for more details.12*13* You should have received a copy of the GNU General Public License14* along with this program. If not, see <http://www.gnu.org/licenses/>.15*16* As an exception, when this program is distributed through (i) the App Store17* by Apple Inc.; (ii) the Mac App Store by Apple Inc.; or (iii) Google Play18* by Google Inc., then that store may impose any digital rights management,19* device limits and/or redistribution restrictions that are required by its20* terms of service.21*/2223#ifndef LIBNORMALIZ_H_24#define LIBNORMALIZ_H_2526#include <iostream>27#include <string>2829#include <libQnormaliz/Qversion.h>3031namespace libQnormaliz {3233namespace Type {34enum InputType {35integral_closure,36polyhedron,37normalization,38polytope,39rees_algebra,40inequalities,41strict_inequalities,42signs,43strict_signs,44equations,45congruences,46inhom_inequalities,47dehomogenization,48inhom_equations,49inhom_congruences,50lattice_ideal,51grading,52excluded_faces,53lattice,54saturation,55cone,56offset,57vertices,58support_hyperplanes,59cone_and_lattice,60subspace61};62} //end namespace Type6364using Type::InputType;6566/* converts a string to an InputType67* throws an BadInputException if the string cannot be converted */68InputType to_type(const std::string& type_string);6970/* gives the difference of the number of columns to the dimension */71long type_nr_columns_correction(InputType type);7273/* returns true if the input of this type is a vector */74bool type_is_vector(InputType type);7576/* this type is used in the entries of keys77* it has to be able to hold number of generators */78typedef unsigned int key_t;7980extern bool verbose;81extern size_t GMP_mat, GMP_hyp, GMP_scal_prod;82extern size_t TotDet;8384/* if test_arithmetic_overflow is true, many operations are also done85* modulo overflow_test_modulus to ensure the correctness of the calculations */86// extern bool test_arithmetic_overflow;87// extern long overflow_test_modulus;8889/* set the verbose default value */90bool setVerboseDefault(bool v);91/* methods to set and use the output streams */92void setVerboseOutput(std::ostream&);93void setErrorOutput(std::ostream&);9495std::ostream& verboseOutput();96std::ostream& errorOutput();9798} /* end namespace libQnormaliz */99100#endif /* LIBNORMALIZ_H_ */101102103