1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
# Copyright (c) 1997-2024
# Ewgenij Gawrilow, Michael Joswig, and the polymake team
# Technische Universität Berlin, Germany
# https://polymake.org
#
# 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, or (at your option) any
# later version: http://www.gnu.org/licenses/gpl.txt.
#
# 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.
#-------------------------------------------------------------------------------
# The type SlackIdeal is a thin wrapper around [[Ideal]] that allows avoiding
# saturation. The current algorithm for computing the [[polytope::Polytope::SLACK_IDEAL]] of a
# [[polytope::Polytope]] first computes an ideal whose saturation is the actual slack
# ideal. This last step is very expensive and probably necessary for many
# applications. Hence the SlackIdeal contains a second ideal [[NON_SATURATED]]
# as a property and the actual saturation step is only done once one asks for
# the [[Ideal::GENERATORS]] of the SlackIdeal.
declare object SlackIdeal : Ideal {
# An ideal whose saturation is the [[polytope::Polytope::SLACK_IDEAL]] of a [[polytope::Polytope]].
property NON_SATURATED : Ideal;
rule N_VARIABLES = NON_SATURATED.N_VARIABLES;
}
|