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 / DST / include / libnormaliz / libnormaliz.h
Views: 418425/*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>28#include <signal.h>2930#include "libnormaliz/version.h"3132namespace libnormaliz {3334namespace Type {35enum InputType {36integral_closure,37polyhedron,38normalization,39polytope,40rees_algebra,41inequalities,42strict_inequalities,43signs,44strict_signs,45equations,46congruences,47inhom_inequalities,48dehomogenization,49inhom_equations,50inhom_congruences,51lattice_ideal,52grading,53excluded_faces,54lattice,55saturation,56cone,57offset,58vertices,59support_hyperplanes,60cone_and_lattice,61subspace,62open_facets63};64} //end namespace Type6566using Type::InputType;6768/* converts a string to an InputType69* throws an BadInputException if the string cannot be converted */70InputType to_type(const std::string& type_string);7172/* gives the difference of the number of columns to the dimension */73long type_nr_columns_correction(InputType type);7475/* returns true if the input of this type is a vector */76bool type_is_vector(InputType type);7778/* this type is used in the entries of keys79* it has to be able to hold number of generators */80typedef unsigned int key_t;8182extern bool verbose;83extern size_t GMP_mat, GMP_hyp, GMP_scal_prod;84extern size_t TotDet;85/*86* If this variable is set to true, the current computation is interrupted and87* an InterruptException is raised.88*/89extern volatile sig_atomic_t nmz_interrupted;9091extern bool nmz_scip; // controls the use of Scip9293#define INTERRUPT_COMPUTATION_BY_EXCEPTION \94if(nmz_interrupted){ \95throw InterruptException( "external interrupt" ); \96}9798/* if test_arithmetic_overflow is true, many operations are also done99* modulo overflow_test_modulus to ensure the correctness of the calculations */100// extern bool test_arithmetic_overflow;101// extern long overflow_test_modulus;102103extern long default_thread_limit;104extern long thread_limit;105extern bool parallelization_set;106long set_thread_limit(long t);107108/* set the verbose default value */109bool setVerboseDefault(bool v);110/* methods to set and use the output streams */111void setVerboseOutput(std::ostream&);112void setErrorOutput(std::ostream&);113114std::ostream& verboseOutput();115std::ostream& errorOutput();116117void interrupt_signal_handler( int signal );118119} /* end namespace libnormaliz */120121#endif /* LIBNORMALIZ_H_ */122123124