1/* This is the header file of the C interface of the Parma Polyhedra Library. 2 Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it> 3 Copyright (C) 2010-2016 BUGSENG srl (http://bugseng.com) 4 5This file is part of the Parma Polyhedra Library (PPL). 6 7The PPL is free software; you can redistribute it and/or modify it 8under the terms of the GNU General Public License as published by the 9Free Software Foundation; either version 3 of the License, or (at your 10option) any later version. 11 12The PPL is distributed in the hope that it will be useful, but WITHOUT 13ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15for more details. 16 17You should have received a copy of the GNU General Public License 18along with this program; if not, write to the Free Software Foundation, 19Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1307, USA. 20 21For the most up-to-date information see the Parma Polyhedra Library 22site: http://bugseng.com/products/ppl/ . */ 23 24#ifndef PPL_ppl_c_h 25#define PPL_ppl_c_h 1 26 27/*! 28 \defgroup PPL_C_interface C Language Interface 29 30 The Parma Polyhedra Library comes equipped with an interface 31 for the C language. 32*/ 33 34/*! \mainpage 35 36All the declarations needed for using the PPL's C interface 37(preprocessor symbols, data types, variables and 38functions) are collected in the header file <CODE>ppl_c.h</CODE>. 39This file, which is designed to work with pre-ANSI and ANSI C compilers 40as well as C99 and C++ compilers, should be included, either directly 41or via some other header file, with the directive 42\code 43#include <ppl_c.h> 44\endcode 45If this directive does not work, then your compiler is unable to find 46the file <CODE>ppl_c.h</CODE>. So check that the library is installed 47(if it is not installed, you may want to <CODE>make install</CODE>, 48perhaps with root privileges) in the right place 49(if not you may want to reconfigure the library using the appropriate 50pathname for the <CODE>--prefix</CODE> option); and that your compiler 51knows where it is installed (if not you should add the path to the 52directory where <CODE>ppl_c.h</CODE> is located to the compiler's 53include file search path; this is usually done with the 54<CODE>-I</CODE> option). 55 56The name space of the PPL's C interface is <CODE>PPL_*</CODE> for 57preprocessor symbols, enumeration values and variables; and 58<CODE>ppl_*</CODE> for data types and function names. The interface 59systematically uses <EM>opaque data types</EM> (generic pointers that 60completely hide the internal representations from the client code) and 61provides all required access functions. By using just the interface, 62the client code can exploit all the functionalities of the library yet 63avoid directly manipulating the library's data structures. The advantages 64are that (1) applications do not depend on the internals of the library 65(these may change from release to release), and (2) the interface 66invariants can be thoroughly checked (by the access functions). 67 68\note 69All functions taking as input argument an opaque pointer datatype assume 70that such an argument is actually <em>referring to a valid PPL object</em>. 71For instance, a function with an argument having type 72<code>ppl_MIP_Problem_t</code> will expect a valid MIP_Problem object, 73previously initialized by calling, e.g., <code>ppl_new_MIP_Problem</code>. 74If that is not the case (e.g., if a null pointer is passed in), 75the behavior is undefined. 76 77The PPL's C interface is initialized by means of the 78<CODE>ppl_initialize</CODE> function. This function must 79be called <EM>before using any other interface of the library</EM>. 80The application can release the resources allocated by the library by 81calling the <CODE>ppl_finalize</CODE> function. After this function 82is called <EM>no other interface of the library may be used</EM> 83until the interface is re-initialized using <CODE>ppl_initialize</CODE>. 84 85Any application using the PPL should make sure that only the 86intended version(s) of the library are ever used. The version used can be 87checked at compile-time thanks to the macros PPL_VERSION_MAJOR, 88PPL_VERSION_MINOR, PPL_VERSION_REVISION and PPL_VERSION_BETA, which 89give, respectively major, minor, revision and beta numbers of the PPL 90version. This is an example of their use: 91\code 92#if PPL_VERSION_MAJOR == 0 && PPL_VERSION_MINOR < 6 93# error "PPL version 0.6 or following is required" 94#endif 95\endcode 96Compile-time checking, however, is not normally enough, particularly in 97an environment where there is dynamic linking. Run-time checking can 98be performed by means of the functions <CODE>ppl_version_major</CODE>, 99<CODE>ppl_version_minor</CODE>, <CODE>ppl_version_revision</CODE>, and 100<CODE>ppl_version_beta</CODE>. The PPL's C interface also provides 101functions <CODE>ppl_version</CODE>, returning character string 102containing the full version number, and <CODE>ppl_banner</CODE>, 103returning a string that, in addition, provides (pointers to) other 104useful information for the library user. 105 106All programs using the PPL's C interface must link with the 107following libraries: <CODE>libppl_c</CODE> (PPL's C interface), 108<CODE>libppl</CODE> (PPL's core), <CODE>libgmpxx</CODE> (GMP's C++ 109interface), and <CODE>libgmp</CODE> (GMP's library core). On most 110Unix-like systems, this is done by adding <CODE>-lppl_c</CODE>, 111<CODE>-lppl</CODE>, <CODE>-lgmpxx</CODE>, and <CODE>-lgmp</CODE> to 112the compiler's or linker's command line. For example: 113\verbatim 114gcc myprogram.o -lppl_c -lppl -lgmpxx -lgmp 115\endverbatim 116If this does not work, it means that your compiler/linker is not 117finding the libraries where it expects. Again, this could be because you 118forgot to install the library or you installed it in a non-standard 119location. In the latter case you will need to use the appropriate 120options (usually <CODE>-L</CODE>) and, if you use shared libraries, 121some sort of run-time path selection mechanisms. Consult your 122compiler's documentation for details. Notice that the PPL is built 123using <A HREF="http://www.gnu.org/software/libtool/">Libtool</A> and 124an application can exploit this fact to significantly simplify the 125linking phase. See Libtool's documentation for details. Those 126working under Linux can find a lot of useful information on how to use 127program libraries (including static, shared, and dynamically loaded 128libraries) in the 129<A HREF="http://www.dwheeler.com/program-library/">Program Library 130HOWTO</A>. 131 132For examples on how to use the functions provided by the C interface, 133you are referred to the directory <CODE>demos/ppl_lpsol/</CODE> in 134the source distribution. It contains a <EM>Mixed Integer (Linear) 135Programming</EM> solver written in C. In order to use this solver 136you will need to install 137<A HREF="http://www.gnu.org/software/glpk/">GLPK</A> (the GNU Linear 138Programming Kit): this is used to read linear programs in MPS format. 139*/ /* \mainpage */ 140 141/* 142 For some reason, GMP up to and including version 4.1.3 requires 143 <stdio.h> to be included before <gmp.h>. 144*/ 145 146#include <stdio.h> 147#include <gmp.h> 148#include <stddef.h> 149 150/* 151 PPL_PROTO is a macro used to wrap function prototypes, so that 152 compilers that don't understand ANSI C prototypes still work, and 153 ANSI C compilers can issue warnings about type mismatches. 154*/ 155#if defined(__STDC__) \ 156 || defined(__cplusplus) \ 157 || defined (_AIX) \ 158 || (defined (__mips) && defined (_SYSTYPE_SVR4)) \ 159 || defined(_WIN32) 160# define PPL_PROTO(protos) protos 161#else 162# define PPL_PROTO(protos) () 163#endif 164 165#ifdef __cplusplus 166extern "C" { 167#endif 168 169/*! \defgroup Init Library Initialization and Finalization 170 Functions for initialization/finalization of the library, 171 as well as setting/resetting of floating-point rounding mode. 172*/ 173/*@{*/ 174 175/*! \brief 176 Initializes the Parma Polyhedra Library. 177 This function must be called before any other function. 178 179 \return 180 <CODE>PPL_ERROR_INVALID_ARGUMENT</CODE> if the library 181 was already initialized. 182*/ 183int 184ppl_initialize PPL_PROTO((void)); 185 186/*! \brief 187 Finalizes the Parma Polyhedra Library. 188 This function must be called after any other function. 189 190 \return 191 <CODE>PPL_ERROR_INVALID_ARGUMENT</CODE> if the library 192 was already finalized. 193*/ 194int 195ppl_finalize PPL_PROTO((void)); 196 197/*! \brief 198 Sets the FPU rounding mode so that the PPL abstractions based on 199 floating point numbers work correctly. 200 201 This is performed automatically at initialization-time. Calling 202 this function is needed only if restore_pre_PPL_rounding() has been 203 previously called. 204*/ 205int 206ppl_set_rounding_for_PPL PPL_PROTO((void)); 207 208/*! \brief 209 Sets the FPU rounding mode as it was before initialization of the PPL. 210 211 After calling this function it is absolutely necessary to call 212 set_rounding_for_PPL() before using any PPL abstractions based on 213 floating point numbers. 214 This is performed automatically at finalization-time. 215*/ 216int 217ppl_restore_pre_PPL_rounding PPL_PROTO((void)); 218 219/*! \brief 220 Writes to \p p the precision parameter used for irrational calculations. 221*/ 222int 223ppl_irrational_precision PPL_PROTO((unsigned* p)); 224 225/*! \brief 226 Sets the precision parameter used for irrational calculations. 227 228 If \p p is less than or equal to <CODE>INT_MAX</CODE>, sets the 229 precision parameter used for irrational calculations to \p p. 230 Then, in the irrational calculations returning an unbounded rational, 231 (e.g., when computing a square root), the lesser between numerator 232 and denominator will be limited to 2**\p p. 233*/ 234int 235ppl_set_irrational_precision PPL_PROTO((unsigned p)); 236 237/*@}*/ /* Init */ 238 239/*! \defgroup Version Version Checking 240 Symbolic constants and functions related to library version checking. 241*/ 242/*@{*/ 243 244/* Automatically generated from PPL source file ../../interfaces/C/ppl_c_version.h line 1. */ 245/* Header file providing version information for the C interface. -*- C -*- 246*/ 247 248/*! \brief 249 A string containing the PPL version. 250 251 \ingroup Version 252 Let <CODE>M</CODE> and <CODE>m</CODE> denote the numbers associated 253 to PPL_VERSION_MAJOR and PPL_VERSION_MINOR, respectively. The 254 format of PPL_VERSION is <CODE>M "." m</CODE> if both 255 PPL_VERSION_REVISION (<CODE>r</CODE>) and PPL_VERSION_BETA 256 (<CODE>b</CODE>)are zero, <CODE>M "." m "pre" b</CODE> if 257 PPL_VERSION_REVISION is zero and PPL_VERSION_BETA is not zero, 258 <CODE>M "." m "." r</CODE> if PPL_VERSION_REVISION is not zero and 259 PPL_VERSION_BETA is zero, <CODE>M "." m "." r "pre" b</CODE> if 260 neither PPL_VERSION_REVISION nor PPL_VERSION_BETA are zero. 261*/ 262#define PPL_VERSION "1.2" 263 264/*! \brief 265 The major number of the PPL version. 266 \ingroup Version 267*/ 268#define PPL_VERSION_MAJOR 1 269 270/*! \brief 271 The minor number of the PPL version. 272 \ingroup Version 273*/ 274#define PPL_VERSION_MINOR 2 275 276/*! \brief 277 The revision number of the PPL version. 278 \ingroup Version 279*/ 280#define PPL_VERSION_REVISION 0 281 282/*! \brief 283 The beta number of the PPL version. This is zero for official 284 releases and nonzero for development snapshots. 285 \ingroup Version 286*/ 287#define PPL_VERSION_BETA 0 288 289/*! \brief 290 Returns the major number of the PPL version. 291*/ 292int 293ppl_version_major PPL_PROTO((void)); 294 295/*! \brief 296 Returns the minor number of the PPL version. 297*/ 298int 299ppl_version_minor PPL_PROTO((void)); 300 301/*! \brief 302 Returns the revision number of the PPL version. 303*/ 304int 305ppl_version_revision PPL_PROTO((void)); 306 307/*! \brief 308 Returns the beta number of the PPL version. 309*/ 310int 311ppl_version_beta PPL_PROTO((void)); 312 313/*! \brief 314 Writes to \c *p a pointer to a character string containing the 315 PPL version. 316*/ 317int 318ppl_version PPL_PROTO((const char** p)); 319 320/*! \brief 321 Writes to \c *p a pointer to a character string containing the PPL banner. 322 323 The banner provides information about the PPL version, the licensing, 324 the lack of any warranty whatsoever, the C++ compiler used to build 325 the library, where to report bugs and where to look for further 326 information. 327*/ 328int 329ppl_banner PPL_PROTO((const char** p)); 330 331/*@}*/ /* Version Checking */ 332 333/*! \defgroup Error Error Handling 334 Symbolic constants and functions related to error reporting/handling. 335*/ 336/*@{*/ 337 338/*! \brief 339 Defines the error codes that any function may return. 340*/ 341enum ppl_enum_error_code { 342 /*! \hideinitializer 343 The virtual memory available to the process has been exhausted. */ 344 PPL_ERROR_OUT_OF_MEMORY = -2, 345 /*! \hideinitializer 346 A function has been invoked with an invalid argument. */ 347 PPL_ERROR_INVALID_ARGUMENT = -3, 348 /*! \hideinitializer 349 A function has been invoked outside its domain of definition. */ 350 PPL_ERROR_DOMAIN_ERROR = -4, 351 /*! \hideinitializer 352 The construction of an object that would exceed its maximum 353 permitted size was attempted. */ 354 PPL_ERROR_LENGTH_ERROR = -5, 355 /*! \hideinitializer 356 An arithmetic overflow occurred and the computation was consequently 357 interrupted. This can <EM>only</EM> happen in library's incarnations 358 using bounded integers as coefficients. */ 359 PPL_ARITHMETIC_OVERFLOW = -6, 360 /*! \hideinitializer 361 An error occurred during a C input/output operation. A more 362 precise indication of what went wrong is available via 363 <CODE>errno</CODE>. */ 364 PPL_STDIO_ERROR = -7, 365 /*! \hideinitializer 366 An internal error that was diagnosed by the PPL itself. 367 This indicates a bug in the PPL. */ 368 PPL_ERROR_INTERNAL_ERROR = -8, 369 /*! \hideinitializer 370 A standard exception has been raised by the C++ run-time environment. 371 This indicates a bug in the PPL. */ 372 PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION = -9, 373 /*! \hideinitializer 374 A totally unknown, totally unexpected error happened. 375 This indicates a bug in the PPL. */ 376 PPL_ERROR_UNEXPECTED_ERROR = -10, 377 /*! \hideinitializer 378 An exception has been raised by the PPL as a timeout previously set 379 by the user has expired. 380 */ 381 PPL_TIMEOUT_EXCEPTION = -11, 382 /*! \hideinitializer 383 The client program attempted to use the PPL in a way that violates 384 its internal logic. This happens, for instance, when the client 385 attempts to use the timeout facilities on a system that does not 386 support them. */ 387 PPL_ERROR_LOGIC_ERROR = -12 388}; 389 390/*! \brief 391 Installs the user-defined error handler pointed at by \p h. 392 393 The error handler takes an error code and a textual description that 394 gives further information about the actual error. The C string 395 containing the textual description is read-only and its existence is 396 not guaranteed after the handler has returned. 397*/ 398int 399ppl_set_error_handler PPL_PROTO((void (*h)(enum ppl_enum_error_code code, 400 const char* description))); 401 402/*@}*/ /* Error */ 403 404/*! \defgroup Timeout Timeout Handling 405 Functions for setting and resetting timeouts. 406*/ 407/*@{*/ 408 409/*! \brief 410 Sets the timeout for computations whose completion could require 411 an exponential amount of time. 412 413 \param csecs 414 The number of centiseconds sometimes after which a timeout will occur; 415 it must be strictly greater than zero. 416 417 Computations taking exponential time will be interrupted some time 418 after \p csecs centiseconds have elapsed since the call to 419 the timeout setting function. If the computation is interrupted that 420 way, the interrupted function will return error code 421 <code>PPL_TIMEOUT_EXCEPTION</code>. 422 Otherwise, if the computation completes without being interrupted, 423 then the timeout should be reset by calling 424 <code>ppl_reset_timeout()</code>. 425*/ 426int 427ppl_set_timeout PPL_PROTO((unsigned csecs)); 428 429/*! \brief 430 Resets the timeout time so that the computation is not interrupted. 431*/ 432int 433ppl_reset_timeout PPL_PROTO((void)); 434 435/*! \brief 436 Sets a threshold for computations whose completion could require 437 an exponential amount of time. 438 439 \return 440 <CODE>PPL_ERROR_INVALID_ARGUMENT</CODE> if \p unscaled_weight is zero 441 or if the computed weight threshold exceeds the maximum allowed value. 442 443 \param unscaled_weight 444 The unscaled maximum computational weight; it has to be non-zero. 445 446 \param scale 447 The scaling factor to be applied to \p unscaled_weight. 448 449 If \p unscaled_weight has value \f$u\f$ and \p scale has value \f$s\f$, 450 then the (scaled) weight threshold is computed as \f$w = u \cdot 2^s\f$. 451 Computations taking exponential time will be interrupted some time 452 after reaching the complexity threshold \f$w\f$. 453 If the computation is interrupted that way, the interrupted function 454 will return error code <code>PPL_TIMEOUT_EXCEPTION</code>. 455 Otherwise, if the computation completes without being interrupted, 456 then the deterministic timeout should be reset by calling 457 <code>ppl_reset_deterministic_timeout()</code>. 458 459 \note 460 This "timeout" checking functionality is said to be \e deterministic 461 because it is not based on actual elapsed time. Its behavior will 462 only depend on (some of the) computations performed in the PPL library 463 and it will be otherwise independent from the computation environment 464 (CPU, operating system, compiler, etc.). 465 466 \warning 467 The weight mechanism is under beta testing. In particular, 468 there is still no clear relation between the weight threshold and 469 the actual computational complexity. As a consequence, client 470 applications should be ready to reconsider the tuning of these 471 weight thresholds when upgrading to newer version of the PPL. 472*/ 473int 474ppl_set_deterministic_timeout PPL_PROTO((unsigned long unscaled_weight, 475 unsigned scale)); 476 477/*! \brief 478 Resets the deterministic timeout so that the computation is not interrupted. 479*/ 480int 481ppl_reset_deterministic_timeout PPL_PROTO((void)); 482 483/*@}*/ /* Timeout */ 484 485/*! \defgroup Datatypes Library Datatypes 486 \brief 487 Typedefs for the library datatypes and related symbolic constants. 488 489 The datatypes provided by the library should be manipulated 490 by means of the corresponding opaque pointer types and 491 the functions working on them. 492 493 \note 494 To simplify the detection of common programming mistakes, 495 we provide both pointer-to-const and pointer-to-nonconst 496 opaque pointers, with implicit conversions mapping each 497 pointer-to-nonconst to the corresponding pointer-to-const when needed. 498 The user of the C interface is therefore recommended to adopt 499 the pointer-to-const type whenever read-only access is meant. 500*/ 501/*@{*/ 502 503/*! \brief 504 An unsigned integral type for representing space dimensions. 505*/ 506typedef size_t ppl_dimension_type; 507 508/*! \brief 509 Writes to \p m the maximum space dimension this library can handle. 510*/ 511int 512ppl_max_space_dimension PPL_PROTO((ppl_dimension_type* m)); 513 514/*! \brief 515 Writes to \p m a value that does not designate a valid dimension. 516*/ 517int 518ppl_not_a_dimension PPL_PROTO((ppl_dimension_type* m)); 519 520/*! \brief 521 Pretty-prints \p var to <CODE>stdout</CODE>. 522*/ 523int 524ppl_io_print_variable PPL_PROTO((ppl_dimension_type var)); 525 526/*! \brief 527 Pretty-prints \p var to the given output \p stream. 528*/ 529int 530ppl_io_fprint_variable PPL_PROTO((FILE* stream, ppl_dimension_type var)); 531 532/*! \brief 533 Pretty-prints \p var to a malloc-allocated string, a pointer to which 534 is returned via \p strp. 535*/ 536int 537ppl_io_asprint_variable PPL_PROTO((char** strp, ppl_dimension_type var)); 538 539/*! \brief 540 The type of output functions used for printing variables. 541 542 An output function for variables must write a textual representation 543 for \p var to a character buffer, null-terminate it, and return a 544 pointer to the beginning of the buffer. In case the operation fails, 545 0 should be returned and perhaps <CODE>errno</CODE> should be set 546 in a meaningful way. The library does nothing with the buffer, besides 547 printing its contents. 548*/ 549typedef const char* 550ppl_io_variable_output_function_type(ppl_dimension_type var); 551 552/*! \brief 553 Sets the output function to be used for printing variables to \p p. 554*/ 555int 556ppl_io_set_variable_output_function(ppl_io_variable_output_function_type* p); 557 558/*! \brief 559 Writes a pointer to the current variable output function to \p pp. 560*/ 561int 562ppl_io_get_variable_output_function(ppl_io_variable_output_function_type** pp); 563 564/*! \brief Utility function for the wrapping of lines of text. 565 566 \param src 567 The source string holding the text to wrap. 568 569 \param indent_depth 570 The indentation depth. 571 572 \param preferred_first_line_length 573 The preferred length for the first line of text. 574 575 \param preferred_line_length 576 The preferred length for all the lines but the first one. 577 578 \return 579 The wrapped string in a malloc-allocated buffer. 580*/ 581char* 582ppl_io_wrap_string(const char* src, 583 unsigned indent_depth, 584 unsigned preferred_first_line_length, 585 unsigned preferred_line_length); 586 587/*@}*/ /* Datatypes */ 588 589#undef PPL_TYPE_DECLARATION 590 591#define PPL_TYPE_DECLARATION(Type) \ 592/*! \brief Opaque pointer \ingroup Datatypes */ \ 593typedef struct ppl_##Type##_tag* ppl_##Type##_t; \ 594/*! \brief Opaque pointer to const object \ingroup Datatypes */ \ 595typedef struct ppl_##Type##_tag const* ppl_const_##Type##_t; 596 597/*! \interface ppl_Coefficient_tag 598 \brief 599 Types and functions for coefficients. 600 601 The types and functions for coefficients provide an interface towards 602 \extref{Parma_Polyhedra_Library::Coefficient, Coefficient}. 603 Depending on configuration, the PPL coefficients may be implemented 604 by the unbounded precision integers provided by GMP (default), 605 or by bounded precision integers (with checks for overflows). 606*/ 607PPL_TYPE_DECLARATION(Coefficient) 608 609/*! \interface ppl_Linear_Expression_tag 610 \brief 611 Types and functions for linear expressions. 612 613 The types and functions for linear expression provide an interface towards 614 \extref{Parma_Polyhedra_Library::Linear_Expression, Linear_Expression}. 615*/ 616PPL_TYPE_DECLARATION(Linear_Expression) 617 618/*! \interface ppl_Constraint_tag 619 \brief 620 Types and functions for constraints. 621 622 The types and functions for constraints provide an interface towards 623 \extref{Parma_Polyhedra_Library::Constraint, Constraint}. 624*/ 625PPL_TYPE_DECLARATION(Constraint) 626 627/*! \interface ppl_Constraint_System_tag 628 \brief 629 Types and functions for constraint systems. 630 631 The types and functions for constraint systems provide an interface 632 towards 633 \extref{Parma_Polyhedra_Library::Constraint_System, Constraint_System}. 634*/ 635PPL_TYPE_DECLARATION(Constraint_System) 636 637/*! \interface ppl_Constraint_System_const_iterator_tag 638 \brief 639 Types and functions for iterating on constraint systems. 640 641 The types and functions for constraint systems iterators provide 642 read-only access to the elements of a constraint system by interfacing 643 \extref{Parma_Polyhedra_Library::Constraint_System_const_iterator, 644 Constraint_System::const_iterator}. 645*/ 646PPL_TYPE_DECLARATION(Constraint_System_const_iterator) 647 648/*! \interface ppl_Generator_tag 649 \brief 650 Types and functions for generators. 651 652 The types and functions for generators provide an interface 653 towards \extref{Parma_Polyhedra_Library::Generator, Generator}. 654*/ 655PPL_TYPE_DECLARATION(Generator) 656 657/*! \interface ppl_Generator_System_tag 658 \brief 659 Types and functions for generator systems. 660 661 The types and functions for generator systems provide an interface 662 towards 663 \extref{Parma_Polyhedra_Library::Generator_System, Generator_System}. 664*/ 665PPL_TYPE_DECLARATION(Generator_System) 666 667/*! \interface ppl_Generator_System_const_iterator_tag 668 \brief 669 Types and functions for iterating on generator systems. 670 671 The types and functions for generator systems iterators provide 672 read-only access to the elements of a generator system by interfacing 673 \extref{Parma_Polyhedra_Library::Generator_System_const_iterator, 674 Generator_System::const_iterator}. 675*/ 676PPL_TYPE_DECLARATION(Generator_System_const_iterator) 677 678/*! \interface ppl_Congruence_tag 679 \brief 680 Types and functions for congruences. 681 682 The types and functions for congruences provide an interface 683 towards \extref{Parma_Polyhedra_Library::Congruence, Congruence}. 684*/ 685PPL_TYPE_DECLARATION(Congruence) 686 687/*! \interface ppl_Congruence_System_tag 688 \brief 689 Types and functions for congruence systems. 690 691 The types and functions for congruence systems provide an interface 692 towards 693 \extref{Parma_Polyhedra_Library::Congruence_System, Congruence_System}. 694*/ 695PPL_TYPE_DECLARATION(Congruence_System) 696 697/*! \interface ppl_Congruence_System_const_iterator_tag 698 \brief 699 Types and functions for iterating on congruence systems. 700 701 The types and functions for congruence systems iterators provide 702 read-only access to the elements of a congruence system by interfacing 703 \extref{Parma_Polyhedra_Library::Congruence_System::const_iterator, 704 Congruence_System::const_iterator}. 705*/ 706PPL_TYPE_DECLARATION(Congruence_System_const_iterator) 707 708/*! \interface ppl_Grid_Generator_tag 709 \brief 710 Types and functions for grid generators. 711 712 The types and functions for grid generators provide an interface 713 towards \extref{Parma_Polyhedra_Library::Grid_Generator, Grid_Generator}. 714*/ 715PPL_TYPE_DECLARATION(Grid_Generator) 716 717/*! \interface ppl_Grid_Generator_System_tag 718 \brief 719 Types and functions for grid generator systems. 720 721 The types and functions for grid generator systems provide an interface 722 towards 723 \extref{Parma_Polyhedra_Library::Grid_Generator_System, 724 Grid_Generator_System}. 725*/ 726PPL_TYPE_DECLARATION(Grid_Generator_System) 727 728/*! \interface ppl_Grid_Generator_System_const_iterator_tag 729 \brief 730 Types and functions for iterating on grid generator systems. 731 732 The types and functions for grid generator systems iterators provide 733 read-only access to the elements of a grid generator system by interfacing 734 \extref{Parma_Polyhedra_Library::Grid_Generator_System::const_iterator, 735 Grid_Generator_System::const_iterator}. 736*/ 737PPL_TYPE_DECLARATION(Grid_Generator_System_const_iterator) 738 739/*! \interface ppl_MIP_Problem_tag 740 \brief 741 Types and functions for MIP problems. 742 743 The types and functions for MIP problems provide an interface 744 towards \extref{Parma_Polyhedra_Library::MIP_Problem, MIP_Problem}. 745*/ 746PPL_TYPE_DECLARATION(MIP_Problem) 747 748/*! \interface ppl_PIP_Problem_tag 749 \brief 750 Types and functions for PIP problems. 751 752 The types and functions for PIP problems provide an interface 753 towards \extref{Parma_Polyhedra_Library::PIP_Problem, PIP_Problem}. 754*/ 755PPL_TYPE_DECLARATION(PIP_Problem) 756 757/*! \interface ppl_PIP_Tree_Node_tag 758 \brief 759 Types and functions for generic PIP tree nodes. 760 761 The types and functions for tree nodes provide an interface 762 towards \extref{Parma_Polyhedra_Library::PIP_Tree_Node, PIP_Tree_Node}. 763*/ 764PPL_TYPE_DECLARATION(PIP_Tree_Node) 765 766/*! \interface ppl_PIP_Decision_Node_tag 767 \brief 768 Types and functions for PIP decision nodes. 769 770 The types and functions for decision nodes provide an interface towards 771 \extref{Parma_Polyhedra_Library::PIP_Decision_Node, PIP_Decision_Node}. 772*/ 773PPL_TYPE_DECLARATION(PIP_Decision_Node) 774 775/*! \interface ppl_PIP_Solution_Node_tag 776 \brief 777 Types and functions for PIP solution nodes. 778 779 The types and functions for solution nodes provide an interface towards 780 \extref{Parma_Polyhedra_Library::PIP_Solution_Node, PIP_Solution_Node}. 781*/ 782PPL_TYPE_DECLARATION(PIP_Solution_Node) 783 784/*! \interface ppl_Artificial_Parameter_tag 785 \brief 786 Types and functions for PIP artificial parameters. 787 788 The types and functions for PIP artificial parameters provide 789 an interface towards 790 \extref{Parma_Polyhedra_Library::PIP_Tree_Node::Artificial_Parameter, Artificial_Parameter}. 791*/ 792PPL_TYPE_DECLARATION(Artificial_Parameter) 793PPL_TYPE_DECLARATION(Artificial_Parameter_Sequence) 794 795/*! \interface ppl_Artificial_Parameter_Sequence_const_iterator_tag 796 \brief 797 Types and functions for iterating on PIP artificial parameters. 798*/ 799PPL_TYPE_DECLARATION(Artificial_Parameter_Sequence_const_iterator) 800 801 802#undef PPL_DECLARE_PRINT_FUNCTIONS 803#undef PPL_DECLARE_ASCII_DUMP_LOAD_FUNCTIONS 804#undef PPL_DECLARE_IO_FUNCTIONS 805#undef PPL_DECLARE_AND_DOCUMENT_PRINT_FUNCTIONS 806#undef PPL_DECLARE_AND_DOCUMENT_ASCII_DUMP_LOAD_FUNCTIONS 807#undef PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS 808 809#define PPL_DECLARE_PRINT_FUNCTIONS(Type) \ 810/*! \relates ppl_##Type##_tag */ \ 811int \ 812ppl_io_print_##Type PPL_PROTO((ppl_const_##Type##_t x)); \ 813/*! \relates ppl_##Type##_tag */ \ 814int \ 815ppl_io_fprint_##Type PPL_PROTO((FILE* stream, ppl_const_##Type##_t x)); \ 816/*! \relates ppl_##Type##_tag */ \ 817int \ 818ppl_io_asprint_##Type PPL_PROTO((char** strp, ppl_const_##Type##_t x)); 819 820#define PPL_DECLARE_ASCII_DUMP_LOAD_FUNCTIONS(Type) \ 821/*! \relates ppl_##Type##_tag */ \ 822int \ 823ppl_##Type##_ascii_dump \ 824PPL_PROTO((ppl_const_##Type##_t x, FILE* stream)); \ 825/*! \relates ppl_##Type##_tag */ \ 826int \ 827ppl_##Type##_ascii_load \ 828PPL_PROTO((ppl_##Type##_t x, FILE* stream)); 829 830#define PPL_DECLARE_IO_FUNCTIONS(Type) \ 831PPL_DECLARE_PRINT_FUNCTIONS(Type) \ 832PPL_DECLARE_ASCII_DUMP_LOAD_FUNCTIONS(Type) 833 834#define PPL_DECLARE_AND_DOCUMENT_PRINT_FUNCTIONS(Type) \ 835/*! \relates ppl_##Type##_tag \brief Prints \p x to \c stdout. */ \ 836int \ 837ppl_io_print_##Type PPL_PROTO((ppl_const_##Type##_t x)); \ 838/*! \relates ppl_##Type##_tag \brief Prints \p x to the given output \p stream. */ \ 839int \ 840ppl_io_fprint_##Type PPL_PROTO((FILE* stream, ppl_const_##Type##_t x)); \ 841/*! \relates ppl_##Type##_tag \brief Prints \p x to a malloc-allocated string, a pointer to which is returned via \p strp. */ \ 842int \ 843ppl_io_asprint_##Type PPL_PROTO((char** strp, ppl_const_##Type##_t x)); 844 845 846#define PPL_DECLARE_AND_DOCUMENT_ASCII_DUMP_LOAD_FUNCTIONS(Type) \ 847/*! \relates ppl_##Type##_tag \brief Dumps an ascii representation of \p x on \p stream. */ \ 848int \ 849ppl_##Type##_ascii_dump \ 850PPL_PROTO((ppl_const_##Type##_t x, FILE* stream)); \ 851/*! \relates ppl_##Type##_tag \brief Loads an ascii representation of \p x from \p stream. */ \ 852int \ 853ppl_##Type##_ascii_load \ 854PPL_PROTO((ppl_##Type##_t x, FILE* stream)); 855 856#define PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Type) \ 857/*! \brief \name Input/Output Functions */ \ 858/*@{*/ \ 859PPL_DECLARE_AND_DOCUMENT_PRINT_FUNCTIONS(Type) \ 860PPL_DECLARE_AND_DOCUMENT_ASCII_DUMP_LOAD_FUNCTIONS(Type) \ 861/*@}*/ /* Input/Output Functions */ 862 863 864/*! \brief \name Constructors, Assignment and Destructor */ 865/*@{*/ 866 867/*! \relates ppl_Coefficient_tag \brief 868 Creates a new coefficient with value 0 and writes a handle for the 869 newly created coefficient at address \p pc. 870*/ 871int 872ppl_new_Coefficient PPL_PROTO((ppl_Coefficient_t* pc)); 873 874/*! \relates ppl_Coefficient_tag \brief 875 Creates a new coefficient with the value given by the GMP integer 876 \p z and writes a handle for the newly created coefficient 877 at address \p pc. 878*/ 879int 880ppl_new_Coefficient_from_mpz_t PPL_PROTO((ppl_Coefficient_t* pc, mpz_t z)); 881 882/*! \relates ppl_Coefficient_tag \brief 883 Builds a coefficient that is a copy of \p c; writes a handle 884 for the newly created coefficient at address \p pc. 885*/ 886int 887ppl_new_Coefficient_from_Coefficient PPL_PROTO((ppl_Coefficient_t* pc, 888 ppl_const_Coefficient_t c)); 889 890/*! \relates ppl_Coefficient_tag \brief 891 Assign to \p dst the value given by the GMP integer \p z. 892*/ 893int 894ppl_assign_Coefficient_from_mpz_t PPL_PROTO((ppl_Coefficient_t dst, mpz_t z)); 895 896/*! \relates ppl_Coefficient_tag \brief 897 Assigns a copy of the coefficient \p src to \p dst. 898*/ 899int 900ppl_assign_Coefficient_from_Coefficient 901PPL_PROTO((ppl_Coefficient_t dst, ppl_const_Coefficient_t src)); 902 903/*! \relates ppl_Coefficient_tag \brief 904 Invalidates the handle \p c: this makes sure the corresponding 905 resources will eventually be released. 906*/ 907int 908ppl_delete_Coefficient PPL_PROTO((ppl_const_Coefficient_t c)); 909 910/*@}*/ /* Constructors, Assignment and Destructor */ 911 912/*! \brief \name Read-Only Accessor Functions */ 913/*@{*/ 914 915/*! \relates ppl_Coefficient_tag \brief 916 Sets the value of the GMP integer \p z to the value of \p c. 917*/ 918int 919ppl_Coefficient_to_mpz_t PPL_PROTO((ppl_const_Coefficient_t c, mpz_t z)); 920 921/*! \relates ppl_Coefficient_tag \brief 922 Returns a positive integer if \p c is well formed, i.e., if it 923 satisfies all its implementation invariants; returns 0 and perhaps 924 makes some noise if \p c is broken. Useful for debugging purposes. 925*/ 926int 927ppl_Coefficient_OK PPL_PROTO((ppl_const_Coefficient_t c)); 928 929/*! \relates ppl_Coefficient_tag \brief 930 Returns a positive integer if coefficients are bounded; returns 0 931 otherwise. 932*/ 933int 934ppl_Coefficient_is_bounded PPL_PROTO((void)); 935 936/*! \relates ppl_Coefficient_tag \brief 937 Returns a positive integer if coefficients are bounded, in which case 938 \p min is set to their minimum value; returns 0 otherwise. 939*/ 940int 941ppl_Coefficient_min PPL_PROTO((mpz_t min)); 942 943/*! \relates ppl_Coefficient_tag \brief 944 Returns a positive integer if coefficients are bounded, in which case 945 \p max is set to their maximum value; returns 0 otherwise. 946*/ 947int 948ppl_Coefficient_max PPL_PROTO((mpz_t max)); 949 950/*@}*/ /* Read-Only Accessor Functions */ 951 952/* No ascii dump for Coefficient */ 953/*! \brief \name I/O Functions */ 954/*@{*/ 955PPL_DECLARE_AND_DOCUMENT_PRINT_FUNCTIONS(Coefficient) 956/*@}*/ /* I/O Functions */ 957 958 959/*! \brief \name Constructors, Assignment and Destructor */ 960/*@{*/ 961 962/*! \relates ppl_Linear_Expression_tag \brief 963 Creates a new linear expression corresponding to the constant 0 in a 964 zero-dimensional space; writes a handle for the new linear 965 expression at address \p ple. 966*/ 967int 968ppl_new_Linear_Expression PPL_PROTO((ppl_Linear_Expression_t* ple)); 969 970/*! \relates ppl_Linear_Expression_tag \brief 971 Creates a new linear expression corresponding to the constant 0 in a 972 <TT>d</TT>-dimensional space; writes a handle for the new linear 973 expression at address \p ple. 974*/ 975int 976ppl_new_Linear_Expression_with_dimension 977PPL_PROTO((ppl_Linear_Expression_t* ple, ppl_dimension_type d)); 978 979/*! \relates ppl_Linear_Expression_tag \brief 980 Builds a linear expression that is a copy of \p le; writes a handle 981 for the newly created linear expression at address \p ple. 982*/ 983int 984ppl_new_Linear_Expression_from_Linear_Expression 985PPL_PROTO((ppl_Linear_Expression_t* ple, ppl_const_Linear_Expression_t le)); 986 987/*! \relates ppl_Linear_Expression_tag \brief 988 Builds a linear expression corresponding to constraint \p c; 989 writes a handle for the newly created linear expression at address \p ple. 990*/ 991int 992ppl_new_Linear_Expression_from_Constraint 993PPL_PROTO((ppl_Linear_Expression_t* ple, ppl_const_Constraint_t c)); 994 995/*! \relates ppl_Linear_Expression_tag \brief 996 Builds a linear expression corresponding to generator \p g; 997 writes a handle for the newly created linear expression at address \p ple. 998*/ 999int 1000ppl_new_Linear_Expression_from_Generator 1001PPL_PROTO((ppl_Linear_Expression_t* ple, ppl_const_Generator_t g)); 1002 1003/*! \relates ppl_Linear_Expression_tag \brief 1004 Builds a linear expression corresponding to congruence \p c; 1005 writes a handle for the newly created linear expression at address \p ple. 1006*/ 1007int 1008ppl_new_Linear_Expression_from_Congruence 1009PPL_PROTO((ppl_Linear_Expression_t* ple, ppl_const_Congruence_t c)); 1010 1011/*! \relates ppl_Linear_Expression_tag \brief 1012 Builds a linear expression corresponding to grid generator \p g; 1013 writes a handle for the newly created linear expression at address \p ple. 1014*/ 1015int 1016ppl_new_Linear_Expression_from_Grid_Generator 1017PPL_PROTO((ppl_Linear_Expression_t* ple, ppl_const_Grid_Generator_t g)); 1018 1019/*! \relates ppl_Linear_Expression_tag \brief 1020 Assigns a copy of the linear expression \p src to \p dst. 1021*/ 1022int 1023ppl_assign_Linear_Expression_from_Linear_Expression 1024PPL_PROTO((ppl_Linear_Expression_t dst, ppl_const_Linear_Expression_t src)); 1025 1026/*! \relates ppl_Linear_Expression_tag \brief 1027 Invalidates the handle \p le: this makes sure the corresponding 1028 resources will eventually be released. 1029*/ 1030int 1031ppl_delete_Linear_Expression PPL_PROTO((ppl_const_Linear_Expression_t le)); 1032 1033/*@}*/ /* Constructors, Assignment and Destructor */ 1034 1035/*! \brief \name Functions that Do Not Modify the Linear Expression */ 1036/*@{*/ 1037 1038/*! \relates ppl_Linear_Expression_tag \brief 1039 Writes to \p m the space dimension of \p le. 1040*/ 1041int 1042ppl_Linear_Expression_space_dimension 1043PPL_PROTO((ppl_const_Linear_Expression_t le, ppl_dimension_type* m)); 1044 1045/*! \relates ppl_Linear_Expression_tag \brief 1046 Copies into \p n the coefficient of variable \p var in 1047 the linear expression \p le. 1048*/ 1049int 1050ppl_Linear_Expression_coefficient PPL_PROTO((ppl_const_Linear_Expression_t le, 1051 ppl_dimension_type var, 1052 ppl_Coefficient_t n)); 1053 1054/*! \relates ppl_Linear_Expression_tag \brief 1055 Copies into \p n the inhomogeneous term of linear expression \p le. 1056*/ 1057int 1058ppl_Linear_Expression_inhomogeneous_term 1059PPL_PROTO((ppl_const_Linear_Expression_t le, ppl_Coefficient_t n)); 1060 1061/*! \relates ppl_Linear_Expression_tag \brief 1062 Returns a positive integer if \p le is well formed, i.e., if it 1063 satisfies all its implementation invariants; returns 0 and perhaps 1064 makes some noise if \p le is broken. Useful for debugging purposes. 1065*/ 1066int 1067ppl_Linear_Expression_OK PPL_PROTO((ppl_const_Linear_Expression_t le)); 1068 1069/*! \relates ppl_Linear_Expression_tag \brief 1070 Returns <CODE>true</CODE> if and only if \p *this is \f$0\f$. 1071*/ 1072int 1073ppl_Linear_Expression_is_zero PPL_PROTO((ppl_const_Linear_Expression_t le)); 1074 1075/*! \relates ppl_Linear_Expression_tag \brief 1076 Returns <CODE>true</CODE> if and only if all the homogeneous 1077 terms of \p *this are \f$0\f$. 1078*/ 1079int 1080ppl_Linear_Expression_all_homogeneous_terms_are_zero 1081PPL_PROTO((ppl_const_Linear_Expression_t le)); 1082 1083/*@}*/ /* Functions that Do Not Modify the Linear Expression */ 1084 1085/*! \brief \name Functions that May Modify the Linear Expression */ 1086/*@{*/ 1087 1088/*! \relates ppl_Linear_Expression_tag \brief 1089 Adds \p n to the coefficient of variable \p var in the linear 1090 expression \p le. The space dimension is set to be the maximum 1091 between \p var + 1 and the old space dimension. 1092*/ 1093int 1094ppl_Linear_Expression_add_to_coefficient 1095PPL_PROTO((ppl_Linear_Expression_t le, 1096 ppl_dimension_type var, 1097 ppl_const_Coefficient_t n)); 1098 1099/*! \relates ppl_Linear_Expression_tag \brief 1100 Adds \p n to the inhomogeneous term of the linear expression \p le. 1101*/ 1102int 1103ppl_Linear_Expression_add_to_inhomogeneous 1104PPL_PROTO((ppl_Linear_Expression_t le, ppl_const_Coefficient_t n)); 1105 1106/*! \relates ppl_Linear_Expression_tag \brief 1107 Adds the linear expression \p src to \p dst. 1108*/ 1109int 1110ppl_add_Linear_Expression_to_Linear_Expression 1111PPL_PROTO((ppl_Linear_Expression_t dst, ppl_const_Linear_Expression_t src)); 1112 1113/*! \relates ppl_Linear_Expression_tag \brief 1114 Subtracts the linear expression \p src from \p dst. 1115*/ 1116int 1117ppl_subtract_Linear_Expression_from_Linear_Expression 1118PPL_PROTO((ppl_Linear_Expression_t dst, ppl_const_Linear_Expression_t src)); 1119 1120/*! \relates ppl_Linear_Expression_tag \brief 1121 Multiply the linear expression \p dst by \p n. 1122*/ 1123int 1124ppl_multiply_Linear_Expression_by_Coefficient 1125PPL_PROTO((ppl_Linear_Expression_t le, ppl_const_Coefficient_t n)); 1126 1127/*@}*/ /* Functions that May Modify the Linear Expression */ 1128 1129PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Linear_Expression) 1130 1131/*! \brief \ingroup Datatypes 1132 Describes the relations represented by a constraint. 1133*/ 1134enum ppl_enum_Constraint_Type { 1135 /*! The constraint is of the form \f$e < 0\f$. */ 1136 PPL_CONSTRAINT_TYPE_LESS_THAN, 1137 /*! The constraint is of the form \f$e \leq 0\f$. */ 1138 PPL_CONSTRAINT_TYPE_LESS_OR_EQUAL, 1139 /*! The constraint is of the form \f$e = 0\f$. */ 1140 PPL_CONSTRAINT_TYPE_EQUAL, 1141 /*! The constraint is of the form \f$e \geq 0\f$. */ 1142 PPL_CONSTRAINT_TYPE_GREATER_OR_EQUAL, 1143 /*! The constraint is of the form \f$e > 0\f$. */ 1144 PPL_CONSTRAINT_TYPE_GREATER_THAN 1145}; 1146 1147/*! \brief \name Constructors, Assignment and Destructor */ 1148/*@{*/ 1149 1150/*! \relates ppl_Constraint_tag \brief 1151 Creates the new constraint `\p le \p rel 0' and writes a handle for 1152 it at address \p pc. The space dimension of the new constraint is 1153 equal to the space dimension of \p le. 1154*/ 1155int 1156ppl_new_Constraint PPL_PROTO((ppl_Constraint_t* pc, 1157 ppl_const_Linear_Expression_t le, 1158 enum ppl_enum_Constraint_Type rel)); 1159 1160/*! \relates ppl_Constraint_tag \brief 1161 Creates the unsatisfiable (zero-dimension space) constraint \f$0 = 1\f$ 1162 and writes a handle for it at address \p pc. 1163*/ 1164int 1165ppl_new_Constraint_zero_dim_false PPL_PROTO((ppl_Constraint_t* pc)); 1166 1167/*! \relates ppl_Constraint_tag \brief 1168 Creates the true (zero-dimension space) constraint \f$0 \leq 1\f$, 1169 also known as <EM>positivity constraint</EM>. 1170 A handle for the newly created constraint is written at address \p pc. 1171*/ 1172int 1173ppl_new_Constraint_zero_dim_positivity PPL_PROTO((ppl_Constraint_t* pc)); 1174 1175/*! \relates ppl_Constraint_tag \brief 1176 Builds a constraint that is a copy of \p c; writes a handle 1177 for the newly created constraint at address \p pc. 1178*/ 1179int 1180ppl_new_Constraint_from_Constraint PPL_PROTO((ppl_Constraint_t* pc, 1181 ppl_const_Constraint_t c)); 1182 1183/*! \relates ppl_Constraint_tag \brief 1184 Assigns a copy of the constraint \p src to \p dst. 1185*/ 1186int 1187ppl_assign_Constraint_from_Constraint PPL_PROTO((ppl_Constraint_t dst, 1188 ppl_const_Constraint_t src)); 1189 1190/*! \relates ppl_Constraint_tag \brief 1191 Invalidates the handle \p c: this makes sure the corresponding 1192 resources will eventually be released. 1193*/ 1194int 1195ppl_delete_Constraint PPL_PROTO((ppl_const_Constraint_t c)); 1196 1197/*@}*/ /* Constructors, Assignment and Destructor */ 1198 1199/*! \brief \name Functions that Do Not Modify the Constraint */ 1200/*@{*/ 1201 1202/*! \relates ppl_Constraint_tag \brief 1203 Writes to \p m the space dimension of \p c. 1204*/ 1205int 1206ppl_Constraint_space_dimension PPL_PROTO((ppl_const_Constraint_t c, 1207 ppl_dimension_type* m)); 1208 1209/*! \relates ppl_Constraint_tag \brief 1210 Returns the type of constraint \p c. 1211*/ 1212int 1213ppl_Constraint_type PPL_PROTO((ppl_const_Constraint_t c)); 1214 1215/*! \relates ppl_Constraint_tag \brief 1216 Copies into \p n the coefficient of variable \p var in 1217 constraint \p c. 1218*/ 1219int 1220ppl_Constraint_coefficient PPL_PROTO((ppl_const_Constraint_t c, 1221 ppl_dimension_type var, 1222 ppl_Coefficient_t n)); 1223 1224/*! \relates ppl_Constraint_tag \brief 1225 Copies into \p n the inhomogeneous term of constraint \p c. 1226*/ 1227int 1228ppl_Constraint_inhomogeneous_term PPL_PROTO((ppl_const_Constraint_t c, 1229 ppl_Coefficient_t n)); 1230 1231/*! \relates ppl_Constraint_tag \brief 1232 Returns a positive integer if \p c is well formed, i.e., if it 1233 satisfies all its implementation invariants; returns 0 and perhaps 1234 makes some noise if \p c is broken. Useful for debugging purposes. 1235*/ 1236int 1237ppl_Constraint_OK PPL_PROTO((ppl_const_Constraint_t c)); 1238 1239/*@}*/ /* Functions that Do Not Modify the Constraint */ 1240 1241PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Constraint) 1242 1243 1244/*! \brief \name Constructors, Assignment and Destructor */ 1245/*@{*/ 1246 1247/*! \relates ppl_Constraint_System_tag \brief 1248 Builds an empty system of constraints and writes a handle to it at 1249 address \p pcs. 1250*/ 1251int 1252ppl_new_Constraint_System PPL_PROTO((ppl_Constraint_System_t* pcs)); 1253 1254/*! \relates ppl_Constraint_System_tag \brief 1255 Builds a zero-dimensional, unsatisfiable constraint system and 1256 writes a handle to it at address \p pcs. 1257*/ 1258int 1259ppl_new_Constraint_System_zero_dim_empty 1260PPL_PROTO((ppl_Constraint_System_t* pcs)); 1261 1262/*! \relates ppl_Constraint_System_tag \brief 1263 Builds the singleton constraint system containing only a copy of 1264 constraint \p c; writes a handle for the newly created system at 1265 address \p pcs. 1266*/ 1267int 1268ppl_new_Constraint_System_from_Constraint 1269PPL_PROTO((ppl_Constraint_System_t* pcs, ppl_const_Constraint_t c)); 1270 1271/*! \relates ppl_Constraint_System_tag \brief 1272 Builds a constraint system that is a copy of \p cs; writes a handle 1273 for the newly created system at address \p pcs. 1274*/ 1275int 1276ppl_new_Constraint_System_from_Constraint_System 1277PPL_PROTO((ppl_Constraint_System_t* pcs, ppl_const_Constraint_System_t cs)); 1278 1279/*! \relates ppl_Constraint_System_tag \brief 1280 Assigns a copy of the constraint system \p src to \p dst. 1281*/ 1282int 1283ppl_assign_Constraint_System_from_Constraint_System 1284PPL_PROTO((ppl_Constraint_System_t dst, ppl_const_Constraint_System_t src)); 1285 1286/*! \relates ppl_Constraint_System_tag \brief 1287 Invalidates the handle \p cs: this makes sure the corresponding 1288 resources will eventually be released. 1289*/ 1290int 1291ppl_delete_Constraint_System PPL_PROTO((ppl_const_Constraint_System_t cs)); 1292 1293/*@}*/ /* Constructors, Assignment and Destructor */ 1294 1295/*! \brief \name Functions that Do Not Modify the Constraint System */ 1296/*@{*/ 1297 1298/*! \relates ppl_Constraint_System_tag \brief 1299 Writes to \p m the dimension of the vector space enclosing \p cs. 1300*/ 1301int 1302ppl_Constraint_System_space_dimension 1303PPL_PROTO((ppl_const_Constraint_System_t cs, ppl_dimension_type* m)); 1304 1305/*! \relates ppl_Constraint_System_tag \brief 1306 Returns a positive integer if \p cs contains no (non-trivial) constraint; 1307 returns 0 otherwise. 1308*/ 1309int 1310ppl_Constraint_System_empty 1311PPL_PROTO((ppl_const_Constraint_System_t cs)); 1312 1313/*! \relates ppl_Constraint_System_tag \brief 1314 Returns a positive integer if \p cs contains any (non-trivial) strict 1315 inequality; returns 0 otherwise. 1316*/ 1317int 1318ppl_Constraint_System_has_strict_inequalities 1319PPL_PROTO((ppl_const_Constraint_System_t cs)); 1320 1321/*! \relates ppl_Constraint_System_tag \brief 1322 Assigns to \p cit a const iterator "pointing" to the beginning of 1323 the constraint system \p cs. 1324*/ 1325int 1326ppl_Constraint_System_begin 1327PPL_PROTO((ppl_const_Constraint_System_t cs, 1328 ppl_Constraint_System_const_iterator_t cit)); 1329 1330/*! \relates ppl_Constraint_System_tag \brief 1331 Assigns to \p cit a const iterator "pointing" past the end of the 1332 constraint system \p cs. 1333*/ 1334int 1335ppl_Constraint_System_end 1336PPL_PROTO((ppl_const_Constraint_System_t cs, 1337 ppl_Constraint_System_const_iterator_t cit)); 1338 1339/*! \relates ppl_Constraint_System_tag \brief 1340 Returns a positive integer if \p cs is well formed, i.e., if it 1341 satisfies all its implementation invariants; returns 0 and perhaps 1342 makes some noise if \p cs is broken. Useful for debugging purposes. 1343*/ 1344int 1345ppl_Constraint_System_OK PPL_PROTO((ppl_const_Constraint_System_t cs)); 1346 1347/*@}*/ /* Functions that Do Not Modify the Constraint System */ 1348 1349/*! \brief \name Functions that May Modify the Constraint System */ 1350/*@{*/ 1351 1352/*! \relates ppl_Constraint_System_tag \brief 1353 Removes all the constraints from the constraint system \p cs 1354 and sets its space dimension to 0. 1355*/ 1356int 1357ppl_Constraint_System_clear PPL_PROTO((ppl_Constraint_System_t cs)); 1358 1359/*! \relates ppl_Constraint_System_tag \brief 1360 Inserts a copy of the constraint \p c into \p cs; the space 1361 dimension is increased, if necessary. 1362*/ 1363int 1364ppl_Constraint_System_insert_Constraint PPL_PROTO((ppl_Constraint_System_t cs, 1365 ppl_const_Constraint_t c)); 1366 1367/*@}*/ /* Functions that May Modify the Constraint System */ 1368 1369PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Constraint_System) 1370 1371 1372/*! \brief \name Constructors, Assignment and Destructor */ 1373/*@{*/ 1374 1375/*! \relates ppl_Constraint_System_const_iterator_tag \brief 1376 Builds a new `const iterator' and writes a handle to it at address 1377 \p pcit. 1378*/ 1379int 1380ppl_new_Constraint_System_const_iterator 1381PPL_PROTO((ppl_Constraint_System_const_iterator_t* pcit)); 1382 1383/*! \relates ppl_Constraint_System_const_iterator_tag \brief 1384 Builds a const iterator that is a copy of \p cit; writes a 1385 handle for the newly created const iterator at address \p pcit. 1386*/ 1387int 1388ppl_new_Constraint_System_const_iterator_from_Constraint_System_const_iterator 1389PPL_PROTO((ppl_Constraint_System_const_iterator_t* pcit, 1390 ppl_const_Constraint_System_const_iterator_t cit)); 1391 1392/*! \relates ppl_Constraint_System_const_iterator_tag \brief 1393 Assigns a copy of the const iterator \p src to \p dst. 1394*/ 1395int 1396ppl_assign_Constraint_System_const_iterator_from_Constraint_System_const_iterator 1397PPL_PROTO((ppl_Constraint_System_const_iterator_t dst, 1398 ppl_const_Constraint_System_const_iterator_t src)); 1399 1400/*! \relates ppl_Constraint_System_const_iterator_tag \brief 1401 Invalidates the handle \p cit: this makes sure the corresponding 1402 resources will eventually be released. 1403*/ 1404int 1405ppl_delete_Constraint_System_const_iterator 1406PPL_PROTO((ppl_const_Constraint_System_const_iterator_t cit)); 1407 1408/*@}*/ /* Constructors, Assignment and Destructor */ 1409 1410/*! \brief \name Dereferencing, Incrementing and Equality Testing */ 1411/*@{*/ 1412 1413/*! \relates ppl_Constraint_System_const_iterator_tag \brief 1414 Dereference \p cit writing a const handle to the resulting 1415 constraint at address \p pc. 1416*/ 1417int 1418ppl_Constraint_System_const_iterator_dereference 1419PPL_PROTO((ppl_const_Constraint_System_const_iterator_t cit, 1420 ppl_const_Constraint_t* pc)); 1421 1422/*! \relates ppl_Constraint_System_const_iterator_tag \brief 1423 Increment \p cit so that it "points" to the next constraint. 1424*/ 1425int 1426ppl_Constraint_System_const_iterator_increment 1427PPL_PROTO((ppl_Constraint_System_const_iterator_t cit)); 1428 1429/*! \relates ppl_Constraint_System_const_iterator_tag \brief 1430 Returns a positive integer if the iterators corresponding to \p x and 1431 \p y are equal; returns 0 if they are different. 1432*/ 1433int 1434ppl_Constraint_System_const_iterator_equal_test 1435PPL_PROTO((ppl_const_Constraint_System_const_iterator_t x, 1436 ppl_const_Constraint_System_const_iterator_t y)); 1437 1438/*@}*/ /* Dereferencing, Incrementing and Equality Testing */ 1439 1440 1441/*! \brief \ingroup Datatypes 1442 Describes the different kinds of generators. 1443*/ 1444enum ppl_enum_Generator_Type { 1445 /*! The generator is a line. */ 1446 PPL_GENERATOR_TYPE_LINE, 1447 /*! The generator is a ray. */ 1448 PPL_GENERATOR_TYPE_RAY, 1449 /*! The generator is a point. */ 1450 PPL_GENERATOR_TYPE_POINT, 1451 /*! The generator is a closure point. */ 1452 PPL_GENERATOR_TYPE_CLOSURE_POINT 1453}; 1454 1455/*! \brief \name Constructors, Assignment and Destructor */ 1456/*@{*/ 1457 1458/*! \relates ppl_Generator_tag \brief 1459 Creates a new generator of direction \p le and type \p t. If the 1460 generator to be created is a point or a closure point, the divisor 1461 \p d is applied to \p le. For other types of generators \p d is 1462 simply disregarded. A handle for the new generator is written at 1463 address \p pg. The space dimension of the new generator is equal to 1464 the space dimension of \p le. 1465*/ 1466int 1467ppl_new_Generator PPL_PROTO((ppl_Generator_t* pg, 1468 ppl_const_Linear_Expression_t le, 1469 enum ppl_enum_Generator_Type t, 1470 ppl_const_Coefficient_t d)); 1471 1472/*! \relates ppl_Generator_tag \brief 1473 Creates the point that is the origin of the zero-dimensional space 1474 \f$\Rset^0\f$. Writes a handle for the new generator at address 1475 \p pg. 1476*/ 1477int 1478ppl_new_Generator_zero_dim_point PPL_PROTO((ppl_Generator_t* pg)); 1479 1480/*! \relates ppl_Generator_tag \brief 1481 Creates, as a closure point, the point that is the origin of the 1482 zero-dimensional space \f$\Rset^0\f$. Writes a handle for the new 1483 generator at address \p pg. 1484*/ 1485int 1486ppl_new_Generator_zero_dim_closure_point PPL_PROTO((ppl_Generator_t* pg)); 1487 1488/*! \relates ppl_Generator_tag \brief 1489 Builds a generator that is a copy of \p g; writes a handle 1490 for the newly created generator at address \p pg. 1491*/ 1492int 1493ppl_new_Generator_from_Generator PPL_PROTO((ppl_Generator_t* pg, 1494 ppl_const_Generator_t g)); 1495 1496/*! \relates ppl_Generator_tag \brief 1497 Assigns a copy of the generator \p src to \p dst. 1498*/ 1499int 1500ppl_assign_Generator_from_Generator PPL_PROTO((ppl_Generator_t dst, 1501 ppl_const_Generator_t src)); 1502 1503/*! \relates ppl_Generator_tag \brief 1504 Invalidates the handle \p g: this makes sure the corresponding 1505 resources will eventually be released. 1506*/ 1507int 1508ppl_delete_Generator PPL_PROTO((ppl_const_Generator_t g)); 1509 1510/*@}*/ /* Constructors, Assignment and Destructor */ 1511 1512/*! \brief \name Functions that Do Not Modify the Generator */ 1513/*@{*/ 1514 1515/*! \relates ppl_Generator_tag \brief 1516 Writes to \p m the space dimension of \p g. 1517*/ 1518int 1519ppl_Generator_space_dimension PPL_PROTO((ppl_const_Generator_t g, 1520 ppl_dimension_type* m)); 1521 1522/*! \relates ppl_Generator_tag \brief 1523 Returns the type of generator \p g. 1524*/ 1525int 1526ppl_Generator_type PPL_PROTO((ppl_const_Generator_t g)); 1527 1528/*! \relates ppl_Generator_tag \brief 1529 Copies into \p n the coefficient of variable \p var in generator \p g. 1530*/ 1531int 1532ppl_Generator_coefficient PPL_PROTO((ppl_const_Generator_t g, 1533 ppl_dimension_type var, 1534 ppl_Coefficient_t n)); 1535 1536/*! \relates ppl_Generator_tag \brief 1537 If \p g is a point or a closure point assigns its divisor to \p n. 1538*/ 1539int 1540ppl_Generator_divisor PPL_PROTO((ppl_const_Generator_t g, 1541 ppl_Coefficient_t n)); 1542 1543/*! \relates ppl_Generator_tag \brief 1544 Returns a positive integer if \p g is well formed, i.e., if it 1545 satisfies all its implementation invariants; returns 0 and perhaps 1546 makes some noise if \p g is broken. Useful for debugging purposes. 1547*/ 1548int 1549ppl_Generator_OK PPL_PROTO((ppl_const_Generator_t g)); 1550 1551/*@}*/ /* Functions that Do Not Modify the Generator */ 1552 1553PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Generator) 1554 1555 1556/*! \brief \name Constructors, Assignment and Destructor */ 1557/*@{*/ 1558 1559/*! \relates ppl_Generator_System_tag \brief 1560 Builds an empty system of generators and writes a handle to it at 1561 address \p pgs. 1562*/ 1563int 1564ppl_new_Generator_System PPL_PROTO((ppl_Generator_System_t* pgs)); 1565 1566/* 1567 Creates the universe zero-dimensional system of generators (i.e., 1568 containing the origin only). Writes a handle to the new system at 1569 address \p pgs. 1570*/ 1571int 1572ppl_new_Generator_System_zero_dim_univ 1573PPL_PROTO((ppl_Generator_System_t* pgs)); 1574 1575/*! \relates ppl_Generator_System_tag \brief 1576 Builds the singleton generator system containing only a copy of 1577 generator \p g; writes a handle for the newly created system at 1578 address \p pgs. 1579*/ 1580int 1581ppl_new_Generator_System_from_Generator PPL_PROTO((ppl_Generator_System_t* pgs, 1582 ppl_const_Generator_t g)); 1583 1584/*! \relates ppl_Generator_System_tag \brief 1585 Builds a generator system that is a copy of \p gs; writes a handle 1586 for the newly created system at address \p pgs. 1587*/ 1588int 1589ppl_new_Generator_System_from_Generator_System 1590PPL_PROTO((ppl_Generator_System_t* pgs, ppl_const_Generator_System_t gs)); 1591 1592/*! \relates ppl_Generator_System_tag \brief 1593 Assigns a copy of the generator system \p src to \p dst. 1594*/ 1595int 1596ppl_assign_Generator_System_from_Generator_System 1597PPL_PROTO((ppl_Generator_System_t dst, ppl_const_Generator_System_t src)); 1598 1599/*! \relates ppl_Generator_System_tag \brief 1600 Invalidates the handle \p gs: this makes sure the corresponding 1601 resources will eventually be released. 1602*/ 1603int 1604ppl_delete_Generator_System PPL_PROTO((ppl_const_Generator_System_t gs)); 1605 1606/*@}*/ /* Constructors, Assignment and Destructor */ 1607 1608/*! \brief \name Functions that Do Not Modify the Generator System */ 1609/*@{*/ 1610 1611/*! \relates ppl_Generator_System_tag \brief 1612 Writes to \p m the dimension of the vector space enclosing \p gs. 1613*/ 1614int 1615ppl_Generator_System_space_dimension 1616PPL_PROTO((ppl_const_Generator_System_t gs, ppl_dimension_type* m)); 1617 1618/*! \relates ppl_Generator_System_tag \brief 1619 Returns a positive integer if \p gs contains no generators; 1620 returns 0 otherwise. 1621*/ 1622int 1623ppl_Generator_System_empty 1624PPL_PROTO((ppl_const_Generator_System_t gs)); 1625 1626/*! \relates ppl_Generator_System_tag \brief 1627 Assigns to \p git a const iterator "pointing" to the beginning of 1628 the generator system \p gs. 1629*/ 1630int 1631ppl_Generator_System_begin 1632PPL_PROTO((ppl_const_Generator_System_t gs, 1633 ppl_Generator_System_const_iterator_t git)); 1634 1635/*! \relates ppl_Generator_System_tag \brief 1636 Assigns to \p git a const iterator "pointing" past the end of the 1637 generator system \p gs. 1638*/ 1639int 1640ppl_Generator_System_end 1641PPL_PROTO((ppl_const_Generator_System_t gs, 1642 ppl_Generator_System_const_iterator_t git)); 1643 1644/*! \relates ppl_Generator_System_tag \brief 1645 Returns a positive integer if \p gs is well formed, i.e., if it 1646 satisfies all its implementation invariants; returns 0 and perhaps 1647 makes some noise if \p gs is broken. Useful for debugging purposes. 1648*/ 1649int 1650ppl_Generator_System_OK PPL_PROTO((ppl_const_Generator_System_t gs)); 1651 1652/*@}*/ /* Functions that Do Not Modify the Generator System */ 1653 1654/*! \brief \name Functions that May Modify the Generator System */ 1655/*@{*/ 1656 1657/*! \relates ppl_Generator_System_tag \brief 1658 Removes all the generators from the generator system \p gs 1659 and sets its space dimension to 0. 1660*/ 1661int 1662ppl_Generator_System_clear PPL_PROTO((ppl_Generator_System_t gs)); 1663 1664/*! \relates ppl_Generator_System_tag \brief 1665 Inserts a copy of the generator \p g into \p gs; the space 1666 dimension is increased, if necessary. 1667*/ 1668int 1669ppl_Generator_System_insert_Generator PPL_PROTO((ppl_Generator_System_t gs, 1670 ppl_const_Generator_t g)); 1671 1672/*@}*/ /* Functions that May Modify the Generator System */ 1673 1674PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Generator_System) 1675 1676 1677/*! \brief \name Constructors, Assignment and Destructor */ 1678/*@{*/ 1679 1680/*! \relates ppl_Generator_System_const_iterator_tag \brief 1681 Builds a new `const iterator' and writes a handle to it at address 1682 \p pgit. 1683*/ 1684int 1685ppl_new_Generator_System_const_iterator 1686PPL_PROTO((ppl_Generator_System_const_iterator_t* pgit)); 1687 1688/*! \relates ppl_Generator_System_const_iterator_tag \brief 1689 Builds a const iterator that is a copy of \p git; writes a 1690 handle for the newly created const iterator at address \p pgit. 1691*/ 1692int 1693ppl_new_Generator_System_const_iterator_from_Generator_System_const_iterator 1694PPL_PROTO((ppl_Generator_System_const_iterator_t* pgit, 1695 ppl_const_Generator_System_const_iterator_t git)); 1696 1697/*! \relates ppl_Generator_System_const_iterator_tag \brief 1698 Assigns a copy of the const iterator \p src to \p dst. 1699*/ 1700int 1701ppl_assign_Generator_System_const_iterator_from_Generator_System_const_iterator 1702PPL_PROTO((ppl_Generator_System_const_iterator_t dst, 1703 ppl_const_Generator_System_const_iterator_t src)); 1704 1705/*! \relates ppl_Generator_System_const_iterator_tag \brief 1706 Invalidates the handle \p git: this makes sure the corresponding 1707 resources will eventually be released. 1708*/ 1709int 1710ppl_delete_Generator_System_const_iterator 1711PPL_PROTO((ppl_const_Generator_System_const_iterator_t git)); 1712 1713/*@}*/ /* Constructors, Assignment and Destructor */ 1714 1715/*! \brief \name Dereferencing, Incrementing and Equality Testing */ 1716/*@{*/ 1717 1718/*! \relates ppl_Generator_System_const_iterator_tag \brief 1719 Dereference \p git writing a const handle to the resulting 1720 generator at address \p pg. 1721*/ 1722int 1723ppl_Generator_System_const_iterator_dereference 1724PPL_PROTO((ppl_const_Generator_System_const_iterator_t git, 1725 ppl_const_Generator_t* pg)); 1726 1727/*! \relates ppl_Generator_System_const_iterator_tag \brief 1728 Increment \p git so that it "points" to the next generator. 1729*/ 1730int 1731ppl_Generator_System_const_iterator_increment 1732PPL_PROTO((ppl_Generator_System_const_iterator_t git)); 1733 1734/*! \relates ppl_Generator_System_const_iterator_tag \brief 1735 Returns a positive integer if the iterators corresponding to \p x and 1736 \p y are equal; returns 0 if they are different. 1737*/ 1738int 1739ppl_Generator_System_const_iterator_equal_test 1740PPL_PROTO((ppl_const_Generator_System_const_iterator_t x, 1741 ppl_const_Generator_System_const_iterator_t y)); 1742 1743/*@}*/ /* Dereferencing, Incrementing and Equality Testing */ 1744 1745 1746/*! \brief \name Constructors, Assignment and Destructor */ 1747/*@{*/ 1748 1749/*! \relates ppl_Congruence_tag \brief 1750 Creates the new congruence \f$le = 0 \pmod{m}\f$ and writes a handle for 1751 it at address \p pc. The space dimension of the new congruence is 1752 equal to the space dimension of \p le. 1753*/ 1754int 1755ppl_new_Congruence PPL_PROTO((ppl_Congruence_t* pc, 1756 ppl_const_Linear_Expression_t le, 1757 ppl_const_Coefficient_t m)); 1758 1759/*! \relates ppl_Congruence_tag \brief 1760 Creates the unsatisfiable (zero-dimension space) congruence 1761 \f$0 = 1 \pmod{0}\f$ and writes a handle for it at address \p pc. 1762*/ 1763int 1764ppl_new_Congruence_zero_dim_false PPL_PROTO((ppl_Congruence_t* pc)); 1765 1766/*! \relates ppl_Congruence_tag \brief 1767 Creates the true (zero-dimension space) congruence \f$0 = 1 \pmod{1}\f$, 1768 also known as <EM>integrality congruence</EM>. 1769 A handle for the newly created congruence is written at address \p pc. 1770*/ 1771int 1772ppl_new_Congruence_zero_dim_integrality PPL_PROTO((ppl_Congruence_t* pc)); 1773 1774/*! \relates ppl_Congruence_tag \brief 1775 Builds a congruence that is a copy of \p c; writes a handle 1776 for the newly created congruence at address \p pc. 1777*/ 1778int 1779ppl_new_Congruence_from_Congruence PPL_PROTO((ppl_Congruence_t* pc, 1780 ppl_const_Congruence_t c)); 1781 1782/*! \relates ppl_Congruence_tag \brief 1783 Assigns a copy of the congruence \p src to \p dst. 1784*/ 1785int 1786ppl_assign_Congruence_from_Congruence PPL_PROTO((ppl_Congruence_t dst, 1787 ppl_const_Congruence_t src)); 1788 1789/*! \relates ppl_Congruence_tag \brief 1790 Invalidates the handle \p c: this makes sure the corresponding 1791 resources will eventually be released. 1792*/ 1793int 1794ppl_delete_Congruence PPL_PROTO((ppl_const_Congruence_t c)); 1795 1796/*@}*/ /* Constructors, Assignment and Destructor */ 1797 1798/*! \brief \name Functions that Do Not Modify the Congruence */ 1799/*@{*/ 1800 1801/*! \relates ppl_Congruence_tag \brief 1802 Writes to \p m the space dimension of \p c. 1803*/ 1804int 1805ppl_Congruence_space_dimension PPL_PROTO((ppl_const_Congruence_t c, 1806 ppl_dimension_type* m)); 1807 1808/*! \relates ppl_Congruence_tag \brief 1809 Copies into \p n the coefficient of variable \p var in 1810 congruence \p c. 1811*/ 1812int 1813ppl_Congruence_coefficient PPL_PROTO((ppl_const_Congruence_t c, 1814 ppl_dimension_type var, 1815 ppl_Coefficient_t n)); 1816 1817/*! \relates ppl_Congruence_tag \brief 1818 Copies into \p n the inhomogeneous term of congruence \p c. 1819*/ 1820int 1821ppl_Congruence_inhomogeneous_term PPL_PROTO((ppl_const_Congruence_t c, 1822 ppl_Coefficient_t n)); 1823 1824/*! \relates ppl_Congruence_tag \brief 1825 Copies into \p m the modulus of congruence \p c. 1826*/ 1827int 1828ppl_Congruence_modulus PPL_PROTO((ppl_const_Congruence_t c, 1829 ppl_Coefficient_t m)); 1830 1831/*! \relates ppl_Congruence_tag \brief 1832 Returns a positive integer if \p c is well formed, i.e., if it 1833 satisfies all its implementation invariants; returns 0 and perhaps 1834 makes some noise if \p c is broken. Useful for debugging purposes. 1835*/ 1836int 1837ppl_Congruence_OK PPL_PROTO((ppl_const_Congruence_t c)); 1838 1839/*@}*/ /* Functions that Do Not Modify the Congruence */ 1840 1841PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Congruence) 1842 1843 1844/*! \brief \name Constructors, Assignment and Destructor */ 1845/*@{*/ 1846 1847/*! \relates ppl_Congruence_System_tag \brief 1848 Builds an empty system of congruences and writes a handle to it at 1849 address \p pcs. 1850*/ 1851int 1852ppl_new_Congruence_System PPL_PROTO((ppl_Congruence_System_t* pcs)); 1853 1854/*! \relates ppl_Congruence_System_tag \brief 1855 Builds a zero-dimensional, unsatisfiable congruence system and 1856 writes a handle to it at address \p pcs. 1857*/ 1858int 1859ppl_new_Congruence_System_zero_dim_empty 1860PPL_PROTO((ppl_Congruence_System_t* pcs)); 1861 1862/*! \relates ppl_Congruence_System_tag \brief 1863 Builds the singleton congruence system containing only a copy of 1864 congruence \p c; writes a handle for the newly created system at 1865 address \p pcs. 1866*/ 1867int 1868ppl_new_Congruence_System_from_Congruence 1869PPL_PROTO((ppl_Congruence_System_t* pcs, ppl_const_Congruence_t c)); 1870 1871/*! \relates ppl_Congruence_System_tag \brief 1872 Builds a congruence system that is a copy of \p cs; writes a handle 1873 for the newly created system at address \p pcs. 1874*/ 1875int 1876ppl_new_Congruence_System_from_Congruence_System 1877PPL_PROTO((ppl_Congruence_System_t* pcs, ppl_const_Congruence_System_t cs)); 1878 1879/*! \relates ppl_Congruence_System_tag \brief 1880 Assigns a copy of the congruence system \p src to \p dst. 1881*/ 1882int 1883ppl_assign_Congruence_System_from_Congruence_System 1884PPL_PROTO((ppl_Congruence_System_t dst, ppl_const_Congruence_System_t src)); 1885 1886/*! \relates ppl_Congruence_System_tag \brief 1887 Invalidates the handle \p cs: this makes sure the corresponding 1888 resources will eventually be released. 1889*/ 1890int 1891ppl_delete_Congruence_System PPL_PROTO((ppl_const_Congruence_System_t cs)); 1892 1893/*@}*/ /* Constructors, Assignment and Destructor */ 1894 1895/*! \brief \name Functions that Do Not Modify the Congruence System */ 1896/*@{*/ 1897 1898/*! \relates ppl_Congruence_System_tag \brief 1899 Writes to \p m the dimension of the vector space enclosing \p cs. 1900*/ 1901int 1902ppl_Congruence_System_space_dimension 1903PPL_PROTO((ppl_const_Congruence_System_t cs, ppl_dimension_type* m)); 1904 1905/*! \relates ppl_Congruence_System_tag \brief 1906 Returns a positive integer if \p cs contains no (non-trivial) congruence; 1907 returns 0 otherwise. 1908*/ 1909int 1910ppl_Congruence_System_empty 1911PPL_PROTO((ppl_const_Congruence_System_t cs)); 1912 1913/*! \relates ppl_Congruence_System_tag \brief 1914 Assigns to \p cit a const iterator "pointing" to the beginning of 1915 the congruence system \p cs. 1916*/ 1917int 1918ppl_Congruence_System_begin 1919PPL_PROTO((ppl_const_Congruence_System_t cs, 1920 ppl_Congruence_System_const_iterator_t cit)); 1921 1922/*! \relates ppl_Congruence_System_tag \brief 1923 Assigns to \p cit a const iterator "pointing" past the end of the 1924 congruence system \p cs. 1925*/ 1926int 1927ppl_Congruence_System_end 1928PPL_PROTO((ppl_const_Congruence_System_t cs, 1929 ppl_Congruence_System_const_iterator_t cit)); 1930 1931/*! \relates ppl_Congruence_System_tag \brief 1932 Returns a positive integer if \p cs is well formed, i.e., if it 1933 satisfies all its implementation invariants; returns 0 and perhaps 1934 makes some noise if \p cs is broken. Useful for debugging purposes. 1935*/ 1936int 1937ppl_Congruence_System_OK PPL_PROTO((ppl_const_Congruence_System_t cs)); 1938 1939/*@}*/ /* Functions that Do Not Modify the Congruence System */ 1940 1941/*! \brief \name Functions that May Modify the Congruence System */ 1942/*@{*/ 1943 1944/*! \relates ppl_Congruence_System_tag \brief 1945 Removes all the congruences from the congruence system \p cs 1946 and sets its space dimension to 0. 1947*/ 1948int 1949ppl_Congruence_System_clear PPL_PROTO((ppl_Congruence_System_t cs)); 1950 1951/*! \relates ppl_Congruence_System_tag \brief 1952 Inserts a copy of the congruence \p c into \p cs; the space 1953 dimension is increased, if necessary. 1954*/ 1955int 1956ppl_Congruence_System_insert_Congruence PPL_PROTO((ppl_Congruence_System_t cs, 1957 ppl_const_Congruence_t c)); 1958 1959/*@}*/ /* Functions that May Modify the Congruence System */ 1960 1961PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Congruence_System) 1962 1963 1964/*! \brief \name Constructors, Assignment and Destructor */ 1965/*@{*/ 1966 1967/*! \relates ppl_Congruence_System_const_iterator_tag \brief 1968 Builds a new `const iterator' and writes a handle to it at address 1969 \p pcit. 1970*/ 1971int 1972ppl_new_Congruence_System_const_iterator 1973PPL_PROTO((ppl_Congruence_System_const_iterator_t* pcit)); 1974 1975/*! \relates ppl_Congruence_System_const_iterator_tag \brief 1976 Builds a const iterator that is a copy of \p cit; writes a 1977 handle for the newly created const iterator at address \p pcit. 1978*/ 1979int 1980ppl_new_Congruence_System_const_iterator_from_Congruence_System_const_iterator 1981PPL_PROTO((ppl_Congruence_System_const_iterator_t* pcit, 1982 ppl_const_Congruence_System_const_iterator_t cit)); 1983 1984/*! \relates ppl_Congruence_System_const_iterator_tag \brief 1985 Assigns a copy of the const iterator \p src to \p dst. 1986*/ 1987int 1988ppl_assign_Congruence_System_const_iterator_from_Congruence_System_const_iterator 1989PPL_PROTO((ppl_Congruence_System_const_iterator_t dst, 1990 ppl_const_Congruence_System_const_iterator_t src)); 1991 1992/*! \relates ppl_Congruence_System_const_iterator_tag \brief 1993 Invalidates the handle \p cit: this makes sure the corresponding 1994 resources will eventually be released. 1995*/ 1996int 1997ppl_delete_Congruence_System_const_iterator 1998PPL_PROTO((ppl_const_Congruence_System_const_iterator_t cit)); 1999 2000/*@}*/ /* Constructors, Assignment and Destructor */ 2001 2002/*! \brief \name Dereferencing, Incrementing and Equality Testing */ 2003/*@{*/ 2004 2005/*! \relates ppl_Congruence_System_const_iterator_tag \brief 2006 Dereference \p cit writing a const handle to the resulting 2007 congruence at address \p pc. 2008*/ 2009int 2010ppl_Congruence_System_const_iterator_dereference 2011PPL_PROTO((ppl_const_Congruence_System_const_iterator_t cit, 2012 ppl_const_Congruence_t* pc)); 2013 2014/*! \relates ppl_Congruence_System_const_iterator_tag \brief 2015 Increment \p cit so that it "points" to the next congruence. 2016*/ 2017int 2018ppl_Congruence_System_const_iterator_increment 2019PPL_PROTO((ppl_Congruence_System_const_iterator_t cit)); 2020 2021/*! \relates ppl_Congruence_System_const_iterator_tag \brief 2022 Returns a positive integer if the iterators corresponding to \p x and 2023 \p y are equal; returns 0 if they are different. 2024*/ 2025int 2026ppl_Congruence_System_const_iterator_equal_test 2027PPL_PROTO((ppl_const_Congruence_System_const_iterator_t x, 2028 ppl_const_Congruence_System_const_iterator_t y)); 2029 2030/*@}*/ /* Dereferencing, Incrementing and Equality Testing */ 2031 2032 2033/*! \brief \ingroup Datatypes 2034 Describes the different kinds of grid generators. 2035*/ 2036enum ppl_enum_Grid_Generator_Type { 2037 /*! The grid generator is a line. */ 2038 PPL_GRID_GENERATOR_TYPE_LINE, 2039 /*! The grid generator is a parameter. */ 2040 PPL_GRID_GENERATOR_TYPE_PARAMETER, 2041 /*! The grid generator is a point. */ 2042 PPL_GRID_GENERATOR_TYPE_POINT 2043}; 2044 2045/*! \brief \name Constructors, Assignment and Destructor */ 2046/*@{*/ 2047 2048/*! \relates ppl_Grid_Generator_tag \brief 2049 Creates a new grid generator of direction \p le and type \p t. If the 2050 grid generator to be created is a point or a parameter, the divisor 2051 \p d is applied to \p le. If it is a line, \p d is simply disregarded. 2052 A handle for the new grid generator is written at address \p pg. 2053 The space dimension of the new grid generator is equal to the space 2054 dimension of \p le. 2055*/ 2056int 2057ppl_new_Grid_Generator PPL_PROTO((ppl_Grid_Generator_t* pg, 2058 ppl_const_Linear_Expression_t le, 2059 enum ppl_enum_Grid_Generator_Type t, 2060 ppl_const_Coefficient_t d)); 2061 2062/*! \relates ppl_Grid_Generator_tag \brief 2063 Creates the point that is the origin of the zero-dimensional space 2064 \f$\Rset^0\f$. Writes a handle for the new grid generator at address 2065 \p pg. 2066*/ 2067int 2068ppl_new_Grid_Generator_zero_dim_point PPL_PROTO((ppl_Grid_Generator_t* pg)); 2069 2070/*! \relates ppl_Grid_Generator_tag \brief 2071 Builds a grid generator that is a copy of \p g; writes a handle 2072 for the newly created grid generator at address \p pg. 2073*/ 2074int 2075ppl_new_Grid_Generator_from_Grid_Generator 2076PPL_PROTO((ppl_Grid_Generator_t* pg, ppl_const_Grid_Generator_t g)); 2077 2078/*! \relates ppl_Grid_Generator_tag \brief 2079 Assigns a copy of the grid generator \p src to \p dst. 2080*/ 2081int 2082ppl_assign_Grid_Generator_from_Grid_Generator 2083PPL_PROTO((ppl_Grid_Generator_t dst, 2084 ppl_const_Grid_Generator_t src)); 2085 2086/*! \relates ppl_Grid_Generator_tag \brief 2087 Invalidates the handle \p g: this makes sure the corresponding 2088 resources will eventually be released. 2089*/ 2090int 2091ppl_delete_Grid_Generator PPL_PROTO((ppl_const_Grid_Generator_t g)); 2092 2093/*@}*/ /* Constructors, Assignment and Destructor */ 2094 2095/*! \brief \name Functions that Do Not Modify the Grid Generator */ 2096/*@{*/ 2097 2098/*! \relates ppl_Grid_Generator_tag \brief 2099 Writes to \p m the space dimension of \p g. 2100*/ 2101int 2102ppl_Grid_Generator_space_dimension PPL_PROTO((ppl_const_Grid_Generator_t g, 2103 ppl_dimension_type* m)); 2104 2105/*! \relates ppl_Grid_Generator_tag \brief 2106 Returns the type of grid generator \p g. 2107*/ 2108int 2109ppl_Grid_Generator_type PPL_PROTO((ppl_const_Grid_Generator_t g)); 2110 2111/*! \relates ppl_Grid_Generator_tag \brief 2112 Copies into \p n the coefficient of variable \p var in 2113 grid generator \p g. 2114*/ 2115int 2116ppl_Grid_Generator_coefficient PPL_PROTO((ppl_const_Grid_Generator_t g, 2117 ppl_dimension_type var, 2118 ppl_Coefficient_t n)); 2119 2120/*! \relates ppl_Grid_Generator_tag \brief 2121 If \p g is a point or a parameter assigns its divisor to \p n. 2122*/ 2123int 2124ppl_Grid_Generator_divisor PPL_PROTO((ppl_const_Grid_Generator_t g, 2125 ppl_Coefficient_t n)); 2126 2127/*! \relates ppl_Grid_Generator_tag \brief 2128 Returns a positive integer if \p g is well formed, i.e., if it 2129 satisfies all its implementation invariants; returns 0 and perhaps 2130 makes some noise if \p g is broken. Useful for debugging purposes. 2131*/ 2132int 2133ppl_Grid_Generator_OK PPL_PROTO((ppl_const_Grid_Generator_t g)); 2134 2135/*@}*/ /* Functions that Do Not Modify the Generator */ 2136 2137PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Grid_Generator) 2138 2139 2140/*! \brief \name Constructors, Assignment and Destructor */ 2141/*@{*/ 2142 2143/*! \relates ppl_Grid_Generator_System_tag \brief 2144 Builds an empty system of grid generators and writes a handle to it at 2145 address \p pgs. 2146*/ 2147int 2148ppl_new_Grid_Generator_System PPL_PROTO((ppl_Grid_Generator_System_t* pgs)); 2149 2150/* 2151 Creates the universe zero-dimensional system of grid generators (i.e., 2152 containing the origin only). Writes a handle to the new system at 2153 address \p pgs. 2154*/ 2155int 2156ppl_new_Grid_Generator_System_zero_dim_univ 2157PPL_PROTO((ppl_Grid_Generator_System_t* pgs)); 2158 2159/*! \relates ppl_Grid_Generator_System_tag \brief 2160 Builds the singleton grid generator system containing only a copy of 2161 generator \p g; writes a handle for the newly created system at 2162 address \p pgs. 2163*/ 2164int 2165ppl_new_Grid_Generator_System_from_Grid_Generator 2166PPL_PROTO((ppl_Grid_Generator_System_t* pgs, 2167 ppl_const_Grid_Generator_t g)); 2168 2169/*! \relates ppl_Grid_Generator_System_tag \brief 2170 Builds a grid generator system that is a copy of \p gs; writes a handle 2171 for the newly created system at address \p pgs. 2172*/ 2173int 2174ppl_new_Grid_Generator_System_from_Grid_Generator_System 2175PPL_PROTO((ppl_Grid_Generator_System_t* pgs, 2176 ppl_const_Grid_Generator_System_t gs)); 2177 2178/*! \relates ppl_Grid_Generator_System_tag \brief 2179 Assigns a copy of the grid generator system \p src to \p dst. 2180*/ 2181int 2182ppl_assign_Grid_Generator_System_from_Grid_Generator_System 2183PPL_PROTO((ppl_Grid_Generator_System_t dst, 2184 ppl_const_Grid_Generator_System_t src)); 2185 2186/*! \relates ppl_Grid_Generator_System_tag \brief 2187 Invalidates the handle \p gs: this makes sure the corresponding 2188 resources will eventually be released. 2189*/ 2190int 2191ppl_delete_Grid_Generator_System 2192PPL_PROTO((ppl_const_Grid_Generator_System_t gs)); 2193 2194/*@}*/ /* Constructors, Assignment and Destructor */ 2195 2196/*! \brief \name Functions that Do Not Modify the Grid Generator System */ 2197/*@{*/ 2198 2199/*! \relates ppl_Grid_Generator_System_tag \brief 2200 Writes to \p m the dimension of the vector space enclosing \p gs. 2201*/ 2202int 2203ppl_Grid_Generator_System_space_dimension 2204PPL_PROTO((ppl_const_Grid_Generator_System_t gs, ppl_dimension_type* m)); 2205 2206/*! \relates ppl_Grid_Generator_System_tag \brief 2207 Returns a positive integer if \p gs contains no generator; 2208 returns 0 otherwise. 2209*/ 2210int 2211ppl_Grid_Generator_System_empty 2212PPL_PROTO((ppl_const_Grid_Generator_System_t gs)); 2213 2214/*! \relates ppl_Grid_Generator_System_tag \brief 2215 Assigns to \p git a const iterator "pointing" to the beginning of 2216 the grid generator system \p gs. 2217*/ 2218int 2219ppl_Grid_Generator_System_begin 2220PPL_PROTO((ppl_const_Grid_Generator_System_t gs, 2221 ppl_Grid_Generator_System_const_iterator_t git)); 2222 2223/*! \relates ppl_Grid_Generator_System_tag \brief 2224 Assigns to \p git a const iterator "pointing" past the end of the 2225 grid generator system \p gs. 2226*/ 2227int 2228ppl_Grid_Generator_System_end 2229PPL_PROTO((ppl_const_Grid_Generator_System_t gs, 2230 ppl_Grid_Generator_System_const_iterator_t git)); 2231 2232/*! \relates ppl_Grid_Generator_System_tag \brief 2233 Returns a positive integer if \p gs is well formed, i.e., if it 2234 satisfies all its implementation invariants; returns 0 and perhaps 2235 makes some noise if \p gs is broken. Useful for debugging purposes. 2236*/ 2237int 2238ppl_Grid_Generator_System_OK PPL_PROTO((ppl_const_Grid_Generator_System_t gs)); 2239 2240/*@}*/ /* Functions that Do Not Modify the Grid Generator System */ 2241 2242/*! \brief \name Functions that May Modify the Grid Generator System */ 2243/*@{*/ 2244 2245/*! \relates ppl_Grid_Generator_System_tag \brief 2246 Removes all the generators from the grid generator system \p gs 2247 and sets its space dimension to 0. 2248*/ 2249int 2250ppl_Grid_Generator_System_clear PPL_PROTO((ppl_Grid_Generator_System_t gs)); 2251 2252/*! \relates ppl_Grid_Generator_System_tag \brief 2253 Inserts a copy of the grid generator \p g into \p gs; the space 2254 dimension is increased, if necessary. 2255*/ 2256int 2257ppl_Grid_Generator_System_insert_Grid_Generator 2258PPL_PROTO((ppl_Grid_Generator_System_t gs, 2259 ppl_const_Grid_Generator_t g)); 2260 2261/*@}*/ /* Functions that May Modify the Grid Generator System */ 2262 2263PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Grid_Generator_System) 2264 2265 2266/*! \brief \name Constructors, Assignment and Destructor */ 2267/*@{*/ 2268 2269/*! \relates ppl_Grid_Generator_System_const_iterator_tag \brief 2270 Builds a new `const iterator' and writes a handle to it at address 2271 \p pgit. 2272*/ 2273int 2274ppl_new_Grid_Generator_System_const_iterator 2275PPL_PROTO((ppl_Grid_Generator_System_const_iterator_t* pgit)); 2276 2277/*! \relates ppl_Grid_Generator_System_const_iterator_tag \brief 2278 Builds a const iterator that is a copy of \p git; writes a 2279 handle for the newly created const iterator at address \p pgit. 2280*/ 2281int 2282ppl_new_Grid_Generator_System_const_iterator_from_Grid_Generator_System_const_iterator 2283PPL_PROTO((ppl_Grid_Generator_System_const_iterator_t* pgit, 2284 ppl_const_Grid_Generator_System_const_iterator_t git)); 2285 2286/*! \relates ppl_Grid_Generator_System_const_iterator_tag \brief 2287 Assigns a copy of the const iterator \p src to \p dst. 2288*/ 2289int 2290ppl_assign_Grid_Generator_System_const_iterator_from_Grid_Generator_System_const_iterator 2291PPL_PROTO((ppl_Grid_Generator_System_const_iterator_t dst, 2292 ppl_const_Grid_Generator_System_const_iterator_t src)); 2293 2294/*! \relates ppl_Grid_Generator_System_const_iterator_tag \brief 2295 Invalidates the handle \p git: this makes sure the corresponding 2296 resources will eventually be released. 2297*/ 2298int 2299ppl_delete_Grid_Generator_System_const_iterator 2300PPL_PROTO((ppl_const_Grid_Generator_System_const_iterator_t git)); 2301 2302/*@}*/ /* Constructors, Assignment and Destructor */ 2303 2304/*! \brief \name Dereferencing, Incrementing and Equality Testing */ 2305/*@{*/ 2306 2307/*! \relates ppl_Grid_Generator_System_const_iterator_tag \brief 2308 Dereference \p git writing a const handle to the resulting 2309 grid generator at address \p pg. 2310*/ 2311int 2312ppl_Grid_Generator_System_const_iterator_dereference 2313PPL_PROTO((ppl_const_Grid_Generator_System_const_iterator_t git, 2314 ppl_const_Grid_Generator_t* pg)); 2315 2316/*! \relates ppl_Grid_Generator_System_const_iterator_tag \brief 2317 Increment \p git so that it "points" to the next grid generator. 2318*/ 2319int 2320ppl_Grid_Generator_System_const_iterator_increment 2321PPL_PROTO((ppl_Grid_Generator_System_const_iterator_t git)); 2322 2323/*! \relates ppl_Grid_Generator_System_const_iterator_tag \brief 2324 Returns a positive integer if the iterators corresponding to \p x and 2325 \p y are equal; returns 0 if they are different. 2326*/ 2327int 2328ppl_Grid_Generator_System_const_iterator_equal_test 2329PPL_PROTO((ppl_const_Grid_Generator_System_const_iterator_t x, 2330 ppl_const_Grid_Generator_System_const_iterator_t y)); 2331 2332/*@}*/ /* Dereferencing, Incrementing and Equality Testing */ 2333 2334 2335/*! \brief \ingroup Datatypes 2336 Code of the worst-case polynomial complexity class. 2337*/ 2338extern unsigned int PPL_COMPLEXITY_CLASS_POLYNOMIAL; 2339 2340/*! \brief \ingroup Datatypes 2341 Code of the worst-case exponential but typically polynomial 2342 complexity class. 2343*/ 2344extern unsigned int PPL_COMPLEXITY_CLASS_SIMPLEX; 2345 2346/*! \brief \ingroup Datatypes 2347 Code of the universal complexity class. 2348*/ 2349extern unsigned int PPL_COMPLEXITY_CLASS_ANY; 2350 2351/*! \brief \ingroup Datatypes 2352 Individual bit saying that the polyhedron and the set of points 2353 satisfying the constraint are disjoint. 2354*/ 2355extern unsigned int PPL_POLY_CON_RELATION_IS_DISJOINT; 2356 2357/*! \brief \ingroup Datatypes 2358 Individual bit saying that the polyhedron intersects the set of 2359 points satisfying the constraint, but it is not included in it. 2360*/ 2361extern unsigned int PPL_POLY_CON_RELATION_STRICTLY_INTERSECTS; 2362 2363/*! \brief \ingroup Datatypes 2364 Individual bit saying that the polyhedron is included in the set of 2365 points satisfying the constraint. 2366*/ 2367extern unsigned int PPL_POLY_CON_RELATION_IS_INCLUDED; 2368 2369/*! \brief \ingroup Datatypes 2370 Individual bit saying that the polyhedron is included in the set of 2371 points saturating the constraint. 2372*/ 2373extern unsigned int PPL_POLY_CON_RELATION_SATURATES; 2374 2375/*! \brief \ingroup Datatypes 2376 Individual bit saying that adding the generator would not change the 2377 polyhedron. 2378*/ 2379extern unsigned int PPL_POLY_GEN_RELATION_SUBSUMES; 2380 2381 2382/*! \brief \ingroup Datatypes 2383 Widths of bounded integer types. 2384*/ 2385enum ppl_enum_Bounded_Integer_Type_Width { 2386 /*! \hideinitializer 8 bits. */ 2387 PPL_BITS_8 = 8, 2388 /*! \hideinitializer 16 bits. */ 2389 PPL_BITS_16 = 16, 2390 /*! \hideinitializer 32 bits. */ 2391 PPL_BITS_32 = 32, 2392 /*! \hideinitializer 64 bits. */ 2393 PPL_BITS_64 = 64, 2394 /*! \hideinitializer 128 bits. */ 2395 PPL_BITS_128 = 128 2396}; 2397 2398/*! \brief \ingroup Datatypes 2399 Representation of bounded integer types. 2400*/ 2401enum ppl_enum_Bounded_Integer_Type_Representation { 2402 /*! Unsigned binary. */ 2403 PPL_UNSIGNED, 2404 /*! \brief 2405 Signed binary where negative values are represented by the two's 2406 complement of the absolute value. 2407 */ 2408 PPL_SIGNED_2_COMPLEMENT 2409}; 2410 2411/*! \brief \ingroup Datatypes 2412 Overflow behavior of bounded integer types. 2413*/ 2414enum ppl_enum_Bounded_Integer_Type_Overflow { 2415 /*! \brief 2416 On overflow, wrapping takes place. 2417 2418 This means that, for a \f$w\f$-bit bounded integer, the computation 2419 happens modulo \f$2^w\f$. 2420 */ 2421 PPL_OVERFLOW_WRAPS, 2422 2423 /*! \brief 2424 On overflow, the result is undefined. 2425 2426 This simply means that the result of the operation resulting in an 2427 overflow can take any value. 2428 2429 \note 2430 Even though something more serious can happen in the system 2431 being analyzed ---due to, e.g., C's undefined behavior---, here we 2432 are only concerned with the results of arithmetic operations. 2433 It is the responsibility of the analyzer to ensure that other 2434 manifestations of undefined behavior are conservatively approximated. 2435 */ 2436 PPL_OVERFLOW_UNDEFINED, 2437 2438 /*! \brief 2439 Overflow is impossible. 2440 2441 This is for the analysis of languages where overflow is trapped 2442 before it affects the state, for which, thus, any indication that 2443 an overflow may have affected the state is necessarily due to 2444 the imprecision of the analysis. 2445 */ 2446 PPL_OVERFLOW_IMPOSSIBLE 2447}; 2448 2449/*! \brief \name Symbolic Constants */ 2450/*@{*/ 2451 2452/*! \relates ppl_MIP_Problem_tag \brief 2453 Code of the "maximization" optimization mode. 2454*/ 2455extern int PPL_OPTIMIZATION_MODE_MAXIMIZATION; 2456 2457/*! \relates ppl_MIP_Problem_tag \brief 2458 Code of the "minimization" optimization mode. 2459*/ 2460extern int PPL_OPTIMIZATION_MODE_MINIMIZATION; 2461 2462/*! \relates ppl_MIP_Problem_tag \brief 2463 Code of the "unfeasible MIP problem" status. 2464*/ 2465extern int PPL_MIP_PROBLEM_STATUS_UNFEASIBLE; 2466 2467/*! \relates ppl_MIP_Problem_tag \brief 2468 Code of the "unbounded MIP problem" status. 2469*/ 2470extern int PPL_MIP_PROBLEM_STATUS_UNBOUNDED; 2471 2472/*! \relates ppl_MIP_Problem_tag \brief 2473 Code of the "optimized MIP problem" status. 2474*/ 2475extern int PPL_MIP_PROBLEM_STATUS_OPTIMIZED; 2476 2477/*! \relates ppl_MIP_Problem_tag \brief 2478 Code for the MIP problem's "pricing" control parameter name. 2479*/ 2480extern int PPL_MIP_PROBLEM_CONTROL_PARAMETER_NAME_PRICING; 2481 2482/*! \relates ppl_MIP_Problem_tag \brief 2483 Code of MIP problem's "textbook" pricing method. 2484*/ 2485extern int PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_TEXTBOOK; 2486 2487/*! \relates ppl_MIP_Problem_tag \brief 2488 Code of MIP problem's "exact steepest-edge" pricing method. 2489*/ 2490extern int PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_STEEPEST_EDGE_EXACT; 2491 2492/*! \relates ppl_MIP_Problem_tag \brief 2493 Code of MIP problem's "float steepest-edge" pricing method. 2494*/ 2495extern int PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_STEEPEST_EDGE_FLOAT; 2496 2497 2498 2499/*! \relates ppl_PIP_Problem_tag \brief 2500 Code of the "unfeasible PIP problem" status. 2501*/ 2502extern int PPL_PIP_PROBLEM_STATUS_UNFEASIBLE; 2503 2504/*! \relates ppl_PIP_Problem_tag \brief 2505 Code of the "optimized PIP problem" status. 2506*/ 2507extern int PPL_PIP_PROBLEM_STATUS_OPTIMIZED; 2508 2509/*! \relates ppl_PIP_Problem_tag \brief 2510 Code for the PIP problem's "cutting strategy" control parameter name. 2511*/ 2512extern int PPL_PIP_PROBLEM_CONTROL_PARAMETER_NAME_CUTTING_STRATEGY; 2513 2514/*! \relates ppl_PIP_Problem_tag \brief 2515 Code for the PIP problem's "pivot row strategy" control parameter name. 2516*/ 2517extern int PPL_PIP_PROBLEM_CONTROL_PARAMETER_NAME_PIVOT_ROW_STRATEGY; 2518 2519/*! \relates ppl_PIP_Problem_tag \brief 2520 Code of PIP problem's "first" cutting strategy. 2521*/ 2522extern int PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_FIRST; 2523 2524/*! \relates ppl_PIP_Problem_tag \brief 2525 Code of PIP problem's "deepest" cutting strategy. 2526*/ 2527extern int PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_DEEPEST; 2528 2529/*! \relates ppl_PIP_Problem_tag \brief 2530 Code of PIP problem's "all" cutting strategy. 2531*/ 2532extern int PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_ALL; 2533 2534/*! \relates ppl_PIP_Problem_tag \brief 2535 Code of PIP problem's "first" pivot row strategy. 2536*/ 2537extern int PPL_PIP_PROBLEM_CONTROL_PARAMETER_PIVOT_ROW_STRATEGY_FIRST; 2538 2539/*! \relates ppl_PIP_Problem_tag \brief 2540 Code of PIP problem's "max column" pivot row strategy. 2541*/ 2542extern int PPL_PIP_PROBLEM_CONTROL_PARAMETER_PIVOT_ROW_STRATEGY_MAX_COLUMN; 2543 2544/*@}*/ /* Symbolic Constants */ 2545 2546/*! \brief \name Constructors, Assignment and Destructor */ 2547/*@{*/ 2548 2549/*! \relates ppl_MIP_Problem_tag \brief 2550 Builds a trivial MIP problem of dimension \p d and writes a 2551 handle to it at address \p pmip. 2552*/ 2553int 2554ppl_new_MIP_Problem_from_space_dimension PPL_PROTO((ppl_MIP_Problem_t* pmip, 2555 ppl_dimension_type d)); 2556 2557/*! \relates ppl_MIP_Problem_tag \brief 2558 Builds a MIP problem of space dimension \p d having feasible region \p cs, 2559 objective function \p le and optimization mode \p m; writes a handle to 2560 it at address \p pmip. 2561*/ 2562int 2563ppl_new_MIP_Problem PPL_PROTO((ppl_MIP_Problem_t* pmip, 2564 ppl_dimension_type d, 2565 ppl_const_Constraint_System_t cs, 2566 ppl_const_Linear_Expression_t le, 2567 int m)); 2568 2569/*! \relates ppl_MIP_Problem_tag \brief 2570 Builds a MIP problem that is a copy of \p mip; writes a handle 2571 for the newly created system at address \p pmip. 2572*/ 2573int 2574ppl_new_MIP_Problem_from_MIP_Problem 2575PPL_PROTO((ppl_MIP_Problem_t* pmip, ppl_const_MIP_Problem_t mip)); 2576 2577/*! \relates ppl_MIP_Problem_tag \brief 2578 Assigns a copy of the MIP problem \p src to \p dst. 2579*/ 2580int 2581ppl_assign_MIP_Problem_from_MIP_Problem 2582PPL_PROTO((ppl_MIP_Problem_t dst, ppl_const_MIP_Problem_t src)); 2583 2584/*! \relates ppl_MIP_Problem_tag \brief 2585 Invalidates the handle \p mip: this makes sure the corresponding 2586 resources will eventually be released. 2587*/ 2588int 2589ppl_delete_MIP_Problem PPL_PROTO((ppl_const_MIP_Problem_t mip)); 2590 2591/*@}*/ /* Constructors, Assignment and Destructor for MIP_Problem */ 2592 2593/*! \brief \name Functions that Do Not Modify the MIP_Problem */ 2594/*@{*/ 2595 2596/*! \relates ppl_MIP_Problem_tag \brief 2597 Writes to \p m the dimension of the vector space enclosing \p mip. 2598*/ 2599int 2600ppl_MIP_Problem_space_dimension 2601PPL_PROTO((ppl_const_MIP_Problem_t mip, ppl_dimension_type* m)); 2602 2603/*! \relates ppl_MIP_Problem_tag \brief 2604 Writes to \p m the number of integer space dimensions of \p mip. 2605*/ 2606int 2607ppl_MIP_Problem_number_of_integer_space_dimensions 2608PPL_PROTO((ppl_const_MIP_Problem_t mip, ppl_dimension_type* m)); 2609 2610/*! \relates ppl_MIP_Problem_tag \brief 2611 Writes in the first positions of the array \p ds all the integer space 2612 dimensions of problem \p mip. If the array is not big enough to hold 2613 all of the integer space dimensions, the behavior is undefined. 2614*/ 2615int 2616ppl_MIP_Problem_integer_space_dimensions 2617PPL_PROTO((ppl_const_MIP_Problem_t mip, ppl_dimension_type ds[])); 2618 2619/*! \relates ppl_MIP_Problem_tag \brief 2620 Writes to \p m the number of constraints defining 2621 the feasible region of \p mip. 2622*/ 2623int 2624ppl_MIP_Problem_number_of_constraints PPL_PROTO((ppl_const_MIP_Problem_t mip, 2625 ppl_dimension_type* m)); 2626 2627/*! \relates ppl_MIP_Problem_tag \brief 2628 Writes at address \p pc a const handle to the \p i-th constraint 2629 defining the feasible region of the MIP problem \p mip 2630*/ 2631int 2632ppl_MIP_Problem_constraint_at_index PPL_PROTO((ppl_const_MIP_Problem_t mip, 2633 ppl_dimension_type i, 2634 ppl_const_Constraint_t* pc)); 2635 2636/*! \relates ppl_MIP_Problem_tag \brief 2637 Writes a const handle to the linear expression defining the 2638 objective function of the MIP problem \p mip at address \p ple. 2639*/ 2640int 2641ppl_MIP_Problem_objective_function 2642PPL_PROTO((ppl_const_MIP_Problem_t mip, ppl_const_Linear_Expression_t* ple)); 2643 2644/*! \relates ppl_MIP_Problem_tag \brief 2645 Returns the optimization mode of the MIP problem \p mip. 2646*/ 2647int 2648ppl_MIP_Problem_optimization_mode PPL_PROTO((ppl_const_MIP_Problem_t mip)); 2649 2650/*! \relates ppl_MIP_Problem_tag \brief 2651 Returns a positive integer if \p mip is well formed, i.e., if it 2652 satisfies all its implementation invariants; returns 0 and perhaps 2653 makes some noise if \p mip is broken. Useful for debugging purposes. 2654*/ 2655int 2656ppl_MIP_Problem_OK PPL_PROTO((ppl_const_MIP_Problem_t mip)); 2657 2658/*@}*/ /* Functions that Do Not Modify the MIP_Problem */ 2659 2660/*! \brief \name Functions that May Modify the MIP_Problem */ 2661/*@{*/ 2662 2663/*! \relates ppl_MIP_Problem_tag \brief 2664 Resets the MIP problem to be a trivial problem of space dimension 0. 2665*/ 2666int 2667ppl_MIP_Problem_clear PPL_PROTO((ppl_MIP_Problem_t mip)); 2668 2669/*! \relates ppl_MIP_Problem_tag \brief 2670 Adds \p d new dimensions to the space enclosing the MIP problem \p mip 2671 and to \p mip itself. 2672*/ 2673int 2674ppl_MIP_Problem_add_space_dimensions_and_embed 2675PPL_PROTO((ppl_MIP_Problem_t mip, ppl_dimension_type d)); 2676 2677/*! \relates ppl_MIP_Problem_tag \brief 2678 Sets the space dimensions that are specified in first \p n positions 2679 of the array \p ds to be integer dimensions of problem \p mip. 2680 The presence of duplicates in \p ds is a waste but an innocuous one. 2681*/ 2682int 2683ppl_MIP_Problem_add_to_integer_space_dimensions 2684PPL_PROTO((ppl_MIP_Problem_t mip, ppl_dimension_type ds[], size_t n)); 2685 2686/*! \relates ppl_MIP_Problem_tag \brief 2687 Modifies the feasible region of the MIP problem \p mip by adding a copy 2688 of the constraint \p c. 2689*/ 2690int 2691ppl_MIP_Problem_add_constraint PPL_PROTO((ppl_MIP_Problem_t mip, 2692 ppl_const_Constraint_t c)); 2693 2694/*! \relates ppl_MIP_Problem_tag \brief 2695 Modifies the feasible region of the MIP problem \p mip by adding a copy 2696 of the constraints in \p cs. 2697*/ 2698int 2699ppl_MIP_Problem_add_constraints PPL_PROTO((ppl_MIP_Problem_t mip, 2700 ppl_const_Constraint_System_t cs)); 2701 2702/*! \relates ppl_MIP_Problem_tag \brief 2703 Sets the objective function of the MIP problem \p mip to a copy of \p le. 2704*/ 2705int 2706ppl_MIP_Problem_set_objective_function 2707PPL_PROTO((ppl_MIP_Problem_t mip, ppl_const_Linear_Expression_t le)); 2708 2709/*! \relates ppl_MIP_Problem_tag \brief 2710 Sets the optimization mode of the MIP problem \p mip to \p mode. 2711*/ 2712int 2713ppl_MIP_Problem_set_optimization_mode PPL_PROTO((ppl_MIP_Problem_t mip, 2714 int mode)); 2715 2716/*@}*/ /* Functions that May Modify the MIP_Problem */ 2717 2718/*! \brief \name Computing the Solution of the MIP_Problem */ 2719/*@{*/ 2720 2721/*! \relates ppl_MIP_Problem_tag \brief 2722 Returns a positive integer if \p mip is satisfiable; returns 0 otherwise. 2723*/ 2724int 2725ppl_MIP_Problem_is_satisfiable PPL_PROTO((ppl_const_MIP_Problem_t mip)); 2726 2727/*! \relates ppl_MIP_Problem_tag \brief 2728 Solves the MIP problem \p mip, returning an exit status. 2729 2730 \return 2731 <CODE>PPL_MIP_PROBLEM_STATUS_UNFEASIBLE</CODE> if the MIP problem 2732 is not satisfiable; 2733 <CODE>PPL_MIP_PROBLEM_STATUS_UNBOUNDED</CODE> if the MIP problem 2734 is satisfiable but there is no finite bound to the value of 2735 the objective function; 2736 <CODE>PPL_MIP_PROBLEM_STATUS_OPTIMIZED</CODE> if the MIP problem 2737 admits an optimal solution. 2738*/ 2739int 2740ppl_MIP_Problem_solve PPL_PROTO((ppl_const_MIP_Problem_t mip)); 2741 2742/*! \relates ppl_MIP_Problem_tag \brief 2743 Evaluates the objective function of \p mip on point \p g. 2744 2745 \param mip 2746 The MIP problem defining the objective function; 2747 2748 \param g 2749 The generator on which the objective function will be evaluated; 2750 2751 \param num 2752 Will be assigned the numerator of the objective function value; 2753 2754 \param den 2755 Will be assigned the denominator of the objective function value; 2756*/ 2757int 2758ppl_MIP_Problem_evaluate_objective_function 2759PPL_PROTO((ppl_const_MIP_Problem_t mip, ppl_const_Generator_t g, 2760 ppl_Coefficient_t num, ppl_Coefficient_t den)); 2761 2762/*! \relates ppl_MIP_Problem_tag \brief 2763 Writes a const handle to a feasible point for the MIP problem \p mip 2764 at address \p pg. 2765*/ 2766int 2767ppl_MIP_Problem_feasible_point PPL_PROTO((ppl_const_MIP_Problem_t mip, 2768 ppl_const_Generator_t* pg)); 2769 2770/*! \relates ppl_MIP_Problem_tag \brief 2771 Writes a const handle to an optimizing point for the MIP problem \p mip 2772 at address \p pg. 2773*/ 2774int 2775ppl_MIP_Problem_optimizing_point PPL_PROTO((ppl_const_MIP_Problem_t mip, 2776 ppl_const_Generator_t* pg)); 2777 2778/*! \relates ppl_MIP_Problem_tag \brief 2779 Returns the optimal value for \p mip. 2780 2781 \param mip 2782 The MIP problem; 2783 2784 \param num 2785 Will be assigned the numerator of the optimal value; 2786 2787 \param den 2788 Will be assigned the denominator of the optimal value. 2789*/ 2790int 2791ppl_MIP_Problem_optimal_value 2792PPL_PROTO((ppl_const_MIP_Problem_t mip, 2793 ppl_Coefficient_t num, ppl_Coefficient_t den)); 2794 2795/*@}*/ /* Computing the Solution of the MIP_Problem */ 2796 2797/*! \brief \name Querying/Setting Control Parameters */ 2798/*@{*/ 2799 2800/*! \relates ppl_MIP_Problem_tag \brief 2801 Returns the value of control parameter \p name in problem \p mip. 2802*/ 2803int 2804ppl_MIP_Problem_get_control_parameter 2805PPL_PROTO((ppl_const_MIP_Problem_t mip, int name)); 2806 2807/*! \relates ppl_MIP_Problem_tag \brief 2808 Sets control parameter \p value in problem \p mip. 2809*/ 2810int 2811ppl_MIP_Problem_set_control_parameter 2812PPL_PROTO((ppl_MIP_Problem_t mip, int value)); 2813 2814/*! \relates ppl_MIP_Problem_tag \brief 2815 Writes into \p *sz the size in bytes of the memory occupied by \p mip. 2816*/ 2817int 2818ppl_MIP_Problem_total_memory_in_bytes 2819PPL_PROTO((ppl_const_MIP_Problem_t mip, size_t* sz)); 2820 2821/*! \relates ppl_MIP_Problem_tag \brief 2822 Writes into \p *sz the size in bytes of the memory managed by \p mip. 2823*/ 2824int 2825ppl_MIP_Problem_external_memory_in_bytes 2826PPL_PROTO((ppl_const_MIP_Problem_t mip, size_t* sz)); 2827 2828/*@}*/ /* Querying/Setting Control Parameters */ 2829 2830 2831/*! \brief \name Constructors, Assignment and Destructor */ 2832/*@{*/ 2833 2834/*! \relates ppl_PIP_Problem_tag \brief 2835 Builds a trivial PIP problem of dimension \p d and writes a 2836 handle to it at address \p ppip. 2837*/ 2838int 2839ppl_new_PIP_Problem_from_space_dimension PPL_PROTO((ppl_PIP_Problem_t* ppip, 2840 ppl_dimension_type d)); 2841 2842/*! \relates ppl_PIP_Problem_tag \brief 2843 Builds a PIP problem that is a copy of \p pip; writes a handle 2844 for the newly created problem at address \p ppip. 2845*/ 2846int 2847ppl_new_PIP_Problem_from_PIP_Problem 2848PPL_PROTO((ppl_PIP_Problem_t* ppip, ppl_const_PIP_Problem_t pip)); 2849 2850/*! \relates ppl_PIP_Problem_tag \brief 2851 Assigns a copy of the PIP problem \p src to \p dst. 2852*/ 2853int 2854ppl_assign_PIP_Problem_from_PIP_Problem 2855PPL_PROTO((ppl_PIP_Problem_t dst, ppl_const_PIP_Problem_t src)); 2856 2857/*! \relates ppl_PIP_Problem_tag \brief 2858 Builds a PIP problem having space dimension \p d from the sequence 2859 of constraints in the range \f$[\mathrm{first}, \mathrm{last})\f$; 2860 the \p n dimensions whose indices occur in \p ds are interpreted as 2861 parameters. 2862*/ 2863int 2864ppl_new_PIP_Problem_from_constraints 2865PPL_PROTO((ppl_PIP_Problem_t* ppip, 2866 ppl_dimension_type d, 2867 ppl_Constraint_System_const_iterator_t first, 2868 ppl_Constraint_System_const_iterator_t last, 2869 size_t n, 2870 ppl_dimension_type ds[])); 2871 2872/*! \relates ppl_PIP_Problem_tag \brief 2873 Invalidates the handle \p pip: this makes sure the corresponding 2874 resources will eventually be released. 2875*/ 2876int 2877ppl_delete_PIP_Problem PPL_PROTO((ppl_const_PIP_Problem_t pip)); 2878 2879/*@}*/ /* Constructors, Assignment and Destructor for PIP_Problem */ 2880 2881/*! \brief \name Functions that Do Not Modify the PIP_Problem */ 2882/*@{*/ 2883 2884/*! \relates ppl_PIP_Problem_tag \brief 2885 Writes to \p m the dimension of the vector space enclosing \p pip. 2886 2887 The vector space dimensions includes both the problem variables 2888 and the problem parameters, but they do not include the artificial 2889 parameters. 2890*/ 2891int 2892ppl_PIP_Problem_space_dimension 2893PPL_PROTO((ppl_const_PIP_Problem_t pip, ppl_dimension_type* m)); 2894 2895/*! \relates ppl_PIP_Problem_tag \brief 2896 Writes to \p m the number of parameter space dimensions of \p pip. 2897*/ 2898int 2899ppl_PIP_Problem_number_of_parameter_space_dimensions 2900PPL_PROTO((ppl_const_PIP_Problem_t pip, ppl_dimension_type* m)); 2901 2902/*! \relates ppl_PIP_Problem_tag \brief 2903 Writes in the first positions of the array \p ds all the parameter space 2904 dimensions of problem \p pip. If the array is not big enough to hold 2905 all of the parameter space dimensions, the behavior is undefined. 2906*/ 2907int 2908ppl_PIP_Problem_parameter_space_dimensions 2909PPL_PROTO((ppl_const_PIP_Problem_t pip, ppl_dimension_type ds[])); 2910 2911/*! \relates ppl_PIP_Problem_tag \brief 2912 Writes into \p *pd the big parameter dimension of PIP problem \p pip. 2913*/ 2914int 2915ppl_PIP_Problem_get_big_parameter_dimension 2916PPL_PROTO((ppl_const_PIP_Problem_t pip, ppl_dimension_type* pd)); 2917 2918/*! \relates ppl_PIP_Problem_tag \brief 2919 Writes to \p m the number of constraints defining 2920 the feasible region of \p pip. 2921*/ 2922int 2923ppl_PIP_Problem_number_of_constraints PPL_PROTO((ppl_const_PIP_Problem_t pip, 2924 ppl_dimension_type* m)); 2925 2926/*! \relates ppl_PIP_Problem_tag \brief 2927 Writes at address \p pc a const handle to the \p i-th constraint 2928 defining the feasible region of the PIP problem \p pip 2929*/ 2930int 2931ppl_PIP_Problem_constraint_at_index PPL_PROTO((ppl_const_PIP_Problem_t pip, 2932 ppl_dimension_type i, 2933 ppl_const_Constraint_t* pc)); 2934 2935/*! \relates ppl_PIP_Problem_tag \brief 2936 Writes into \p *sz the size in bytes of the memory occupied by \p pip. 2937*/ 2938int 2939ppl_PIP_Problem_total_memory_in_bytes 2940PPL_PROTO((ppl_const_PIP_Problem_t pip, size_t* sz)); 2941 2942/*! \relates ppl_PIP_Problem_tag \brief 2943 Writes into \p *sz the size in bytes of the memory managed by \p pip. 2944*/ 2945int 2946ppl_PIP_Problem_external_memory_in_bytes 2947PPL_PROTO((ppl_const_PIP_Problem_t pip, size_t* sz)); 2948 2949/*! \relates ppl_PIP_Problem_tag \brief 2950 Returns a positive integer if \p pip is well formed, i.e., if it 2951 satisfies all its implementation invariants; returns 0 and perhaps 2952 makes some noise if \p pip is broken. Useful for debugging purposes. 2953*/ 2954int 2955ppl_PIP_Problem_OK PPL_PROTO((ppl_const_PIP_Problem_t pip)); 2956 2957/*@}*/ /* Functions that Do Not Modify the PIP_Problem */ 2958 2959/*! \brief \name Functions that May Modify the PIP_Problem */ 2960/*@{*/ 2961 2962/*! \relates ppl_PIP_Problem_tag \brief 2963 Resets the PIP problem to be a trivial problem of space dimension 0. 2964*/ 2965int 2966ppl_PIP_Problem_clear PPL_PROTO((ppl_PIP_Problem_t pip)); 2967 2968/*! \relates ppl_PIP_Problem_tag \brief 2969 Adds <CODE>pip_vars + pip_params</CODE> new space dimensions 2970 and embeds the PIP problem \p pip in the new vector space. 2971 2972 \param pip 2973 The PIP problem to be embedded in the new vector space. 2974 2975 \param pip_vars 2976 The number of space dimensions to add that are interpreted as 2977 PIP problem variables (i.e., non parameters). These are added 2978 \e before adding the \p pip_params parameters. 2979 2980 \param pip_params 2981 The number of space dimensions to add that are interpreted as 2982 PIP problem parameters. These are added \e after having added the 2983 \p pip_vars problem variables. 2984 2985 The new space dimensions will be those having the highest indexes 2986 in the new PIP problem; they are initially unconstrained. 2987*/ 2988int 2989ppl_PIP_Problem_add_space_dimensions_and_embed 2990PPL_PROTO((ppl_PIP_Problem_t pip, 2991 ppl_dimension_type pip_vars, 2992 ppl_dimension_type pip_params)); 2993 2994/*! \relates ppl_PIP_Problem_tag \brief 2995 Sets the space dimensions that are specified in first \p n positions 2996 of the array \p ds to be parameter dimensions of problem \p pip. 2997 The presence of duplicates in \p ds is a waste but an innocuous one. 2998*/ 2999int 3000ppl_PIP_Problem_add_to_parameter_space_dimensions 3001PPL_PROTO((ppl_PIP_Problem_t pip, ppl_dimension_type ds[], size_t n)); 3002 3003/*! \relates ppl_PIP_Problem_tag \brief 3004 Sets the big parameter dimension of PIP problem \p pip to \p d. 3005*/ 3006int 3007ppl_PIP_Problem_set_big_parameter_dimension 3008PPL_PROTO((ppl_PIP_Problem_t pip, ppl_dimension_type d)); 3009 3010/*! \relates ppl_PIP_Problem_tag \brief 3011 Modifies the feasible region of the PIP problem \p pip by adding a copy 3012 of the constraint \p c. 3013*/ 3014int 3015ppl_PIP_Problem_add_constraint PPL_PROTO((ppl_PIP_Problem_t pip, 3016 ppl_const_Constraint_t c)); 3017 3018/*! \relates ppl_PIP_Problem_tag \brief 3019 Modifies the feasible region of the PIP problem \p pip by adding a copy 3020 of the constraints in \p cs. 3021*/ 3022int 3023ppl_PIP_Problem_add_constraints PPL_PROTO((ppl_PIP_Problem_t pip, 3024 ppl_const_Constraint_System_t cs)); 3025 3026/*@}*/ /* Functions that May Modify the PIP_Problem */ 3027 3028/*! \brief \name Computing and Printing the Solution of the PIP_Problem */ 3029/*@{*/ 3030 3031/*! \relates ppl_PIP_Problem_tag \brief 3032 Returns a positive integer if \p pip is satisfiable and an optimal 3033 solution can be found; returns 0 otherwise. 3034*/ 3035int 3036ppl_PIP_Problem_is_satisfiable PPL_PROTO((ppl_const_PIP_Problem_t pip)); 3037 3038/*! \relates ppl_PIP_Problem_tag \brief 3039 Solves the PIP problem \p pip, returning an exit status. 3040 3041 \return 3042 <CODE>PPL_PIP_PROBLEM_STATUS_UNFEASIBLE</CODE> if the PIP problem 3043 is not satisfiable; 3044 <CODE>PPL_PIP_PROBLEM_STATUS_OPTIMIZED</CODE> if the PIP problem 3045 admits an optimal solution. 3046*/ 3047int 3048ppl_PIP_Problem_solve PPL_PROTO((ppl_const_PIP_Problem_t pip)); 3049 3050/*! \relates ppl_PIP_Problem_tag \brief 3051 Writes to \p pip_tree a solution for \p pip, if it exists. 3052*/ 3053int 3054ppl_PIP_Problem_solution PPL_PROTO((ppl_const_PIP_Problem_t pip, 3055 ppl_const_PIP_Tree_Node_t* pip_tree)); 3056 3057/*! \relates ppl_PIP_Problem_tag \brief 3058 Writes to \p pip_tree an optimizing solution for \p pip, if it exists. 3059*/ 3060int 3061ppl_PIP_Problem_optimizing_solution 3062PPL_PROTO((ppl_const_PIP_Problem_t pip, 3063 ppl_const_PIP_Tree_Node_t* pip_tree)); 3064 3065/*@}*/ /* Computing the Solution of the PIP_Problem */ 3066 3067/*! \brief \name Querying/Setting Control Parameters */ 3068/*@{*/ 3069 3070/*! \relates ppl_PIP_Problem_tag \brief 3071 Returns the value of control parameter \p name in problem \p pip. 3072*/ 3073int 3074ppl_PIP_Problem_get_control_parameter 3075PPL_PROTO((ppl_const_PIP_Problem_t pip, int name)); 3076 3077/*! \relates ppl_PIP_Problem_tag \brief 3078 Sets control parameter \p value in problem \p pip. 3079*/ 3080int 3081ppl_PIP_Problem_set_control_parameter 3082PPL_PROTO((ppl_PIP_Problem_t pip, int value)); 3083 3084/*@}*/ /* Querying/Setting Control Parameters */ 3085 3086 3087/*! \relates ppl_PIP_Tree_Node_tag \brief 3088 Writes to \p dpip_tree the solution node if \p spip_tree is 3089 a solution node, and 0 otherwise. 3090*/ 3091int 3092ppl_PIP_Tree_Node_as_solution 3093PPL_PROTO((ppl_const_PIP_Tree_Node_t spip_tree, 3094 ppl_const_PIP_Solution_Node_t* dpip_tree)); 3095 3096/*! \relates ppl_PIP_Tree_Node_tag \brief 3097 Writes to \p dpip_tree the decision node if \p spip_tree 3098 is a decision node, and 0 otherwise. 3099*/ 3100int 3101ppl_PIP_Tree_Node_as_decision 3102PPL_PROTO((ppl_const_PIP_Tree_Node_t spip_tree, 3103 ppl_const_PIP_Decision_Node_t* dpip_tree)); 3104 3105/*! \relates ppl_PIP_Tree_Node_tag \brief 3106 Writes to \p pcs the local system of parameter constraints 3107 at the pip tree node \p pip_tree. 3108*/ 3109int 3110ppl_PIP_Tree_Node_get_constraints 3111PPL_PROTO((ppl_const_PIP_Tree_Node_t pip_tree, 3112 ppl_const_Constraint_System_t* pcs)); 3113 3114/*! \relates ppl_PIP_Tree_Node_tag \brief 3115 Returns a positive integer if \p pip_tree is well formed, i.e., if it 3116 satisfies all its implementation invariants; returns 0 and perhaps 3117 makes some noise if \p pip_tree is broken. Useful for debugging purposes. 3118*/ 3119int 3120ppl_PIP_Tree_Node_OK PPL_PROTO((ppl_const_PIP_Tree_Node_t pip)); 3121 3122/*! \relates ppl_PIP_Tree_Node_tag \brief 3123 Writes to \p m the number of elements in the artificial parameter sequence 3124 in the pip tree node \p pip_tree. 3125*/ 3126int 3127ppl_PIP_Tree_Node_number_of_artificials 3128PPL_PROTO((ppl_const_PIP_Tree_Node_t pip_tree, 3129 ppl_dimension_type* m)); 3130 3131/*! \relates ppl_PIP_Tree_Node_tag \brief 3132 Assigns to \p pit a const iterator "pointing" to the beginning of 3133 the artificial parameter sequence in the pip tree node \p pip_tree. 3134*/ 3135int 3136ppl_PIP_Tree_Node_begin 3137PPL_PROTO((ppl_const_PIP_Tree_Node_t pip_tree, 3138 ppl_Artificial_Parameter_Sequence_const_iterator_t pit)); 3139 3140/*! \relates ppl_PIP_Tree_Node_tag \brief 3141 Assigns to \p pit a const iterator "pointing" to the end of 3142 the artificial parameter sequence in the pip tree node \p pip_tree. 3143*/ 3144int 3145ppl_PIP_Tree_Node_end 3146PPL_PROTO((ppl_const_PIP_Tree_Node_t pip_tree, 3147 ppl_Artificial_Parameter_Sequence_const_iterator_t pit)); 3148 3149/*! \relates ppl_PIP_Solution_Node_tag \brief 3150 Writes to \p le a const pointer to the parametric expression of the values 3151 of variable \p var in solution node \p pip_sol. 3152 3153 The linear expression assigned to \p le will only refer to 3154 (problem or artificial) parameters. 3155 3156 \param pip_sol 3157 The solution tree node. 3158 3159 \param var 3160 The variable which is queried about. 3161 3162 \param le 3163 The returned expression for variable \p var. 3164 3165 \return PPL_ERROR_INVALID_ARGUMENT 3166 Returned if \p var is dimension-incompatible with \p *this 3167 or if \p var is a problem parameter. 3168*/ 3169int 3170ppl_PIP_Solution_Node_get_parametric_values 3171PPL_PROTO((ppl_const_PIP_Solution_Node_t pip_sol, 3172 ppl_dimension_type var, 3173 ppl_const_Linear_Expression_t* le)); 3174 3175/*! \relates ppl_PIP_Decision_Node_tag \brief 3176 Writes to \p pip_tree a const pointer to either the true branch 3177 (if \p b is not zero) or the false branch (if \p b is zero) of \p pip_dec. 3178*/ 3179int 3180ppl_PIP_Decision_Node_get_child_node 3181PPL_PROTO((ppl_const_PIP_Decision_Node_t pip_dec, 3182 int b, 3183 ppl_const_PIP_Tree_Node_t* pip_tree)); 3184 3185/*! \relates ppl_Artificial_Parameter_tag \brief 3186 Copies into \p le the linear expression in artificial parameter \p ap. 3187*/ 3188int 3189ppl_Artificial_Parameter_get_Linear_Expression 3190PPL_PROTO((ppl_const_Artificial_Parameter_t ap, 3191 ppl_Linear_Expression_t le)); 3192 3193/*! \relates ppl_Artificial_Parameter_tag \brief 3194 Copies into \p n the coefficient of variable \p var in 3195 the artificial parameter \p ap. 3196*/ 3197int 3198ppl_Artificial_Parameter_coefficient 3199PPL_PROTO((ppl_const_Artificial_Parameter_t ap, 3200 ppl_dimension_type var, 3201 ppl_Coefficient_t n)); 3202 3203/*! \relates ppl_Artificial_Parameter_tag \brief 3204 Copies into \p n the inhomogeneous term of the artificial 3205 parameter \p ap. 3206*/ 3207int 3208ppl_Artificial_Parameter_get_inhomogeneous_term 3209PPL_PROTO((ppl_const_Artificial_Parameter_t ap, 3210 ppl_Coefficient_t n)); 3211 3212/*! \relates ppl_Artificial_Parameter_tag \brief 3213 Copies into \p n the denominator in artificial parameter \p ap. 3214*/ 3215int 3216ppl_Artificial_Parameter_denominator 3217PPL_PROTO((ppl_const_Artificial_Parameter_t ap, 3218 ppl_Coefficient_t n)); 3219 3220/*! \brief \name Constructors, Assignment and Destructor */ 3221/*@{*/ 3222 3223/*! \relates ppl_Artificial_Parameter_Sequence_const_iterator_tag \brief 3224 Builds a new `const iterator' and writes a handle to it at address 3225 \p papit. 3226*/ 3227int 3228ppl_new_Artificial_Parameter_Sequence_const_iterator 3229PPL_PROTO((ppl_Artificial_Parameter_Sequence_const_iterator_t* papit)); 3230 3231/*! \relates ppl_Artificial_Parameter_Sequence_const_iterator_tag \brief 3232 Builds a const iterator that is a copy of \p apit; writes a 3233 handle for the newly created const iterator at address \p papit. 3234*/ 3235int 3236ppl_new_Artificial_Parameter_Sequence_const_iterator_from_Artificial_Parameter_Sequence_const_iterator 3237PPL_PROTO((ppl_Artificial_Parameter_Sequence_const_iterator_t* papit, 3238 ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit)); 3239 3240/*! \relates ppl_Artificial_Parameter_Sequence_const_iterator_tag \brief 3241 Assigns a copy of the const iterator \p src to \p dst. 3242*/ 3243int 3244ppl_assign_Artificial_Parameter_Sequence_const_iterator_from_Artificial_Parameter_Sequence_const_iterator 3245PPL_PROTO((ppl_Artificial_Parameter_Sequence_const_iterator_t dst, 3246 ppl_const_Artificial_Parameter_Sequence_const_iterator_t src)); 3247 3248/*! \relates ppl_Artificial_Parameter_Sequence_const_iterator_tag \brief 3249 Invalidates the handle \p apit: this makes sure the corresponding 3250 resources will eventually be released. 3251*/ 3252int 3253ppl_delete_Artificial_Parameter_Sequence_const_iterator 3254PPL_PROTO((ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit)); 3255 3256/*@}*/ /* Constructors, Assignment and Destructor */ 3257 3258/*! \brief \name Dereferencing, Incrementing and Equality Testing */ 3259/*@{*/ 3260 3261/*! \relates ppl_Artificial_Parameter_Sequence_const_iterator_tag \brief 3262 Dereference \p apit writing a const handle to the resulting 3263 artificial parameter at address \p pap. 3264*/ 3265int 3266ppl_Artificial_Parameter_Sequence_const_iterator_dereference 3267PPL_PROTO((ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit, 3268 ppl_const_Artificial_Parameter_t* pap)); 3269 3270/*! \relates ppl_Artificial_Parameter_Sequence_const_iterator_tag \brief 3271 Increment \p apit so that it "points" to the next artificial parameter. 3272*/ 3273int 3274ppl_Artificial_Parameter_Sequence_const_iterator_increment 3275PPL_PROTO((ppl_Artificial_Parameter_Sequence_const_iterator_t apit)); 3276 3277/*! \relates ppl_Artificial_Parameter_Sequence_const_iterator_tag \brief 3278 Returns a positive integer if the iterators corresponding to \p x and 3279 \p y are equal; returns 0 if they are different. 3280*/ 3281int 3282ppl_Artificial_Parameter_Sequence_const_iterator_equal_test 3283PPL_PROTO((ppl_const_Artificial_Parameter_Sequence_const_iterator_t x, 3284 ppl_const_Artificial_Parameter_Sequence_const_iterator_t y)); 3285 3286/*@}*/ /* Dereferencing, Incrementing and Equality Testing */ 3287 3288PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(MIP_Problem) 3289 3290PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(PIP_Problem) 3291 3292PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(PIP_Tree_Node) 3293 3294PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(PIP_Solution_Node) 3295 3296PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(PIP_Decision_Node) 3297 3298PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(Artificial_Parameter) 3299 3300/* Automatically generated from PPL source file ../../interfaces/C/ppl_c_domains.h line 1. */ 3301/*C interface code: header file. 3302*/ 3303 3304PPL_TYPE_DECLARATION(Polyhedron) 3305PPL_TYPE_DECLARATION(Grid) 3306PPL_TYPE_DECLARATION(Rational_Box) 3307PPL_TYPE_DECLARATION(BD_Shape_mpz_class) 3308PPL_TYPE_DECLARATION(BD_Shape_mpq_class) 3309PPL_TYPE_DECLARATION(Octagonal_Shape_mpz_class) 3310PPL_TYPE_DECLARATION(Octagonal_Shape_mpq_class) 3311PPL_TYPE_DECLARATION(Constraints_Product_C_Polyhedron_Grid) 3312PPL_TYPE_DECLARATION(Pointset_Powerset_C_Polyhedron) 3313PPL_TYPE_DECLARATION(Pointset_Powerset_NNC_Polyhedron) 3314PPL_TYPE_DECLARATION(Double_Box) 3315PPL_TYPE_DECLARATION(BD_Shape_double) 3316PPL_TYPE_DECLARATION(Octagonal_Shape_double) 3317 3318/*! \interface ppl_Polyhedron_tag 3319 \brief Types and functions for ppl_Polyhedron_tag 3320*/ 3321 3322/*! \relates ppl_Polyhedron_tag */ 3323int 3324ppl_delete_Polyhedron 3325PPL_PROTO((ppl_const_Polyhedron_t ph)); 3326 3327 3328 3329 3330/*! \relates ppl_Polyhedron_tag */ 3331int 3332ppl_new_C_Polyhedron_from_space_dimension 3333PPL_PROTO((ppl_Polyhedron_t* pph, ppl_dimension_type d, int empty)); 3334 3335/*! \relates ppl_Polyhedron_tag */ 3336int 3337ppl_new_NNC_Polyhedron_from_space_dimension 3338PPL_PROTO((ppl_Polyhedron_t* pph, ppl_dimension_type d, int empty)); 3339 3340 3341 3342 3343 3344/*! \relates ppl_Polyhedron_tag */ 3345int 3346ppl_new_C_Polyhedron_from_C_Polyhedron 3347PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Polyhedron_t ph)); 3348 3349/*! \relates ppl_Polyhedron_tag */ 3350int 3351ppl_new_NNC_Polyhedron_from_C_Polyhedron 3352PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Polyhedron_t ph)); 3353 3354/*! \relates ppl_Polyhedron_tag */ 3355int 3356ppl_new_C_Polyhedron_from_NNC_Polyhedron 3357PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Polyhedron_t ph)); 3358 3359/*! \relates ppl_Polyhedron_tag */ 3360int 3361ppl_new_NNC_Polyhedron_from_NNC_Polyhedron 3362PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Polyhedron_t ph)); 3363 3364/*! \relates ppl_Polyhedron_tag */ 3365int 3366ppl_new_C_Polyhedron_from_Grid 3367PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Grid_t ph)); 3368 3369/*! \relates ppl_Polyhedron_tag */ 3370int 3371ppl_new_NNC_Polyhedron_from_Grid 3372PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Grid_t ph)); 3373 3374/*! \relates ppl_Polyhedron_tag */ 3375int 3376ppl_new_C_Polyhedron_from_Rational_Box 3377PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Rational_Box_t ph)); 3378 3379/*! \relates ppl_Polyhedron_tag */ 3380int 3381ppl_new_NNC_Polyhedron_from_Rational_Box 3382PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Rational_Box_t ph)); 3383 3384/*! \relates ppl_Polyhedron_tag */ 3385int 3386ppl_new_C_Polyhedron_from_BD_Shape_mpz_class 3387PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_BD_Shape_mpz_class_t ph)); 3388 3389/*! \relates ppl_Polyhedron_tag */ 3390int 3391ppl_new_NNC_Polyhedron_from_BD_Shape_mpz_class 3392PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_BD_Shape_mpz_class_t ph)); 3393 3394/*! \relates ppl_Polyhedron_tag */ 3395int 3396ppl_new_C_Polyhedron_from_BD_Shape_mpq_class 3397PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_BD_Shape_mpq_class_t ph)); 3398 3399/*! \relates ppl_Polyhedron_tag */ 3400int 3401ppl_new_NNC_Polyhedron_from_BD_Shape_mpq_class 3402PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_BD_Shape_mpq_class_t ph)); 3403 3404/*! \relates ppl_Polyhedron_tag */ 3405int 3406ppl_new_C_Polyhedron_from_Octagonal_Shape_mpz_class 3407PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph)); 3408 3409/*! \relates ppl_Polyhedron_tag */ 3410int 3411ppl_new_NNC_Polyhedron_from_Octagonal_Shape_mpz_class 3412PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph)); 3413 3414/*! \relates ppl_Polyhedron_tag */ 3415int 3416ppl_new_C_Polyhedron_from_Octagonal_Shape_mpq_class 3417PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph)); 3418 3419/*! \relates ppl_Polyhedron_tag */ 3420int 3421ppl_new_NNC_Polyhedron_from_Octagonal_Shape_mpq_class 3422PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph)); 3423 3424/*! \relates ppl_Polyhedron_tag */ 3425int 3426ppl_new_C_Polyhedron_from_Double_Box 3427PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Double_Box_t ph)); 3428 3429/*! \relates ppl_Polyhedron_tag */ 3430int 3431ppl_new_NNC_Polyhedron_from_Double_Box 3432PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Double_Box_t ph)); 3433 3434/*! \relates ppl_Polyhedron_tag */ 3435int 3436ppl_new_C_Polyhedron_from_BD_Shape_double 3437PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_BD_Shape_double_t ph)); 3438 3439/*! \relates ppl_Polyhedron_tag */ 3440int 3441ppl_new_NNC_Polyhedron_from_BD_Shape_double 3442PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_BD_Shape_double_t ph)); 3443 3444/*! \relates ppl_Polyhedron_tag */ 3445int 3446ppl_new_C_Polyhedron_from_Octagonal_Shape_double 3447PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Octagonal_Shape_double_t ph)); 3448 3449/*! \relates ppl_Polyhedron_tag */ 3450int 3451ppl_new_NNC_Polyhedron_from_Octagonal_Shape_double 3452PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Octagonal_Shape_double_t ph)); 3453 3454 3455 3456 3457 3458 3459/*! \relates ppl_Polyhedron_tag */ 3460int 3461ppl_new_C_Polyhedron_from_C_Polyhedron_with_complexity 3462PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 3463 3464/*! \relates ppl_Polyhedron_tag */ 3465int 3466ppl_new_NNC_Polyhedron_from_C_Polyhedron_with_complexity 3467PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 3468 3469/*! \relates ppl_Polyhedron_tag */ 3470int 3471ppl_new_C_Polyhedron_from_NNC_Polyhedron_with_complexity 3472PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 3473 3474/*! \relates ppl_Polyhedron_tag */ 3475int 3476ppl_new_NNC_Polyhedron_from_NNC_Polyhedron_with_complexity 3477PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 3478 3479/*! \relates ppl_Polyhedron_tag */ 3480int 3481ppl_new_C_Polyhedron_from_Grid_with_complexity 3482PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Grid_t ph, int complexity)); 3483 3484/*! \relates ppl_Polyhedron_tag */ 3485int 3486ppl_new_NNC_Polyhedron_from_Grid_with_complexity 3487PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Grid_t ph, int complexity)); 3488 3489/*! \relates ppl_Polyhedron_tag */ 3490int 3491ppl_new_C_Polyhedron_from_Rational_Box_with_complexity 3492PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Rational_Box_t ph, int complexity)); 3493 3494/*! \relates ppl_Polyhedron_tag */ 3495int 3496ppl_new_NNC_Polyhedron_from_Rational_Box_with_complexity 3497PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Rational_Box_t ph, int complexity)); 3498 3499/*! \relates ppl_Polyhedron_tag */ 3500int 3501ppl_new_C_Polyhedron_from_BD_Shape_mpz_class_with_complexity 3502PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_BD_Shape_mpz_class_t ph, int complexity)); 3503 3504/*! \relates ppl_Polyhedron_tag */ 3505int 3506ppl_new_NNC_Polyhedron_from_BD_Shape_mpz_class_with_complexity 3507PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_BD_Shape_mpz_class_t ph, int complexity)); 3508 3509/*! \relates ppl_Polyhedron_tag */ 3510int 3511ppl_new_C_Polyhedron_from_BD_Shape_mpq_class_with_complexity 3512PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_BD_Shape_mpq_class_t ph, int complexity)); 3513 3514/*! \relates ppl_Polyhedron_tag */ 3515int 3516ppl_new_NNC_Polyhedron_from_BD_Shape_mpq_class_with_complexity 3517PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_BD_Shape_mpq_class_t ph, int complexity)); 3518 3519/*! \relates ppl_Polyhedron_tag */ 3520int 3521ppl_new_C_Polyhedron_from_Octagonal_Shape_mpz_class_with_complexity 3522PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph, int complexity)); 3523 3524/*! \relates ppl_Polyhedron_tag */ 3525int 3526ppl_new_NNC_Polyhedron_from_Octagonal_Shape_mpz_class_with_complexity 3527PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph, int complexity)); 3528 3529/*! \relates ppl_Polyhedron_tag */ 3530int 3531ppl_new_C_Polyhedron_from_Octagonal_Shape_mpq_class_with_complexity 3532PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph, int complexity)); 3533 3534/*! \relates ppl_Polyhedron_tag */ 3535int 3536ppl_new_NNC_Polyhedron_from_Octagonal_Shape_mpq_class_with_complexity 3537PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph, int complexity)); 3538 3539/*! \relates ppl_Polyhedron_tag */ 3540int 3541ppl_new_C_Polyhedron_from_Double_Box_with_complexity 3542PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Double_Box_t ph, int complexity)); 3543 3544/*! \relates ppl_Polyhedron_tag */ 3545int 3546ppl_new_NNC_Polyhedron_from_Double_Box_with_complexity 3547PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Double_Box_t ph, int complexity)); 3548 3549/*! \relates ppl_Polyhedron_tag */ 3550int 3551ppl_new_C_Polyhedron_from_BD_Shape_double_with_complexity 3552PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_BD_Shape_double_t ph, int complexity)); 3553 3554/*! \relates ppl_Polyhedron_tag */ 3555int 3556ppl_new_NNC_Polyhedron_from_BD_Shape_double_with_complexity 3557PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_BD_Shape_double_t ph, int complexity)); 3558 3559/*! \relates ppl_Polyhedron_tag */ 3560int 3561ppl_new_C_Polyhedron_from_Octagonal_Shape_double_with_complexity 3562PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Octagonal_Shape_double_t ph, int complexity)); 3563 3564/*! \relates ppl_Polyhedron_tag */ 3565int 3566ppl_new_NNC_Polyhedron_from_Octagonal_Shape_double_with_complexity 3567PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Octagonal_Shape_double_t ph, int complexity)); 3568 3569 3570 3571 3572 3573 3574/*! \relates ppl_Polyhedron_tag */ 3575int 3576ppl_new_C_Polyhedron_from_Constraint_System 3577PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Constraint_System_t cs)); 3578 3579/*! \relates ppl_Polyhedron_tag */ 3580int 3581ppl_new_NNC_Polyhedron_from_Constraint_System 3582PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Constraint_System_t cs)); 3583 3584/*! \relates ppl_Polyhedron_tag */ 3585int 3586ppl_new_C_Polyhedron_from_Congruence_System 3587PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Congruence_System_t cs)); 3588 3589/*! \relates ppl_Polyhedron_tag */ 3590int 3591ppl_new_NNC_Polyhedron_from_Congruence_System 3592PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Congruence_System_t cs)); 3593 3594/*! \relates ppl_Polyhedron_tag */ 3595int 3596ppl_new_C_Polyhedron_from_Generator_System 3597PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Generator_System_t cs)); 3598 3599/*! \relates ppl_Polyhedron_tag */ 3600int 3601ppl_new_NNC_Polyhedron_from_Generator_System 3602PPL_PROTO((ppl_Polyhedron_t* pph, ppl_const_Generator_System_t cs)); 3603 3604 3605 3606 3607 3608 3609 3610 3611/*! \relates ppl_Polyhedron_tag */ 3612int 3613ppl_Polyhedron_space_dimension 3614PPL_PROTO((ppl_const_Polyhedron_t ph, ppl_dimension_type* m)); 3615 3616/*! \relates ppl_Polyhedron_tag */ 3617int 3618ppl_Polyhedron_affine_dimension 3619PPL_PROTO((ppl_const_Polyhedron_t ph, ppl_dimension_type* m)); 3620 3621 3622 3623 3624 3625/*! \relates ppl_Polyhedron_tag */ 3626int 3627ppl_Polyhedron_relation_with_Constraint 3628PPL_PROTO((ppl_const_Polyhedron_t ph, 3629 ppl_const_Constraint_t c)); 3630 3631/*! \relates ppl_Polyhedron_tag */ 3632int 3633ppl_Polyhedron_relation_with_Generator 3634PPL_PROTO((ppl_const_Polyhedron_t ph, 3635 ppl_const_Generator_t c)); 3636 3637/*! \relates ppl_Polyhedron_tag */ 3638int 3639ppl_Polyhedron_relation_with_Congruence 3640PPL_PROTO((ppl_const_Polyhedron_t ph, 3641 ppl_const_Congruence_t c)); 3642 3643 3644 3645 3646 3647/*! \relates ppl_Polyhedron_tag */ 3648int 3649ppl_Polyhedron_get_constraints 3650PPL_PROTO((ppl_const_Polyhedron_t ph, 3651 ppl_const_Constraint_System_t* pcs)); 3652 3653/*! \relates ppl_Polyhedron_tag */ 3654int 3655ppl_Polyhedron_get_congruences 3656PPL_PROTO((ppl_const_Polyhedron_t ph, 3657 ppl_const_Congruence_System_t* pcs)); 3658 3659/*! \relates ppl_Polyhedron_tag */ 3660int 3661ppl_Polyhedron_get_generators 3662PPL_PROTO((ppl_const_Polyhedron_t ph, 3663 ppl_const_Generator_System_t* pcs)); 3664 3665 3666 3667 3668 3669/*! \relates ppl_Polyhedron_tag */ 3670int 3671ppl_Polyhedron_get_minimized_constraints 3672PPL_PROTO((ppl_const_Polyhedron_t ph, 3673 ppl_const_Constraint_System_t* pcs)); 3674 3675/*! \relates ppl_Polyhedron_tag */ 3676int 3677ppl_Polyhedron_get_minimized_congruences 3678PPL_PROTO((ppl_const_Polyhedron_t ph, 3679 ppl_const_Congruence_System_t* pcs)); 3680 3681/*! \relates ppl_Polyhedron_tag */ 3682int 3683ppl_Polyhedron_get_minimized_generators 3684PPL_PROTO((ppl_const_Polyhedron_t ph, 3685 ppl_const_Generator_System_t* pcs)); 3686 3687 3688 3689 3690 3691/*! \relates ppl_Polyhedron_tag */ 3692int 3693ppl_Polyhedron_is_empty 3694PPL_PROTO((ppl_const_Polyhedron_t ph)); 3695 3696/*! \relates ppl_Polyhedron_tag */ 3697int 3698ppl_Polyhedron_is_universe 3699PPL_PROTO((ppl_const_Polyhedron_t ph)); 3700 3701/*! \relates ppl_Polyhedron_tag */ 3702int 3703ppl_Polyhedron_is_bounded 3704PPL_PROTO((ppl_const_Polyhedron_t ph)); 3705 3706/*! \relates ppl_Polyhedron_tag */ 3707int 3708ppl_Polyhedron_contains_integer_point 3709PPL_PROTO((ppl_const_Polyhedron_t ph)); 3710 3711/*! \relates ppl_Polyhedron_tag */ 3712int 3713ppl_Polyhedron_is_topologically_closed 3714PPL_PROTO((ppl_const_Polyhedron_t ph)); 3715 3716/*! \relates ppl_Polyhedron_tag */ 3717int 3718ppl_Polyhedron_is_discrete 3719PPL_PROTO((ppl_const_Polyhedron_t ph)); 3720 3721 3722 3723 3724 3725/*! \relates ppl_Polyhedron_tag */ 3726int 3727ppl_Polyhedron_topological_closure_assign 3728PPL_PROTO((ppl_Polyhedron_t ph)); 3729 3730 3731 3732 3733 3734/*! \relates ppl_Polyhedron_tag */ 3735int 3736ppl_Polyhedron_bounds_from_above 3737PPL_PROTO((ppl_const_Polyhedron_t ph, 3738 ppl_const_Linear_Expression_t le)); 3739 3740/*! \relates ppl_Polyhedron_tag */ 3741int 3742ppl_Polyhedron_bounds_from_below 3743PPL_PROTO((ppl_const_Polyhedron_t ph, 3744 ppl_const_Linear_Expression_t le)); 3745 3746 3747 3748 3749 3750/*! \relates ppl_Polyhedron_tag */ 3751int 3752ppl_Polyhedron_maximize 3753PPL_PROTO((ppl_const_Polyhedron_t ph, 3754 ppl_const_Linear_Expression_t le, 3755 ppl_Coefficient_t ext_n, 3756 ppl_Coefficient_t ext_d, 3757 int* poptimum)); 3758 3759/*! \relates ppl_Polyhedron_tag */ 3760int 3761ppl_Polyhedron_minimize 3762PPL_PROTO((ppl_const_Polyhedron_t ph, 3763 ppl_const_Linear_Expression_t le, 3764 ppl_Coefficient_t ext_n, 3765 ppl_Coefficient_t ext_d, 3766 int* poptimum)); 3767 3768 3769 3770 3771 3772/*! \relates ppl_Polyhedron_tag */ 3773int 3774ppl_Polyhedron_maximize_with_point 3775PPL_PROTO((ppl_const_Polyhedron_t ph, 3776 ppl_const_Linear_Expression_t le, 3777 ppl_Coefficient_t ext_n, 3778 ppl_Coefficient_t ext_d, 3779 int* poptimum, 3780 ppl_Generator_t point)); 3781 3782/*! \relates ppl_Polyhedron_tag */ 3783int 3784ppl_Polyhedron_minimize_with_point 3785PPL_PROTO((ppl_const_Polyhedron_t ph, 3786 ppl_const_Linear_Expression_t le, 3787 ppl_Coefficient_t ext_n, 3788 ppl_Coefficient_t ext_d, 3789 int* poptimum, 3790 ppl_Generator_t point)); 3791 3792 3793 3794 3795 3796/*! \relates ppl_Polyhedron_tag */ 3797int 3798ppl_Polyhedron_frequency 3799PPL_PROTO((ppl_const_Polyhedron_t ph, 3800 ppl_const_Linear_Expression_t le, 3801 ppl_Coefficient_t ext_fn, 3802 ppl_Coefficient_t ext_fd, 3803 ppl_Coefficient_t ext_vn, 3804 ppl_Coefficient_t ext_vd)); 3805 3806 3807 3808 3809/*! \relates ppl_Polyhedron_tag */ 3810int 3811ppl_Polyhedron_contains_Polyhedron 3812PPL_PROTO((ppl_const_Polyhedron_t x, 3813 ppl_const_Polyhedron_t y)); 3814 3815/*! \relates ppl_Polyhedron_tag */ 3816int 3817ppl_Polyhedron_strictly_contains_Polyhedron 3818PPL_PROTO((ppl_const_Polyhedron_t x, 3819 ppl_const_Polyhedron_t y)); 3820 3821/*! \relates ppl_Polyhedron_tag */ 3822int 3823ppl_Polyhedron_is_disjoint_from_Polyhedron 3824PPL_PROTO((ppl_const_Polyhedron_t x, 3825 ppl_const_Polyhedron_t y)); 3826 3827 3828 3829 3830 3831/*! \relates ppl_Polyhedron_tag */ 3832int 3833ppl_Polyhedron_equals_Polyhedron 3834PPL_PROTO((ppl_const_Polyhedron_t x, 3835 ppl_const_Polyhedron_t y)); 3836 3837 3838 3839 3840/*! \relates ppl_Polyhedron_tag */ 3841int 3842ppl_Polyhedron_OK 3843PPL_PROTO((ppl_const_Polyhedron_t ph)); 3844 3845 3846 3847 3848/*! \relates ppl_Polyhedron_tag */ 3849int 3850ppl_Polyhedron_add_constraint 3851PPL_PROTO((ppl_Polyhedron_t ph, 3852 ppl_const_Constraint_t c)); 3853 3854/*! \relates ppl_Polyhedron_tag */ 3855int 3856ppl_Polyhedron_add_congruence 3857PPL_PROTO((ppl_Polyhedron_t ph, 3858 ppl_const_Congruence_t c)); 3859 3860/*! \relates ppl_Polyhedron_tag */ 3861int 3862ppl_Polyhedron_add_generator 3863PPL_PROTO((ppl_Polyhedron_t ph, 3864 ppl_const_Generator_t c)); 3865 3866 3867 3868 3869 3870/*! \relates ppl_Polyhedron_tag */ 3871int 3872ppl_Polyhedron_add_constraints 3873PPL_PROTO((ppl_Polyhedron_t ph, 3874 ppl_const_Constraint_System_t cs)); 3875 3876/*! \relates ppl_Polyhedron_tag */ 3877int 3878ppl_Polyhedron_add_congruences 3879PPL_PROTO((ppl_Polyhedron_t ph, 3880 ppl_const_Congruence_System_t cs)); 3881 3882/*! \relates ppl_Polyhedron_tag */ 3883int 3884ppl_Polyhedron_add_generators 3885PPL_PROTO((ppl_Polyhedron_t ph, 3886 ppl_const_Generator_System_t cs)); 3887 3888 3889 3890 3891 3892/*! \relates ppl_Polyhedron_tag */ 3893int 3894ppl_Polyhedron_refine_with_constraint 3895PPL_PROTO((ppl_Polyhedron_t ph, 3896 ppl_const_Constraint_t c)); 3897 3898/*! \relates ppl_Polyhedron_tag */ 3899int 3900ppl_Polyhedron_refine_with_congruence 3901PPL_PROTO((ppl_Polyhedron_t ph, 3902 ppl_const_Congruence_t c)); 3903 3904 3905 3906 3907 3908/*! \relates ppl_Polyhedron_tag */ 3909int 3910ppl_Polyhedron_refine_with_constraints 3911PPL_PROTO((ppl_Polyhedron_t ph, 3912 ppl_const_Constraint_System_t cs)); 3913 3914/*! \relates ppl_Polyhedron_tag */ 3915int 3916ppl_Polyhedron_refine_with_congruences 3917PPL_PROTO((ppl_Polyhedron_t ph, 3918 ppl_const_Congruence_System_t cs)); 3919 3920 3921 3922 3923 3924/*! \relates ppl_Polyhedron_tag */ 3925int 3926ppl_Polyhedron_intersection_assign 3927PPL_PROTO((ppl_Polyhedron_t x, 3928 ppl_const_Polyhedron_t y)); 3929 3930/*! \relates ppl_Polyhedron_tag */ 3931int 3932ppl_Polyhedron_upper_bound_assign 3933PPL_PROTO((ppl_Polyhedron_t x, 3934 ppl_const_Polyhedron_t y)); 3935 3936/*! \relates ppl_Polyhedron_tag */ 3937int 3938ppl_Polyhedron_difference_assign 3939PPL_PROTO((ppl_Polyhedron_t x, 3940 ppl_const_Polyhedron_t y)); 3941 3942/*! \relates ppl_Polyhedron_tag */ 3943int 3944ppl_Polyhedron_concatenate_assign 3945PPL_PROTO((ppl_Polyhedron_t x, 3946 ppl_const_Polyhedron_t y)); 3947 3948/*! \relates ppl_Polyhedron_tag */ 3949int 3950ppl_Polyhedron_time_elapse_assign 3951PPL_PROTO((ppl_Polyhedron_t x, 3952 ppl_const_Polyhedron_t y)); 3953 3954/*! \relates ppl_Polyhedron_tag */ 3955int 3956ppl_Polyhedron_poly_hull_assign 3957PPL_PROTO((ppl_Polyhedron_t x, 3958 ppl_const_Polyhedron_t y)); 3959 3960/*! \relates ppl_Polyhedron_tag */ 3961int 3962ppl_Polyhedron_poly_difference_assign 3963PPL_PROTO((ppl_Polyhedron_t x, 3964 ppl_const_Polyhedron_t y)); 3965 3966 3967 3968 3969 3970/*! \relates ppl_Polyhedron_tag */ 3971int 3972ppl_Polyhedron_upper_bound_assign_if_exact 3973PPL_PROTO((ppl_Polyhedron_t x, 3974 ppl_const_Polyhedron_t y)); 3975 3976/*! \relates ppl_Polyhedron_tag */ 3977int 3978ppl_Polyhedron_poly_hull_assign_if_exact 3979PPL_PROTO((ppl_Polyhedron_t x, 3980 ppl_const_Polyhedron_t y)); 3981 3982 3983 3984 3985 3986/*! \relates ppl_Polyhedron_tag */ 3987int 3988ppl_Polyhedron_positive_time_elapse_assign 3989PPL_PROTO((ppl_Polyhedron_t x, 3990 ppl_const_Polyhedron_t y)); 3991 3992 3993 3994 3995/*! \relates ppl_Polyhedron_tag */ 3996int 3997ppl_Polyhedron_simplify_using_context_assign 3998PPL_PROTO((ppl_Polyhedron_t x, 3999 ppl_const_Polyhedron_t y)); 4000 4001 4002 4003 4004/*! \relates ppl_Polyhedron_tag */ 4005int 4006ppl_Polyhedron_constrains 4007PPL_PROTO((ppl_Polyhedron_t ph, 4008 ppl_dimension_type var)); 4009 4010 4011 4012 4013/*! \relates ppl_Polyhedron_tag */ 4014int 4015ppl_Polyhedron_unconstrain_space_dimension 4016PPL_PROTO((ppl_Polyhedron_t ph, 4017 ppl_dimension_type var)); 4018 4019 4020 4021 4022/*! \relates ppl_Polyhedron_tag */ 4023int 4024ppl_Polyhedron_unconstrain_space_dimensions 4025PPL_PROTO((ppl_Polyhedron_t ph, 4026 ppl_dimension_type ds[], 4027 size_t n)); 4028 4029 4030 4031 4032/*! \relates ppl_Polyhedron_tag */ 4033int 4034ppl_Polyhedron_affine_image 4035PPL_PROTO((ppl_Polyhedron_t ph, 4036 ppl_dimension_type var, 4037 ppl_const_Linear_Expression_t le, 4038 ppl_const_Coefficient_t d)); 4039 4040/*! \relates ppl_Polyhedron_tag */ 4041int 4042ppl_Polyhedron_affine_preimage 4043PPL_PROTO((ppl_Polyhedron_t ph, 4044 ppl_dimension_type var, 4045 ppl_const_Linear_Expression_t le, 4046 ppl_const_Coefficient_t d)); 4047 4048 4049 4050 4051 4052/*! \relates ppl_Polyhedron_tag */ 4053int 4054ppl_Polyhedron_bounded_affine_image 4055PPL_PROTO((ppl_Polyhedron_t ph, 4056 ppl_dimension_type var, 4057 ppl_const_Linear_Expression_t lb, 4058 ppl_const_Linear_Expression_t ub, 4059 ppl_const_Coefficient_t d)); 4060 4061/*! \relates ppl_Polyhedron_tag */ 4062int 4063ppl_Polyhedron_bounded_affine_preimage 4064PPL_PROTO((ppl_Polyhedron_t ph, 4065 ppl_dimension_type var, 4066 ppl_const_Linear_Expression_t lb, 4067 ppl_const_Linear_Expression_t ub, 4068 ppl_const_Coefficient_t d)); 4069 4070 4071 4072 4073 4074/*! \relates ppl_Polyhedron_tag */ 4075int 4076ppl_Polyhedron_generalized_affine_image 4077PPL_PROTO((ppl_Polyhedron_t ph, 4078 ppl_dimension_type var, 4079 enum ppl_enum_Constraint_Type relsym, 4080 ppl_const_Linear_Expression_t le, 4081 ppl_const_Coefficient_t d)); 4082 4083/*! \relates ppl_Polyhedron_tag */ 4084int 4085ppl_Polyhedron_generalized_affine_preimage 4086PPL_PROTO((ppl_Polyhedron_t ph, 4087 ppl_dimension_type var, 4088 enum ppl_enum_Constraint_Type relsym, 4089 ppl_const_Linear_Expression_t le, 4090 ppl_const_Coefficient_t d)); 4091 4092 4093 4094 4095 4096/*! \relates ppl_Polyhedron_tag */ 4097int 4098ppl_Polyhedron_generalized_affine_image_lhs_rhs 4099PPL_PROTO((ppl_Polyhedron_t ph, 4100 ppl_const_Linear_Expression_t lhs, 4101 enum ppl_enum_Constraint_Type relsym, 4102 ppl_const_Linear_Expression_t rhs)); 4103 4104/*! \relates ppl_Polyhedron_tag */ 4105int 4106ppl_Polyhedron_generalized_affine_preimage_lhs_rhs 4107PPL_PROTO((ppl_Polyhedron_t ph, 4108 ppl_const_Linear_Expression_t lhs, 4109 enum ppl_enum_Constraint_Type relsym, 4110 ppl_const_Linear_Expression_t rhs)); 4111 4112 4113 4114 4115 4116/*! \relates ppl_Polyhedron_tag */ 4117int 4118ppl_Polyhedron_add_space_dimensions_and_embed 4119PPL_PROTO((ppl_Polyhedron_t ph, 4120 ppl_dimension_type d)); 4121 4122/*! \relates ppl_Polyhedron_tag */ 4123int 4124ppl_Polyhedron_add_space_dimensions_and_project 4125PPL_PROTO((ppl_Polyhedron_t ph, 4126 ppl_dimension_type d)); 4127 4128 4129 4130 4131 4132/*! \relates ppl_Polyhedron_tag */ 4133int 4134ppl_Polyhedron_remove_space_dimensions 4135PPL_PROTO((ppl_Polyhedron_t ph, 4136 ppl_dimension_type ds[], 4137 size_t n)); 4138 4139 4140 4141 4142/*! \relates ppl_Polyhedron_tag */ 4143int 4144ppl_Polyhedron_remove_higher_space_dimensions 4145PPL_PROTO((ppl_Polyhedron_t ph, 4146 ppl_dimension_type d)); 4147 4148 4149 4150 4151/*! \relates ppl_Polyhedron_tag */ 4152int 4153ppl_Polyhedron_expand_space_dimension 4154PPL_PROTO((ppl_Polyhedron_t ph, 4155 ppl_dimension_type d, 4156 ppl_dimension_type m)); 4157 4158 4159 4160 4161/*! \relates ppl_Polyhedron_tag */ 4162int 4163ppl_Polyhedron_fold_space_dimensions 4164PPL_PROTO((ppl_Polyhedron_t ph, 4165 ppl_dimension_type ds[], 4166 size_t n, 4167 ppl_dimension_type d)); 4168 4169 4170 4171 4172/*! \relates ppl_Polyhedron_tag */ 4173int 4174ppl_Polyhedron_map_space_dimensions 4175PPL_PROTO((ppl_Polyhedron_t ph, 4176 ppl_dimension_type maps[], 4177 size_t n)); 4178 4179 4180 4181 4182/*! \relates ppl_Polyhedron_tag */ 4183int 4184ppl_Polyhedron_drop_some_non_integer_points 4185PPL_PROTO((ppl_Polyhedron_t ph, 4186 int complexity)); 4187 4188 4189 4190 4191/*! \relates ppl_Polyhedron_tag */ 4192int 4193ppl_Polyhedron_drop_some_non_integer_points_2 4194PPL_PROTO((ppl_Polyhedron_t ph, 4195 ppl_dimension_type ds[], 4196 size_t n, 4197 int complexity)); 4198 4199 4200 4201 4202 4203 4204/*! \relates ppl_Polyhedron_tag */ 4205int 4206ppl_Polyhedron_external_memory_in_bytes 4207PPL_PROTO((ppl_const_Polyhedron_t ps, 4208 size_t* sz)); 4209 4210/*! \relates ppl_Polyhedron_tag */ 4211int 4212ppl_Polyhedron_total_memory_in_bytes 4213PPL_PROTO((ppl_const_Polyhedron_t ps, 4214 size_t* sz)); 4215 4216 4217 4218 4219 4220/*! \relates ppl_Polyhedron_tag */ 4221int 4222ppl_Polyhedron_BHRZ03_widening_assign_with_tokens 4223PPL_PROTO((ppl_Polyhedron_t x, 4224 ppl_const_Polyhedron_t y, 4225 unsigned* tp)); 4226 4227/*! \relates ppl_Polyhedron_tag */ 4228int 4229ppl_Polyhedron_H79_widening_assign_with_tokens 4230PPL_PROTO((ppl_Polyhedron_t x, 4231 ppl_const_Polyhedron_t y, 4232 unsigned* tp)); 4233 4234 4235 4236 4237 4238/*! \relates ppl_Polyhedron_tag */ 4239int 4240ppl_Polyhedron_BHRZ03_widening_assign 4241PPL_PROTO((ppl_Polyhedron_t x, 4242 ppl_const_Polyhedron_t y)); 4243 4244/*! \relates ppl_Polyhedron_tag */ 4245int 4246ppl_Polyhedron_H79_widening_assign 4247PPL_PROTO((ppl_Polyhedron_t x, 4248 ppl_const_Polyhedron_t y)); 4249 4250 4251 4252 4253 4254/*! \relates ppl_Polyhedron_tag */ 4255int 4256ppl_Polyhedron_widening_assign_with_tokens 4257PPL_PROTO((ppl_Polyhedron_t x, 4258 ppl_const_Polyhedron_t y, 4259 unsigned* tp)); 4260 4261 4262 4263 4264/*! \relates ppl_Polyhedron_tag */ 4265int 4266ppl_Polyhedron_widening_assign 4267PPL_PROTO((ppl_Polyhedron_t x, 4268 ppl_const_Polyhedron_t y)); 4269 4270 4271 4272 4273/*! \relates ppl_Polyhedron_tag */ 4274int 4275ppl_Polyhedron_limited_BHRZ03_extrapolation_assign_with_tokens 4276PPL_PROTO((ppl_Polyhedron_t x, 4277 ppl_const_Polyhedron_t y, 4278 ppl_const_Constraint_System_t cs, 4279 unsigned* tp)); 4280 4281/*! \relates ppl_Polyhedron_tag */ 4282int 4283ppl_Polyhedron_bounded_BHRZ03_extrapolation_assign_with_tokens 4284PPL_PROTO((ppl_Polyhedron_t x, 4285 ppl_const_Polyhedron_t y, 4286 ppl_const_Constraint_System_t cs, 4287 unsigned* tp)); 4288 4289/*! \relates ppl_Polyhedron_tag */ 4290int 4291ppl_Polyhedron_limited_H79_extrapolation_assign_with_tokens 4292PPL_PROTO((ppl_Polyhedron_t x, 4293 ppl_const_Polyhedron_t y, 4294 ppl_const_Constraint_System_t cs, 4295 unsigned* tp)); 4296 4297/*! \relates ppl_Polyhedron_tag */ 4298int 4299ppl_Polyhedron_bounded_H79_extrapolation_assign_with_tokens 4300PPL_PROTO((ppl_Polyhedron_t x, 4301 ppl_const_Polyhedron_t y, 4302 ppl_const_Constraint_System_t cs, 4303 unsigned* tp)); 4304 4305 4306 4307 4308 4309 4310 4311/*! \relates ppl_Polyhedron_tag */ 4312int 4313ppl_Polyhedron_limited_BHRZ03_extrapolation_assign 4314PPL_PROTO((ppl_Polyhedron_t x, 4315 ppl_const_Polyhedron_t y, 4316 ppl_const_Constraint_System_t cs)); 4317 4318/*! \relates ppl_Polyhedron_tag */ 4319int 4320ppl_Polyhedron_bounded_BHRZ03_extrapolation_assign 4321PPL_PROTO((ppl_Polyhedron_t x, 4322 ppl_const_Polyhedron_t y, 4323 ppl_const_Constraint_System_t cs)); 4324 4325/*! \relates ppl_Polyhedron_tag */ 4326int 4327ppl_Polyhedron_limited_H79_extrapolation_assign 4328PPL_PROTO((ppl_Polyhedron_t x, 4329 ppl_const_Polyhedron_t y, 4330 ppl_const_Constraint_System_t cs)); 4331 4332/*! \relates ppl_Polyhedron_tag */ 4333int 4334ppl_Polyhedron_bounded_H79_extrapolation_assign 4335PPL_PROTO((ppl_Polyhedron_t x, 4336 ppl_const_Polyhedron_t y, 4337 ppl_const_Constraint_System_t cs)); 4338 4339 4340 4341 4342 4343 4344 4345 4346 4347 4348 4349/*! \relates ppl_Polyhedron_tag */ 4350int 4351ppl_Polyhedron_linear_partition 4352PPL_PROTO((ppl_const_Polyhedron_t x, 4353 ppl_const_Polyhedron_t y, 4354 ppl_Polyhedron_t* p_inters, 4355 ppl_Pointset_Powerset_NNC_Polyhedron_t* p_rest)); 4356 4357 4358 4359 4360 4361/*! \relates ppl_Polyhedron_tag */ 4362int 4363ppl_Polyhedron_wrap_assign 4364PPL_PROTO((ppl_Polyhedron_t ph, 4365 ppl_dimension_type ds[], 4366 size_t n, 4367 enum ppl_enum_Bounded_Integer_Type_Width w, 4368 enum ppl_enum_Bounded_Integer_Type_Representation r, 4369 enum ppl_enum_Bounded_Integer_Type_Overflow o, 4370 const ppl_const_Constraint_System_t* pcs, 4371 unsigned complexity_threshold, 4372 int wrap_individually)); 4373 4374 4375 4376/*! \relates ppl_Polyhedron_tag */ 4377int 4378ppl_new_C_Polyhedron_recycle_Constraint_System 4379PPL_PROTO((ppl_Polyhedron_t* pph, ppl_Constraint_System_t cs)); 4380 4381/*! \relates ppl_Polyhedron_tag */ 4382int 4383ppl_new_NNC_Polyhedron_recycle_Constraint_System 4384PPL_PROTO((ppl_Polyhedron_t* pph, ppl_Constraint_System_t cs)); 4385 4386/*! \relates ppl_Polyhedron_tag */ 4387int 4388ppl_new_C_Polyhedron_recycle_Congruence_System 4389PPL_PROTO((ppl_Polyhedron_t* pph, ppl_Congruence_System_t cs)); 4390 4391/*! \relates ppl_Polyhedron_tag */ 4392int 4393ppl_new_NNC_Polyhedron_recycle_Congruence_System 4394PPL_PROTO((ppl_Polyhedron_t* pph, ppl_Congruence_System_t cs)); 4395 4396/*! \relates ppl_Polyhedron_tag */ 4397int 4398ppl_new_C_Polyhedron_recycle_Generator_System 4399PPL_PROTO((ppl_Polyhedron_t* pph, ppl_Generator_System_t cs)); 4400 4401/*! \relates ppl_Polyhedron_tag */ 4402int 4403ppl_new_NNC_Polyhedron_recycle_Generator_System 4404PPL_PROTO((ppl_Polyhedron_t* pph, ppl_Generator_System_t cs)); 4405 4406 4407 4408 4409 4410 4411/*! \relates ppl_Polyhedron_tag */ 4412int 4413ppl_assign_C_Polyhedron_from_C_Polyhedron 4414PPL_PROTO((ppl_Polyhedron_t dst, ppl_const_Polyhedron_t src)); 4415 4416/*! \relates ppl_Polyhedron_tag */ 4417int 4418ppl_assign_NNC_Polyhedron_from_NNC_Polyhedron 4419PPL_PROTO((ppl_Polyhedron_t dst, ppl_const_Polyhedron_t src)); 4420 4421 4422 4423 4424 4425/*! \relates ppl_Polyhedron_tag */ 4426int 4427ppl_Polyhedron_add_recycled_constraints 4428PPL_PROTO((ppl_Polyhedron_t ph, 4429 ppl_Constraint_System_t cs)); 4430 4431/*! \relates ppl_Polyhedron_tag */ 4432int 4433ppl_Polyhedron_add_recycled_congruences 4434PPL_PROTO((ppl_Polyhedron_t ph, 4435 ppl_Congruence_System_t cs)); 4436 4437/*! \relates ppl_Polyhedron_tag */ 4438int 4439ppl_Polyhedron_add_recycled_generators 4440PPL_PROTO((ppl_Polyhedron_t ph, 4441 ppl_Generator_System_t cs)); 4442 4443 4444 4445 4446 4447/*! \relates ppl_Polyhedron_tag */ 4448int 4449ppl_termination_test_MS_C_Polyhedron 4450PPL_PROTO((ppl_const_Polyhedron_t pset)); 4451 4452/*! \relates ppl_Polyhedron_tag */ 4453int 4454ppl_termination_test_PR_C_Polyhedron 4455PPL_PROTO((ppl_const_Polyhedron_t pset)); 4456 4457/*! \relates ppl_Polyhedron_tag */ 4458int 4459ppl_termination_test_MS_NNC_Polyhedron 4460PPL_PROTO((ppl_const_Polyhedron_t pset)); 4461 4462/*! \relates ppl_Polyhedron_tag */ 4463int 4464ppl_termination_test_PR_NNC_Polyhedron 4465PPL_PROTO((ppl_const_Polyhedron_t pset)); 4466 4467 4468 4469 4470 4471 4472/*! \relates ppl_Polyhedron_tag */ 4473int 4474ppl_one_affine_ranking_function_MS_C_Polyhedron 4475PPL_PROTO((ppl_const_Polyhedron_t pset, 4476 ppl_Generator_t point)); 4477 4478/*! \relates ppl_Polyhedron_tag */ 4479int 4480ppl_one_affine_ranking_function_PR_C_Polyhedron 4481PPL_PROTO((ppl_const_Polyhedron_t pset, 4482 ppl_Generator_t point)); 4483 4484/*! \relates ppl_Polyhedron_tag */ 4485int 4486ppl_one_affine_ranking_function_MS_NNC_Polyhedron 4487PPL_PROTO((ppl_const_Polyhedron_t pset, 4488 ppl_Generator_t point)); 4489 4490/*! \relates ppl_Polyhedron_tag */ 4491int 4492ppl_one_affine_ranking_function_PR_NNC_Polyhedron 4493PPL_PROTO((ppl_const_Polyhedron_t pset, 4494 ppl_Generator_t point)); 4495 4496 4497 4498 4499 4500 4501/*! \relates ppl_Polyhedron_tag */ 4502int 4503ppl_all_affine_ranking_functions_MS_C_Polyhedron 4504PPL_PROTO((ppl_const_Polyhedron_t pset, 4505 ppl_Polyhedron_t ph)); 4506 4507/*! \relates ppl_Polyhedron_tag */ 4508int 4509ppl_all_affine_ranking_functions_PR_C_Polyhedron 4510PPL_PROTO((ppl_const_Polyhedron_t pset, 4511 ppl_Polyhedron_t ph)); 4512 4513/*! \relates ppl_Polyhedron_tag */ 4514int 4515ppl_all_affine_ranking_functions_MS_NNC_Polyhedron 4516PPL_PROTO((ppl_const_Polyhedron_t pset, 4517 ppl_Polyhedron_t ph)); 4518 4519/*! \relates ppl_Polyhedron_tag */ 4520int 4521ppl_all_affine_ranking_functions_PR_NNC_Polyhedron 4522PPL_PROTO((ppl_const_Polyhedron_t pset, 4523 ppl_Polyhedron_t ph)); 4524 4525 4526 4527 4528 4529 4530/*! \relates ppl_Polyhedron_tag */ 4531int 4532ppl_termination_test_MS_C_Polyhedron_2 4533PPL_PROTO((ppl_const_Polyhedron_t pset_before, ppl_const_Polyhedron_t pset_after)); 4534 4535/*! \relates ppl_Polyhedron_tag */ 4536int 4537ppl_termination_test_PR_C_Polyhedron_2 4538PPL_PROTO((ppl_const_Polyhedron_t pset_before, ppl_const_Polyhedron_t pset_after)); 4539 4540/*! \relates ppl_Polyhedron_tag */ 4541int 4542ppl_termination_test_MS_NNC_Polyhedron_2 4543PPL_PROTO((ppl_const_Polyhedron_t pset_before, ppl_const_Polyhedron_t pset_after)); 4544 4545/*! \relates ppl_Polyhedron_tag */ 4546int 4547ppl_termination_test_PR_NNC_Polyhedron_2 4548PPL_PROTO((ppl_const_Polyhedron_t pset_before, ppl_const_Polyhedron_t pset_after)); 4549 4550 4551 4552 4553 4554 4555/*! \relates ppl_Polyhedron_tag */ 4556int 4557ppl_one_affine_ranking_function_MS_C_Polyhedron_2 4558PPL_PROTO((ppl_const_Polyhedron_t pset_before, 4559 ppl_const_Polyhedron_t pset_after, 4560 ppl_Generator_t point)); 4561 4562/*! \relates ppl_Polyhedron_tag */ 4563int 4564ppl_one_affine_ranking_function_PR_C_Polyhedron_2 4565PPL_PROTO((ppl_const_Polyhedron_t pset_before, 4566 ppl_const_Polyhedron_t pset_after, 4567 ppl_Generator_t point)); 4568 4569/*! \relates ppl_Polyhedron_tag */ 4570int 4571ppl_one_affine_ranking_function_MS_NNC_Polyhedron_2 4572PPL_PROTO((ppl_const_Polyhedron_t pset_before, 4573 ppl_const_Polyhedron_t pset_after, 4574 ppl_Generator_t point)); 4575 4576/*! \relates ppl_Polyhedron_tag */ 4577int 4578ppl_one_affine_ranking_function_PR_NNC_Polyhedron_2 4579PPL_PROTO((ppl_const_Polyhedron_t pset_before, 4580 ppl_const_Polyhedron_t pset_after, 4581 ppl_Generator_t point)); 4582 4583 4584 4585 4586 4587 4588/*! \relates ppl_Polyhedron_tag */ 4589int 4590ppl_all_affine_ranking_functions_MS_C_Polyhedron_2 4591PPL_PROTO((ppl_const_Polyhedron_t pset_before, 4592 ppl_const_Polyhedron_t pset_after, 4593 ppl_Polyhedron_t ph)); 4594 4595/*! \relates ppl_Polyhedron_tag */ 4596int 4597ppl_all_affine_ranking_functions_PR_C_Polyhedron_2 4598PPL_PROTO((ppl_const_Polyhedron_t pset_before, 4599 ppl_const_Polyhedron_t pset_after, 4600 ppl_Polyhedron_t ph)); 4601 4602/*! \relates ppl_Polyhedron_tag */ 4603int 4604ppl_all_affine_ranking_functions_MS_NNC_Polyhedron_2 4605PPL_PROTO((ppl_const_Polyhedron_t pset_before, 4606 ppl_const_Polyhedron_t pset_after, 4607 ppl_Polyhedron_t ph)); 4608 4609/*! \relates ppl_Polyhedron_tag */ 4610int 4611ppl_all_affine_ranking_functions_PR_NNC_Polyhedron_2 4612PPL_PROTO((ppl_const_Polyhedron_t pset_before, 4613 ppl_const_Polyhedron_t pset_after, 4614 ppl_Polyhedron_t ph)); 4615 4616 4617 4618 4619 4620 4621 4622PPL_DECLARE_IO_FUNCTIONS(Polyhedron) 4623 4624/* End of Functions Related to ppl_Polyhedron_tag */ 4625 4626/*! \interface ppl_Grid_tag 4627 \brief Types and functions for ppl_Grid_tag 4628*/ 4629 4630/*! \relates ppl_Grid_tag */ 4631int 4632ppl_delete_Grid 4633PPL_PROTO((ppl_const_Grid_t ph)); 4634 4635 4636 4637 4638/*! \relates ppl_Grid_tag */ 4639int 4640ppl_new_Grid_from_space_dimension 4641PPL_PROTO((ppl_Grid_t* pph, ppl_dimension_type d, int empty)); 4642 4643 4644 4645 4646 4647/*! \relates ppl_Grid_tag */ 4648int 4649ppl_new_Grid_from_C_Polyhedron 4650PPL_PROTO((ppl_Grid_t* pph, ppl_const_Polyhedron_t ph)); 4651 4652/*! \relates ppl_Grid_tag */ 4653int 4654ppl_new_Grid_from_NNC_Polyhedron 4655PPL_PROTO((ppl_Grid_t* pph, ppl_const_Polyhedron_t ph)); 4656 4657/*! \relates ppl_Grid_tag */ 4658int 4659ppl_new_Grid_from_Grid 4660PPL_PROTO((ppl_Grid_t* pph, ppl_const_Grid_t ph)); 4661 4662/*! \relates ppl_Grid_tag */ 4663int 4664ppl_new_Grid_from_Rational_Box 4665PPL_PROTO((ppl_Grid_t* pph, ppl_const_Rational_Box_t ph)); 4666 4667/*! \relates ppl_Grid_tag */ 4668int 4669ppl_new_Grid_from_BD_Shape_mpz_class 4670PPL_PROTO((ppl_Grid_t* pph, ppl_const_BD_Shape_mpz_class_t ph)); 4671 4672/*! \relates ppl_Grid_tag */ 4673int 4674ppl_new_Grid_from_BD_Shape_mpq_class 4675PPL_PROTO((ppl_Grid_t* pph, ppl_const_BD_Shape_mpq_class_t ph)); 4676 4677/*! \relates ppl_Grid_tag */ 4678int 4679ppl_new_Grid_from_Octagonal_Shape_mpz_class 4680PPL_PROTO((ppl_Grid_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph)); 4681 4682/*! \relates ppl_Grid_tag */ 4683int 4684ppl_new_Grid_from_Octagonal_Shape_mpq_class 4685PPL_PROTO((ppl_Grid_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph)); 4686 4687/*! \relates ppl_Grid_tag */ 4688int 4689ppl_new_Grid_from_Double_Box 4690PPL_PROTO((ppl_Grid_t* pph, ppl_const_Double_Box_t ph)); 4691 4692/*! \relates ppl_Grid_tag */ 4693int 4694ppl_new_Grid_from_BD_Shape_double 4695PPL_PROTO((ppl_Grid_t* pph, ppl_const_BD_Shape_double_t ph)); 4696 4697/*! \relates ppl_Grid_tag */ 4698int 4699ppl_new_Grid_from_Octagonal_Shape_double 4700PPL_PROTO((ppl_Grid_t* pph, ppl_const_Octagonal_Shape_double_t ph)); 4701 4702 4703 4704 4705 4706 4707/*! \relates ppl_Grid_tag */ 4708int 4709ppl_new_Grid_from_C_Polyhedron_with_complexity 4710PPL_PROTO((ppl_Grid_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 4711 4712/*! \relates ppl_Grid_tag */ 4713int 4714ppl_new_Grid_from_NNC_Polyhedron_with_complexity 4715PPL_PROTO((ppl_Grid_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 4716 4717/*! \relates ppl_Grid_tag */ 4718int 4719ppl_new_Grid_from_Grid_with_complexity 4720PPL_PROTO((ppl_Grid_t* pph, ppl_const_Grid_t ph, int complexity)); 4721 4722/*! \relates ppl_Grid_tag */ 4723int 4724ppl_new_Grid_from_Rational_Box_with_complexity 4725PPL_PROTO((ppl_Grid_t* pph, ppl_const_Rational_Box_t ph, int complexity)); 4726 4727/*! \relates ppl_Grid_tag */ 4728int 4729ppl_new_Grid_from_BD_Shape_mpz_class_with_complexity 4730PPL_PROTO((ppl_Grid_t* pph, ppl_const_BD_Shape_mpz_class_t ph, int complexity)); 4731 4732/*! \relates ppl_Grid_tag */ 4733int 4734ppl_new_Grid_from_BD_Shape_mpq_class_with_complexity 4735PPL_PROTO((ppl_Grid_t* pph, ppl_const_BD_Shape_mpq_class_t ph, int complexity)); 4736 4737/*! \relates ppl_Grid_tag */ 4738int 4739ppl_new_Grid_from_Octagonal_Shape_mpz_class_with_complexity 4740PPL_PROTO((ppl_Grid_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph, int complexity)); 4741 4742/*! \relates ppl_Grid_tag */ 4743int 4744ppl_new_Grid_from_Octagonal_Shape_mpq_class_with_complexity 4745PPL_PROTO((ppl_Grid_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph, int complexity)); 4746 4747/*! \relates ppl_Grid_tag */ 4748int 4749ppl_new_Grid_from_Double_Box_with_complexity 4750PPL_PROTO((ppl_Grid_t* pph, ppl_const_Double_Box_t ph, int complexity)); 4751 4752/*! \relates ppl_Grid_tag */ 4753int 4754ppl_new_Grid_from_BD_Shape_double_with_complexity 4755PPL_PROTO((ppl_Grid_t* pph, ppl_const_BD_Shape_double_t ph, int complexity)); 4756 4757/*! \relates ppl_Grid_tag */ 4758int 4759ppl_new_Grid_from_Octagonal_Shape_double_with_complexity 4760PPL_PROTO((ppl_Grid_t* pph, ppl_const_Octagonal_Shape_double_t ph, int complexity)); 4761 4762 4763 4764 4765 4766 4767/*! \relates ppl_Grid_tag */ 4768int 4769ppl_new_Grid_from_Constraint_System 4770PPL_PROTO((ppl_Grid_t* pph, ppl_const_Constraint_System_t cs)); 4771 4772/*! \relates ppl_Grid_tag */ 4773int 4774ppl_new_Grid_from_Congruence_System 4775PPL_PROTO((ppl_Grid_t* pph, ppl_const_Congruence_System_t cs)); 4776 4777/*! \relates ppl_Grid_tag */ 4778int 4779ppl_new_Grid_from_Grid_Generator_System 4780PPL_PROTO((ppl_Grid_t* pph, ppl_const_Grid_Generator_System_t cs)); 4781 4782 4783 4784 4785 4786 4787 4788 4789/*! \relates ppl_Grid_tag */ 4790int 4791ppl_Grid_space_dimension 4792PPL_PROTO((ppl_const_Grid_t ph, ppl_dimension_type* m)); 4793 4794/*! \relates ppl_Grid_tag */ 4795int 4796ppl_Grid_affine_dimension 4797PPL_PROTO((ppl_const_Grid_t ph, ppl_dimension_type* m)); 4798 4799 4800 4801 4802 4803/*! \relates ppl_Grid_tag */ 4804int 4805ppl_Grid_relation_with_Constraint 4806PPL_PROTO((ppl_const_Grid_t ph, 4807 ppl_const_Constraint_t c)); 4808 4809/*! \relates ppl_Grid_tag */ 4810int 4811ppl_Grid_relation_with_Generator 4812PPL_PROTO((ppl_const_Grid_t ph, 4813 ppl_const_Generator_t c)); 4814 4815/*! \relates ppl_Grid_tag */ 4816int 4817ppl_Grid_relation_with_Congruence 4818PPL_PROTO((ppl_const_Grid_t ph, 4819 ppl_const_Congruence_t c)); 4820 4821/*! \relates ppl_Grid_tag */ 4822int 4823ppl_Grid_relation_with_Grid_Generator 4824PPL_PROTO((ppl_const_Grid_t ph, 4825 ppl_const_Grid_Generator_t c)); 4826 4827 4828 4829 4830 4831/*! \relates ppl_Grid_tag */ 4832int 4833ppl_Grid_get_constraints 4834PPL_PROTO((ppl_const_Grid_t ph, 4835 ppl_const_Constraint_System_t* pcs)); 4836 4837/*! \relates ppl_Grid_tag */ 4838int 4839ppl_Grid_get_congruences 4840PPL_PROTO((ppl_const_Grid_t ph, 4841 ppl_const_Congruence_System_t* pcs)); 4842 4843/*! \relates ppl_Grid_tag */ 4844int 4845ppl_Grid_get_grid_generators 4846PPL_PROTO((ppl_const_Grid_t ph, 4847 ppl_const_Grid_Generator_System_t* pcs)); 4848 4849 4850 4851 4852 4853/*! \relates ppl_Grid_tag */ 4854int 4855ppl_Grid_get_minimized_constraints 4856PPL_PROTO((ppl_const_Grid_t ph, 4857 ppl_const_Constraint_System_t* pcs)); 4858 4859/*! \relates ppl_Grid_tag */ 4860int 4861ppl_Grid_get_minimized_congruences 4862PPL_PROTO((ppl_const_Grid_t ph, 4863 ppl_const_Congruence_System_t* pcs)); 4864 4865/*! \relates ppl_Grid_tag */ 4866int 4867ppl_Grid_get_minimized_grid_generators 4868PPL_PROTO((ppl_const_Grid_t ph, 4869 ppl_const_Grid_Generator_System_t* pcs)); 4870 4871 4872 4873 4874 4875/*! \relates ppl_Grid_tag */ 4876int 4877ppl_Grid_is_empty 4878PPL_PROTO((ppl_const_Grid_t ph)); 4879 4880/*! \relates ppl_Grid_tag */ 4881int 4882ppl_Grid_is_universe 4883PPL_PROTO((ppl_const_Grid_t ph)); 4884 4885/*! \relates ppl_Grid_tag */ 4886int 4887ppl_Grid_is_bounded 4888PPL_PROTO((ppl_const_Grid_t ph)); 4889 4890/*! \relates ppl_Grid_tag */ 4891int 4892ppl_Grid_contains_integer_point 4893PPL_PROTO((ppl_const_Grid_t ph)); 4894 4895/*! \relates ppl_Grid_tag */ 4896int 4897ppl_Grid_is_topologically_closed 4898PPL_PROTO((ppl_const_Grid_t ph)); 4899 4900/*! \relates ppl_Grid_tag */ 4901int 4902ppl_Grid_is_discrete 4903PPL_PROTO((ppl_const_Grid_t ph)); 4904 4905 4906 4907 4908 4909/*! \relates ppl_Grid_tag */ 4910int 4911ppl_Grid_topological_closure_assign 4912PPL_PROTO((ppl_Grid_t ph)); 4913 4914 4915 4916 4917 4918/*! \relates ppl_Grid_tag */ 4919int 4920ppl_Grid_bounds_from_above 4921PPL_PROTO((ppl_const_Grid_t ph, 4922 ppl_const_Linear_Expression_t le)); 4923 4924/*! \relates ppl_Grid_tag */ 4925int 4926ppl_Grid_bounds_from_below 4927PPL_PROTO((ppl_const_Grid_t ph, 4928 ppl_const_Linear_Expression_t le)); 4929 4930 4931 4932 4933 4934/*! \relates ppl_Grid_tag */ 4935int 4936ppl_Grid_maximize 4937PPL_PROTO((ppl_const_Grid_t ph, 4938 ppl_const_Linear_Expression_t le, 4939 ppl_Coefficient_t ext_n, 4940 ppl_Coefficient_t ext_d, 4941 int* poptimum)); 4942 4943/*! \relates ppl_Grid_tag */ 4944int 4945ppl_Grid_minimize 4946PPL_PROTO((ppl_const_Grid_t ph, 4947 ppl_const_Linear_Expression_t le, 4948 ppl_Coefficient_t ext_n, 4949 ppl_Coefficient_t ext_d, 4950 int* poptimum)); 4951 4952 4953 4954 4955 4956/*! \relates ppl_Grid_tag */ 4957int 4958ppl_Grid_maximize_with_point 4959PPL_PROTO((ppl_const_Grid_t ph, 4960 ppl_const_Linear_Expression_t le, 4961 ppl_Coefficient_t ext_n, 4962 ppl_Coefficient_t ext_d, 4963 int* poptimum, 4964 ppl_Generator_t point)); 4965 4966/*! \relates ppl_Grid_tag */ 4967int 4968ppl_Grid_minimize_with_point 4969PPL_PROTO((ppl_const_Grid_t ph, 4970 ppl_const_Linear_Expression_t le, 4971 ppl_Coefficient_t ext_n, 4972 ppl_Coefficient_t ext_d, 4973 int* poptimum, 4974 ppl_Generator_t point)); 4975 4976 4977 4978 4979 4980/*! \relates ppl_Grid_tag */ 4981int 4982ppl_Grid_frequency 4983PPL_PROTO((ppl_const_Grid_t ph, 4984 ppl_const_Linear_Expression_t le, 4985 ppl_Coefficient_t ext_fn, 4986 ppl_Coefficient_t ext_fd, 4987 ppl_Coefficient_t ext_vn, 4988 ppl_Coefficient_t ext_vd)); 4989 4990 4991 4992 4993/*! \relates ppl_Grid_tag */ 4994int 4995ppl_Grid_contains_Grid 4996PPL_PROTO((ppl_const_Grid_t x, 4997 ppl_const_Grid_t y)); 4998 4999/*! \relates ppl_Grid_tag */ 5000int 5001ppl_Grid_strictly_contains_Grid 5002PPL_PROTO((ppl_const_Grid_t x, 5003 ppl_const_Grid_t y)); 5004 5005/*! \relates ppl_Grid_tag */ 5006int 5007ppl_Grid_is_disjoint_from_Grid 5008PPL_PROTO((ppl_const_Grid_t x, 5009 ppl_const_Grid_t y)); 5010 5011 5012 5013 5014 5015/*! \relates ppl_Grid_tag */ 5016int 5017ppl_Grid_equals_Grid 5018PPL_PROTO((ppl_const_Grid_t x, 5019 ppl_const_Grid_t y)); 5020 5021 5022 5023 5024/*! \relates ppl_Grid_tag */ 5025int 5026ppl_Grid_OK 5027PPL_PROTO((ppl_const_Grid_t ph)); 5028 5029 5030 5031 5032/*! \relates ppl_Grid_tag */ 5033int 5034ppl_Grid_add_constraint 5035PPL_PROTO((ppl_Grid_t ph, 5036 ppl_const_Constraint_t c)); 5037 5038/*! \relates ppl_Grid_tag */ 5039int 5040ppl_Grid_add_congruence 5041PPL_PROTO((ppl_Grid_t ph, 5042 ppl_const_Congruence_t c)); 5043 5044/*! \relates ppl_Grid_tag */ 5045int 5046ppl_Grid_add_grid_generator 5047PPL_PROTO((ppl_Grid_t ph, 5048 ppl_const_Grid_Generator_t c)); 5049 5050 5051 5052 5053 5054/*! \relates ppl_Grid_tag */ 5055int 5056ppl_Grid_add_constraints 5057PPL_PROTO((ppl_Grid_t ph, 5058 ppl_const_Constraint_System_t cs)); 5059 5060/*! \relates ppl_Grid_tag */ 5061int 5062ppl_Grid_add_congruences 5063PPL_PROTO((ppl_Grid_t ph, 5064 ppl_const_Congruence_System_t cs)); 5065 5066/*! \relates ppl_Grid_tag */ 5067int 5068ppl_Grid_add_grid_generators 5069PPL_PROTO((ppl_Grid_t ph, 5070 ppl_const_Grid_Generator_System_t cs)); 5071 5072 5073 5074 5075 5076/*! \relates ppl_Grid_tag */ 5077int 5078ppl_Grid_refine_with_constraint 5079PPL_PROTO((ppl_Grid_t ph, 5080 ppl_const_Constraint_t c)); 5081 5082/*! \relates ppl_Grid_tag */ 5083int 5084ppl_Grid_refine_with_congruence 5085PPL_PROTO((ppl_Grid_t ph, 5086 ppl_const_Congruence_t c)); 5087 5088 5089 5090 5091 5092/*! \relates ppl_Grid_tag */ 5093int 5094ppl_Grid_refine_with_constraints 5095PPL_PROTO((ppl_Grid_t ph, 5096 ppl_const_Constraint_System_t cs)); 5097 5098/*! \relates ppl_Grid_tag */ 5099int 5100ppl_Grid_refine_with_congruences 5101PPL_PROTO((ppl_Grid_t ph, 5102 ppl_const_Congruence_System_t cs)); 5103 5104 5105 5106 5107 5108/*! \relates ppl_Grid_tag */ 5109int 5110ppl_Grid_intersection_assign 5111PPL_PROTO((ppl_Grid_t x, 5112 ppl_const_Grid_t y)); 5113 5114/*! \relates ppl_Grid_tag */ 5115int 5116ppl_Grid_upper_bound_assign 5117PPL_PROTO((ppl_Grid_t x, 5118 ppl_const_Grid_t y)); 5119 5120/*! \relates ppl_Grid_tag */ 5121int 5122ppl_Grid_difference_assign 5123PPL_PROTO((ppl_Grid_t x, 5124 ppl_const_Grid_t y)); 5125 5126/*! \relates ppl_Grid_tag */ 5127int 5128ppl_Grid_concatenate_assign 5129PPL_PROTO((ppl_Grid_t x, 5130 ppl_const_Grid_t y)); 5131 5132/*! \relates ppl_Grid_tag */ 5133int 5134ppl_Grid_time_elapse_assign 5135PPL_PROTO((ppl_Grid_t x, 5136 ppl_const_Grid_t y)); 5137 5138 5139 5140 5141 5142/*! \relates ppl_Grid_tag */ 5143int 5144ppl_Grid_upper_bound_assign_if_exact 5145PPL_PROTO((ppl_Grid_t x, 5146 ppl_const_Grid_t y)); 5147 5148 5149 5150 5151 5152/*! \relates ppl_Grid_tag */ 5153int 5154ppl_Grid_simplify_using_context_assign 5155PPL_PROTO((ppl_Grid_t x, 5156 ppl_const_Grid_t y)); 5157 5158 5159 5160 5161/*! \relates ppl_Grid_tag */ 5162int 5163ppl_Grid_constrains 5164PPL_PROTO((ppl_Grid_t ph, 5165 ppl_dimension_type var)); 5166 5167 5168 5169 5170/*! \relates ppl_Grid_tag */ 5171int 5172ppl_Grid_unconstrain_space_dimension 5173PPL_PROTO((ppl_Grid_t ph, 5174 ppl_dimension_type var)); 5175 5176 5177 5178 5179/*! \relates ppl_Grid_tag */ 5180int 5181ppl_Grid_unconstrain_space_dimensions 5182PPL_PROTO((ppl_Grid_t ph, 5183 ppl_dimension_type ds[], 5184 size_t n)); 5185 5186 5187 5188 5189/*! \relates ppl_Grid_tag */ 5190int 5191ppl_Grid_affine_image 5192PPL_PROTO((ppl_Grid_t ph, 5193 ppl_dimension_type var, 5194 ppl_const_Linear_Expression_t le, 5195 ppl_const_Coefficient_t d)); 5196 5197/*! \relates ppl_Grid_tag */ 5198int 5199ppl_Grid_affine_preimage 5200PPL_PROTO((ppl_Grid_t ph, 5201 ppl_dimension_type var, 5202 ppl_const_Linear_Expression_t le, 5203 ppl_const_Coefficient_t d)); 5204 5205 5206 5207 5208 5209/*! \relates ppl_Grid_tag */ 5210int 5211ppl_Grid_bounded_affine_image 5212PPL_PROTO((ppl_Grid_t ph, 5213 ppl_dimension_type var, 5214 ppl_const_Linear_Expression_t lb, 5215 ppl_const_Linear_Expression_t ub, 5216 ppl_const_Coefficient_t d)); 5217 5218/*! \relates ppl_Grid_tag */ 5219int 5220ppl_Grid_bounded_affine_preimage 5221PPL_PROTO((ppl_Grid_t ph, 5222 ppl_dimension_type var, 5223 ppl_const_Linear_Expression_t lb, 5224 ppl_const_Linear_Expression_t ub, 5225 ppl_const_Coefficient_t d)); 5226 5227 5228 5229 5230 5231/*! \relates ppl_Grid_tag */ 5232int 5233ppl_Grid_generalized_affine_image 5234PPL_PROTO((ppl_Grid_t ph, 5235 ppl_dimension_type var, 5236 enum ppl_enum_Constraint_Type relsym, 5237 ppl_const_Linear_Expression_t le, 5238 ppl_const_Coefficient_t d)); 5239 5240/*! \relates ppl_Grid_tag */ 5241int 5242ppl_Grid_generalized_affine_preimage 5243PPL_PROTO((ppl_Grid_t ph, 5244 ppl_dimension_type var, 5245 enum ppl_enum_Constraint_Type relsym, 5246 ppl_const_Linear_Expression_t le, 5247 ppl_const_Coefficient_t d)); 5248 5249 5250 5251 5252 5253/*! \relates ppl_Grid_tag */ 5254int 5255ppl_Grid_generalized_affine_image_lhs_rhs 5256PPL_PROTO((ppl_Grid_t ph, 5257 ppl_const_Linear_Expression_t lhs, 5258 enum ppl_enum_Constraint_Type relsym, 5259 ppl_const_Linear_Expression_t rhs)); 5260 5261/*! \relates ppl_Grid_tag */ 5262int 5263ppl_Grid_generalized_affine_preimage_lhs_rhs 5264PPL_PROTO((ppl_Grid_t ph, 5265 ppl_const_Linear_Expression_t lhs, 5266 enum ppl_enum_Constraint_Type relsym, 5267 ppl_const_Linear_Expression_t rhs)); 5268 5269 5270 5271 5272 5273/*! \relates ppl_Grid_tag */ 5274int 5275ppl_Grid_generalized_affine_image_with_congruence 5276PPL_PROTO((ppl_Grid_t ph, 5277 ppl_dimension_type var, 5278 enum ppl_enum_Constraint_Type relsym, 5279 ppl_const_Linear_Expression_t le, 5280 ppl_const_Coefficient_t d, 5281 ppl_const_Coefficient_t m)); 5282 5283/*! \relates ppl_Grid_tag */ 5284int 5285ppl_Grid_generalized_affine_preimage_with_congruence 5286PPL_PROTO((ppl_Grid_t ph, 5287 ppl_dimension_type var, 5288 enum ppl_enum_Constraint_Type relsym, 5289 ppl_const_Linear_Expression_t le, 5290 ppl_const_Coefficient_t d, 5291 ppl_const_Coefficient_t m)); 5292 5293 5294 5295 5296 5297/*! \relates ppl_Grid_tag */ 5298int 5299ppl_Grid_generalized_affine_image_lhs_rhs_with_congruence 5300PPL_PROTO((ppl_Grid_t ph, 5301 ppl_const_Linear_Expression_t lhs, 5302 enum ppl_enum_Constraint_Type relsym, 5303 ppl_const_Linear_Expression_t rhs, 5304 ppl_const_Coefficient_t m)); 5305 5306/*! \relates ppl_Grid_tag */ 5307int 5308ppl_Grid_generalized_affine_preimage_lhs_rhs_with_congruence 5309PPL_PROTO((ppl_Grid_t ph, 5310 ppl_const_Linear_Expression_t lhs, 5311 enum ppl_enum_Constraint_Type relsym, 5312 ppl_const_Linear_Expression_t rhs, 5313 ppl_const_Coefficient_t m)); 5314 5315 5316 5317 5318 5319/*! \relates ppl_Grid_tag */ 5320int 5321ppl_Grid_add_space_dimensions_and_embed 5322PPL_PROTO((ppl_Grid_t ph, 5323 ppl_dimension_type d)); 5324 5325/*! \relates ppl_Grid_tag */ 5326int 5327ppl_Grid_add_space_dimensions_and_project 5328PPL_PROTO((ppl_Grid_t ph, 5329 ppl_dimension_type d)); 5330 5331 5332 5333 5334 5335/*! \relates ppl_Grid_tag */ 5336int 5337ppl_Grid_remove_space_dimensions 5338PPL_PROTO((ppl_Grid_t ph, 5339 ppl_dimension_type ds[], 5340 size_t n)); 5341 5342 5343 5344 5345/*! \relates ppl_Grid_tag */ 5346int 5347ppl_Grid_remove_higher_space_dimensions 5348PPL_PROTO((ppl_Grid_t ph, 5349 ppl_dimension_type d)); 5350 5351 5352 5353 5354/*! \relates ppl_Grid_tag */ 5355int 5356ppl_Grid_expand_space_dimension 5357PPL_PROTO((ppl_Grid_t ph, 5358 ppl_dimension_type d, 5359 ppl_dimension_type m)); 5360 5361 5362 5363 5364/*! \relates ppl_Grid_tag */ 5365int 5366ppl_Grid_fold_space_dimensions 5367PPL_PROTO((ppl_Grid_t ph, 5368 ppl_dimension_type ds[], 5369 size_t n, 5370 ppl_dimension_type d)); 5371 5372 5373 5374 5375/*! \relates ppl_Grid_tag */ 5376int 5377ppl_Grid_map_space_dimensions 5378PPL_PROTO((ppl_Grid_t ph, 5379 ppl_dimension_type maps[], 5380 size_t n)); 5381 5382 5383 5384 5385/*! \relates ppl_Grid_tag */ 5386int 5387ppl_Grid_drop_some_non_integer_points 5388PPL_PROTO((ppl_Grid_t ph, 5389 int complexity)); 5390 5391 5392 5393 5394/*! \relates ppl_Grid_tag */ 5395int 5396ppl_Grid_drop_some_non_integer_points_2 5397PPL_PROTO((ppl_Grid_t ph, 5398 ppl_dimension_type ds[], 5399 size_t n, 5400 int complexity)); 5401 5402 5403 5404 5405 5406 5407/*! \relates ppl_Grid_tag */ 5408int 5409ppl_Grid_external_memory_in_bytes 5410PPL_PROTO((ppl_const_Grid_t ps, 5411 size_t* sz)); 5412 5413/*! \relates ppl_Grid_tag */ 5414int 5415ppl_Grid_total_memory_in_bytes 5416PPL_PROTO((ppl_const_Grid_t ps, 5417 size_t* sz)); 5418 5419 5420 5421 5422 5423/*! \relates ppl_Grid_tag */ 5424int 5425ppl_Grid_congruence_widening_assign_with_tokens 5426PPL_PROTO((ppl_Grid_t x, 5427 ppl_const_Grid_t y, 5428 unsigned* tp)); 5429 5430/*! \relates ppl_Grid_tag */ 5431int 5432ppl_Grid_generator_widening_assign_with_tokens 5433PPL_PROTO((ppl_Grid_t x, 5434 ppl_const_Grid_t y, 5435 unsigned* tp)); 5436 5437 5438 5439 5440 5441/*! \relates ppl_Grid_tag */ 5442int 5443ppl_Grid_congruence_widening_assign 5444PPL_PROTO((ppl_Grid_t x, 5445 ppl_const_Grid_t y)); 5446 5447/*! \relates ppl_Grid_tag */ 5448int 5449ppl_Grid_generator_widening_assign 5450PPL_PROTO((ppl_Grid_t x, 5451 ppl_const_Grid_t y)); 5452 5453 5454 5455 5456 5457/*! \relates ppl_Grid_tag */ 5458int 5459ppl_Grid_widening_assign_with_tokens 5460PPL_PROTO((ppl_Grid_t x, 5461 ppl_const_Grid_t y, 5462 unsigned* tp)); 5463 5464 5465 5466 5467/*! \relates ppl_Grid_tag */ 5468int 5469ppl_Grid_widening_assign 5470PPL_PROTO((ppl_Grid_t x, 5471 ppl_const_Grid_t y)); 5472 5473 5474 5475 5476/*! \relates ppl_Grid_tag */ 5477int 5478ppl_Grid_limited_congruence_extrapolation_assign_with_tokens 5479PPL_PROTO((ppl_Grid_t x, 5480 ppl_const_Grid_t y, 5481 ppl_const_Congruence_System_t cs, 5482 unsigned* tp)); 5483 5484/*! \relates ppl_Grid_tag */ 5485int 5486ppl_Grid_limited_generator_extrapolation_assign_with_tokens 5487PPL_PROTO((ppl_Grid_t x, 5488 ppl_const_Grid_t y, 5489 ppl_const_Congruence_System_t cs, 5490 unsigned* tp)); 5491 5492 5493 5494 5495 5496 5497 5498/*! \relates ppl_Grid_tag */ 5499int 5500ppl_Grid_limited_congruence_extrapolation_assign 5501PPL_PROTO((ppl_Grid_t x, 5502 ppl_const_Grid_t y, 5503 ppl_const_Congruence_System_t cs)); 5504 5505/*! \relates ppl_Grid_tag */ 5506int 5507ppl_Grid_limited_generator_extrapolation_assign 5508PPL_PROTO((ppl_Grid_t x, 5509 ppl_const_Grid_t y, 5510 ppl_const_Congruence_System_t cs)); 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522/*! \relates ppl_Grid_tag */ 5523int 5524ppl_Grid_wrap_assign 5525PPL_PROTO((ppl_Grid_t ph, 5526 ppl_dimension_type ds[], 5527 size_t n, 5528 enum ppl_enum_Bounded_Integer_Type_Width w, 5529 enum ppl_enum_Bounded_Integer_Type_Representation r, 5530 enum ppl_enum_Bounded_Integer_Type_Overflow o, 5531 const ppl_const_Constraint_System_t* pcs, 5532 unsigned complexity_threshold, 5533 int wrap_individually)); 5534 5535 5536 5537/*! \relates ppl_Grid_tag */ 5538int 5539ppl_new_Grid_recycle_Constraint_System 5540PPL_PROTO((ppl_Grid_t* pph, ppl_Constraint_System_t cs)); 5541 5542/*! \relates ppl_Grid_tag */ 5543int 5544ppl_new_Grid_recycle_Congruence_System 5545PPL_PROTO((ppl_Grid_t* pph, ppl_Congruence_System_t cs)); 5546 5547/*! \relates ppl_Grid_tag */ 5548int 5549ppl_new_Grid_recycle_Grid_Generator_System 5550PPL_PROTO((ppl_Grid_t* pph, ppl_Grid_Generator_System_t cs)); 5551 5552 5553 5554 5555 5556 5557/*! \relates ppl_Grid_tag */ 5558int 5559ppl_assign_Grid_from_Grid 5560PPL_PROTO((ppl_Grid_t dst, ppl_const_Grid_t src)); 5561 5562 5563 5564 5565 5566/*! \relates ppl_Grid_tag */ 5567int 5568ppl_Grid_add_recycled_constraints 5569PPL_PROTO((ppl_Grid_t ph, 5570 ppl_Constraint_System_t cs)); 5571 5572/*! \relates ppl_Grid_tag */ 5573int 5574ppl_Grid_add_recycled_congruences 5575PPL_PROTO((ppl_Grid_t ph, 5576 ppl_Congruence_System_t cs)); 5577 5578/*! \relates ppl_Grid_tag */ 5579int 5580ppl_Grid_add_recycled_grid_generators 5581PPL_PROTO((ppl_Grid_t ph, 5582 ppl_Grid_Generator_System_t cs)); 5583 5584 5585 5586 5587 5588/*! \relates ppl_Grid_tag */ 5589int 5590ppl_termination_test_MS_Grid 5591PPL_PROTO((ppl_const_Grid_t pset)); 5592 5593/*! \relates ppl_Grid_tag */ 5594int 5595ppl_termination_test_PR_Grid 5596PPL_PROTO((ppl_const_Grid_t pset)); 5597 5598 5599 5600 5601 5602 5603/*! \relates ppl_Grid_tag */ 5604int 5605ppl_one_affine_ranking_function_MS_Grid 5606PPL_PROTO((ppl_const_Grid_t pset, 5607 ppl_Generator_t point)); 5608 5609/*! \relates ppl_Grid_tag */ 5610int 5611ppl_one_affine_ranking_function_PR_Grid 5612PPL_PROTO((ppl_const_Grid_t pset, 5613 ppl_Generator_t point)); 5614 5615 5616 5617 5618 5619 5620/*! \relates ppl_Grid_tag */ 5621int 5622ppl_all_affine_ranking_functions_MS_Grid 5623PPL_PROTO((ppl_const_Grid_t pset, 5624 ppl_Polyhedron_t ph)); 5625 5626/*! \relates ppl_Grid_tag */ 5627int 5628ppl_all_affine_ranking_functions_PR_Grid 5629PPL_PROTO((ppl_const_Grid_t pset, 5630 ppl_Polyhedron_t ph)); 5631 5632 5633 5634 5635 5636 5637/*! \relates ppl_Grid_tag */ 5638int 5639ppl_termination_test_MS_Grid_2 5640PPL_PROTO((ppl_const_Grid_t pset_before, ppl_const_Grid_t pset_after)); 5641 5642/*! \relates ppl_Grid_tag */ 5643int 5644ppl_termination_test_PR_Grid_2 5645PPL_PROTO((ppl_const_Grid_t pset_before, ppl_const_Grid_t pset_after)); 5646 5647 5648 5649 5650 5651 5652/*! \relates ppl_Grid_tag */ 5653int 5654ppl_one_affine_ranking_function_MS_Grid_2 5655PPL_PROTO((ppl_const_Grid_t pset_before, 5656 ppl_const_Grid_t pset_after, 5657 ppl_Generator_t point)); 5658 5659/*! \relates ppl_Grid_tag */ 5660int 5661ppl_one_affine_ranking_function_PR_Grid_2 5662PPL_PROTO((ppl_const_Grid_t pset_before, 5663 ppl_const_Grid_t pset_after, 5664 ppl_Generator_t point)); 5665 5666 5667 5668 5669 5670 5671/*! \relates ppl_Grid_tag */ 5672int 5673ppl_all_affine_ranking_functions_MS_Grid_2 5674PPL_PROTO((ppl_const_Grid_t pset_before, 5675 ppl_const_Grid_t pset_after, 5676 ppl_Polyhedron_t ph)); 5677 5678/*! \relates ppl_Grid_tag */ 5679int 5680ppl_all_affine_ranking_functions_PR_Grid_2 5681PPL_PROTO((ppl_const_Grid_t pset_before, 5682 ppl_const_Grid_t pset_after, 5683 ppl_Polyhedron_t ph)); 5684 5685 5686 5687 5688 5689 5690 5691PPL_DECLARE_IO_FUNCTIONS(Grid) 5692 5693/* End of Functions Related to ppl_Grid_tag */ 5694 5695/*! \interface ppl_Rational_Box_tag 5696 \brief Types and functions for ppl_Rational_Box_tag 5697*/ 5698 5699/*! \relates ppl_Rational_Box_tag */ 5700int 5701ppl_delete_Rational_Box 5702PPL_PROTO((ppl_const_Rational_Box_t ph)); 5703 5704 5705 5706 5707/*! \relates ppl_Rational_Box_tag */ 5708int 5709ppl_new_Rational_Box_from_space_dimension 5710PPL_PROTO((ppl_Rational_Box_t* pph, ppl_dimension_type d, int empty)); 5711 5712 5713 5714 5715 5716/*! \relates ppl_Rational_Box_tag */ 5717int 5718ppl_new_Rational_Box_from_C_Polyhedron 5719PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Polyhedron_t ph)); 5720 5721/*! \relates ppl_Rational_Box_tag */ 5722int 5723ppl_new_Rational_Box_from_NNC_Polyhedron 5724PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Polyhedron_t ph)); 5725 5726/*! \relates ppl_Rational_Box_tag */ 5727int 5728ppl_new_Rational_Box_from_Grid 5729PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Grid_t ph)); 5730 5731/*! \relates ppl_Rational_Box_tag */ 5732int 5733ppl_new_Rational_Box_from_Rational_Box 5734PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Rational_Box_t ph)); 5735 5736/*! \relates ppl_Rational_Box_tag */ 5737int 5738ppl_new_Rational_Box_from_BD_Shape_mpz_class 5739PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_BD_Shape_mpz_class_t ph)); 5740 5741/*! \relates ppl_Rational_Box_tag */ 5742int 5743ppl_new_Rational_Box_from_BD_Shape_mpq_class 5744PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_BD_Shape_mpq_class_t ph)); 5745 5746/*! \relates ppl_Rational_Box_tag */ 5747int 5748ppl_new_Rational_Box_from_Octagonal_Shape_mpz_class 5749PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph)); 5750 5751/*! \relates ppl_Rational_Box_tag */ 5752int 5753ppl_new_Rational_Box_from_Octagonal_Shape_mpq_class 5754PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph)); 5755 5756/*! \relates ppl_Rational_Box_tag */ 5757int 5758ppl_new_Rational_Box_from_Double_Box 5759PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Double_Box_t ph)); 5760 5761/*! \relates ppl_Rational_Box_tag */ 5762int 5763ppl_new_Rational_Box_from_BD_Shape_double 5764PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_BD_Shape_double_t ph)); 5765 5766/*! \relates ppl_Rational_Box_tag */ 5767int 5768ppl_new_Rational_Box_from_Octagonal_Shape_double 5769PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Octagonal_Shape_double_t ph)); 5770 5771 5772 5773 5774 5775 5776/*! \relates ppl_Rational_Box_tag */ 5777int 5778ppl_new_Rational_Box_from_C_Polyhedron_with_complexity 5779PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 5780 5781/*! \relates ppl_Rational_Box_tag */ 5782int 5783ppl_new_Rational_Box_from_NNC_Polyhedron_with_complexity 5784PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 5785 5786/*! \relates ppl_Rational_Box_tag */ 5787int 5788ppl_new_Rational_Box_from_Grid_with_complexity 5789PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Grid_t ph, int complexity)); 5790 5791/*! \relates ppl_Rational_Box_tag */ 5792int 5793ppl_new_Rational_Box_from_Rational_Box_with_complexity 5794PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Rational_Box_t ph, int complexity)); 5795 5796/*! \relates ppl_Rational_Box_tag */ 5797int 5798ppl_new_Rational_Box_from_BD_Shape_mpz_class_with_complexity 5799PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_BD_Shape_mpz_class_t ph, int complexity)); 5800 5801/*! \relates ppl_Rational_Box_tag */ 5802int 5803ppl_new_Rational_Box_from_BD_Shape_mpq_class_with_complexity 5804PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_BD_Shape_mpq_class_t ph, int complexity)); 5805 5806/*! \relates ppl_Rational_Box_tag */ 5807int 5808ppl_new_Rational_Box_from_Octagonal_Shape_mpz_class_with_complexity 5809PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph, int complexity)); 5810 5811/*! \relates ppl_Rational_Box_tag */ 5812int 5813ppl_new_Rational_Box_from_Octagonal_Shape_mpq_class_with_complexity 5814PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph, int complexity)); 5815 5816/*! \relates ppl_Rational_Box_tag */ 5817int 5818ppl_new_Rational_Box_from_Double_Box_with_complexity 5819PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Double_Box_t ph, int complexity)); 5820 5821/*! \relates ppl_Rational_Box_tag */ 5822int 5823ppl_new_Rational_Box_from_BD_Shape_double_with_complexity 5824PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_BD_Shape_double_t ph, int complexity)); 5825 5826/*! \relates ppl_Rational_Box_tag */ 5827int 5828ppl_new_Rational_Box_from_Octagonal_Shape_double_with_complexity 5829PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Octagonal_Shape_double_t ph, int complexity)); 5830 5831 5832 5833 5834 5835 5836/*! \relates ppl_Rational_Box_tag */ 5837int 5838ppl_new_Rational_Box_from_Constraint_System 5839PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Constraint_System_t cs)); 5840 5841/*! \relates ppl_Rational_Box_tag */ 5842int 5843ppl_new_Rational_Box_from_Congruence_System 5844PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Congruence_System_t cs)); 5845 5846/*! \relates ppl_Rational_Box_tag */ 5847int 5848ppl_new_Rational_Box_from_Generator_System 5849PPL_PROTO((ppl_Rational_Box_t* pph, ppl_const_Generator_System_t cs)); 5850 5851 5852 5853 5854 5855 5856 5857 5858/*! \relates ppl_Rational_Box_tag */ 5859int 5860ppl_Rational_Box_space_dimension 5861PPL_PROTO((ppl_const_Rational_Box_t ph, ppl_dimension_type* m)); 5862 5863/*! \relates ppl_Rational_Box_tag */ 5864int 5865ppl_Rational_Box_affine_dimension 5866PPL_PROTO((ppl_const_Rational_Box_t ph, ppl_dimension_type* m)); 5867 5868 5869 5870 5871 5872/*! \relates ppl_Rational_Box_tag */ 5873int 5874ppl_Rational_Box_relation_with_Constraint 5875PPL_PROTO((ppl_const_Rational_Box_t ph, 5876 ppl_const_Constraint_t c)); 5877 5878/*! \relates ppl_Rational_Box_tag */ 5879int 5880ppl_Rational_Box_relation_with_Generator 5881PPL_PROTO((ppl_const_Rational_Box_t ph, 5882 ppl_const_Generator_t c)); 5883 5884/*! \relates ppl_Rational_Box_tag */ 5885int 5886ppl_Rational_Box_relation_with_Congruence 5887PPL_PROTO((ppl_const_Rational_Box_t ph, 5888 ppl_const_Congruence_t c)); 5889 5890 5891 5892 5893 5894/*! \relates ppl_Rational_Box_tag */ 5895int 5896ppl_Rational_Box_get_constraints 5897PPL_PROTO((ppl_const_Rational_Box_t ph, 5898 ppl_const_Constraint_System_t* pcs)); 5899 5900/*! \relates ppl_Rational_Box_tag */ 5901int 5902ppl_Rational_Box_get_congruences 5903PPL_PROTO((ppl_const_Rational_Box_t ph, 5904 ppl_const_Congruence_System_t* pcs)); 5905 5906 5907 5908 5909 5910/*! \relates ppl_Rational_Box_tag */ 5911int 5912ppl_Rational_Box_get_minimized_constraints 5913PPL_PROTO((ppl_const_Rational_Box_t ph, 5914 ppl_const_Constraint_System_t* pcs)); 5915 5916/*! \relates ppl_Rational_Box_tag */ 5917int 5918ppl_Rational_Box_get_minimized_congruences 5919PPL_PROTO((ppl_const_Rational_Box_t ph, 5920 ppl_const_Congruence_System_t* pcs)); 5921 5922 5923 5924 5925 5926/*! \relates ppl_Rational_Box_tag */ 5927int 5928ppl_Rational_Box_is_empty 5929PPL_PROTO((ppl_const_Rational_Box_t ph)); 5930 5931/*! \relates ppl_Rational_Box_tag */ 5932int 5933ppl_Rational_Box_is_universe 5934PPL_PROTO((ppl_const_Rational_Box_t ph)); 5935 5936/*! \relates ppl_Rational_Box_tag */ 5937int 5938ppl_Rational_Box_is_bounded 5939PPL_PROTO((ppl_const_Rational_Box_t ph)); 5940 5941/*! \relates ppl_Rational_Box_tag */ 5942int 5943ppl_Rational_Box_contains_integer_point 5944PPL_PROTO((ppl_const_Rational_Box_t ph)); 5945 5946/*! \relates ppl_Rational_Box_tag */ 5947int 5948ppl_Rational_Box_is_topologically_closed 5949PPL_PROTO((ppl_const_Rational_Box_t ph)); 5950 5951/*! \relates ppl_Rational_Box_tag */ 5952int 5953ppl_Rational_Box_is_discrete 5954PPL_PROTO((ppl_const_Rational_Box_t ph)); 5955 5956 5957 5958 5959 5960/*! \relates ppl_Rational_Box_tag */ 5961int 5962ppl_Rational_Box_topological_closure_assign 5963PPL_PROTO((ppl_Rational_Box_t ph)); 5964 5965 5966 5967 5968 5969/*! \relates ppl_Rational_Box_tag */ 5970int 5971ppl_Rational_Box_bounds_from_above 5972PPL_PROTO((ppl_const_Rational_Box_t ph, 5973 ppl_const_Linear_Expression_t le)); 5974 5975/*! \relates ppl_Rational_Box_tag */ 5976int 5977ppl_Rational_Box_bounds_from_below 5978PPL_PROTO((ppl_const_Rational_Box_t ph, 5979 ppl_const_Linear_Expression_t le)); 5980 5981 5982 5983 5984 5985/*! \relates ppl_Rational_Box_tag */ 5986int 5987ppl_Rational_Box_get_upper_bound 5988PPL_PROTO((ppl_Rational_Box_t ps, 5989 ppl_dimension_type var, 5990 ppl_Coefficient_t ext_n, 5991 ppl_Coefficient_t ext_d, 5992 int* pclosed)); 5993 5994/*! \relates ppl_Rational_Box_tag */ 5995int 5996ppl_Rational_Box_get_lower_bound 5997PPL_PROTO((ppl_Rational_Box_t ps, 5998 ppl_dimension_type var, 5999 ppl_Coefficient_t ext_n, 6000 ppl_Coefficient_t ext_d, 6001 int* pclosed)); 6002 6003 6004 6005 6006 6007/*! \relates ppl_Rational_Box_tag */ 6008int 6009ppl_Rational_Box_maximize 6010PPL_PROTO((ppl_const_Rational_Box_t ph, 6011 ppl_const_Linear_Expression_t le, 6012 ppl_Coefficient_t ext_n, 6013 ppl_Coefficient_t ext_d, 6014 int* poptimum)); 6015 6016/*! \relates ppl_Rational_Box_tag */ 6017int 6018ppl_Rational_Box_minimize 6019PPL_PROTO((ppl_const_Rational_Box_t ph, 6020 ppl_const_Linear_Expression_t le, 6021 ppl_Coefficient_t ext_n, 6022 ppl_Coefficient_t ext_d, 6023 int* poptimum)); 6024 6025 6026 6027 6028 6029/*! \relates ppl_Rational_Box_tag */ 6030int 6031ppl_Rational_Box_maximize_with_point 6032PPL_PROTO((ppl_const_Rational_Box_t ph, 6033 ppl_const_Linear_Expression_t le, 6034 ppl_Coefficient_t ext_n, 6035 ppl_Coefficient_t ext_d, 6036 int* poptimum, 6037 ppl_Generator_t point)); 6038 6039/*! \relates ppl_Rational_Box_tag */ 6040int 6041ppl_Rational_Box_minimize_with_point 6042PPL_PROTO((ppl_const_Rational_Box_t ph, 6043 ppl_const_Linear_Expression_t le, 6044 ppl_Coefficient_t ext_n, 6045 ppl_Coefficient_t ext_d, 6046 int* poptimum, 6047 ppl_Generator_t point)); 6048 6049 6050 6051 6052 6053/*! \relates ppl_Rational_Box_tag */ 6054int 6055ppl_Rational_Box_frequency 6056PPL_PROTO((ppl_const_Rational_Box_t ph, 6057 ppl_const_Linear_Expression_t le, 6058 ppl_Coefficient_t ext_fn, 6059 ppl_Coefficient_t ext_fd, 6060 ppl_Coefficient_t ext_vn, 6061 ppl_Coefficient_t ext_vd)); 6062 6063 6064 6065 6066/*! \relates ppl_Rational_Box_tag */ 6067int 6068ppl_Rational_Box_contains_Rational_Box 6069PPL_PROTO((ppl_const_Rational_Box_t x, 6070 ppl_const_Rational_Box_t y)); 6071 6072/*! \relates ppl_Rational_Box_tag */ 6073int 6074ppl_Rational_Box_strictly_contains_Rational_Box 6075PPL_PROTO((ppl_const_Rational_Box_t x, 6076 ppl_const_Rational_Box_t y)); 6077 6078/*! \relates ppl_Rational_Box_tag */ 6079int 6080ppl_Rational_Box_is_disjoint_from_Rational_Box 6081PPL_PROTO((ppl_const_Rational_Box_t x, 6082 ppl_const_Rational_Box_t y)); 6083 6084 6085 6086 6087 6088/*! \relates ppl_Rational_Box_tag */ 6089int 6090ppl_Rational_Box_equals_Rational_Box 6091PPL_PROTO((ppl_const_Rational_Box_t x, 6092 ppl_const_Rational_Box_t y)); 6093 6094 6095 6096 6097/*! \relates ppl_Rational_Box_tag */ 6098int 6099ppl_Rational_Box_OK 6100PPL_PROTO((ppl_const_Rational_Box_t ph)); 6101 6102 6103 6104 6105/*! \relates ppl_Rational_Box_tag */ 6106int 6107ppl_Rational_Box_add_constraint 6108PPL_PROTO((ppl_Rational_Box_t ph, 6109 ppl_const_Constraint_t c)); 6110 6111/*! \relates ppl_Rational_Box_tag */ 6112int 6113ppl_Rational_Box_add_congruence 6114PPL_PROTO((ppl_Rational_Box_t ph, 6115 ppl_const_Congruence_t c)); 6116 6117 6118 6119 6120 6121/*! \relates ppl_Rational_Box_tag */ 6122int 6123ppl_Rational_Box_add_constraints 6124PPL_PROTO((ppl_Rational_Box_t ph, 6125 ppl_const_Constraint_System_t cs)); 6126 6127/*! \relates ppl_Rational_Box_tag */ 6128int 6129ppl_Rational_Box_add_congruences 6130PPL_PROTO((ppl_Rational_Box_t ph, 6131 ppl_const_Congruence_System_t cs)); 6132 6133 6134 6135 6136 6137/*! \relates ppl_Rational_Box_tag */ 6138int 6139ppl_Rational_Box_refine_with_constraint 6140PPL_PROTO((ppl_Rational_Box_t ph, 6141 ppl_const_Constraint_t c)); 6142 6143/*! \relates ppl_Rational_Box_tag */ 6144int 6145ppl_Rational_Box_refine_with_congruence 6146PPL_PROTO((ppl_Rational_Box_t ph, 6147 ppl_const_Congruence_t c)); 6148 6149 6150 6151 6152 6153/*! \relates ppl_Rational_Box_tag */ 6154int 6155ppl_Rational_Box_refine_with_constraints 6156PPL_PROTO((ppl_Rational_Box_t ph, 6157 ppl_const_Constraint_System_t cs)); 6158 6159/*! \relates ppl_Rational_Box_tag */ 6160int 6161ppl_Rational_Box_refine_with_congruences 6162PPL_PROTO((ppl_Rational_Box_t ph, 6163 ppl_const_Congruence_System_t cs)); 6164 6165 6166 6167 6168 6169/*! \relates ppl_Rational_Box_tag */ 6170int 6171ppl_Rational_Box_intersection_assign 6172PPL_PROTO((ppl_Rational_Box_t x, 6173 ppl_const_Rational_Box_t y)); 6174 6175/*! \relates ppl_Rational_Box_tag */ 6176int 6177ppl_Rational_Box_upper_bound_assign 6178PPL_PROTO((ppl_Rational_Box_t x, 6179 ppl_const_Rational_Box_t y)); 6180 6181/*! \relates ppl_Rational_Box_tag */ 6182int 6183ppl_Rational_Box_difference_assign 6184PPL_PROTO((ppl_Rational_Box_t x, 6185 ppl_const_Rational_Box_t y)); 6186 6187/*! \relates ppl_Rational_Box_tag */ 6188int 6189ppl_Rational_Box_concatenate_assign 6190PPL_PROTO((ppl_Rational_Box_t x, 6191 ppl_const_Rational_Box_t y)); 6192 6193/*! \relates ppl_Rational_Box_tag */ 6194int 6195ppl_Rational_Box_time_elapse_assign 6196PPL_PROTO((ppl_Rational_Box_t x, 6197 ppl_const_Rational_Box_t y)); 6198 6199 6200 6201 6202 6203/*! \relates ppl_Rational_Box_tag */ 6204int 6205ppl_Rational_Box_upper_bound_assign_if_exact 6206PPL_PROTO((ppl_Rational_Box_t x, 6207 ppl_const_Rational_Box_t y)); 6208 6209 6210 6211 6212 6213/*! \relates ppl_Rational_Box_tag */ 6214int 6215ppl_Rational_Box_simplify_using_context_assign 6216PPL_PROTO((ppl_Rational_Box_t x, 6217 ppl_const_Rational_Box_t y)); 6218 6219 6220 6221 6222/*! \relates ppl_Rational_Box_tag */ 6223int 6224ppl_Rational_Box_constrains 6225PPL_PROTO((ppl_Rational_Box_t ph, 6226 ppl_dimension_type var)); 6227 6228 6229 6230 6231/*! \relates ppl_Rational_Box_tag */ 6232int 6233ppl_Rational_Box_unconstrain_space_dimension 6234PPL_PROTO((ppl_Rational_Box_t ph, 6235 ppl_dimension_type var)); 6236 6237 6238 6239 6240/*! \relates ppl_Rational_Box_tag */ 6241int 6242ppl_Rational_Box_unconstrain_space_dimensions 6243PPL_PROTO((ppl_Rational_Box_t ph, 6244 ppl_dimension_type ds[], 6245 size_t n)); 6246 6247 6248 6249 6250/*! \relates ppl_Rational_Box_tag */ 6251int 6252ppl_Rational_Box_affine_image 6253PPL_PROTO((ppl_Rational_Box_t ph, 6254 ppl_dimension_type var, 6255 ppl_const_Linear_Expression_t le, 6256 ppl_const_Coefficient_t d)); 6257 6258/*! \relates ppl_Rational_Box_tag */ 6259int 6260ppl_Rational_Box_affine_preimage 6261PPL_PROTO((ppl_Rational_Box_t ph, 6262 ppl_dimension_type var, 6263 ppl_const_Linear_Expression_t le, 6264 ppl_const_Coefficient_t d)); 6265 6266 6267 6268 6269 6270/*! \relates ppl_Rational_Box_tag */ 6271int 6272ppl_Rational_Box_bounded_affine_image 6273PPL_PROTO((ppl_Rational_Box_t ph, 6274 ppl_dimension_type var, 6275 ppl_const_Linear_Expression_t lb, 6276 ppl_const_Linear_Expression_t ub, 6277 ppl_const_Coefficient_t d)); 6278 6279/*! \relates ppl_Rational_Box_tag */ 6280int 6281ppl_Rational_Box_bounded_affine_preimage 6282PPL_PROTO((ppl_Rational_Box_t ph, 6283 ppl_dimension_type var, 6284 ppl_const_Linear_Expression_t lb, 6285 ppl_const_Linear_Expression_t ub, 6286 ppl_const_Coefficient_t d)); 6287 6288 6289 6290 6291 6292/*! \relates ppl_Rational_Box_tag */ 6293int 6294ppl_Rational_Box_generalized_affine_image 6295PPL_PROTO((ppl_Rational_Box_t ph, 6296 ppl_dimension_type var, 6297 enum ppl_enum_Constraint_Type relsym, 6298 ppl_const_Linear_Expression_t le, 6299 ppl_const_Coefficient_t d)); 6300 6301/*! \relates ppl_Rational_Box_tag */ 6302int 6303ppl_Rational_Box_generalized_affine_preimage 6304PPL_PROTO((ppl_Rational_Box_t ph, 6305 ppl_dimension_type var, 6306 enum ppl_enum_Constraint_Type relsym, 6307 ppl_const_Linear_Expression_t le, 6308 ppl_const_Coefficient_t d)); 6309 6310 6311 6312 6313 6314/*! \relates ppl_Rational_Box_tag */ 6315int 6316ppl_Rational_Box_generalized_affine_image_lhs_rhs 6317PPL_PROTO((ppl_Rational_Box_t ph, 6318 ppl_const_Linear_Expression_t lhs, 6319 enum ppl_enum_Constraint_Type relsym, 6320 ppl_const_Linear_Expression_t rhs)); 6321 6322/*! \relates ppl_Rational_Box_tag */ 6323int 6324ppl_Rational_Box_generalized_affine_preimage_lhs_rhs 6325PPL_PROTO((ppl_Rational_Box_t ph, 6326 ppl_const_Linear_Expression_t lhs, 6327 enum ppl_enum_Constraint_Type relsym, 6328 ppl_const_Linear_Expression_t rhs)); 6329 6330 6331 6332 6333 6334/*! \relates ppl_Rational_Box_tag */ 6335int 6336ppl_Rational_Box_add_space_dimensions_and_embed 6337PPL_PROTO((ppl_Rational_Box_t ph, 6338 ppl_dimension_type d)); 6339 6340/*! \relates ppl_Rational_Box_tag */ 6341int 6342ppl_Rational_Box_add_space_dimensions_and_project 6343PPL_PROTO((ppl_Rational_Box_t ph, 6344 ppl_dimension_type d)); 6345 6346 6347 6348 6349 6350/*! \relates ppl_Rational_Box_tag */ 6351int 6352ppl_Rational_Box_remove_space_dimensions 6353PPL_PROTO((ppl_Rational_Box_t ph, 6354 ppl_dimension_type ds[], 6355 size_t n)); 6356 6357 6358 6359 6360/*! \relates ppl_Rational_Box_tag */ 6361int 6362ppl_Rational_Box_remove_higher_space_dimensions 6363PPL_PROTO((ppl_Rational_Box_t ph, 6364 ppl_dimension_type d)); 6365 6366 6367 6368 6369/*! \relates ppl_Rational_Box_tag */ 6370int 6371ppl_Rational_Box_expand_space_dimension 6372PPL_PROTO((ppl_Rational_Box_t ph, 6373 ppl_dimension_type d, 6374 ppl_dimension_type m)); 6375 6376 6377 6378 6379/*! \relates ppl_Rational_Box_tag */ 6380int 6381ppl_Rational_Box_fold_space_dimensions 6382PPL_PROTO((ppl_Rational_Box_t ph, 6383 ppl_dimension_type ds[], 6384 size_t n, 6385 ppl_dimension_type d)); 6386 6387 6388 6389 6390/*! \relates ppl_Rational_Box_tag */ 6391int 6392ppl_Rational_Box_map_space_dimensions 6393PPL_PROTO((ppl_Rational_Box_t ph, 6394 ppl_dimension_type maps[], 6395 size_t n)); 6396 6397 6398 6399 6400/*! \relates ppl_Rational_Box_tag */ 6401int 6402ppl_Rational_Box_drop_some_non_integer_points 6403PPL_PROTO((ppl_Rational_Box_t ph, 6404 int complexity)); 6405 6406 6407 6408 6409/*! \relates ppl_Rational_Box_tag */ 6410int 6411ppl_Rational_Box_drop_some_non_integer_points_2 6412PPL_PROTO((ppl_Rational_Box_t ph, 6413 ppl_dimension_type ds[], 6414 size_t n, 6415 int complexity)); 6416 6417 6418 6419 6420 6421 6422/*! \relates ppl_Rational_Box_tag */ 6423int 6424ppl_Rational_Box_external_memory_in_bytes 6425PPL_PROTO((ppl_const_Rational_Box_t ps, 6426 size_t* sz)); 6427 6428/*! \relates ppl_Rational_Box_tag */ 6429int 6430ppl_Rational_Box_total_memory_in_bytes 6431PPL_PROTO((ppl_const_Rational_Box_t ps, 6432 size_t* sz)); 6433 6434 6435 6436 6437 6438/*! \relates ppl_Rational_Box_tag */ 6439int 6440ppl_Rational_Box_CC76_widening_assign_with_tokens 6441PPL_PROTO((ppl_Rational_Box_t x, 6442 ppl_const_Rational_Box_t y, 6443 unsigned* tp)); 6444 6445 6446 6447 6448 6449/*! \relates ppl_Rational_Box_tag */ 6450int 6451ppl_Rational_Box_CC76_widening_assign 6452PPL_PROTO((ppl_Rational_Box_t x, 6453 ppl_const_Rational_Box_t y)); 6454 6455 6456 6457 6458 6459/*! \relates ppl_Rational_Box_tag */ 6460int 6461ppl_Rational_Box_widening_assign_with_tokens 6462PPL_PROTO((ppl_Rational_Box_t x, 6463 ppl_const_Rational_Box_t y, 6464 unsigned* tp)); 6465 6466 6467 6468 6469/*! \relates ppl_Rational_Box_tag */ 6470int 6471ppl_Rational_Box_widening_assign 6472PPL_PROTO((ppl_Rational_Box_t x, 6473 ppl_const_Rational_Box_t y)); 6474 6475 6476 6477 6478/*! \relates ppl_Rational_Box_tag */ 6479int 6480ppl_Rational_Box_limited_CC76_extrapolation_assign_with_tokens 6481PPL_PROTO((ppl_Rational_Box_t x, 6482 ppl_const_Rational_Box_t y, 6483 ppl_const_Constraint_System_t cs, 6484 unsigned* tp)); 6485 6486 6487 6488 6489 6490 6491 6492/*! \relates ppl_Rational_Box_tag */ 6493int 6494ppl_Rational_Box_limited_CC76_extrapolation_assign 6495PPL_PROTO((ppl_Rational_Box_t x, 6496 ppl_const_Rational_Box_t y, 6497 ppl_const_Constraint_System_t cs)); 6498 6499 6500 6501 6502 6503 6504 6505/*! \relates ppl_Rational_Box_tag */ 6506int 6507ppl_Rational_Box_CC76_narrowing_assign 6508PPL_PROTO((ppl_Rational_Box_t x, 6509 ppl_const_Rational_Box_t y)); 6510 6511 6512 6513 6514 6515/*! \relates ppl_Rational_Box_tag */ 6516int 6517ppl_Rational_Box_linear_partition 6518PPL_PROTO((ppl_const_Rational_Box_t x, 6519 ppl_const_Rational_Box_t y, 6520 ppl_Rational_Box_t* p_inters, 6521 ppl_Pointset_Powerset_NNC_Polyhedron_t* p_rest)); 6522 6523 6524 6525 6526 6527/*! \relates ppl_Rational_Box_tag */ 6528int 6529ppl_Rational_Box_wrap_assign 6530PPL_PROTO((ppl_Rational_Box_t ph, 6531 ppl_dimension_type ds[], 6532 size_t n, 6533 enum ppl_enum_Bounded_Integer_Type_Width w, 6534 enum ppl_enum_Bounded_Integer_Type_Representation r, 6535 enum ppl_enum_Bounded_Integer_Type_Overflow o, 6536 const ppl_const_Constraint_System_t* pcs, 6537 unsigned complexity_threshold, 6538 int wrap_individually)); 6539 6540 6541 6542/*! \relates ppl_Rational_Box_tag */ 6543int 6544ppl_new_Rational_Box_recycle_Constraint_System 6545PPL_PROTO((ppl_Rational_Box_t* pph, ppl_Constraint_System_t cs)); 6546 6547/*! \relates ppl_Rational_Box_tag */ 6548int 6549ppl_new_Rational_Box_recycle_Congruence_System 6550PPL_PROTO((ppl_Rational_Box_t* pph, ppl_Congruence_System_t cs)); 6551 6552/*! \relates ppl_Rational_Box_tag */ 6553int 6554ppl_new_Rational_Box_recycle_Generator_System 6555PPL_PROTO((ppl_Rational_Box_t* pph, ppl_Generator_System_t cs)); 6556 6557 6558 6559 6560 6561 6562/*! \relates ppl_Rational_Box_tag */ 6563int 6564ppl_assign_Rational_Box_from_Rational_Box 6565PPL_PROTO((ppl_Rational_Box_t dst, ppl_const_Rational_Box_t src)); 6566 6567 6568 6569 6570 6571/*! \relates ppl_Rational_Box_tag */ 6572int 6573ppl_Rational_Box_add_recycled_constraints 6574PPL_PROTO((ppl_Rational_Box_t ph, 6575 ppl_Constraint_System_t cs)); 6576 6577/*! \relates ppl_Rational_Box_tag */ 6578int 6579ppl_Rational_Box_add_recycled_congruences 6580PPL_PROTO((ppl_Rational_Box_t ph, 6581 ppl_Congruence_System_t cs)); 6582 6583 6584 6585 6586 6587/*! \relates ppl_Rational_Box_tag */ 6588int 6589ppl_termination_test_MS_Rational_Box 6590PPL_PROTO((ppl_const_Rational_Box_t pset)); 6591 6592/*! \relates ppl_Rational_Box_tag */ 6593int 6594ppl_termination_test_PR_Rational_Box 6595PPL_PROTO((ppl_const_Rational_Box_t pset)); 6596 6597 6598 6599 6600 6601 6602/*! \relates ppl_Rational_Box_tag */ 6603int 6604ppl_one_affine_ranking_function_MS_Rational_Box 6605PPL_PROTO((ppl_const_Rational_Box_t pset, 6606 ppl_Generator_t point)); 6607 6608/*! \relates ppl_Rational_Box_tag */ 6609int 6610ppl_one_affine_ranking_function_PR_Rational_Box 6611PPL_PROTO((ppl_const_Rational_Box_t pset, 6612 ppl_Generator_t point)); 6613 6614 6615 6616 6617 6618 6619/*! \relates ppl_Rational_Box_tag */ 6620int 6621ppl_all_affine_ranking_functions_MS_Rational_Box 6622PPL_PROTO((ppl_const_Rational_Box_t pset, 6623 ppl_Polyhedron_t ph)); 6624 6625/*! \relates ppl_Rational_Box_tag */ 6626int 6627ppl_all_affine_ranking_functions_PR_Rational_Box 6628PPL_PROTO((ppl_const_Rational_Box_t pset, 6629 ppl_Polyhedron_t ph)); 6630 6631 6632 6633 6634 6635 6636/*! \relates ppl_Rational_Box_tag */ 6637int 6638ppl_termination_test_MS_Rational_Box_2 6639PPL_PROTO((ppl_const_Rational_Box_t pset_before, ppl_const_Rational_Box_t pset_after)); 6640 6641/*! \relates ppl_Rational_Box_tag */ 6642int 6643ppl_termination_test_PR_Rational_Box_2 6644PPL_PROTO((ppl_const_Rational_Box_t pset_before, ppl_const_Rational_Box_t pset_after)); 6645 6646 6647 6648 6649 6650 6651/*! \relates ppl_Rational_Box_tag */ 6652int 6653ppl_one_affine_ranking_function_MS_Rational_Box_2 6654PPL_PROTO((ppl_const_Rational_Box_t pset_before, 6655 ppl_const_Rational_Box_t pset_after, 6656 ppl_Generator_t point)); 6657 6658/*! \relates ppl_Rational_Box_tag */ 6659int 6660ppl_one_affine_ranking_function_PR_Rational_Box_2 6661PPL_PROTO((ppl_const_Rational_Box_t pset_before, 6662 ppl_const_Rational_Box_t pset_after, 6663 ppl_Generator_t point)); 6664 6665 6666 6667 6668 6669 6670/*! \relates ppl_Rational_Box_tag */ 6671int 6672ppl_all_affine_ranking_functions_MS_Rational_Box_2 6673PPL_PROTO((ppl_const_Rational_Box_t pset_before, 6674 ppl_const_Rational_Box_t pset_after, 6675 ppl_Polyhedron_t ph)); 6676 6677/*! \relates ppl_Rational_Box_tag */ 6678int 6679ppl_all_affine_ranking_functions_PR_Rational_Box_2 6680PPL_PROTO((ppl_const_Rational_Box_t pset_before, 6681 ppl_const_Rational_Box_t pset_after, 6682 ppl_Polyhedron_t ph)); 6683 6684 6685 6686 6687 6688 6689 6690PPL_DECLARE_IO_FUNCTIONS(Rational_Box) 6691 6692/* End of Functions Related to ppl_Rational_Box_tag */ 6693 6694/*! \interface ppl_BD_Shape_mpz_class_tag 6695 \brief Types and functions for ppl_BD_Shape_mpz_class_tag 6696*/ 6697 6698/*! \relates ppl_BD_Shape_mpz_class_tag */ 6699int 6700ppl_delete_BD_Shape_mpz_class 6701PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph)); 6702 6703 6704 6705 6706/*! \relates ppl_BD_Shape_mpz_class_tag */ 6707int 6708ppl_new_BD_Shape_mpz_class_from_space_dimension 6709PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_dimension_type d, int empty)); 6710 6711 6712 6713 6714 6715/*! \relates ppl_BD_Shape_mpz_class_tag */ 6716int 6717ppl_new_BD_Shape_mpz_class_from_C_Polyhedron 6718PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Polyhedron_t ph)); 6719 6720/*! \relates ppl_BD_Shape_mpz_class_tag */ 6721int 6722ppl_new_BD_Shape_mpz_class_from_NNC_Polyhedron 6723PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Polyhedron_t ph)); 6724 6725/*! \relates ppl_BD_Shape_mpz_class_tag */ 6726int 6727ppl_new_BD_Shape_mpz_class_from_Grid 6728PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Grid_t ph)); 6729 6730/*! \relates ppl_BD_Shape_mpz_class_tag */ 6731int 6732ppl_new_BD_Shape_mpz_class_from_Rational_Box 6733PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Rational_Box_t ph)); 6734 6735/*! \relates ppl_BD_Shape_mpz_class_tag */ 6736int 6737ppl_new_BD_Shape_mpz_class_from_BD_Shape_mpz_class 6738PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_BD_Shape_mpz_class_t ph)); 6739 6740/*! \relates ppl_BD_Shape_mpz_class_tag */ 6741int 6742ppl_new_BD_Shape_mpz_class_from_BD_Shape_mpq_class 6743PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_BD_Shape_mpq_class_t ph)); 6744 6745/*! \relates ppl_BD_Shape_mpz_class_tag */ 6746int 6747ppl_new_BD_Shape_mpz_class_from_Octagonal_Shape_mpz_class 6748PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph)); 6749 6750/*! \relates ppl_BD_Shape_mpz_class_tag */ 6751int 6752ppl_new_BD_Shape_mpz_class_from_Octagonal_Shape_mpq_class 6753PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph)); 6754 6755/*! \relates ppl_BD_Shape_mpz_class_tag */ 6756int 6757ppl_new_BD_Shape_mpz_class_from_Double_Box 6758PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Double_Box_t ph)); 6759 6760/*! \relates ppl_BD_Shape_mpz_class_tag */ 6761int 6762ppl_new_BD_Shape_mpz_class_from_BD_Shape_double 6763PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_BD_Shape_double_t ph)); 6764 6765/*! \relates ppl_BD_Shape_mpz_class_tag */ 6766int 6767ppl_new_BD_Shape_mpz_class_from_Octagonal_Shape_double 6768PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Octagonal_Shape_double_t ph)); 6769 6770 6771 6772 6773 6774 6775/*! \relates ppl_BD_Shape_mpz_class_tag */ 6776int 6777ppl_new_BD_Shape_mpz_class_from_C_Polyhedron_with_complexity 6778PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 6779 6780/*! \relates ppl_BD_Shape_mpz_class_tag */ 6781int 6782ppl_new_BD_Shape_mpz_class_from_NNC_Polyhedron_with_complexity 6783PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 6784 6785/*! \relates ppl_BD_Shape_mpz_class_tag */ 6786int 6787ppl_new_BD_Shape_mpz_class_from_Grid_with_complexity 6788PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Grid_t ph, int complexity)); 6789 6790/*! \relates ppl_BD_Shape_mpz_class_tag */ 6791int 6792ppl_new_BD_Shape_mpz_class_from_Rational_Box_with_complexity 6793PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Rational_Box_t ph, int complexity)); 6794 6795/*! \relates ppl_BD_Shape_mpz_class_tag */ 6796int 6797ppl_new_BD_Shape_mpz_class_from_BD_Shape_mpz_class_with_complexity 6798PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_BD_Shape_mpz_class_t ph, int complexity)); 6799 6800/*! \relates ppl_BD_Shape_mpz_class_tag */ 6801int 6802ppl_new_BD_Shape_mpz_class_from_BD_Shape_mpq_class_with_complexity 6803PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_BD_Shape_mpq_class_t ph, int complexity)); 6804 6805/*! \relates ppl_BD_Shape_mpz_class_tag */ 6806int 6807ppl_new_BD_Shape_mpz_class_from_Octagonal_Shape_mpz_class_with_complexity 6808PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph, int complexity)); 6809 6810/*! \relates ppl_BD_Shape_mpz_class_tag */ 6811int 6812ppl_new_BD_Shape_mpz_class_from_Octagonal_Shape_mpq_class_with_complexity 6813PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph, int complexity)); 6814 6815/*! \relates ppl_BD_Shape_mpz_class_tag */ 6816int 6817ppl_new_BD_Shape_mpz_class_from_Double_Box_with_complexity 6818PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Double_Box_t ph, int complexity)); 6819 6820/*! \relates ppl_BD_Shape_mpz_class_tag */ 6821int 6822ppl_new_BD_Shape_mpz_class_from_BD_Shape_double_with_complexity 6823PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_BD_Shape_double_t ph, int complexity)); 6824 6825/*! \relates ppl_BD_Shape_mpz_class_tag */ 6826int 6827ppl_new_BD_Shape_mpz_class_from_Octagonal_Shape_double_with_complexity 6828PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Octagonal_Shape_double_t ph, int complexity)); 6829 6830 6831 6832 6833 6834 6835/*! \relates ppl_BD_Shape_mpz_class_tag */ 6836int 6837ppl_new_BD_Shape_mpz_class_from_Constraint_System 6838PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Constraint_System_t cs)); 6839 6840/*! \relates ppl_BD_Shape_mpz_class_tag */ 6841int 6842ppl_new_BD_Shape_mpz_class_from_Congruence_System 6843PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Congruence_System_t cs)); 6844 6845/*! \relates ppl_BD_Shape_mpz_class_tag */ 6846int 6847ppl_new_BD_Shape_mpz_class_from_Generator_System 6848PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_const_Generator_System_t cs)); 6849 6850 6851 6852 6853 6854 6855 6856 6857/*! \relates ppl_BD_Shape_mpz_class_tag */ 6858int 6859ppl_BD_Shape_mpz_class_space_dimension 6860PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, ppl_dimension_type* m)); 6861 6862/*! \relates ppl_BD_Shape_mpz_class_tag */ 6863int 6864ppl_BD_Shape_mpz_class_affine_dimension 6865PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, ppl_dimension_type* m)); 6866 6867 6868 6869 6870 6871/*! \relates ppl_BD_Shape_mpz_class_tag */ 6872int 6873ppl_BD_Shape_mpz_class_relation_with_Constraint 6874PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, 6875 ppl_const_Constraint_t c)); 6876 6877/*! \relates ppl_BD_Shape_mpz_class_tag */ 6878int 6879ppl_BD_Shape_mpz_class_relation_with_Generator 6880PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, 6881 ppl_const_Generator_t c)); 6882 6883/*! \relates ppl_BD_Shape_mpz_class_tag */ 6884int 6885ppl_BD_Shape_mpz_class_relation_with_Congruence 6886PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, 6887 ppl_const_Congruence_t c)); 6888 6889 6890 6891 6892 6893/*! \relates ppl_BD_Shape_mpz_class_tag */ 6894int 6895ppl_BD_Shape_mpz_class_get_constraints 6896PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, 6897 ppl_const_Constraint_System_t* pcs)); 6898 6899/*! \relates ppl_BD_Shape_mpz_class_tag */ 6900int 6901ppl_BD_Shape_mpz_class_get_congruences 6902PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, 6903 ppl_const_Congruence_System_t* pcs)); 6904 6905 6906 6907 6908 6909/*! \relates ppl_BD_Shape_mpz_class_tag */ 6910int 6911ppl_BD_Shape_mpz_class_get_minimized_constraints 6912PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, 6913 ppl_const_Constraint_System_t* pcs)); 6914 6915/*! \relates ppl_BD_Shape_mpz_class_tag */ 6916int 6917ppl_BD_Shape_mpz_class_get_minimized_congruences 6918PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, 6919 ppl_const_Congruence_System_t* pcs)); 6920 6921 6922 6923 6924 6925/*! \relates ppl_BD_Shape_mpz_class_tag */ 6926int 6927ppl_BD_Shape_mpz_class_is_empty 6928PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph)); 6929 6930/*! \relates ppl_BD_Shape_mpz_class_tag */ 6931int 6932ppl_BD_Shape_mpz_class_is_universe 6933PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph)); 6934 6935/*! \relates ppl_BD_Shape_mpz_class_tag */ 6936int 6937ppl_BD_Shape_mpz_class_is_bounded 6938PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph)); 6939 6940/*! \relates ppl_BD_Shape_mpz_class_tag */ 6941int 6942ppl_BD_Shape_mpz_class_contains_integer_point 6943PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph)); 6944 6945/*! \relates ppl_BD_Shape_mpz_class_tag */ 6946int 6947ppl_BD_Shape_mpz_class_is_topologically_closed 6948PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph)); 6949 6950/*! \relates ppl_BD_Shape_mpz_class_tag */ 6951int 6952ppl_BD_Shape_mpz_class_is_discrete 6953PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph)); 6954 6955 6956 6957 6958 6959/*! \relates ppl_BD_Shape_mpz_class_tag */ 6960int 6961ppl_BD_Shape_mpz_class_topological_closure_assign 6962PPL_PROTO((ppl_BD_Shape_mpz_class_t ph)); 6963 6964 6965 6966 6967 6968/*! \relates ppl_BD_Shape_mpz_class_tag */ 6969int 6970ppl_BD_Shape_mpz_class_bounds_from_above 6971PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, 6972 ppl_const_Linear_Expression_t le)); 6973 6974/*! \relates ppl_BD_Shape_mpz_class_tag */ 6975int 6976ppl_BD_Shape_mpz_class_bounds_from_below 6977PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, 6978 ppl_const_Linear_Expression_t le)); 6979 6980 6981 6982 6983 6984/*! \relates ppl_BD_Shape_mpz_class_tag */ 6985int 6986ppl_BD_Shape_mpz_class_maximize 6987PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, 6988 ppl_const_Linear_Expression_t le, 6989 ppl_Coefficient_t ext_n, 6990 ppl_Coefficient_t ext_d, 6991 int* poptimum)); 6992 6993/*! \relates ppl_BD_Shape_mpz_class_tag */ 6994int 6995ppl_BD_Shape_mpz_class_minimize 6996PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, 6997 ppl_const_Linear_Expression_t le, 6998 ppl_Coefficient_t ext_n, 6999 ppl_Coefficient_t ext_d, 7000 int* poptimum)); 7001 7002 7003 7004 7005 7006/*! \relates ppl_BD_Shape_mpz_class_tag */ 7007int 7008ppl_BD_Shape_mpz_class_maximize_with_point 7009PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, 7010 ppl_const_Linear_Expression_t le, 7011 ppl_Coefficient_t ext_n, 7012 ppl_Coefficient_t ext_d, 7013 int* poptimum, 7014 ppl_Generator_t point)); 7015 7016/*! \relates ppl_BD_Shape_mpz_class_tag */ 7017int 7018ppl_BD_Shape_mpz_class_minimize_with_point 7019PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, 7020 ppl_const_Linear_Expression_t le, 7021 ppl_Coefficient_t ext_n, 7022 ppl_Coefficient_t ext_d, 7023 int* poptimum, 7024 ppl_Generator_t point)); 7025 7026 7027 7028 7029 7030/*! \relates ppl_BD_Shape_mpz_class_tag */ 7031int 7032ppl_BD_Shape_mpz_class_frequency 7033PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph, 7034 ppl_const_Linear_Expression_t le, 7035 ppl_Coefficient_t ext_fn, 7036 ppl_Coefficient_t ext_fd, 7037 ppl_Coefficient_t ext_vn, 7038 ppl_Coefficient_t ext_vd)); 7039 7040 7041 7042 7043/*! \relates ppl_BD_Shape_mpz_class_tag */ 7044int 7045ppl_BD_Shape_mpz_class_contains_BD_Shape_mpz_class 7046PPL_PROTO((ppl_const_BD_Shape_mpz_class_t x, 7047 ppl_const_BD_Shape_mpz_class_t y)); 7048 7049/*! \relates ppl_BD_Shape_mpz_class_tag */ 7050int 7051ppl_BD_Shape_mpz_class_strictly_contains_BD_Shape_mpz_class 7052PPL_PROTO((ppl_const_BD_Shape_mpz_class_t x, 7053 ppl_const_BD_Shape_mpz_class_t y)); 7054 7055/*! \relates ppl_BD_Shape_mpz_class_tag */ 7056int 7057ppl_BD_Shape_mpz_class_is_disjoint_from_BD_Shape_mpz_class 7058PPL_PROTO((ppl_const_BD_Shape_mpz_class_t x, 7059 ppl_const_BD_Shape_mpz_class_t y)); 7060 7061 7062 7063 7064 7065/*! \relates ppl_BD_Shape_mpz_class_tag */ 7066int 7067ppl_BD_Shape_mpz_class_equals_BD_Shape_mpz_class 7068PPL_PROTO((ppl_const_BD_Shape_mpz_class_t x, 7069 ppl_const_BD_Shape_mpz_class_t y)); 7070 7071 7072 7073 7074/*! \relates ppl_BD_Shape_mpz_class_tag */ 7075int 7076ppl_BD_Shape_mpz_class_OK 7077PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ph)); 7078 7079 7080 7081 7082/*! \relates ppl_BD_Shape_mpz_class_tag */ 7083int 7084ppl_BD_Shape_mpz_class_add_constraint 7085PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7086 ppl_const_Constraint_t c)); 7087 7088/*! \relates ppl_BD_Shape_mpz_class_tag */ 7089int 7090ppl_BD_Shape_mpz_class_add_congruence 7091PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7092 ppl_const_Congruence_t c)); 7093 7094 7095 7096 7097 7098/*! \relates ppl_BD_Shape_mpz_class_tag */ 7099int 7100ppl_BD_Shape_mpz_class_add_constraints 7101PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7102 ppl_const_Constraint_System_t cs)); 7103 7104/*! \relates ppl_BD_Shape_mpz_class_tag */ 7105int 7106ppl_BD_Shape_mpz_class_add_congruences 7107PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7108 ppl_const_Congruence_System_t cs)); 7109 7110 7111 7112 7113 7114/*! \relates ppl_BD_Shape_mpz_class_tag */ 7115int 7116ppl_BD_Shape_mpz_class_refine_with_constraint 7117PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7118 ppl_const_Constraint_t c)); 7119 7120/*! \relates ppl_BD_Shape_mpz_class_tag */ 7121int 7122ppl_BD_Shape_mpz_class_refine_with_congruence 7123PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7124 ppl_const_Congruence_t c)); 7125 7126 7127 7128 7129 7130/*! \relates ppl_BD_Shape_mpz_class_tag */ 7131int 7132ppl_BD_Shape_mpz_class_refine_with_constraints 7133PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7134 ppl_const_Constraint_System_t cs)); 7135 7136/*! \relates ppl_BD_Shape_mpz_class_tag */ 7137int 7138ppl_BD_Shape_mpz_class_refine_with_congruences 7139PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7140 ppl_const_Congruence_System_t cs)); 7141 7142 7143 7144 7145 7146/*! \relates ppl_BD_Shape_mpz_class_tag */ 7147int 7148ppl_BD_Shape_mpz_class_intersection_assign 7149PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7150 ppl_const_BD_Shape_mpz_class_t y)); 7151 7152/*! \relates ppl_BD_Shape_mpz_class_tag */ 7153int 7154ppl_BD_Shape_mpz_class_upper_bound_assign 7155PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7156 ppl_const_BD_Shape_mpz_class_t y)); 7157 7158/*! \relates ppl_BD_Shape_mpz_class_tag */ 7159int 7160ppl_BD_Shape_mpz_class_difference_assign 7161PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7162 ppl_const_BD_Shape_mpz_class_t y)); 7163 7164/*! \relates ppl_BD_Shape_mpz_class_tag */ 7165int 7166ppl_BD_Shape_mpz_class_concatenate_assign 7167PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7168 ppl_const_BD_Shape_mpz_class_t y)); 7169 7170/*! \relates ppl_BD_Shape_mpz_class_tag */ 7171int 7172ppl_BD_Shape_mpz_class_time_elapse_assign 7173PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7174 ppl_const_BD_Shape_mpz_class_t y)); 7175 7176 7177 7178 7179 7180/*! \relates ppl_BD_Shape_mpz_class_tag */ 7181int 7182ppl_BD_Shape_mpz_class_upper_bound_assign_if_exact 7183PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7184 ppl_const_BD_Shape_mpz_class_t y)); 7185 7186 7187 7188 7189 7190/*! \relates ppl_BD_Shape_mpz_class_tag */ 7191int 7192ppl_BD_Shape_mpz_class_simplify_using_context_assign 7193PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7194 ppl_const_BD_Shape_mpz_class_t y)); 7195 7196 7197 7198 7199/*! \relates ppl_BD_Shape_mpz_class_tag */ 7200int 7201ppl_BD_Shape_mpz_class_constrains 7202PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7203 ppl_dimension_type var)); 7204 7205 7206 7207 7208/*! \relates ppl_BD_Shape_mpz_class_tag */ 7209int 7210ppl_BD_Shape_mpz_class_unconstrain_space_dimension 7211PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7212 ppl_dimension_type var)); 7213 7214 7215 7216 7217/*! \relates ppl_BD_Shape_mpz_class_tag */ 7218int 7219ppl_BD_Shape_mpz_class_unconstrain_space_dimensions 7220PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7221 ppl_dimension_type ds[], 7222 size_t n)); 7223 7224 7225 7226 7227/*! \relates ppl_BD_Shape_mpz_class_tag */ 7228int 7229ppl_BD_Shape_mpz_class_affine_image 7230PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7231 ppl_dimension_type var, 7232 ppl_const_Linear_Expression_t le, 7233 ppl_const_Coefficient_t d)); 7234 7235/*! \relates ppl_BD_Shape_mpz_class_tag */ 7236int 7237ppl_BD_Shape_mpz_class_affine_preimage 7238PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7239 ppl_dimension_type var, 7240 ppl_const_Linear_Expression_t le, 7241 ppl_const_Coefficient_t d)); 7242 7243 7244 7245 7246 7247/*! \relates ppl_BD_Shape_mpz_class_tag */ 7248int 7249ppl_BD_Shape_mpz_class_bounded_affine_image 7250PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7251 ppl_dimension_type var, 7252 ppl_const_Linear_Expression_t lb, 7253 ppl_const_Linear_Expression_t ub, 7254 ppl_const_Coefficient_t d)); 7255 7256/*! \relates ppl_BD_Shape_mpz_class_tag */ 7257int 7258ppl_BD_Shape_mpz_class_bounded_affine_preimage 7259PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7260 ppl_dimension_type var, 7261 ppl_const_Linear_Expression_t lb, 7262 ppl_const_Linear_Expression_t ub, 7263 ppl_const_Coefficient_t d)); 7264 7265 7266 7267 7268 7269/*! \relates ppl_BD_Shape_mpz_class_tag */ 7270int 7271ppl_BD_Shape_mpz_class_generalized_affine_image 7272PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7273 ppl_dimension_type var, 7274 enum ppl_enum_Constraint_Type relsym, 7275 ppl_const_Linear_Expression_t le, 7276 ppl_const_Coefficient_t d)); 7277 7278/*! \relates ppl_BD_Shape_mpz_class_tag */ 7279int 7280ppl_BD_Shape_mpz_class_generalized_affine_preimage 7281PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7282 ppl_dimension_type var, 7283 enum ppl_enum_Constraint_Type relsym, 7284 ppl_const_Linear_Expression_t le, 7285 ppl_const_Coefficient_t d)); 7286 7287 7288 7289 7290 7291/*! \relates ppl_BD_Shape_mpz_class_tag */ 7292int 7293ppl_BD_Shape_mpz_class_generalized_affine_image_lhs_rhs 7294PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7295 ppl_const_Linear_Expression_t lhs, 7296 enum ppl_enum_Constraint_Type relsym, 7297 ppl_const_Linear_Expression_t rhs)); 7298 7299/*! \relates ppl_BD_Shape_mpz_class_tag */ 7300int 7301ppl_BD_Shape_mpz_class_generalized_affine_preimage_lhs_rhs 7302PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7303 ppl_const_Linear_Expression_t lhs, 7304 enum ppl_enum_Constraint_Type relsym, 7305 ppl_const_Linear_Expression_t rhs)); 7306 7307 7308 7309 7310 7311/*! \relates ppl_BD_Shape_mpz_class_tag */ 7312int 7313ppl_BD_Shape_mpz_class_add_space_dimensions_and_embed 7314PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7315 ppl_dimension_type d)); 7316 7317/*! \relates ppl_BD_Shape_mpz_class_tag */ 7318int 7319ppl_BD_Shape_mpz_class_add_space_dimensions_and_project 7320PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7321 ppl_dimension_type d)); 7322 7323 7324 7325 7326 7327/*! \relates ppl_BD_Shape_mpz_class_tag */ 7328int 7329ppl_BD_Shape_mpz_class_remove_space_dimensions 7330PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7331 ppl_dimension_type ds[], 7332 size_t n)); 7333 7334 7335 7336 7337/*! \relates ppl_BD_Shape_mpz_class_tag */ 7338int 7339ppl_BD_Shape_mpz_class_remove_higher_space_dimensions 7340PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7341 ppl_dimension_type d)); 7342 7343 7344 7345 7346/*! \relates ppl_BD_Shape_mpz_class_tag */ 7347int 7348ppl_BD_Shape_mpz_class_expand_space_dimension 7349PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7350 ppl_dimension_type d, 7351 ppl_dimension_type m)); 7352 7353 7354 7355 7356/*! \relates ppl_BD_Shape_mpz_class_tag */ 7357int 7358ppl_BD_Shape_mpz_class_fold_space_dimensions 7359PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7360 ppl_dimension_type ds[], 7361 size_t n, 7362 ppl_dimension_type d)); 7363 7364 7365 7366 7367/*! \relates ppl_BD_Shape_mpz_class_tag */ 7368int 7369ppl_BD_Shape_mpz_class_map_space_dimensions 7370PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7371 ppl_dimension_type maps[], 7372 size_t n)); 7373 7374 7375 7376 7377/*! \relates ppl_BD_Shape_mpz_class_tag */ 7378int 7379ppl_BD_Shape_mpz_class_drop_some_non_integer_points 7380PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7381 int complexity)); 7382 7383 7384 7385 7386/*! \relates ppl_BD_Shape_mpz_class_tag */ 7387int 7388ppl_BD_Shape_mpz_class_drop_some_non_integer_points_2 7389PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7390 ppl_dimension_type ds[], 7391 size_t n, 7392 int complexity)); 7393 7394 7395 7396 7397 7398 7399/*! \relates ppl_BD_Shape_mpz_class_tag */ 7400int 7401ppl_BD_Shape_mpz_class_external_memory_in_bytes 7402PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ps, 7403 size_t* sz)); 7404 7405/*! \relates ppl_BD_Shape_mpz_class_tag */ 7406int 7407ppl_BD_Shape_mpz_class_total_memory_in_bytes 7408PPL_PROTO((ppl_const_BD_Shape_mpz_class_t ps, 7409 size_t* sz)); 7410 7411 7412 7413 7414 7415/*! \relates ppl_BD_Shape_mpz_class_tag */ 7416int 7417ppl_BD_Shape_mpz_class_BHMZ05_widening_assign_with_tokens 7418PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7419 ppl_const_BD_Shape_mpz_class_t y, 7420 unsigned* tp)); 7421 7422/*! \relates ppl_BD_Shape_mpz_class_tag */ 7423int 7424ppl_BD_Shape_mpz_class_H79_widening_assign_with_tokens 7425PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7426 ppl_const_BD_Shape_mpz_class_t y, 7427 unsigned* tp)); 7428 7429 7430 7431 7432 7433/*! \relates ppl_BD_Shape_mpz_class_tag */ 7434int 7435ppl_BD_Shape_mpz_class_BHMZ05_widening_assign 7436PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7437 ppl_const_BD_Shape_mpz_class_t y)); 7438 7439/*! \relates ppl_BD_Shape_mpz_class_tag */ 7440int 7441ppl_BD_Shape_mpz_class_H79_widening_assign 7442PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7443 ppl_const_BD_Shape_mpz_class_t y)); 7444 7445 7446 7447 7448 7449/*! \relates ppl_BD_Shape_mpz_class_tag */ 7450int 7451ppl_BD_Shape_mpz_class_widening_assign_with_tokens 7452PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7453 ppl_const_BD_Shape_mpz_class_t y, 7454 unsigned* tp)); 7455 7456 7457 7458 7459/*! \relates ppl_BD_Shape_mpz_class_tag */ 7460int 7461ppl_BD_Shape_mpz_class_widening_assign 7462PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7463 ppl_const_BD_Shape_mpz_class_t y)); 7464 7465 7466 7467 7468/*! \relates ppl_BD_Shape_mpz_class_tag */ 7469int 7470ppl_BD_Shape_mpz_class_limited_BHMZ05_extrapolation_assign_with_tokens 7471PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7472 ppl_const_BD_Shape_mpz_class_t y, 7473 ppl_const_Constraint_System_t cs, 7474 unsigned* tp)); 7475 7476/*! \relates ppl_BD_Shape_mpz_class_tag */ 7477int 7478ppl_BD_Shape_mpz_class_limited_H79_extrapolation_assign_with_tokens 7479PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7480 ppl_const_BD_Shape_mpz_class_t y, 7481 ppl_const_Constraint_System_t cs, 7482 unsigned* tp)); 7483 7484/*! \relates ppl_BD_Shape_mpz_class_tag */ 7485int 7486ppl_BD_Shape_mpz_class_limited_CC76_extrapolation_assign_with_tokens 7487PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7488 ppl_const_BD_Shape_mpz_class_t y, 7489 ppl_const_Constraint_System_t cs, 7490 unsigned* tp)); 7491 7492 7493 7494 7495 7496 7497 7498/*! \relates ppl_BD_Shape_mpz_class_tag */ 7499int 7500ppl_BD_Shape_mpz_class_limited_BHMZ05_extrapolation_assign 7501PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7502 ppl_const_BD_Shape_mpz_class_t y, 7503 ppl_const_Constraint_System_t cs)); 7504 7505/*! \relates ppl_BD_Shape_mpz_class_tag */ 7506int 7507ppl_BD_Shape_mpz_class_limited_H79_extrapolation_assign 7508PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7509 ppl_const_BD_Shape_mpz_class_t y, 7510 ppl_const_Constraint_System_t cs)); 7511 7512/*! \relates ppl_BD_Shape_mpz_class_tag */ 7513int 7514ppl_BD_Shape_mpz_class_limited_CC76_extrapolation_assign 7515PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7516 ppl_const_BD_Shape_mpz_class_t y, 7517 ppl_const_Constraint_System_t cs)); 7518 7519 7520 7521 7522 7523 7524 7525/*! \relates ppl_BD_Shape_mpz_class_tag */ 7526int 7527ppl_BD_Shape_mpz_class_CC76_extrapolation_assign_with_tokens 7528PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7529 ppl_const_BD_Shape_mpz_class_t y, 7530 unsigned* tp)); 7531 7532 7533 7534 7535 7536/*! \relates ppl_BD_Shape_mpz_class_tag */ 7537int 7538ppl_BD_Shape_mpz_class_CC76_extrapolation_assign 7539PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7540 ppl_const_BD_Shape_mpz_class_t y)); 7541 7542 7543 7544 7545 7546/*! \relates ppl_BD_Shape_mpz_class_tag */ 7547int 7548ppl_BD_Shape_mpz_class_CC76_narrowing_assign 7549PPL_PROTO((ppl_BD_Shape_mpz_class_t x, 7550 ppl_const_BD_Shape_mpz_class_t y)); 7551 7552 7553 7554 7555 7556/*! \relates ppl_BD_Shape_mpz_class_tag */ 7557int 7558ppl_BD_Shape_mpz_class_linear_partition 7559PPL_PROTO((ppl_const_BD_Shape_mpz_class_t x, 7560 ppl_const_BD_Shape_mpz_class_t y, 7561 ppl_BD_Shape_mpz_class_t* p_inters, 7562 ppl_Pointset_Powerset_NNC_Polyhedron_t* p_rest)); 7563 7564 7565 7566 7567 7568/*! \relates ppl_BD_Shape_mpz_class_tag */ 7569int 7570ppl_BD_Shape_mpz_class_wrap_assign 7571PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7572 ppl_dimension_type ds[], 7573 size_t n, 7574 enum ppl_enum_Bounded_Integer_Type_Width w, 7575 enum ppl_enum_Bounded_Integer_Type_Representation r, 7576 enum ppl_enum_Bounded_Integer_Type_Overflow o, 7577 const ppl_const_Constraint_System_t* pcs, 7578 unsigned complexity_threshold, 7579 int wrap_individually)); 7580 7581 7582 7583/*! \relates ppl_BD_Shape_mpz_class_tag */ 7584int 7585ppl_new_BD_Shape_mpz_class_recycle_Constraint_System 7586PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_Constraint_System_t cs)); 7587 7588/*! \relates ppl_BD_Shape_mpz_class_tag */ 7589int 7590ppl_new_BD_Shape_mpz_class_recycle_Congruence_System 7591PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_Congruence_System_t cs)); 7592 7593/*! \relates ppl_BD_Shape_mpz_class_tag */ 7594int 7595ppl_new_BD_Shape_mpz_class_recycle_Generator_System 7596PPL_PROTO((ppl_BD_Shape_mpz_class_t* pph, ppl_Generator_System_t cs)); 7597 7598 7599 7600 7601 7602 7603/*! \relates ppl_BD_Shape_mpz_class_tag */ 7604int 7605ppl_assign_BD_Shape_mpz_class_from_BD_Shape_mpz_class 7606PPL_PROTO((ppl_BD_Shape_mpz_class_t dst, ppl_const_BD_Shape_mpz_class_t src)); 7607 7608 7609 7610 7611 7612/*! \relates ppl_BD_Shape_mpz_class_tag */ 7613int 7614ppl_BD_Shape_mpz_class_add_recycled_constraints 7615PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7616 ppl_Constraint_System_t cs)); 7617 7618/*! \relates ppl_BD_Shape_mpz_class_tag */ 7619int 7620ppl_BD_Shape_mpz_class_add_recycled_congruences 7621PPL_PROTO((ppl_BD_Shape_mpz_class_t ph, 7622 ppl_Congruence_System_t cs)); 7623 7624 7625 7626 7627 7628/*! \relates ppl_BD_Shape_mpz_class_tag */ 7629int 7630ppl_termination_test_MS_BD_Shape_mpz_class 7631PPL_PROTO((ppl_const_BD_Shape_mpz_class_t pset)); 7632 7633/*! \relates ppl_BD_Shape_mpz_class_tag */ 7634int 7635ppl_termination_test_PR_BD_Shape_mpz_class 7636PPL_PROTO((ppl_const_BD_Shape_mpz_class_t pset)); 7637 7638 7639 7640 7641 7642 7643/*! \relates ppl_BD_Shape_mpz_class_tag */ 7644int 7645ppl_one_affine_ranking_function_MS_BD_Shape_mpz_class 7646PPL_PROTO((ppl_const_BD_Shape_mpz_class_t pset, 7647 ppl_Generator_t point)); 7648 7649/*! \relates ppl_BD_Shape_mpz_class_tag */ 7650int 7651ppl_one_affine_ranking_function_PR_BD_Shape_mpz_class 7652PPL_PROTO((ppl_const_BD_Shape_mpz_class_t pset, 7653 ppl_Generator_t point)); 7654 7655 7656 7657 7658 7659 7660/*! \relates ppl_BD_Shape_mpz_class_tag */ 7661int 7662ppl_all_affine_ranking_functions_MS_BD_Shape_mpz_class 7663PPL_PROTO((ppl_const_BD_Shape_mpz_class_t pset, 7664 ppl_Polyhedron_t ph)); 7665 7666/*! \relates ppl_BD_Shape_mpz_class_tag */ 7667int 7668ppl_all_affine_ranking_functions_PR_BD_Shape_mpz_class 7669PPL_PROTO((ppl_const_BD_Shape_mpz_class_t pset, 7670 ppl_Polyhedron_t ph)); 7671 7672 7673 7674 7675 7676 7677/*! \relates ppl_BD_Shape_mpz_class_tag */ 7678int 7679ppl_termination_test_MS_BD_Shape_mpz_class_2 7680PPL_PROTO((ppl_const_BD_Shape_mpz_class_t pset_before, ppl_const_BD_Shape_mpz_class_t pset_after)); 7681 7682/*! \relates ppl_BD_Shape_mpz_class_tag */ 7683int 7684ppl_termination_test_PR_BD_Shape_mpz_class_2 7685PPL_PROTO((ppl_const_BD_Shape_mpz_class_t pset_before, ppl_const_BD_Shape_mpz_class_t pset_after)); 7686 7687 7688 7689 7690 7691 7692/*! \relates ppl_BD_Shape_mpz_class_tag */ 7693int 7694ppl_one_affine_ranking_function_MS_BD_Shape_mpz_class_2 7695PPL_PROTO((ppl_const_BD_Shape_mpz_class_t pset_before, 7696 ppl_const_BD_Shape_mpz_class_t pset_after, 7697 ppl_Generator_t point)); 7698 7699/*! \relates ppl_BD_Shape_mpz_class_tag */ 7700int 7701ppl_one_affine_ranking_function_PR_BD_Shape_mpz_class_2 7702PPL_PROTO((ppl_const_BD_Shape_mpz_class_t pset_before, 7703 ppl_const_BD_Shape_mpz_class_t pset_after, 7704 ppl_Generator_t point)); 7705 7706 7707 7708 7709 7710 7711/*! \relates ppl_BD_Shape_mpz_class_tag */ 7712int 7713ppl_all_affine_ranking_functions_MS_BD_Shape_mpz_class_2 7714PPL_PROTO((ppl_const_BD_Shape_mpz_class_t pset_before, 7715 ppl_const_BD_Shape_mpz_class_t pset_after, 7716 ppl_Polyhedron_t ph)); 7717 7718/*! \relates ppl_BD_Shape_mpz_class_tag */ 7719int 7720ppl_all_affine_ranking_functions_PR_BD_Shape_mpz_class_2 7721PPL_PROTO((ppl_const_BD_Shape_mpz_class_t pset_before, 7722 ppl_const_BD_Shape_mpz_class_t pset_after, 7723 ppl_Polyhedron_t ph)); 7724 7725 7726 7727 7728 7729 7730 7731PPL_DECLARE_IO_FUNCTIONS(BD_Shape_mpz_class) 7732 7733/* End of Functions Related to ppl_BD_Shape_mpz_class_tag */ 7734 7735/*! \interface ppl_BD_Shape_mpq_class_tag 7736 \brief Types and functions for ppl_BD_Shape_mpq_class_tag 7737*/ 7738 7739/*! \relates ppl_BD_Shape_mpq_class_tag */ 7740int 7741ppl_delete_BD_Shape_mpq_class 7742PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph)); 7743 7744 7745 7746 7747/*! \relates ppl_BD_Shape_mpq_class_tag */ 7748int 7749ppl_new_BD_Shape_mpq_class_from_space_dimension 7750PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_dimension_type d, int empty)); 7751 7752 7753 7754 7755 7756/*! \relates ppl_BD_Shape_mpq_class_tag */ 7757int 7758ppl_new_BD_Shape_mpq_class_from_C_Polyhedron 7759PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Polyhedron_t ph)); 7760 7761/*! \relates ppl_BD_Shape_mpq_class_tag */ 7762int 7763ppl_new_BD_Shape_mpq_class_from_NNC_Polyhedron 7764PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Polyhedron_t ph)); 7765 7766/*! \relates ppl_BD_Shape_mpq_class_tag */ 7767int 7768ppl_new_BD_Shape_mpq_class_from_Grid 7769PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Grid_t ph)); 7770 7771/*! \relates ppl_BD_Shape_mpq_class_tag */ 7772int 7773ppl_new_BD_Shape_mpq_class_from_Rational_Box 7774PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Rational_Box_t ph)); 7775 7776/*! \relates ppl_BD_Shape_mpq_class_tag */ 7777int 7778ppl_new_BD_Shape_mpq_class_from_BD_Shape_mpz_class 7779PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_BD_Shape_mpz_class_t ph)); 7780 7781/*! \relates ppl_BD_Shape_mpq_class_tag */ 7782int 7783ppl_new_BD_Shape_mpq_class_from_BD_Shape_mpq_class 7784PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_BD_Shape_mpq_class_t ph)); 7785 7786/*! \relates ppl_BD_Shape_mpq_class_tag */ 7787int 7788ppl_new_BD_Shape_mpq_class_from_Octagonal_Shape_mpz_class 7789PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph)); 7790 7791/*! \relates ppl_BD_Shape_mpq_class_tag */ 7792int 7793ppl_new_BD_Shape_mpq_class_from_Octagonal_Shape_mpq_class 7794PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph)); 7795 7796/*! \relates ppl_BD_Shape_mpq_class_tag */ 7797int 7798ppl_new_BD_Shape_mpq_class_from_Double_Box 7799PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Double_Box_t ph)); 7800 7801/*! \relates ppl_BD_Shape_mpq_class_tag */ 7802int 7803ppl_new_BD_Shape_mpq_class_from_BD_Shape_double 7804PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_BD_Shape_double_t ph)); 7805 7806/*! \relates ppl_BD_Shape_mpq_class_tag */ 7807int 7808ppl_new_BD_Shape_mpq_class_from_Octagonal_Shape_double 7809PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Octagonal_Shape_double_t ph)); 7810 7811 7812 7813 7814 7815 7816/*! \relates ppl_BD_Shape_mpq_class_tag */ 7817int 7818ppl_new_BD_Shape_mpq_class_from_C_Polyhedron_with_complexity 7819PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 7820 7821/*! \relates ppl_BD_Shape_mpq_class_tag */ 7822int 7823ppl_new_BD_Shape_mpq_class_from_NNC_Polyhedron_with_complexity 7824PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 7825 7826/*! \relates ppl_BD_Shape_mpq_class_tag */ 7827int 7828ppl_new_BD_Shape_mpq_class_from_Grid_with_complexity 7829PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Grid_t ph, int complexity)); 7830 7831/*! \relates ppl_BD_Shape_mpq_class_tag */ 7832int 7833ppl_new_BD_Shape_mpq_class_from_Rational_Box_with_complexity 7834PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Rational_Box_t ph, int complexity)); 7835 7836/*! \relates ppl_BD_Shape_mpq_class_tag */ 7837int 7838ppl_new_BD_Shape_mpq_class_from_BD_Shape_mpz_class_with_complexity 7839PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_BD_Shape_mpz_class_t ph, int complexity)); 7840 7841/*! \relates ppl_BD_Shape_mpq_class_tag */ 7842int 7843ppl_new_BD_Shape_mpq_class_from_BD_Shape_mpq_class_with_complexity 7844PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_BD_Shape_mpq_class_t ph, int complexity)); 7845 7846/*! \relates ppl_BD_Shape_mpq_class_tag */ 7847int 7848ppl_new_BD_Shape_mpq_class_from_Octagonal_Shape_mpz_class_with_complexity 7849PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph, int complexity)); 7850 7851/*! \relates ppl_BD_Shape_mpq_class_tag */ 7852int 7853ppl_new_BD_Shape_mpq_class_from_Octagonal_Shape_mpq_class_with_complexity 7854PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph, int complexity)); 7855 7856/*! \relates ppl_BD_Shape_mpq_class_tag */ 7857int 7858ppl_new_BD_Shape_mpq_class_from_Double_Box_with_complexity 7859PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Double_Box_t ph, int complexity)); 7860 7861/*! \relates ppl_BD_Shape_mpq_class_tag */ 7862int 7863ppl_new_BD_Shape_mpq_class_from_BD_Shape_double_with_complexity 7864PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_BD_Shape_double_t ph, int complexity)); 7865 7866/*! \relates ppl_BD_Shape_mpq_class_tag */ 7867int 7868ppl_new_BD_Shape_mpq_class_from_Octagonal_Shape_double_with_complexity 7869PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Octagonal_Shape_double_t ph, int complexity)); 7870 7871 7872 7873 7874 7875 7876/*! \relates ppl_BD_Shape_mpq_class_tag */ 7877int 7878ppl_new_BD_Shape_mpq_class_from_Constraint_System 7879PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Constraint_System_t cs)); 7880 7881/*! \relates ppl_BD_Shape_mpq_class_tag */ 7882int 7883ppl_new_BD_Shape_mpq_class_from_Congruence_System 7884PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Congruence_System_t cs)); 7885 7886/*! \relates ppl_BD_Shape_mpq_class_tag */ 7887int 7888ppl_new_BD_Shape_mpq_class_from_Generator_System 7889PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_const_Generator_System_t cs)); 7890 7891 7892 7893 7894 7895 7896 7897 7898/*! \relates ppl_BD_Shape_mpq_class_tag */ 7899int 7900ppl_BD_Shape_mpq_class_space_dimension 7901PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, ppl_dimension_type* m)); 7902 7903/*! \relates ppl_BD_Shape_mpq_class_tag */ 7904int 7905ppl_BD_Shape_mpq_class_affine_dimension 7906PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, ppl_dimension_type* m)); 7907 7908 7909 7910 7911 7912/*! \relates ppl_BD_Shape_mpq_class_tag */ 7913int 7914ppl_BD_Shape_mpq_class_relation_with_Constraint 7915PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, 7916 ppl_const_Constraint_t c)); 7917 7918/*! \relates ppl_BD_Shape_mpq_class_tag */ 7919int 7920ppl_BD_Shape_mpq_class_relation_with_Generator 7921PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, 7922 ppl_const_Generator_t c)); 7923 7924/*! \relates ppl_BD_Shape_mpq_class_tag */ 7925int 7926ppl_BD_Shape_mpq_class_relation_with_Congruence 7927PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, 7928 ppl_const_Congruence_t c)); 7929 7930 7931 7932 7933 7934/*! \relates ppl_BD_Shape_mpq_class_tag */ 7935int 7936ppl_BD_Shape_mpq_class_get_constraints 7937PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, 7938 ppl_const_Constraint_System_t* pcs)); 7939 7940/*! \relates ppl_BD_Shape_mpq_class_tag */ 7941int 7942ppl_BD_Shape_mpq_class_get_congruences 7943PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, 7944 ppl_const_Congruence_System_t* pcs)); 7945 7946 7947 7948 7949 7950/*! \relates ppl_BD_Shape_mpq_class_tag */ 7951int 7952ppl_BD_Shape_mpq_class_get_minimized_constraints 7953PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, 7954 ppl_const_Constraint_System_t* pcs)); 7955 7956/*! \relates ppl_BD_Shape_mpq_class_tag */ 7957int 7958ppl_BD_Shape_mpq_class_get_minimized_congruences 7959PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, 7960 ppl_const_Congruence_System_t* pcs)); 7961 7962 7963 7964 7965 7966/*! \relates ppl_BD_Shape_mpq_class_tag */ 7967int 7968ppl_BD_Shape_mpq_class_is_empty 7969PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph)); 7970 7971/*! \relates ppl_BD_Shape_mpq_class_tag */ 7972int 7973ppl_BD_Shape_mpq_class_is_universe 7974PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph)); 7975 7976/*! \relates ppl_BD_Shape_mpq_class_tag */ 7977int 7978ppl_BD_Shape_mpq_class_is_bounded 7979PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph)); 7980 7981/*! \relates ppl_BD_Shape_mpq_class_tag */ 7982int 7983ppl_BD_Shape_mpq_class_contains_integer_point 7984PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph)); 7985 7986/*! \relates ppl_BD_Shape_mpq_class_tag */ 7987int 7988ppl_BD_Shape_mpq_class_is_topologically_closed 7989PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph)); 7990 7991/*! \relates ppl_BD_Shape_mpq_class_tag */ 7992int 7993ppl_BD_Shape_mpq_class_is_discrete 7994PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph)); 7995 7996 7997 7998 7999 8000/*! \relates ppl_BD_Shape_mpq_class_tag */ 8001int 8002ppl_BD_Shape_mpq_class_topological_closure_assign 8003PPL_PROTO((ppl_BD_Shape_mpq_class_t ph)); 8004 8005 8006 8007 8008 8009/*! \relates ppl_BD_Shape_mpq_class_tag */ 8010int 8011ppl_BD_Shape_mpq_class_bounds_from_above 8012PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, 8013 ppl_const_Linear_Expression_t le)); 8014 8015/*! \relates ppl_BD_Shape_mpq_class_tag */ 8016int 8017ppl_BD_Shape_mpq_class_bounds_from_below 8018PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, 8019 ppl_const_Linear_Expression_t le)); 8020 8021 8022 8023 8024 8025/*! \relates ppl_BD_Shape_mpq_class_tag */ 8026int 8027ppl_BD_Shape_mpq_class_maximize 8028PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, 8029 ppl_const_Linear_Expression_t le, 8030 ppl_Coefficient_t ext_n, 8031 ppl_Coefficient_t ext_d, 8032 int* poptimum)); 8033 8034/*! \relates ppl_BD_Shape_mpq_class_tag */ 8035int 8036ppl_BD_Shape_mpq_class_minimize 8037PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, 8038 ppl_const_Linear_Expression_t le, 8039 ppl_Coefficient_t ext_n, 8040 ppl_Coefficient_t ext_d, 8041 int* poptimum)); 8042 8043 8044 8045 8046 8047/*! \relates ppl_BD_Shape_mpq_class_tag */ 8048int 8049ppl_BD_Shape_mpq_class_maximize_with_point 8050PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, 8051 ppl_const_Linear_Expression_t le, 8052 ppl_Coefficient_t ext_n, 8053 ppl_Coefficient_t ext_d, 8054 int* poptimum, 8055 ppl_Generator_t point)); 8056 8057/*! \relates ppl_BD_Shape_mpq_class_tag */ 8058int 8059ppl_BD_Shape_mpq_class_minimize_with_point 8060PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, 8061 ppl_const_Linear_Expression_t le, 8062 ppl_Coefficient_t ext_n, 8063 ppl_Coefficient_t ext_d, 8064 int* poptimum, 8065 ppl_Generator_t point)); 8066 8067 8068 8069 8070 8071/*! \relates ppl_BD_Shape_mpq_class_tag */ 8072int 8073ppl_BD_Shape_mpq_class_frequency 8074PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph, 8075 ppl_const_Linear_Expression_t le, 8076 ppl_Coefficient_t ext_fn, 8077 ppl_Coefficient_t ext_fd, 8078 ppl_Coefficient_t ext_vn, 8079 ppl_Coefficient_t ext_vd)); 8080 8081 8082 8083 8084/*! \relates ppl_BD_Shape_mpq_class_tag */ 8085int 8086ppl_BD_Shape_mpq_class_contains_BD_Shape_mpq_class 8087PPL_PROTO((ppl_const_BD_Shape_mpq_class_t x, 8088 ppl_const_BD_Shape_mpq_class_t y)); 8089 8090/*! \relates ppl_BD_Shape_mpq_class_tag */ 8091int 8092ppl_BD_Shape_mpq_class_strictly_contains_BD_Shape_mpq_class 8093PPL_PROTO((ppl_const_BD_Shape_mpq_class_t x, 8094 ppl_const_BD_Shape_mpq_class_t y)); 8095 8096/*! \relates ppl_BD_Shape_mpq_class_tag */ 8097int 8098ppl_BD_Shape_mpq_class_is_disjoint_from_BD_Shape_mpq_class 8099PPL_PROTO((ppl_const_BD_Shape_mpq_class_t x, 8100 ppl_const_BD_Shape_mpq_class_t y)); 8101 8102 8103 8104 8105 8106/*! \relates ppl_BD_Shape_mpq_class_tag */ 8107int 8108ppl_BD_Shape_mpq_class_equals_BD_Shape_mpq_class 8109PPL_PROTO((ppl_const_BD_Shape_mpq_class_t x, 8110 ppl_const_BD_Shape_mpq_class_t y)); 8111 8112 8113 8114 8115/*! \relates ppl_BD_Shape_mpq_class_tag */ 8116int 8117ppl_BD_Shape_mpq_class_OK 8118PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ph)); 8119 8120 8121 8122 8123/*! \relates ppl_BD_Shape_mpq_class_tag */ 8124int 8125ppl_BD_Shape_mpq_class_add_constraint 8126PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8127 ppl_const_Constraint_t c)); 8128 8129/*! \relates ppl_BD_Shape_mpq_class_tag */ 8130int 8131ppl_BD_Shape_mpq_class_add_congruence 8132PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8133 ppl_const_Congruence_t c)); 8134 8135 8136 8137 8138 8139/*! \relates ppl_BD_Shape_mpq_class_tag */ 8140int 8141ppl_BD_Shape_mpq_class_add_constraints 8142PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8143 ppl_const_Constraint_System_t cs)); 8144 8145/*! \relates ppl_BD_Shape_mpq_class_tag */ 8146int 8147ppl_BD_Shape_mpq_class_add_congruences 8148PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8149 ppl_const_Congruence_System_t cs)); 8150 8151 8152 8153 8154 8155/*! \relates ppl_BD_Shape_mpq_class_tag */ 8156int 8157ppl_BD_Shape_mpq_class_refine_with_constraint 8158PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8159 ppl_const_Constraint_t c)); 8160 8161/*! \relates ppl_BD_Shape_mpq_class_tag */ 8162int 8163ppl_BD_Shape_mpq_class_refine_with_congruence 8164PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8165 ppl_const_Congruence_t c)); 8166 8167 8168 8169 8170 8171/*! \relates ppl_BD_Shape_mpq_class_tag */ 8172int 8173ppl_BD_Shape_mpq_class_refine_with_constraints 8174PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8175 ppl_const_Constraint_System_t cs)); 8176 8177/*! \relates ppl_BD_Shape_mpq_class_tag */ 8178int 8179ppl_BD_Shape_mpq_class_refine_with_congruences 8180PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8181 ppl_const_Congruence_System_t cs)); 8182 8183 8184 8185 8186 8187/*! \relates ppl_BD_Shape_mpq_class_tag */ 8188int 8189ppl_BD_Shape_mpq_class_intersection_assign 8190PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8191 ppl_const_BD_Shape_mpq_class_t y)); 8192 8193/*! \relates ppl_BD_Shape_mpq_class_tag */ 8194int 8195ppl_BD_Shape_mpq_class_upper_bound_assign 8196PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8197 ppl_const_BD_Shape_mpq_class_t y)); 8198 8199/*! \relates ppl_BD_Shape_mpq_class_tag */ 8200int 8201ppl_BD_Shape_mpq_class_difference_assign 8202PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8203 ppl_const_BD_Shape_mpq_class_t y)); 8204 8205/*! \relates ppl_BD_Shape_mpq_class_tag */ 8206int 8207ppl_BD_Shape_mpq_class_concatenate_assign 8208PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8209 ppl_const_BD_Shape_mpq_class_t y)); 8210 8211/*! \relates ppl_BD_Shape_mpq_class_tag */ 8212int 8213ppl_BD_Shape_mpq_class_time_elapse_assign 8214PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8215 ppl_const_BD_Shape_mpq_class_t y)); 8216 8217 8218 8219 8220 8221/*! \relates ppl_BD_Shape_mpq_class_tag */ 8222int 8223ppl_BD_Shape_mpq_class_upper_bound_assign_if_exact 8224PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8225 ppl_const_BD_Shape_mpq_class_t y)); 8226 8227 8228 8229 8230 8231/*! \relates ppl_BD_Shape_mpq_class_tag */ 8232int 8233ppl_BD_Shape_mpq_class_simplify_using_context_assign 8234PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8235 ppl_const_BD_Shape_mpq_class_t y)); 8236 8237 8238 8239 8240/*! \relates ppl_BD_Shape_mpq_class_tag */ 8241int 8242ppl_BD_Shape_mpq_class_constrains 8243PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8244 ppl_dimension_type var)); 8245 8246 8247 8248 8249/*! \relates ppl_BD_Shape_mpq_class_tag */ 8250int 8251ppl_BD_Shape_mpq_class_unconstrain_space_dimension 8252PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8253 ppl_dimension_type var)); 8254 8255 8256 8257 8258/*! \relates ppl_BD_Shape_mpq_class_tag */ 8259int 8260ppl_BD_Shape_mpq_class_unconstrain_space_dimensions 8261PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8262 ppl_dimension_type ds[], 8263 size_t n)); 8264 8265 8266 8267 8268/*! \relates ppl_BD_Shape_mpq_class_tag */ 8269int 8270ppl_BD_Shape_mpq_class_affine_image 8271PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8272 ppl_dimension_type var, 8273 ppl_const_Linear_Expression_t le, 8274 ppl_const_Coefficient_t d)); 8275 8276/*! \relates ppl_BD_Shape_mpq_class_tag */ 8277int 8278ppl_BD_Shape_mpq_class_affine_preimage 8279PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8280 ppl_dimension_type var, 8281 ppl_const_Linear_Expression_t le, 8282 ppl_const_Coefficient_t d)); 8283 8284 8285 8286 8287 8288/*! \relates ppl_BD_Shape_mpq_class_tag */ 8289int 8290ppl_BD_Shape_mpq_class_bounded_affine_image 8291PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8292 ppl_dimension_type var, 8293 ppl_const_Linear_Expression_t lb, 8294 ppl_const_Linear_Expression_t ub, 8295 ppl_const_Coefficient_t d)); 8296 8297/*! \relates ppl_BD_Shape_mpq_class_tag */ 8298int 8299ppl_BD_Shape_mpq_class_bounded_affine_preimage 8300PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8301 ppl_dimension_type var, 8302 ppl_const_Linear_Expression_t lb, 8303 ppl_const_Linear_Expression_t ub, 8304 ppl_const_Coefficient_t d)); 8305 8306 8307 8308 8309 8310/*! \relates ppl_BD_Shape_mpq_class_tag */ 8311int 8312ppl_BD_Shape_mpq_class_generalized_affine_image 8313PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8314 ppl_dimension_type var, 8315 enum ppl_enum_Constraint_Type relsym, 8316 ppl_const_Linear_Expression_t le, 8317 ppl_const_Coefficient_t d)); 8318 8319/*! \relates ppl_BD_Shape_mpq_class_tag */ 8320int 8321ppl_BD_Shape_mpq_class_generalized_affine_preimage 8322PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8323 ppl_dimension_type var, 8324 enum ppl_enum_Constraint_Type relsym, 8325 ppl_const_Linear_Expression_t le, 8326 ppl_const_Coefficient_t d)); 8327 8328 8329 8330 8331 8332/*! \relates ppl_BD_Shape_mpq_class_tag */ 8333int 8334ppl_BD_Shape_mpq_class_generalized_affine_image_lhs_rhs 8335PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8336 ppl_const_Linear_Expression_t lhs, 8337 enum ppl_enum_Constraint_Type relsym, 8338 ppl_const_Linear_Expression_t rhs)); 8339 8340/*! \relates ppl_BD_Shape_mpq_class_tag */ 8341int 8342ppl_BD_Shape_mpq_class_generalized_affine_preimage_lhs_rhs 8343PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8344 ppl_const_Linear_Expression_t lhs, 8345 enum ppl_enum_Constraint_Type relsym, 8346 ppl_const_Linear_Expression_t rhs)); 8347 8348 8349 8350 8351 8352/*! \relates ppl_BD_Shape_mpq_class_tag */ 8353int 8354ppl_BD_Shape_mpq_class_add_space_dimensions_and_embed 8355PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8356 ppl_dimension_type d)); 8357 8358/*! \relates ppl_BD_Shape_mpq_class_tag */ 8359int 8360ppl_BD_Shape_mpq_class_add_space_dimensions_and_project 8361PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8362 ppl_dimension_type d)); 8363 8364 8365 8366 8367 8368/*! \relates ppl_BD_Shape_mpq_class_tag */ 8369int 8370ppl_BD_Shape_mpq_class_remove_space_dimensions 8371PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8372 ppl_dimension_type ds[], 8373 size_t n)); 8374 8375 8376 8377 8378/*! \relates ppl_BD_Shape_mpq_class_tag */ 8379int 8380ppl_BD_Shape_mpq_class_remove_higher_space_dimensions 8381PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8382 ppl_dimension_type d)); 8383 8384 8385 8386 8387/*! \relates ppl_BD_Shape_mpq_class_tag */ 8388int 8389ppl_BD_Shape_mpq_class_expand_space_dimension 8390PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8391 ppl_dimension_type d, 8392 ppl_dimension_type m)); 8393 8394 8395 8396 8397/*! \relates ppl_BD_Shape_mpq_class_tag */ 8398int 8399ppl_BD_Shape_mpq_class_fold_space_dimensions 8400PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8401 ppl_dimension_type ds[], 8402 size_t n, 8403 ppl_dimension_type d)); 8404 8405 8406 8407 8408/*! \relates ppl_BD_Shape_mpq_class_tag */ 8409int 8410ppl_BD_Shape_mpq_class_map_space_dimensions 8411PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8412 ppl_dimension_type maps[], 8413 size_t n)); 8414 8415 8416 8417 8418/*! \relates ppl_BD_Shape_mpq_class_tag */ 8419int 8420ppl_BD_Shape_mpq_class_drop_some_non_integer_points 8421PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8422 int complexity)); 8423 8424 8425 8426 8427/*! \relates ppl_BD_Shape_mpq_class_tag */ 8428int 8429ppl_BD_Shape_mpq_class_drop_some_non_integer_points_2 8430PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8431 ppl_dimension_type ds[], 8432 size_t n, 8433 int complexity)); 8434 8435 8436 8437 8438 8439 8440/*! \relates ppl_BD_Shape_mpq_class_tag */ 8441int 8442ppl_BD_Shape_mpq_class_external_memory_in_bytes 8443PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ps, 8444 size_t* sz)); 8445 8446/*! \relates ppl_BD_Shape_mpq_class_tag */ 8447int 8448ppl_BD_Shape_mpq_class_total_memory_in_bytes 8449PPL_PROTO((ppl_const_BD_Shape_mpq_class_t ps, 8450 size_t* sz)); 8451 8452 8453 8454 8455 8456/*! \relates ppl_BD_Shape_mpq_class_tag */ 8457int 8458ppl_BD_Shape_mpq_class_BHMZ05_widening_assign_with_tokens 8459PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8460 ppl_const_BD_Shape_mpq_class_t y, 8461 unsigned* tp)); 8462 8463/*! \relates ppl_BD_Shape_mpq_class_tag */ 8464int 8465ppl_BD_Shape_mpq_class_H79_widening_assign_with_tokens 8466PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8467 ppl_const_BD_Shape_mpq_class_t y, 8468 unsigned* tp)); 8469 8470 8471 8472 8473 8474/*! \relates ppl_BD_Shape_mpq_class_tag */ 8475int 8476ppl_BD_Shape_mpq_class_BHMZ05_widening_assign 8477PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8478 ppl_const_BD_Shape_mpq_class_t y)); 8479 8480/*! \relates ppl_BD_Shape_mpq_class_tag */ 8481int 8482ppl_BD_Shape_mpq_class_H79_widening_assign 8483PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8484 ppl_const_BD_Shape_mpq_class_t y)); 8485 8486 8487 8488 8489 8490/*! \relates ppl_BD_Shape_mpq_class_tag */ 8491int 8492ppl_BD_Shape_mpq_class_widening_assign_with_tokens 8493PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8494 ppl_const_BD_Shape_mpq_class_t y, 8495 unsigned* tp)); 8496 8497 8498 8499 8500/*! \relates ppl_BD_Shape_mpq_class_tag */ 8501int 8502ppl_BD_Shape_mpq_class_widening_assign 8503PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8504 ppl_const_BD_Shape_mpq_class_t y)); 8505 8506 8507 8508 8509/*! \relates ppl_BD_Shape_mpq_class_tag */ 8510int 8511ppl_BD_Shape_mpq_class_limited_BHMZ05_extrapolation_assign_with_tokens 8512PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8513 ppl_const_BD_Shape_mpq_class_t y, 8514 ppl_const_Constraint_System_t cs, 8515 unsigned* tp)); 8516 8517/*! \relates ppl_BD_Shape_mpq_class_tag */ 8518int 8519ppl_BD_Shape_mpq_class_limited_H79_extrapolation_assign_with_tokens 8520PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8521 ppl_const_BD_Shape_mpq_class_t y, 8522 ppl_const_Constraint_System_t cs, 8523 unsigned* tp)); 8524 8525/*! \relates ppl_BD_Shape_mpq_class_tag */ 8526int 8527ppl_BD_Shape_mpq_class_limited_CC76_extrapolation_assign_with_tokens 8528PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8529 ppl_const_BD_Shape_mpq_class_t y, 8530 ppl_const_Constraint_System_t cs, 8531 unsigned* tp)); 8532 8533 8534 8535 8536 8537 8538 8539/*! \relates ppl_BD_Shape_mpq_class_tag */ 8540int 8541ppl_BD_Shape_mpq_class_limited_BHMZ05_extrapolation_assign 8542PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8543 ppl_const_BD_Shape_mpq_class_t y, 8544 ppl_const_Constraint_System_t cs)); 8545 8546/*! \relates ppl_BD_Shape_mpq_class_tag */ 8547int 8548ppl_BD_Shape_mpq_class_limited_H79_extrapolation_assign 8549PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8550 ppl_const_BD_Shape_mpq_class_t y, 8551 ppl_const_Constraint_System_t cs)); 8552 8553/*! \relates ppl_BD_Shape_mpq_class_tag */ 8554int 8555ppl_BD_Shape_mpq_class_limited_CC76_extrapolation_assign 8556PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8557 ppl_const_BD_Shape_mpq_class_t y, 8558 ppl_const_Constraint_System_t cs)); 8559 8560 8561 8562 8563 8564 8565 8566/*! \relates ppl_BD_Shape_mpq_class_tag */ 8567int 8568ppl_BD_Shape_mpq_class_CC76_extrapolation_assign_with_tokens 8569PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8570 ppl_const_BD_Shape_mpq_class_t y, 8571 unsigned* tp)); 8572 8573 8574 8575 8576 8577/*! \relates ppl_BD_Shape_mpq_class_tag */ 8578int 8579ppl_BD_Shape_mpq_class_CC76_extrapolation_assign 8580PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8581 ppl_const_BD_Shape_mpq_class_t y)); 8582 8583 8584 8585 8586 8587/*! \relates ppl_BD_Shape_mpq_class_tag */ 8588int 8589ppl_BD_Shape_mpq_class_CC76_narrowing_assign 8590PPL_PROTO((ppl_BD_Shape_mpq_class_t x, 8591 ppl_const_BD_Shape_mpq_class_t y)); 8592 8593 8594 8595 8596 8597/*! \relates ppl_BD_Shape_mpq_class_tag */ 8598int 8599ppl_BD_Shape_mpq_class_linear_partition 8600PPL_PROTO((ppl_const_BD_Shape_mpq_class_t x, 8601 ppl_const_BD_Shape_mpq_class_t y, 8602 ppl_BD_Shape_mpq_class_t* p_inters, 8603 ppl_Pointset_Powerset_NNC_Polyhedron_t* p_rest)); 8604 8605 8606 8607 8608 8609/*! \relates ppl_BD_Shape_mpq_class_tag */ 8610int 8611ppl_BD_Shape_mpq_class_wrap_assign 8612PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8613 ppl_dimension_type ds[], 8614 size_t n, 8615 enum ppl_enum_Bounded_Integer_Type_Width w, 8616 enum ppl_enum_Bounded_Integer_Type_Representation r, 8617 enum ppl_enum_Bounded_Integer_Type_Overflow o, 8618 const ppl_const_Constraint_System_t* pcs, 8619 unsigned complexity_threshold, 8620 int wrap_individually)); 8621 8622 8623 8624/*! \relates ppl_BD_Shape_mpq_class_tag */ 8625int 8626ppl_new_BD_Shape_mpq_class_recycle_Constraint_System 8627PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_Constraint_System_t cs)); 8628 8629/*! \relates ppl_BD_Shape_mpq_class_tag */ 8630int 8631ppl_new_BD_Shape_mpq_class_recycle_Congruence_System 8632PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_Congruence_System_t cs)); 8633 8634/*! \relates ppl_BD_Shape_mpq_class_tag */ 8635int 8636ppl_new_BD_Shape_mpq_class_recycle_Generator_System 8637PPL_PROTO((ppl_BD_Shape_mpq_class_t* pph, ppl_Generator_System_t cs)); 8638 8639 8640 8641 8642 8643 8644/*! \relates ppl_BD_Shape_mpq_class_tag */ 8645int 8646ppl_assign_BD_Shape_mpq_class_from_BD_Shape_mpq_class 8647PPL_PROTO((ppl_BD_Shape_mpq_class_t dst, ppl_const_BD_Shape_mpq_class_t src)); 8648 8649 8650 8651 8652 8653/*! \relates ppl_BD_Shape_mpq_class_tag */ 8654int 8655ppl_BD_Shape_mpq_class_add_recycled_constraints 8656PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8657 ppl_Constraint_System_t cs)); 8658 8659/*! \relates ppl_BD_Shape_mpq_class_tag */ 8660int 8661ppl_BD_Shape_mpq_class_add_recycled_congruences 8662PPL_PROTO((ppl_BD_Shape_mpq_class_t ph, 8663 ppl_Congruence_System_t cs)); 8664 8665 8666 8667 8668 8669/*! \relates ppl_BD_Shape_mpq_class_tag */ 8670int 8671ppl_termination_test_MS_BD_Shape_mpq_class 8672PPL_PROTO((ppl_const_BD_Shape_mpq_class_t pset)); 8673 8674/*! \relates ppl_BD_Shape_mpq_class_tag */ 8675int 8676ppl_termination_test_PR_BD_Shape_mpq_class 8677PPL_PROTO((ppl_const_BD_Shape_mpq_class_t pset)); 8678 8679 8680 8681 8682 8683 8684/*! \relates ppl_BD_Shape_mpq_class_tag */ 8685int 8686ppl_one_affine_ranking_function_MS_BD_Shape_mpq_class 8687PPL_PROTO((ppl_const_BD_Shape_mpq_class_t pset, 8688 ppl_Generator_t point)); 8689 8690/*! \relates ppl_BD_Shape_mpq_class_tag */ 8691int 8692ppl_one_affine_ranking_function_PR_BD_Shape_mpq_class 8693PPL_PROTO((ppl_const_BD_Shape_mpq_class_t pset, 8694 ppl_Generator_t point)); 8695 8696 8697 8698 8699 8700 8701/*! \relates ppl_BD_Shape_mpq_class_tag */ 8702int 8703ppl_all_affine_ranking_functions_MS_BD_Shape_mpq_class 8704PPL_PROTO((ppl_const_BD_Shape_mpq_class_t pset, 8705 ppl_Polyhedron_t ph)); 8706 8707/*! \relates ppl_BD_Shape_mpq_class_tag */ 8708int 8709ppl_all_affine_ranking_functions_PR_BD_Shape_mpq_class 8710PPL_PROTO((ppl_const_BD_Shape_mpq_class_t pset, 8711 ppl_Polyhedron_t ph)); 8712 8713 8714 8715 8716 8717 8718/*! \relates ppl_BD_Shape_mpq_class_tag */ 8719int 8720ppl_termination_test_MS_BD_Shape_mpq_class_2 8721PPL_PROTO((ppl_const_BD_Shape_mpq_class_t pset_before, ppl_const_BD_Shape_mpq_class_t pset_after)); 8722 8723/*! \relates ppl_BD_Shape_mpq_class_tag */ 8724int 8725ppl_termination_test_PR_BD_Shape_mpq_class_2 8726PPL_PROTO((ppl_const_BD_Shape_mpq_class_t pset_before, ppl_const_BD_Shape_mpq_class_t pset_after)); 8727 8728 8729 8730 8731 8732 8733/*! \relates ppl_BD_Shape_mpq_class_tag */ 8734int 8735ppl_one_affine_ranking_function_MS_BD_Shape_mpq_class_2 8736PPL_PROTO((ppl_const_BD_Shape_mpq_class_t pset_before, 8737 ppl_const_BD_Shape_mpq_class_t pset_after, 8738 ppl_Generator_t point)); 8739 8740/*! \relates ppl_BD_Shape_mpq_class_tag */ 8741int 8742ppl_one_affine_ranking_function_PR_BD_Shape_mpq_class_2 8743PPL_PROTO((ppl_const_BD_Shape_mpq_class_t pset_before, 8744 ppl_const_BD_Shape_mpq_class_t pset_after, 8745 ppl_Generator_t point)); 8746 8747 8748 8749 8750 8751 8752/*! \relates ppl_BD_Shape_mpq_class_tag */ 8753int 8754ppl_all_affine_ranking_functions_MS_BD_Shape_mpq_class_2 8755PPL_PROTO((ppl_const_BD_Shape_mpq_class_t pset_before, 8756 ppl_const_BD_Shape_mpq_class_t pset_after, 8757 ppl_Polyhedron_t ph)); 8758 8759/*! \relates ppl_BD_Shape_mpq_class_tag */ 8760int 8761ppl_all_affine_ranking_functions_PR_BD_Shape_mpq_class_2 8762PPL_PROTO((ppl_const_BD_Shape_mpq_class_t pset_before, 8763 ppl_const_BD_Shape_mpq_class_t pset_after, 8764 ppl_Polyhedron_t ph)); 8765 8766 8767 8768 8769 8770 8771 8772PPL_DECLARE_IO_FUNCTIONS(BD_Shape_mpq_class) 8773 8774/* End of Functions Related to ppl_BD_Shape_mpq_class_tag */ 8775 8776/*! \interface ppl_Octagonal_Shape_mpz_class_tag 8777 \brief Types and functions for ppl_Octagonal_Shape_mpz_class_tag 8778*/ 8779 8780/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8781int 8782ppl_delete_Octagonal_Shape_mpz_class 8783PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph)); 8784 8785 8786 8787 8788/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8789int 8790ppl_new_Octagonal_Shape_mpz_class_from_space_dimension 8791PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_dimension_type d, int empty)); 8792 8793 8794 8795 8796 8797/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8798int 8799ppl_new_Octagonal_Shape_mpz_class_from_C_Polyhedron 8800PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Polyhedron_t ph)); 8801 8802/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8803int 8804ppl_new_Octagonal_Shape_mpz_class_from_NNC_Polyhedron 8805PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Polyhedron_t ph)); 8806 8807/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8808int 8809ppl_new_Octagonal_Shape_mpz_class_from_Grid 8810PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Grid_t ph)); 8811 8812/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8813int 8814ppl_new_Octagonal_Shape_mpz_class_from_Rational_Box 8815PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Rational_Box_t ph)); 8816 8817/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8818int 8819ppl_new_Octagonal_Shape_mpz_class_from_BD_Shape_mpz_class 8820PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_BD_Shape_mpz_class_t ph)); 8821 8822/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8823int 8824ppl_new_Octagonal_Shape_mpz_class_from_BD_Shape_mpq_class 8825PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_BD_Shape_mpq_class_t ph)); 8826 8827/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8828int 8829ppl_new_Octagonal_Shape_mpz_class_from_Octagonal_Shape_mpz_class 8830PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph)); 8831 8832/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8833int 8834ppl_new_Octagonal_Shape_mpz_class_from_Octagonal_Shape_mpq_class 8835PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph)); 8836 8837/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8838int 8839ppl_new_Octagonal_Shape_mpz_class_from_Double_Box 8840PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Double_Box_t ph)); 8841 8842/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8843int 8844ppl_new_Octagonal_Shape_mpz_class_from_BD_Shape_double 8845PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_BD_Shape_double_t ph)); 8846 8847/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8848int 8849ppl_new_Octagonal_Shape_mpz_class_from_Octagonal_Shape_double 8850PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Octagonal_Shape_double_t ph)); 8851 8852 8853 8854 8855 8856 8857/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8858int 8859ppl_new_Octagonal_Shape_mpz_class_from_C_Polyhedron_with_complexity 8860PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 8861 8862/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8863int 8864ppl_new_Octagonal_Shape_mpz_class_from_NNC_Polyhedron_with_complexity 8865PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 8866 8867/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8868int 8869ppl_new_Octagonal_Shape_mpz_class_from_Grid_with_complexity 8870PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Grid_t ph, int complexity)); 8871 8872/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8873int 8874ppl_new_Octagonal_Shape_mpz_class_from_Rational_Box_with_complexity 8875PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Rational_Box_t ph, int complexity)); 8876 8877/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8878int 8879ppl_new_Octagonal_Shape_mpz_class_from_BD_Shape_mpz_class_with_complexity 8880PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_BD_Shape_mpz_class_t ph, int complexity)); 8881 8882/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8883int 8884ppl_new_Octagonal_Shape_mpz_class_from_BD_Shape_mpq_class_with_complexity 8885PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_BD_Shape_mpq_class_t ph, int complexity)); 8886 8887/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8888int 8889ppl_new_Octagonal_Shape_mpz_class_from_Octagonal_Shape_mpz_class_with_complexity 8890PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph, int complexity)); 8891 8892/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8893int 8894ppl_new_Octagonal_Shape_mpz_class_from_Octagonal_Shape_mpq_class_with_complexity 8895PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph, int complexity)); 8896 8897/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8898int 8899ppl_new_Octagonal_Shape_mpz_class_from_Double_Box_with_complexity 8900PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Double_Box_t ph, int complexity)); 8901 8902/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8903int 8904ppl_new_Octagonal_Shape_mpz_class_from_BD_Shape_double_with_complexity 8905PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_BD_Shape_double_t ph, int complexity)); 8906 8907/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8908int 8909ppl_new_Octagonal_Shape_mpz_class_from_Octagonal_Shape_double_with_complexity 8910PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Octagonal_Shape_double_t ph, int complexity)); 8911 8912 8913 8914 8915 8916 8917/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8918int 8919ppl_new_Octagonal_Shape_mpz_class_from_Constraint_System 8920PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Constraint_System_t cs)); 8921 8922/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8923int 8924ppl_new_Octagonal_Shape_mpz_class_from_Congruence_System 8925PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Congruence_System_t cs)); 8926 8927/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8928int 8929ppl_new_Octagonal_Shape_mpz_class_from_Generator_System 8930PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_const_Generator_System_t cs)); 8931 8932 8933 8934 8935 8936 8937 8938 8939/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8940int 8941ppl_Octagonal_Shape_mpz_class_space_dimension 8942PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, ppl_dimension_type* m)); 8943 8944/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8945int 8946ppl_Octagonal_Shape_mpz_class_affine_dimension 8947PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, ppl_dimension_type* m)); 8948 8949 8950 8951 8952 8953/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8954int 8955ppl_Octagonal_Shape_mpz_class_relation_with_Constraint 8956PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, 8957 ppl_const_Constraint_t c)); 8958 8959/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8960int 8961ppl_Octagonal_Shape_mpz_class_relation_with_Generator 8962PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, 8963 ppl_const_Generator_t c)); 8964 8965/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8966int 8967ppl_Octagonal_Shape_mpz_class_relation_with_Congruence 8968PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, 8969 ppl_const_Congruence_t c)); 8970 8971 8972 8973 8974 8975/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8976int 8977ppl_Octagonal_Shape_mpz_class_get_constraints 8978PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, 8979 ppl_const_Constraint_System_t* pcs)); 8980 8981/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8982int 8983ppl_Octagonal_Shape_mpz_class_get_congruences 8984PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, 8985 ppl_const_Congruence_System_t* pcs)); 8986 8987 8988 8989 8990 8991/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8992int 8993ppl_Octagonal_Shape_mpz_class_get_minimized_constraints 8994PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, 8995 ppl_const_Constraint_System_t* pcs)); 8996 8997/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 8998int 8999ppl_Octagonal_Shape_mpz_class_get_minimized_congruences 9000PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, 9001 ppl_const_Congruence_System_t* pcs)); 9002 9003 9004 9005 9006 9007/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9008int 9009ppl_Octagonal_Shape_mpz_class_is_empty 9010PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph)); 9011 9012/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9013int 9014ppl_Octagonal_Shape_mpz_class_is_universe 9015PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph)); 9016 9017/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9018int 9019ppl_Octagonal_Shape_mpz_class_is_bounded 9020PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph)); 9021 9022/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9023int 9024ppl_Octagonal_Shape_mpz_class_contains_integer_point 9025PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph)); 9026 9027/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9028int 9029ppl_Octagonal_Shape_mpz_class_is_topologically_closed 9030PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph)); 9031 9032/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9033int 9034ppl_Octagonal_Shape_mpz_class_is_discrete 9035PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph)); 9036 9037 9038 9039 9040 9041/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9042int 9043ppl_Octagonal_Shape_mpz_class_topological_closure_assign 9044PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph)); 9045 9046 9047 9048 9049 9050/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9051int 9052ppl_Octagonal_Shape_mpz_class_bounds_from_above 9053PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, 9054 ppl_const_Linear_Expression_t le)); 9055 9056/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9057int 9058ppl_Octagonal_Shape_mpz_class_bounds_from_below 9059PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, 9060 ppl_const_Linear_Expression_t le)); 9061 9062 9063 9064 9065 9066/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9067int 9068ppl_Octagonal_Shape_mpz_class_maximize 9069PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, 9070 ppl_const_Linear_Expression_t le, 9071 ppl_Coefficient_t ext_n, 9072 ppl_Coefficient_t ext_d, 9073 int* poptimum)); 9074 9075/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9076int 9077ppl_Octagonal_Shape_mpz_class_minimize 9078PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, 9079 ppl_const_Linear_Expression_t le, 9080 ppl_Coefficient_t ext_n, 9081 ppl_Coefficient_t ext_d, 9082 int* poptimum)); 9083 9084 9085 9086 9087 9088/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9089int 9090ppl_Octagonal_Shape_mpz_class_maximize_with_point 9091PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, 9092 ppl_const_Linear_Expression_t le, 9093 ppl_Coefficient_t ext_n, 9094 ppl_Coefficient_t ext_d, 9095 int* poptimum, 9096 ppl_Generator_t point)); 9097 9098/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9099int 9100ppl_Octagonal_Shape_mpz_class_minimize_with_point 9101PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, 9102 ppl_const_Linear_Expression_t le, 9103 ppl_Coefficient_t ext_n, 9104 ppl_Coefficient_t ext_d, 9105 int* poptimum, 9106 ppl_Generator_t point)); 9107 9108 9109 9110 9111 9112/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9113int 9114ppl_Octagonal_Shape_mpz_class_frequency 9115PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph, 9116 ppl_const_Linear_Expression_t le, 9117 ppl_Coefficient_t ext_fn, 9118 ppl_Coefficient_t ext_fd, 9119 ppl_Coefficient_t ext_vn, 9120 ppl_Coefficient_t ext_vd)); 9121 9122 9123 9124 9125/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9126int 9127ppl_Octagonal_Shape_mpz_class_contains_Octagonal_Shape_mpz_class 9128PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t x, 9129 ppl_const_Octagonal_Shape_mpz_class_t y)); 9130 9131/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9132int 9133ppl_Octagonal_Shape_mpz_class_strictly_contains_Octagonal_Shape_mpz_class 9134PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t x, 9135 ppl_const_Octagonal_Shape_mpz_class_t y)); 9136 9137/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9138int 9139ppl_Octagonal_Shape_mpz_class_is_disjoint_from_Octagonal_Shape_mpz_class 9140PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t x, 9141 ppl_const_Octagonal_Shape_mpz_class_t y)); 9142 9143 9144 9145 9146 9147/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9148int 9149ppl_Octagonal_Shape_mpz_class_equals_Octagonal_Shape_mpz_class 9150PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t x, 9151 ppl_const_Octagonal_Shape_mpz_class_t y)); 9152 9153 9154 9155 9156/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9157int 9158ppl_Octagonal_Shape_mpz_class_OK 9159PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ph)); 9160 9161 9162 9163 9164/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9165int 9166ppl_Octagonal_Shape_mpz_class_add_constraint 9167PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9168 ppl_const_Constraint_t c)); 9169 9170/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9171int 9172ppl_Octagonal_Shape_mpz_class_add_congruence 9173PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9174 ppl_const_Congruence_t c)); 9175 9176 9177 9178 9179 9180/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9181int 9182ppl_Octagonal_Shape_mpz_class_add_constraints 9183PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9184 ppl_const_Constraint_System_t cs)); 9185 9186/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9187int 9188ppl_Octagonal_Shape_mpz_class_add_congruences 9189PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9190 ppl_const_Congruence_System_t cs)); 9191 9192 9193 9194 9195 9196/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9197int 9198ppl_Octagonal_Shape_mpz_class_refine_with_constraint 9199PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9200 ppl_const_Constraint_t c)); 9201 9202/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9203int 9204ppl_Octagonal_Shape_mpz_class_refine_with_congruence 9205PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9206 ppl_const_Congruence_t c)); 9207 9208 9209 9210 9211 9212/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9213int 9214ppl_Octagonal_Shape_mpz_class_refine_with_constraints 9215PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9216 ppl_const_Constraint_System_t cs)); 9217 9218/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9219int 9220ppl_Octagonal_Shape_mpz_class_refine_with_congruences 9221PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9222 ppl_const_Congruence_System_t cs)); 9223 9224 9225 9226 9227 9228/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9229int 9230ppl_Octagonal_Shape_mpz_class_intersection_assign 9231PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9232 ppl_const_Octagonal_Shape_mpz_class_t y)); 9233 9234/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9235int 9236ppl_Octagonal_Shape_mpz_class_upper_bound_assign 9237PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9238 ppl_const_Octagonal_Shape_mpz_class_t y)); 9239 9240/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9241int 9242ppl_Octagonal_Shape_mpz_class_difference_assign 9243PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9244 ppl_const_Octagonal_Shape_mpz_class_t y)); 9245 9246/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9247int 9248ppl_Octagonal_Shape_mpz_class_concatenate_assign 9249PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9250 ppl_const_Octagonal_Shape_mpz_class_t y)); 9251 9252/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9253int 9254ppl_Octagonal_Shape_mpz_class_time_elapse_assign 9255PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9256 ppl_const_Octagonal_Shape_mpz_class_t y)); 9257 9258 9259 9260 9261 9262/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9263int 9264ppl_Octagonal_Shape_mpz_class_upper_bound_assign_if_exact 9265PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9266 ppl_const_Octagonal_Shape_mpz_class_t y)); 9267 9268 9269 9270 9271 9272/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9273int 9274ppl_Octagonal_Shape_mpz_class_simplify_using_context_assign 9275PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9276 ppl_const_Octagonal_Shape_mpz_class_t y)); 9277 9278 9279 9280 9281/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9282int 9283ppl_Octagonal_Shape_mpz_class_constrains 9284PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9285 ppl_dimension_type var)); 9286 9287 9288 9289 9290/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9291int 9292ppl_Octagonal_Shape_mpz_class_unconstrain_space_dimension 9293PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9294 ppl_dimension_type var)); 9295 9296 9297 9298 9299/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9300int 9301ppl_Octagonal_Shape_mpz_class_unconstrain_space_dimensions 9302PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9303 ppl_dimension_type ds[], 9304 size_t n)); 9305 9306 9307 9308 9309/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9310int 9311ppl_Octagonal_Shape_mpz_class_affine_image 9312PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9313 ppl_dimension_type var, 9314 ppl_const_Linear_Expression_t le, 9315 ppl_const_Coefficient_t d)); 9316 9317/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9318int 9319ppl_Octagonal_Shape_mpz_class_affine_preimage 9320PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9321 ppl_dimension_type var, 9322 ppl_const_Linear_Expression_t le, 9323 ppl_const_Coefficient_t d)); 9324 9325 9326 9327 9328 9329/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9330int 9331ppl_Octagonal_Shape_mpz_class_bounded_affine_image 9332PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9333 ppl_dimension_type var, 9334 ppl_const_Linear_Expression_t lb, 9335 ppl_const_Linear_Expression_t ub, 9336 ppl_const_Coefficient_t d)); 9337 9338/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9339int 9340ppl_Octagonal_Shape_mpz_class_bounded_affine_preimage 9341PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9342 ppl_dimension_type var, 9343 ppl_const_Linear_Expression_t lb, 9344 ppl_const_Linear_Expression_t ub, 9345 ppl_const_Coefficient_t d)); 9346 9347 9348 9349 9350 9351/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9352int 9353ppl_Octagonal_Shape_mpz_class_generalized_affine_image 9354PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9355 ppl_dimension_type var, 9356 enum ppl_enum_Constraint_Type relsym, 9357 ppl_const_Linear_Expression_t le, 9358 ppl_const_Coefficient_t d)); 9359 9360/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9361int 9362ppl_Octagonal_Shape_mpz_class_generalized_affine_preimage 9363PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9364 ppl_dimension_type var, 9365 enum ppl_enum_Constraint_Type relsym, 9366 ppl_const_Linear_Expression_t le, 9367 ppl_const_Coefficient_t d)); 9368 9369 9370 9371 9372 9373/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9374int 9375ppl_Octagonal_Shape_mpz_class_generalized_affine_image_lhs_rhs 9376PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9377 ppl_const_Linear_Expression_t lhs, 9378 enum ppl_enum_Constraint_Type relsym, 9379 ppl_const_Linear_Expression_t rhs)); 9380 9381/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9382int 9383ppl_Octagonal_Shape_mpz_class_generalized_affine_preimage_lhs_rhs 9384PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9385 ppl_const_Linear_Expression_t lhs, 9386 enum ppl_enum_Constraint_Type relsym, 9387 ppl_const_Linear_Expression_t rhs)); 9388 9389 9390 9391 9392 9393/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9394int 9395ppl_Octagonal_Shape_mpz_class_add_space_dimensions_and_embed 9396PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9397 ppl_dimension_type d)); 9398 9399/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9400int 9401ppl_Octagonal_Shape_mpz_class_add_space_dimensions_and_project 9402PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9403 ppl_dimension_type d)); 9404 9405 9406 9407 9408 9409/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9410int 9411ppl_Octagonal_Shape_mpz_class_remove_space_dimensions 9412PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9413 ppl_dimension_type ds[], 9414 size_t n)); 9415 9416 9417 9418 9419/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9420int 9421ppl_Octagonal_Shape_mpz_class_remove_higher_space_dimensions 9422PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9423 ppl_dimension_type d)); 9424 9425 9426 9427 9428/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9429int 9430ppl_Octagonal_Shape_mpz_class_expand_space_dimension 9431PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9432 ppl_dimension_type d, 9433 ppl_dimension_type m)); 9434 9435 9436 9437 9438/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9439int 9440ppl_Octagonal_Shape_mpz_class_fold_space_dimensions 9441PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9442 ppl_dimension_type ds[], 9443 size_t n, 9444 ppl_dimension_type d)); 9445 9446 9447 9448 9449/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9450int 9451ppl_Octagonal_Shape_mpz_class_map_space_dimensions 9452PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9453 ppl_dimension_type maps[], 9454 size_t n)); 9455 9456 9457 9458 9459/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9460int 9461ppl_Octagonal_Shape_mpz_class_drop_some_non_integer_points 9462PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9463 int complexity)); 9464 9465 9466 9467 9468/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9469int 9470ppl_Octagonal_Shape_mpz_class_drop_some_non_integer_points_2 9471PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9472 ppl_dimension_type ds[], 9473 size_t n, 9474 int complexity)); 9475 9476 9477 9478 9479 9480 9481/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9482int 9483ppl_Octagonal_Shape_mpz_class_external_memory_in_bytes 9484PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ps, 9485 size_t* sz)); 9486 9487/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9488int 9489ppl_Octagonal_Shape_mpz_class_total_memory_in_bytes 9490PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t ps, 9491 size_t* sz)); 9492 9493 9494 9495 9496 9497/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9498int 9499ppl_Octagonal_Shape_mpz_class_BHMZ05_widening_assign_with_tokens 9500PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9501 ppl_const_Octagonal_Shape_mpz_class_t y, 9502 unsigned* tp)); 9503 9504 9505 9506 9507 9508/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9509int 9510ppl_Octagonal_Shape_mpz_class_BHMZ05_widening_assign 9511PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9512 ppl_const_Octagonal_Shape_mpz_class_t y)); 9513 9514 9515 9516 9517 9518/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9519int 9520ppl_Octagonal_Shape_mpz_class_widening_assign_with_tokens 9521PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9522 ppl_const_Octagonal_Shape_mpz_class_t y, 9523 unsigned* tp)); 9524 9525 9526 9527 9528/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9529int 9530ppl_Octagonal_Shape_mpz_class_widening_assign 9531PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9532 ppl_const_Octagonal_Shape_mpz_class_t y)); 9533 9534 9535 9536 9537/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9538int 9539ppl_Octagonal_Shape_mpz_class_limited_BHMZ05_extrapolation_assign_with_tokens 9540PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9541 ppl_const_Octagonal_Shape_mpz_class_t y, 9542 ppl_const_Constraint_System_t cs, 9543 unsigned* tp)); 9544 9545/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9546int 9547ppl_Octagonal_Shape_mpz_class_limited_CC76_extrapolation_assign_with_tokens 9548PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9549 ppl_const_Octagonal_Shape_mpz_class_t y, 9550 ppl_const_Constraint_System_t cs, 9551 unsigned* tp)); 9552 9553 9554 9555 9556 9557 9558 9559/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9560int 9561ppl_Octagonal_Shape_mpz_class_limited_BHMZ05_extrapolation_assign 9562PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9563 ppl_const_Octagonal_Shape_mpz_class_t y, 9564 ppl_const_Constraint_System_t cs)); 9565 9566/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9567int 9568ppl_Octagonal_Shape_mpz_class_limited_CC76_extrapolation_assign 9569PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9570 ppl_const_Octagonal_Shape_mpz_class_t y, 9571 ppl_const_Constraint_System_t cs)); 9572 9573 9574 9575 9576 9577 9578 9579/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9580int 9581ppl_Octagonal_Shape_mpz_class_CC76_extrapolation_assign_with_tokens 9582PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9583 ppl_const_Octagonal_Shape_mpz_class_t y, 9584 unsigned* tp)); 9585 9586 9587 9588 9589 9590/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9591int 9592ppl_Octagonal_Shape_mpz_class_CC76_extrapolation_assign 9593PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9594 ppl_const_Octagonal_Shape_mpz_class_t y)); 9595 9596 9597 9598 9599 9600/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9601int 9602ppl_Octagonal_Shape_mpz_class_CC76_narrowing_assign 9603PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t x, 9604 ppl_const_Octagonal_Shape_mpz_class_t y)); 9605 9606 9607 9608 9609 9610/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9611int 9612ppl_Octagonal_Shape_mpz_class_linear_partition 9613PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t x, 9614 ppl_const_Octagonal_Shape_mpz_class_t y, 9615 ppl_Octagonal_Shape_mpz_class_t* p_inters, 9616 ppl_Pointset_Powerset_NNC_Polyhedron_t* p_rest)); 9617 9618 9619 9620 9621 9622/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9623int 9624ppl_Octagonal_Shape_mpz_class_wrap_assign 9625PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9626 ppl_dimension_type ds[], 9627 size_t n, 9628 enum ppl_enum_Bounded_Integer_Type_Width w, 9629 enum ppl_enum_Bounded_Integer_Type_Representation r, 9630 enum ppl_enum_Bounded_Integer_Type_Overflow o, 9631 const ppl_const_Constraint_System_t* pcs, 9632 unsigned complexity_threshold, 9633 int wrap_individually)); 9634 9635 9636 9637/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9638int 9639ppl_new_Octagonal_Shape_mpz_class_recycle_Constraint_System 9640PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_Constraint_System_t cs)); 9641 9642/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9643int 9644ppl_new_Octagonal_Shape_mpz_class_recycle_Congruence_System 9645PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_Congruence_System_t cs)); 9646 9647/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9648int 9649ppl_new_Octagonal_Shape_mpz_class_recycle_Generator_System 9650PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t* pph, ppl_Generator_System_t cs)); 9651 9652 9653 9654 9655 9656 9657/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9658int 9659ppl_assign_Octagonal_Shape_mpz_class_from_Octagonal_Shape_mpz_class 9660PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t dst, ppl_const_Octagonal_Shape_mpz_class_t src)); 9661 9662 9663 9664 9665 9666/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9667int 9668ppl_Octagonal_Shape_mpz_class_add_recycled_constraints 9669PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9670 ppl_Constraint_System_t cs)); 9671 9672/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9673int 9674ppl_Octagonal_Shape_mpz_class_add_recycled_congruences 9675PPL_PROTO((ppl_Octagonal_Shape_mpz_class_t ph, 9676 ppl_Congruence_System_t cs)); 9677 9678 9679 9680 9681 9682/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9683int 9684ppl_termination_test_MS_Octagonal_Shape_mpz_class 9685PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t pset)); 9686 9687/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9688int 9689ppl_termination_test_PR_Octagonal_Shape_mpz_class 9690PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t pset)); 9691 9692 9693 9694 9695 9696 9697/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9698int 9699ppl_one_affine_ranking_function_MS_Octagonal_Shape_mpz_class 9700PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t pset, 9701 ppl_Generator_t point)); 9702 9703/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9704int 9705ppl_one_affine_ranking_function_PR_Octagonal_Shape_mpz_class 9706PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t pset, 9707 ppl_Generator_t point)); 9708 9709 9710 9711 9712 9713 9714/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9715int 9716ppl_all_affine_ranking_functions_MS_Octagonal_Shape_mpz_class 9717PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t pset, 9718 ppl_Polyhedron_t ph)); 9719 9720/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9721int 9722ppl_all_affine_ranking_functions_PR_Octagonal_Shape_mpz_class 9723PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t pset, 9724 ppl_Polyhedron_t ph)); 9725 9726 9727 9728 9729 9730 9731/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9732int 9733ppl_termination_test_MS_Octagonal_Shape_mpz_class_2 9734PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t pset_before, ppl_const_Octagonal_Shape_mpz_class_t pset_after)); 9735 9736/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9737int 9738ppl_termination_test_PR_Octagonal_Shape_mpz_class_2 9739PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t pset_before, ppl_const_Octagonal_Shape_mpz_class_t pset_after)); 9740 9741 9742 9743 9744 9745 9746/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9747int 9748ppl_one_affine_ranking_function_MS_Octagonal_Shape_mpz_class_2 9749PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t pset_before, 9750 ppl_const_Octagonal_Shape_mpz_class_t pset_after, 9751 ppl_Generator_t point)); 9752 9753/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9754int 9755ppl_one_affine_ranking_function_PR_Octagonal_Shape_mpz_class_2 9756PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t pset_before, 9757 ppl_const_Octagonal_Shape_mpz_class_t pset_after, 9758 ppl_Generator_t point)); 9759 9760 9761 9762 9763 9764 9765/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9766int 9767ppl_all_affine_ranking_functions_MS_Octagonal_Shape_mpz_class_2 9768PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t pset_before, 9769 ppl_const_Octagonal_Shape_mpz_class_t pset_after, 9770 ppl_Polyhedron_t ph)); 9771 9772/*! \relates ppl_Octagonal_Shape_mpz_class_tag */ 9773int 9774ppl_all_affine_ranking_functions_PR_Octagonal_Shape_mpz_class_2 9775PPL_PROTO((ppl_const_Octagonal_Shape_mpz_class_t pset_before, 9776 ppl_const_Octagonal_Shape_mpz_class_t pset_after, 9777 ppl_Polyhedron_t ph)); 9778 9779 9780 9781 9782 9783 9784 9785PPL_DECLARE_IO_FUNCTIONS(Octagonal_Shape_mpz_class) 9786 9787/* End of Functions Related to ppl_Octagonal_Shape_mpz_class_tag */ 9788 9789/*! \interface ppl_Octagonal_Shape_mpq_class_tag 9790 \brief Types and functions for ppl_Octagonal_Shape_mpq_class_tag 9791*/ 9792 9793/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9794int 9795ppl_delete_Octagonal_Shape_mpq_class 9796PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph)); 9797 9798 9799 9800 9801/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9802int 9803ppl_new_Octagonal_Shape_mpq_class_from_space_dimension 9804PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_dimension_type d, int empty)); 9805 9806 9807 9808 9809 9810/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9811int 9812ppl_new_Octagonal_Shape_mpq_class_from_C_Polyhedron 9813PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Polyhedron_t ph)); 9814 9815/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9816int 9817ppl_new_Octagonal_Shape_mpq_class_from_NNC_Polyhedron 9818PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Polyhedron_t ph)); 9819 9820/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9821int 9822ppl_new_Octagonal_Shape_mpq_class_from_Grid 9823PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Grid_t ph)); 9824 9825/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9826int 9827ppl_new_Octagonal_Shape_mpq_class_from_Rational_Box 9828PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Rational_Box_t ph)); 9829 9830/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9831int 9832ppl_new_Octagonal_Shape_mpq_class_from_BD_Shape_mpz_class 9833PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_BD_Shape_mpz_class_t ph)); 9834 9835/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9836int 9837ppl_new_Octagonal_Shape_mpq_class_from_BD_Shape_mpq_class 9838PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_BD_Shape_mpq_class_t ph)); 9839 9840/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9841int 9842ppl_new_Octagonal_Shape_mpq_class_from_Octagonal_Shape_mpz_class 9843PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph)); 9844 9845/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9846int 9847ppl_new_Octagonal_Shape_mpq_class_from_Octagonal_Shape_mpq_class 9848PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph)); 9849 9850/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9851int 9852ppl_new_Octagonal_Shape_mpq_class_from_Double_Box 9853PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Double_Box_t ph)); 9854 9855/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9856int 9857ppl_new_Octagonal_Shape_mpq_class_from_BD_Shape_double 9858PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_BD_Shape_double_t ph)); 9859 9860/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9861int 9862ppl_new_Octagonal_Shape_mpq_class_from_Octagonal_Shape_double 9863PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Octagonal_Shape_double_t ph)); 9864 9865 9866 9867 9868 9869 9870/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9871int 9872ppl_new_Octagonal_Shape_mpq_class_from_C_Polyhedron_with_complexity 9873PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 9874 9875/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9876int 9877ppl_new_Octagonal_Shape_mpq_class_from_NNC_Polyhedron_with_complexity 9878PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 9879 9880/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9881int 9882ppl_new_Octagonal_Shape_mpq_class_from_Grid_with_complexity 9883PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Grid_t ph, int complexity)); 9884 9885/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9886int 9887ppl_new_Octagonal_Shape_mpq_class_from_Rational_Box_with_complexity 9888PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Rational_Box_t ph, int complexity)); 9889 9890/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9891int 9892ppl_new_Octagonal_Shape_mpq_class_from_BD_Shape_mpz_class_with_complexity 9893PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_BD_Shape_mpz_class_t ph, int complexity)); 9894 9895/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9896int 9897ppl_new_Octagonal_Shape_mpq_class_from_BD_Shape_mpq_class_with_complexity 9898PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_BD_Shape_mpq_class_t ph, int complexity)); 9899 9900/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9901int 9902ppl_new_Octagonal_Shape_mpq_class_from_Octagonal_Shape_mpz_class_with_complexity 9903PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph, int complexity)); 9904 9905/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9906int 9907ppl_new_Octagonal_Shape_mpq_class_from_Octagonal_Shape_mpq_class_with_complexity 9908PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph, int complexity)); 9909 9910/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9911int 9912ppl_new_Octagonal_Shape_mpq_class_from_Double_Box_with_complexity 9913PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Double_Box_t ph, int complexity)); 9914 9915/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9916int 9917ppl_new_Octagonal_Shape_mpq_class_from_BD_Shape_double_with_complexity 9918PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_BD_Shape_double_t ph, int complexity)); 9919 9920/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9921int 9922ppl_new_Octagonal_Shape_mpq_class_from_Octagonal_Shape_double_with_complexity 9923PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Octagonal_Shape_double_t ph, int complexity)); 9924 9925 9926 9927 9928 9929 9930/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9931int 9932ppl_new_Octagonal_Shape_mpq_class_from_Constraint_System 9933PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Constraint_System_t cs)); 9934 9935/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9936int 9937ppl_new_Octagonal_Shape_mpq_class_from_Congruence_System 9938PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Congruence_System_t cs)); 9939 9940/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9941int 9942ppl_new_Octagonal_Shape_mpq_class_from_Generator_System 9943PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_const_Generator_System_t cs)); 9944 9945 9946 9947 9948 9949 9950 9951 9952/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9953int 9954ppl_Octagonal_Shape_mpq_class_space_dimension 9955PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, ppl_dimension_type* m)); 9956 9957/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9958int 9959ppl_Octagonal_Shape_mpq_class_affine_dimension 9960PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, ppl_dimension_type* m)); 9961 9962 9963 9964 9965 9966/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9967int 9968ppl_Octagonal_Shape_mpq_class_relation_with_Constraint 9969PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, 9970 ppl_const_Constraint_t c)); 9971 9972/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9973int 9974ppl_Octagonal_Shape_mpq_class_relation_with_Generator 9975PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, 9976 ppl_const_Generator_t c)); 9977 9978/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9979int 9980ppl_Octagonal_Shape_mpq_class_relation_with_Congruence 9981PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, 9982 ppl_const_Congruence_t c)); 9983 9984 9985 9986 9987 9988/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9989int 9990ppl_Octagonal_Shape_mpq_class_get_constraints 9991PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, 9992 ppl_const_Constraint_System_t* pcs)); 9993 9994/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 9995int 9996ppl_Octagonal_Shape_mpq_class_get_congruences 9997PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, 9998 ppl_const_Congruence_System_t* pcs)); 9999 10000 10001 10002 10003 10004/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10005int 10006ppl_Octagonal_Shape_mpq_class_get_minimized_constraints 10007PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, 10008 ppl_const_Constraint_System_t* pcs)); 10009 10010/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10011int 10012ppl_Octagonal_Shape_mpq_class_get_minimized_congruences 10013PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, 10014 ppl_const_Congruence_System_t* pcs)); 10015 10016 10017 10018 10019 10020/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10021int 10022ppl_Octagonal_Shape_mpq_class_is_empty 10023PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph)); 10024 10025/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10026int 10027ppl_Octagonal_Shape_mpq_class_is_universe 10028PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph)); 10029 10030/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10031int 10032ppl_Octagonal_Shape_mpq_class_is_bounded 10033PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph)); 10034 10035/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10036int 10037ppl_Octagonal_Shape_mpq_class_contains_integer_point 10038PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph)); 10039 10040/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10041int 10042ppl_Octagonal_Shape_mpq_class_is_topologically_closed 10043PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph)); 10044 10045/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10046int 10047ppl_Octagonal_Shape_mpq_class_is_discrete 10048PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph)); 10049 10050 10051 10052 10053 10054/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10055int 10056ppl_Octagonal_Shape_mpq_class_topological_closure_assign 10057PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph)); 10058 10059 10060 10061 10062 10063/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10064int 10065ppl_Octagonal_Shape_mpq_class_bounds_from_above 10066PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, 10067 ppl_const_Linear_Expression_t le)); 10068 10069/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10070int 10071ppl_Octagonal_Shape_mpq_class_bounds_from_below 10072PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, 10073 ppl_const_Linear_Expression_t le)); 10074 10075 10076 10077 10078 10079/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10080int 10081ppl_Octagonal_Shape_mpq_class_maximize 10082PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, 10083 ppl_const_Linear_Expression_t le, 10084 ppl_Coefficient_t ext_n, 10085 ppl_Coefficient_t ext_d, 10086 int* poptimum)); 10087 10088/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10089int 10090ppl_Octagonal_Shape_mpq_class_minimize 10091PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, 10092 ppl_const_Linear_Expression_t le, 10093 ppl_Coefficient_t ext_n, 10094 ppl_Coefficient_t ext_d, 10095 int* poptimum)); 10096 10097 10098 10099 10100 10101/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10102int 10103ppl_Octagonal_Shape_mpq_class_maximize_with_point 10104PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, 10105 ppl_const_Linear_Expression_t le, 10106 ppl_Coefficient_t ext_n, 10107 ppl_Coefficient_t ext_d, 10108 int* poptimum, 10109 ppl_Generator_t point)); 10110 10111/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10112int 10113ppl_Octagonal_Shape_mpq_class_minimize_with_point 10114PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, 10115 ppl_const_Linear_Expression_t le, 10116 ppl_Coefficient_t ext_n, 10117 ppl_Coefficient_t ext_d, 10118 int* poptimum, 10119 ppl_Generator_t point)); 10120 10121 10122 10123 10124 10125/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10126int 10127ppl_Octagonal_Shape_mpq_class_frequency 10128PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph, 10129 ppl_const_Linear_Expression_t le, 10130 ppl_Coefficient_t ext_fn, 10131 ppl_Coefficient_t ext_fd, 10132 ppl_Coefficient_t ext_vn, 10133 ppl_Coefficient_t ext_vd)); 10134 10135 10136 10137 10138/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10139int 10140ppl_Octagonal_Shape_mpq_class_contains_Octagonal_Shape_mpq_class 10141PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t x, 10142 ppl_const_Octagonal_Shape_mpq_class_t y)); 10143 10144/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10145int 10146ppl_Octagonal_Shape_mpq_class_strictly_contains_Octagonal_Shape_mpq_class 10147PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t x, 10148 ppl_const_Octagonal_Shape_mpq_class_t y)); 10149 10150/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10151int 10152ppl_Octagonal_Shape_mpq_class_is_disjoint_from_Octagonal_Shape_mpq_class 10153PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t x, 10154 ppl_const_Octagonal_Shape_mpq_class_t y)); 10155 10156 10157 10158 10159 10160/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10161int 10162ppl_Octagonal_Shape_mpq_class_equals_Octagonal_Shape_mpq_class 10163PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t x, 10164 ppl_const_Octagonal_Shape_mpq_class_t y)); 10165 10166 10167 10168 10169/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10170int 10171ppl_Octagonal_Shape_mpq_class_OK 10172PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ph)); 10173 10174 10175 10176 10177/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10178int 10179ppl_Octagonal_Shape_mpq_class_add_constraint 10180PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10181 ppl_const_Constraint_t c)); 10182 10183/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10184int 10185ppl_Octagonal_Shape_mpq_class_add_congruence 10186PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10187 ppl_const_Congruence_t c)); 10188 10189 10190 10191 10192 10193/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10194int 10195ppl_Octagonal_Shape_mpq_class_add_constraints 10196PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10197 ppl_const_Constraint_System_t cs)); 10198 10199/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10200int 10201ppl_Octagonal_Shape_mpq_class_add_congruences 10202PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10203 ppl_const_Congruence_System_t cs)); 10204 10205 10206 10207 10208 10209/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10210int 10211ppl_Octagonal_Shape_mpq_class_refine_with_constraint 10212PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10213 ppl_const_Constraint_t c)); 10214 10215/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10216int 10217ppl_Octagonal_Shape_mpq_class_refine_with_congruence 10218PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10219 ppl_const_Congruence_t c)); 10220 10221 10222 10223 10224 10225/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10226int 10227ppl_Octagonal_Shape_mpq_class_refine_with_constraints 10228PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10229 ppl_const_Constraint_System_t cs)); 10230 10231/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10232int 10233ppl_Octagonal_Shape_mpq_class_refine_with_congruences 10234PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10235 ppl_const_Congruence_System_t cs)); 10236 10237 10238 10239 10240 10241/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10242int 10243ppl_Octagonal_Shape_mpq_class_intersection_assign 10244PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10245 ppl_const_Octagonal_Shape_mpq_class_t y)); 10246 10247/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10248int 10249ppl_Octagonal_Shape_mpq_class_upper_bound_assign 10250PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10251 ppl_const_Octagonal_Shape_mpq_class_t y)); 10252 10253/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10254int 10255ppl_Octagonal_Shape_mpq_class_difference_assign 10256PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10257 ppl_const_Octagonal_Shape_mpq_class_t y)); 10258 10259/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10260int 10261ppl_Octagonal_Shape_mpq_class_concatenate_assign 10262PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10263 ppl_const_Octagonal_Shape_mpq_class_t y)); 10264 10265/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10266int 10267ppl_Octagonal_Shape_mpq_class_time_elapse_assign 10268PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10269 ppl_const_Octagonal_Shape_mpq_class_t y)); 10270 10271 10272 10273 10274 10275/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10276int 10277ppl_Octagonal_Shape_mpq_class_upper_bound_assign_if_exact 10278PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10279 ppl_const_Octagonal_Shape_mpq_class_t y)); 10280 10281 10282 10283 10284 10285/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10286int 10287ppl_Octagonal_Shape_mpq_class_simplify_using_context_assign 10288PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10289 ppl_const_Octagonal_Shape_mpq_class_t y)); 10290 10291 10292 10293 10294/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10295int 10296ppl_Octagonal_Shape_mpq_class_constrains 10297PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10298 ppl_dimension_type var)); 10299 10300 10301 10302 10303/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10304int 10305ppl_Octagonal_Shape_mpq_class_unconstrain_space_dimension 10306PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10307 ppl_dimension_type var)); 10308 10309 10310 10311 10312/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10313int 10314ppl_Octagonal_Shape_mpq_class_unconstrain_space_dimensions 10315PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10316 ppl_dimension_type ds[], 10317 size_t n)); 10318 10319 10320 10321 10322/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10323int 10324ppl_Octagonal_Shape_mpq_class_affine_image 10325PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10326 ppl_dimension_type var, 10327 ppl_const_Linear_Expression_t le, 10328 ppl_const_Coefficient_t d)); 10329 10330/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10331int 10332ppl_Octagonal_Shape_mpq_class_affine_preimage 10333PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10334 ppl_dimension_type var, 10335 ppl_const_Linear_Expression_t le, 10336 ppl_const_Coefficient_t d)); 10337 10338 10339 10340 10341 10342/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10343int 10344ppl_Octagonal_Shape_mpq_class_bounded_affine_image 10345PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10346 ppl_dimension_type var, 10347 ppl_const_Linear_Expression_t lb, 10348 ppl_const_Linear_Expression_t ub, 10349 ppl_const_Coefficient_t d)); 10350 10351/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10352int 10353ppl_Octagonal_Shape_mpq_class_bounded_affine_preimage 10354PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10355 ppl_dimension_type var, 10356 ppl_const_Linear_Expression_t lb, 10357 ppl_const_Linear_Expression_t ub, 10358 ppl_const_Coefficient_t d)); 10359 10360 10361 10362 10363 10364/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10365int 10366ppl_Octagonal_Shape_mpq_class_generalized_affine_image 10367PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10368 ppl_dimension_type var, 10369 enum ppl_enum_Constraint_Type relsym, 10370 ppl_const_Linear_Expression_t le, 10371 ppl_const_Coefficient_t d)); 10372 10373/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10374int 10375ppl_Octagonal_Shape_mpq_class_generalized_affine_preimage 10376PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10377 ppl_dimension_type var, 10378 enum ppl_enum_Constraint_Type relsym, 10379 ppl_const_Linear_Expression_t le, 10380 ppl_const_Coefficient_t d)); 10381 10382 10383 10384 10385 10386/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10387int 10388ppl_Octagonal_Shape_mpq_class_generalized_affine_image_lhs_rhs 10389PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10390 ppl_const_Linear_Expression_t lhs, 10391 enum ppl_enum_Constraint_Type relsym, 10392 ppl_const_Linear_Expression_t rhs)); 10393 10394/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10395int 10396ppl_Octagonal_Shape_mpq_class_generalized_affine_preimage_lhs_rhs 10397PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10398 ppl_const_Linear_Expression_t lhs, 10399 enum ppl_enum_Constraint_Type relsym, 10400 ppl_const_Linear_Expression_t rhs)); 10401 10402 10403 10404 10405 10406/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10407int 10408ppl_Octagonal_Shape_mpq_class_add_space_dimensions_and_embed 10409PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10410 ppl_dimension_type d)); 10411 10412/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10413int 10414ppl_Octagonal_Shape_mpq_class_add_space_dimensions_and_project 10415PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10416 ppl_dimension_type d)); 10417 10418 10419 10420 10421 10422/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10423int 10424ppl_Octagonal_Shape_mpq_class_remove_space_dimensions 10425PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10426 ppl_dimension_type ds[], 10427 size_t n)); 10428 10429 10430 10431 10432/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10433int 10434ppl_Octagonal_Shape_mpq_class_remove_higher_space_dimensions 10435PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10436 ppl_dimension_type d)); 10437 10438 10439 10440 10441/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10442int 10443ppl_Octagonal_Shape_mpq_class_expand_space_dimension 10444PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10445 ppl_dimension_type d, 10446 ppl_dimension_type m)); 10447 10448 10449 10450 10451/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10452int 10453ppl_Octagonal_Shape_mpq_class_fold_space_dimensions 10454PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10455 ppl_dimension_type ds[], 10456 size_t n, 10457 ppl_dimension_type d)); 10458 10459 10460 10461 10462/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10463int 10464ppl_Octagonal_Shape_mpq_class_map_space_dimensions 10465PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10466 ppl_dimension_type maps[], 10467 size_t n)); 10468 10469 10470 10471 10472/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10473int 10474ppl_Octagonal_Shape_mpq_class_drop_some_non_integer_points 10475PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10476 int complexity)); 10477 10478 10479 10480 10481/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10482int 10483ppl_Octagonal_Shape_mpq_class_drop_some_non_integer_points_2 10484PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10485 ppl_dimension_type ds[], 10486 size_t n, 10487 int complexity)); 10488 10489 10490 10491 10492 10493 10494/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10495int 10496ppl_Octagonal_Shape_mpq_class_external_memory_in_bytes 10497PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ps, 10498 size_t* sz)); 10499 10500/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10501int 10502ppl_Octagonal_Shape_mpq_class_total_memory_in_bytes 10503PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t ps, 10504 size_t* sz)); 10505 10506 10507 10508 10509 10510/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10511int 10512ppl_Octagonal_Shape_mpq_class_BHMZ05_widening_assign_with_tokens 10513PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10514 ppl_const_Octagonal_Shape_mpq_class_t y, 10515 unsigned* tp)); 10516 10517 10518 10519 10520 10521/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10522int 10523ppl_Octagonal_Shape_mpq_class_BHMZ05_widening_assign 10524PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10525 ppl_const_Octagonal_Shape_mpq_class_t y)); 10526 10527 10528 10529 10530 10531/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10532int 10533ppl_Octagonal_Shape_mpq_class_widening_assign_with_tokens 10534PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10535 ppl_const_Octagonal_Shape_mpq_class_t y, 10536 unsigned* tp)); 10537 10538 10539 10540 10541/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10542int 10543ppl_Octagonal_Shape_mpq_class_widening_assign 10544PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10545 ppl_const_Octagonal_Shape_mpq_class_t y)); 10546 10547 10548 10549 10550/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10551int 10552ppl_Octagonal_Shape_mpq_class_limited_BHMZ05_extrapolation_assign_with_tokens 10553PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10554 ppl_const_Octagonal_Shape_mpq_class_t y, 10555 ppl_const_Constraint_System_t cs, 10556 unsigned* tp)); 10557 10558/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10559int 10560ppl_Octagonal_Shape_mpq_class_limited_CC76_extrapolation_assign_with_tokens 10561PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10562 ppl_const_Octagonal_Shape_mpq_class_t y, 10563 ppl_const_Constraint_System_t cs, 10564 unsigned* tp)); 10565 10566 10567 10568 10569 10570 10571 10572/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10573int 10574ppl_Octagonal_Shape_mpq_class_limited_BHMZ05_extrapolation_assign 10575PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10576 ppl_const_Octagonal_Shape_mpq_class_t y, 10577 ppl_const_Constraint_System_t cs)); 10578 10579/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10580int 10581ppl_Octagonal_Shape_mpq_class_limited_CC76_extrapolation_assign 10582PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10583 ppl_const_Octagonal_Shape_mpq_class_t y, 10584 ppl_const_Constraint_System_t cs)); 10585 10586 10587 10588 10589 10590 10591 10592/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10593int 10594ppl_Octagonal_Shape_mpq_class_CC76_extrapolation_assign_with_tokens 10595PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10596 ppl_const_Octagonal_Shape_mpq_class_t y, 10597 unsigned* tp)); 10598 10599 10600 10601 10602 10603/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10604int 10605ppl_Octagonal_Shape_mpq_class_CC76_extrapolation_assign 10606PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10607 ppl_const_Octagonal_Shape_mpq_class_t y)); 10608 10609 10610 10611 10612 10613/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10614int 10615ppl_Octagonal_Shape_mpq_class_CC76_narrowing_assign 10616PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t x, 10617 ppl_const_Octagonal_Shape_mpq_class_t y)); 10618 10619 10620 10621 10622 10623/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10624int 10625ppl_Octagonal_Shape_mpq_class_linear_partition 10626PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t x, 10627 ppl_const_Octagonal_Shape_mpq_class_t y, 10628 ppl_Octagonal_Shape_mpq_class_t* p_inters, 10629 ppl_Pointset_Powerset_NNC_Polyhedron_t* p_rest)); 10630 10631 10632 10633 10634 10635/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10636int 10637ppl_Octagonal_Shape_mpq_class_wrap_assign 10638PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10639 ppl_dimension_type ds[], 10640 size_t n, 10641 enum ppl_enum_Bounded_Integer_Type_Width w, 10642 enum ppl_enum_Bounded_Integer_Type_Representation r, 10643 enum ppl_enum_Bounded_Integer_Type_Overflow o, 10644 const ppl_const_Constraint_System_t* pcs, 10645 unsigned complexity_threshold, 10646 int wrap_individually)); 10647 10648 10649 10650/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10651int 10652ppl_new_Octagonal_Shape_mpq_class_recycle_Constraint_System 10653PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_Constraint_System_t cs)); 10654 10655/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10656int 10657ppl_new_Octagonal_Shape_mpq_class_recycle_Congruence_System 10658PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_Congruence_System_t cs)); 10659 10660/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10661int 10662ppl_new_Octagonal_Shape_mpq_class_recycle_Generator_System 10663PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t* pph, ppl_Generator_System_t cs)); 10664 10665 10666 10667 10668 10669 10670/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10671int 10672ppl_assign_Octagonal_Shape_mpq_class_from_Octagonal_Shape_mpq_class 10673PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t dst, ppl_const_Octagonal_Shape_mpq_class_t src)); 10674 10675 10676 10677 10678 10679/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10680int 10681ppl_Octagonal_Shape_mpq_class_add_recycled_constraints 10682PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10683 ppl_Constraint_System_t cs)); 10684 10685/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10686int 10687ppl_Octagonal_Shape_mpq_class_add_recycled_congruences 10688PPL_PROTO((ppl_Octagonal_Shape_mpq_class_t ph, 10689 ppl_Congruence_System_t cs)); 10690 10691 10692 10693 10694 10695/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10696int 10697ppl_termination_test_MS_Octagonal_Shape_mpq_class 10698PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t pset)); 10699 10700/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10701int 10702ppl_termination_test_PR_Octagonal_Shape_mpq_class 10703PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t pset)); 10704 10705 10706 10707 10708 10709 10710/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10711int 10712ppl_one_affine_ranking_function_MS_Octagonal_Shape_mpq_class 10713PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t pset, 10714 ppl_Generator_t point)); 10715 10716/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10717int 10718ppl_one_affine_ranking_function_PR_Octagonal_Shape_mpq_class 10719PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t pset, 10720 ppl_Generator_t point)); 10721 10722 10723 10724 10725 10726 10727/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10728int 10729ppl_all_affine_ranking_functions_MS_Octagonal_Shape_mpq_class 10730PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t pset, 10731 ppl_Polyhedron_t ph)); 10732 10733/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10734int 10735ppl_all_affine_ranking_functions_PR_Octagonal_Shape_mpq_class 10736PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t pset, 10737 ppl_Polyhedron_t ph)); 10738 10739 10740 10741 10742 10743 10744/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10745int 10746ppl_termination_test_MS_Octagonal_Shape_mpq_class_2 10747PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t pset_before, ppl_const_Octagonal_Shape_mpq_class_t pset_after)); 10748 10749/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10750int 10751ppl_termination_test_PR_Octagonal_Shape_mpq_class_2 10752PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t pset_before, ppl_const_Octagonal_Shape_mpq_class_t pset_after)); 10753 10754 10755 10756 10757 10758 10759/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10760int 10761ppl_one_affine_ranking_function_MS_Octagonal_Shape_mpq_class_2 10762PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t pset_before, 10763 ppl_const_Octagonal_Shape_mpq_class_t pset_after, 10764 ppl_Generator_t point)); 10765 10766/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10767int 10768ppl_one_affine_ranking_function_PR_Octagonal_Shape_mpq_class_2 10769PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t pset_before, 10770 ppl_const_Octagonal_Shape_mpq_class_t pset_after, 10771 ppl_Generator_t point)); 10772 10773 10774 10775 10776 10777 10778/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10779int 10780ppl_all_affine_ranking_functions_MS_Octagonal_Shape_mpq_class_2 10781PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t pset_before, 10782 ppl_const_Octagonal_Shape_mpq_class_t pset_after, 10783 ppl_Polyhedron_t ph)); 10784 10785/*! \relates ppl_Octagonal_Shape_mpq_class_tag */ 10786int 10787ppl_all_affine_ranking_functions_PR_Octagonal_Shape_mpq_class_2 10788PPL_PROTO((ppl_const_Octagonal_Shape_mpq_class_t pset_before, 10789 ppl_const_Octagonal_Shape_mpq_class_t pset_after, 10790 ppl_Polyhedron_t ph)); 10791 10792 10793 10794 10795 10796 10797 10798PPL_DECLARE_IO_FUNCTIONS(Octagonal_Shape_mpq_class) 10799 10800/* End of Functions Related to ppl_Octagonal_Shape_mpq_class_tag */ 10801 10802/*! \interface ppl_Constraints_Product_C_Polyhedron_Grid_tag 10803 \brief Types and functions for ppl_Constraints_Product_C_Polyhedron_Grid_tag 10804*/ 10805 10806/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10807int 10808ppl_delete_Constraints_Product_C_Polyhedron_Grid 10809PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph)); 10810 10811 10812 10813 10814/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10815int 10816ppl_new_Constraints_Product_C_Polyhedron_Grid_from_space_dimension 10817PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_dimension_type d, int empty)); 10818 10819 10820 10821 10822 10823/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10824int 10825ppl_new_Constraints_Product_C_Polyhedron_Grid_from_C_Polyhedron 10826PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Polyhedron_t ph)); 10827 10828/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10829int 10830ppl_new_Constraints_Product_C_Polyhedron_Grid_from_NNC_Polyhedron 10831PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Polyhedron_t ph)); 10832 10833/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10834int 10835ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Grid 10836PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Grid_t ph)); 10837 10838/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10839int 10840ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Rational_Box 10841PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Rational_Box_t ph)); 10842 10843/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10844int 10845ppl_new_Constraints_Product_C_Polyhedron_Grid_from_BD_Shape_mpz_class 10846PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_BD_Shape_mpz_class_t ph)); 10847 10848/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10849int 10850ppl_new_Constraints_Product_C_Polyhedron_Grid_from_BD_Shape_mpq_class 10851PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_BD_Shape_mpq_class_t ph)); 10852 10853/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10854int 10855ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Octagonal_Shape_mpz_class 10856PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph)); 10857 10858/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10859int 10860ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Octagonal_Shape_mpq_class 10861PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph)); 10862 10863/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10864int 10865ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Double_Box 10866PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Double_Box_t ph)); 10867 10868/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10869int 10870ppl_new_Constraints_Product_C_Polyhedron_Grid_from_BD_Shape_double 10871PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_BD_Shape_double_t ph)); 10872 10873/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10874int 10875ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Octagonal_Shape_double 10876PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Octagonal_Shape_double_t ph)); 10877 10878/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10879int 10880ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Constraints_Product_C_Polyhedron_Grid 10881PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph)); 10882 10883 10884 10885 10886 10887 10888/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10889int 10890ppl_new_Constraints_Product_C_Polyhedron_Grid_from_C_Polyhedron_with_complexity 10891PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 10892 10893/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10894int 10895ppl_new_Constraints_Product_C_Polyhedron_Grid_from_NNC_Polyhedron_with_complexity 10896PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 10897 10898/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10899int 10900ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Grid_with_complexity 10901PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Grid_t ph, int complexity)); 10902 10903/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10904int 10905ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Rational_Box_with_complexity 10906PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Rational_Box_t ph, int complexity)); 10907 10908/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10909int 10910ppl_new_Constraints_Product_C_Polyhedron_Grid_from_BD_Shape_mpz_class_with_complexity 10911PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_BD_Shape_mpz_class_t ph, int complexity)); 10912 10913/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10914int 10915ppl_new_Constraints_Product_C_Polyhedron_Grid_from_BD_Shape_mpq_class_with_complexity 10916PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_BD_Shape_mpq_class_t ph, int complexity)); 10917 10918/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10919int 10920ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Octagonal_Shape_mpz_class_with_complexity 10921PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph, int complexity)); 10922 10923/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10924int 10925ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Octagonal_Shape_mpq_class_with_complexity 10926PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph, int complexity)); 10927 10928/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10929int 10930ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Double_Box_with_complexity 10931PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Double_Box_t ph, int complexity)); 10932 10933/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10934int 10935ppl_new_Constraints_Product_C_Polyhedron_Grid_from_BD_Shape_double_with_complexity 10936PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_BD_Shape_double_t ph, int complexity)); 10937 10938/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10939int 10940ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Octagonal_Shape_double_with_complexity 10941PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Octagonal_Shape_double_t ph, int complexity)); 10942 10943/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10944int 10945ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Constraints_Product_C_Polyhedron_Grid_with_complexity 10946PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph, int complexity)); 10947 10948 10949 10950 10951 10952 10953/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10954int 10955ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Constraint_System 10956PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Constraint_System_t cs)); 10957 10958/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10959int 10960ppl_new_Constraints_Product_C_Polyhedron_Grid_from_Congruence_System 10961PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t* pph, ppl_const_Congruence_System_t cs)); 10962 10963 10964 10965 10966 10967 10968 10969 10970/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10971int 10972ppl_Constraints_Product_C_Polyhedron_Grid_space_dimension 10973PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph, ppl_dimension_type* m)); 10974 10975/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10976int 10977ppl_Constraints_Product_C_Polyhedron_Grid_affine_dimension 10978PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph, ppl_dimension_type* m)); 10979 10980 10981 10982 10983 10984/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10985int 10986ppl_Constraints_Product_C_Polyhedron_Grid_relation_with_Constraint 10987PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph, 10988 ppl_const_Constraint_t c)); 10989 10990/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10991int 10992ppl_Constraints_Product_C_Polyhedron_Grid_relation_with_Generator 10993PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph, 10994 ppl_const_Generator_t c)); 10995 10996/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 10997int 10998ppl_Constraints_Product_C_Polyhedron_Grid_relation_with_Congruence 10999PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph, 11000 ppl_const_Congruence_t c)); 11001 11002 11003 11004 11005 11006/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11007int 11008ppl_Constraints_Product_C_Polyhedron_Grid_is_empty 11009PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph)); 11010 11011/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11012int 11013ppl_Constraints_Product_C_Polyhedron_Grid_is_universe 11014PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph)); 11015 11016/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11017int 11018ppl_Constraints_Product_C_Polyhedron_Grid_is_bounded 11019PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph)); 11020 11021/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11022int 11023ppl_Constraints_Product_C_Polyhedron_Grid_is_topologically_closed 11024PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph)); 11025 11026/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11027int 11028ppl_Constraints_Product_C_Polyhedron_Grid_is_discrete 11029PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph)); 11030 11031 11032 11033 11034 11035/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11036int 11037ppl_Constraints_Product_C_Polyhedron_Grid_topological_closure_assign 11038PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph)); 11039 11040 11041 11042 11043 11044/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11045int 11046ppl_Constraints_Product_C_Polyhedron_Grid_bounds_from_above 11047PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph, 11048 ppl_const_Linear_Expression_t le)); 11049 11050/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11051int 11052ppl_Constraints_Product_C_Polyhedron_Grid_bounds_from_below 11053PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph, 11054 ppl_const_Linear_Expression_t le)); 11055 11056 11057 11058 11059 11060/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11061int 11062ppl_Constraints_Product_C_Polyhedron_Grid_maximize 11063PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph, 11064 ppl_const_Linear_Expression_t le, 11065 ppl_Coefficient_t ext_n, 11066 ppl_Coefficient_t ext_d, 11067 int* poptimum)); 11068 11069/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11070int 11071ppl_Constraints_Product_C_Polyhedron_Grid_minimize 11072PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph, 11073 ppl_const_Linear_Expression_t le, 11074 ppl_Coefficient_t ext_n, 11075 ppl_Coefficient_t ext_d, 11076 int* poptimum)); 11077 11078 11079 11080 11081 11082/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11083int 11084ppl_Constraints_Product_C_Polyhedron_Grid_maximize_with_point 11085PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph, 11086 ppl_const_Linear_Expression_t le, 11087 ppl_Coefficient_t ext_n, 11088 ppl_Coefficient_t ext_d, 11089 int* poptimum, 11090 ppl_Generator_t point)); 11091 11092/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11093int 11094ppl_Constraints_Product_C_Polyhedron_Grid_minimize_with_point 11095PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph, 11096 ppl_const_Linear_Expression_t le, 11097 ppl_Coefficient_t ext_n, 11098 ppl_Coefficient_t ext_d, 11099 int* poptimum, 11100 ppl_Generator_t point)); 11101 11102 11103 11104 11105 11106/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11107int 11108ppl_Constraints_Product_C_Polyhedron_Grid_contains_Constraints_Product_C_Polyhedron_Grid 11109PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t x, 11110 ppl_const_Constraints_Product_C_Polyhedron_Grid_t y)); 11111 11112/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11113int 11114ppl_Constraints_Product_C_Polyhedron_Grid_strictly_contains_Constraints_Product_C_Polyhedron_Grid 11115PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t x, 11116 ppl_const_Constraints_Product_C_Polyhedron_Grid_t y)); 11117 11118/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11119int 11120ppl_Constraints_Product_C_Polyhedron_Grid_is_disjoint_from_Constraints_Product_C_Polyhedron_Grid 11121PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t x, 11122 ppl_const_Constraints_Product_C_Polyhedron_Grid_t y)); 11123 11124 11125 11126 11127 11128/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11129int 11130ppl_Constraints_Product_C_Polyhedron_Grid_equals_Constraints_Product_C_Polyhedron_Grid 11131PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t x, 11132 ppl_const_Constraints_Product_C_Polyhedron_Grid_t y)); 11133 11134 11135 11136 11137/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11138int 11139ppl_Constraints_Product_C_Polyhedron_Grid_OK 11140PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ph)); 11141 11142 11143 11144 11145/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11146int 11147ppl_Constraints_Product_C_Polyhedron_Grid_add_constraint 11148PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11149 ppl_const_Constraint_t c)); 11150 11151/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11152int 11153ppl_Constraints_Product_C_Polyhedron_Grid_add_congruence 11154PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11155 ppl_const_Congruence_t c)); 11156 11157 11158 11159 11160 11161/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11162int 11163ppl_Constraints_Product_C_Polyhedron_Grid_add_constraints 11164PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11165 ppl_const_Constraint_System_t cs)); 11166 11167/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11168int 11169ppl_Constraints_Product_C_Polyhedron_Grid_add_congruences 11170PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11171 ppl_const_Congruence_System_t cs)); 11172 11173 11174 11175 11176 11177/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11178int 11179ppl_Constraints_Product_C_Polyhedron_Grid_refine_with_constraint 11180PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11181 ppl_const_Constraint_t c)); 11182 11183/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11184int 11185ppl_Constraints_Product_C_Polyhedron_Grid_refine_with_congruence 11186PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11187 ppl_const_Congruence_t c)); 11188 11189 11190 11191 11192 11193/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11194int 11195ppl_Constraints_Product_C_Polyhedron_Grid_refine_with_constraints 11196PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11197 ppl_const_Constraint_System_t cs)); 11198 11199/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11200int 11201ppl_Constraints_Product_C_Polyhedron_Grid_refine_with_congruences 11202PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11203 ppl_const_Congruence_System_t cs)); 11204 11205 11206 11207 11208 11209/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11210int 11211ppl_Constraints_Product_C_Polyhedron_Grid_intersection_assign 11212PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t x, 11213 ppl_const_Constraints_Product_C_Polyhedron_Grid_t y)); 11214 11215/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11216int 11217ppl_Constraints_Product_C_Polyhedron_Grid_upper_bound_assign 11218PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t x, 11219 ppl_const_Constraints_Product_C_Polyhedron_Grid_t y)); 11220 11221/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11222int 11223ppl_Constraints_Product_C_Polyhedron_Grid_difference_assign 11224PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t x, 11225 ppl_const_Constraints_Product_C_Polyhedron_Grid_t y)); 11226 11227/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11228int 11229ppl_Constraints_Product_C_Polyhedron_Grid_concatenate_assign 11230PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t x, 11231 ppl_const_Constraints_Product_C_Polyhedron_Grid_t y)); 11232 11233/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11234int 11235ppl_Constraints_Product_C_Polyhedron_Grid_time_elapse_assign 11236PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t x, 11237 ppl_const_Constraints_Product_C_Polyhedron_Grid_t y)); 11238 11239 11240 11241 11242 11243/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11244int 11245ppl_Constraints_Product_C_Polyhedron_Grid_upper_bound_assign_if_exact 11246PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t x, 11247 ppl_const_Constraints_Product_C_Polyhedron_Grid_t y)); 11248 11249 11250 11251 11252 11253/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11254int 11255ppl_Constraints_Product_C_Polyhedron_Grid_constrains 11256PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11257 ppl_dimension_type var)); 11258 11259 11260 11261 11262/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11263int 11264ppl_Constraints_Product_C_Polyhedron_Grid_unconstrain_space_dimension 11265PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11266 ppl_dimension_type var)); 11267 11268 11269 11270 11271/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11272int 11273ppl_Constraints_Product_C_Polyhedron_Grid_unconstrain_space_dimensions 11274PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11275 ppl_dimension_type ds[], 11276 size_t n)); 11277 11278 11279 11280 11281/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11282int 11283ppl_Constraints_Product_C_Polyhedron_Grid_affine_image 11284PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11285 ppl_dimension_type var, 11286 ppl_const_Linear_Expression_t le, 11287 ppl_const_Coefficient_t d)); 11288 11289/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11290int 11291ppl_Constraints_Product_C_Polyhedron_Grid_affine_preimage 11292PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11293 ppl_dimension_type var, 11294 ppl_const_Linear_Expression_t le, 11295 ppl_const_Coefficient_t d)); 11296 11297 11298 11299 11300 11301/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11302int 11303ppl_Constraints_Product_C_Polyhedron_Grid_bounded_affine_image 11304PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11305 ppl_dimension_type var, 11306 ppl_const_Linear_Expression_t lb, 11307 ppl_const_Linear_Expression_t ub, 11308 ppl_const_Coefficient_t d)); 11309 11310/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11311int 11312ppl_Constraints_Product_C_Polyhedron_Grid_bounded_affine_preimage 11313PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11314 ppl_dimension_type var, 11315 ppl_const_Linear_Expression_t lb, 11316 ppl_const_Linear_Expression_t ub, 11317 ppl_const_Coefficient_t d)); 11318 11319 11320 11321 11322 11323/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11324int 11325ppl_Constraints_Product_C_Polyhedron_Grid_generalized_affine_image 11326PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11327 ppl_dimension_type var, 11328 enum ppl_enum_Constraint_Type relsym, 11329 ppl_const_Linear_Expression_t le, 11330 ppl_const_Coefficient_t d)); 11331 11332/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11333int 11334ppl_Constraints_Product_C_Polyhedron_Grid_generalized_affine_preimage 11335PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11336 ppl_dimension_type var, 11337 enum ppl_enum_Constraint_Type relsym, 11338 ppl_const_Linear_Expression_t le, 11339 ppl_const_Coefficient_t d)); 11340 11341 11342 11343 11344 11345/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11346int 11347ppl_Constraints_Product_C_Polyhedron_Grid_generalized_affine_image_lhs_rhs 11348PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11349 ppl_const_Linear_Expression_t lhs, 11350 enum ppl_enum_Constraint_Type relsym, 11351 ppl_const_Linear_Expression_t rhs)); 11352 11353/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11354int 11355ppl_Constraints_Product_C_Polyhedron_Grid_generalized_affine_preimage_lhs_rhs 11356PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11357 ppl_const_Linear_Expression_t lhs, 11358 enum ppl_enum_Constraint_Type relsym, 11359 ppl_const_Linear_Expression_t rhs)); 11360 11361 11362 11363 11364 11365/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11366int 11367ppl_Constraints_Product_C_Polyhedron_Grid_add_space_dimensions_and_embed 11368PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11369 ppl_dimension_type d)); 11370 11371/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11372int 11373ppl_Constraints_Product_C_Polyhedron_Grid_add_space_dimensions_and_project 11374PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11375 ppl_dimension_type d)); 11376 11377 11378 11379 11380 11381/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11382int 11383ppl_Constraints_Product_C_Polyhedron_Grid_remove_space_dimensions 11384PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11385 ppl_dimension_type ds[], 11386 size_t n)); 11387 11388 11389 11390 11391/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11392int 11393ppl_Constraints_Product_C_Polyhedron_Grid_remove_higher_space_dimensions 11394PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11395 ppl_dimension_type d)); 11396 11397 11398 11399 11400/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11401int 11402ppl_Constraints_Product_C_Polyhedron_Grid_expand_space_dimension 11403PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11404 ppl_dimension_type d, 11405 ppl_dimension_type m)); 11406 11407 11408 11409 11410/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11411int 11412ppl_Constraints_Product_C_Polyhedron_Grid_fold_space_dimensions 11413PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11414 ppl_dimension_type ds[], 11415 size_t n, 11416 ppl_dimension_type d)); 11417 11418 11419 11420 11421/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11422int 11423ppl_Constraints_Product_C_Polyhedron_Grid_map_space_dimensions 11424PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11425 ppl_dimension_type maps[], 11426 size_t n)); 11427 11428 11429 11430 11431/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11432int 11433ppl_Constraints_Product_C_Polyhedron_Grid_drop_some_non_integer_points 11434PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11435 int complexity)); 11436 11437 11438 11439 11440/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11441int 11442ppl_Constraints_Product_C_Polyhedron_Grid_drop_some_non_integer_points_2 11443PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t ph, 11444 ppl_dimension_type ds[], 11445 size_t n, 11446 int complexity)); 11447 11448 11449 11450 11451 11452 11453/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11454int 11455ppl_Constraints_Product_C_Polyhedron_Grid_external_memory_in_bytes 11456PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ps, 11457 size_t* sz)); 11458 11459/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11460int 11461ppl_Constraints_Product_C_Polyhedron_Grid_total_memory_in_bytes 11462PPL_PROTO((ppl_const_Constraints_Product_C_Polyhedron_Grid_t ps, 11463 size_t* sz)); 11464 11465 11466 11467 11468 11469/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11470int 11471ppl_Constraints_Product_C_Polyhedron_Grid_widening_assign_with_tokens 11472PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t x, 11473 ppl_const_Constraints_Product_C_Polyhedron_Grid_t y, 11474 unsigned* tp)); 11475 11476 11477 11478 11479/*! \relates ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11480int 11481ppl_Constraints_Product_C_Polyhedron_Grid_widening_assign 11482PPL_PROTO((ppl_Constraints_Product_C_Polyhedron_Grid_t x, 11483 ppl_const_Constraints_Product_C_Polyhedron_Grid_t y)); 11484 11485 11486 11487 11488 11489PPL_DECLARE_IO_FUNCTIONS(Constraints_Product_C_Polyhedron_Grid) 11490 11491/* End of Functions Related to ppl_Constraints_Product_C_Polyhedron_Grid_tag */ 11492 11493/*! \interface ppl_Pointset_Powerset_C_Polyhedron_tag 11494 \brief Types and functions for ppl_Pointset_Powerset_C_Polyhedron_tag 11495*/ 11496 11497/*! \interface ppl_Pointset_Powerset_C_Polyhedron_iterator_tag 11498 \brief Types and functions for iterating on the disjuncts of a 11499 ppl_Pointset_Powerset_C_Polyhedron_tag. 11500*/ 11501/*! \interface ppl_Pointset_Powerset_C_Polyhedron_const_iterator_tag 11502 \brief Types and functions for iterating on the disjuncts of a 11503 const ppl_Pointset_Powerset_C_Polyhedron_tag. 11504*/ 11505 11506PPL_TYPE_DECLARATION(Pointset_Powerset_C_Polyhedron_iterator) 11507PPL_TYPE_DECLARATION(Pointset_Powerset_C_Polyhedron_const_iterator) 11508 11509/*! \relates ppl_Pointset_Powerset_C_Polyhedron_iterator_tag */ 11510int 11511ppl_new_Pointset_Powerset_C_Polyhedron_iterator 11512PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_iterator_t* pit)); 11513 11514/*! \relates ppl_Pointset_Powerset_C_Polyhedron_const_iterator_tag */ 11515int 11516ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator 11517PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t* pit)); 11518 11519 11520 11521 11522/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11523int 11524ppl_delete_Pointset_Powerset_C_Polyhedron 11525PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph)); 11526 11527 11528 11529 11530/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11531int 11532ppl_new_Pointset_Powerset_C_Polyhedron_from_space_dimension 11533PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t* pph, ppl_dimension_type d, int empty)); 11534 11535 11536 11537 11538 11539/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11540int 11541ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron 11542PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t* pph, ppl_const_Pointset_Powerset_C_Polyhedron_t ph)); 11543 11544/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11545int 11546ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron 11547PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t* pph, ppl_const_Polyhedron_t ph)); 11548 11549 11550 11551 11552 11553 11554/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11555int 11556ppl_new_Pointset_Powerset_C_Polyhedron_from_Pointset_Powerset_C_Polyhedron_with_complexity 11557PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t* pph, ppl_const_Pointset_Powerset_C_Polyhedron_t ph, int complexity)); 11558 11559/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11560int 11561ppl_new_Pointset_Powerset_C_Polyhedron_from_C_Polyhedron_with_complexity 11562PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 11563 11564 11565 11566 11567 11568 11569/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11570int 11571ppl_new_Pointset_Powerset_C_Polyhedron_from_Constraint_System 11572PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t* pph, ppl_const_Constraint_System_t cs)); 11573 11574/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11575int 11576ppl_new_Pointset_Powerset_C_Polyhedron_from_Congruence_System 11577PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t* pph, ppl_const_Congruence_System_t cs)); 11578 11579 11580 11581 11582 11583 11584 11585 11586/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11587int 11588ppl_Pointset_Powerset_C_Polyhedron_space_dimension 11589PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph, ppl_dimension_type* m)); 11590 11591/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11592int 11593ppl_Pointset_Powerset_C_Polyhedron_affine_dimension 11594PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph, ppl_dimension_type* m)); 11595 11596 11597 11598 11599 11600/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11601int 11602ppl_Pointset_Powerset_C_Polyhedron_relation_with_Constraint 11603PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph, 11604 ppl_const_Constraint_t c)); 11605 11606/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11607int 11608ppl_Pointset_Powerset_C_Polyhedron_relation_with_Generator 11609PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph, 11610 ppl_const_Generator_t c)); 11611 11612/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11613int 11614ppl_Pointset_Powerset_C_Polyhedron_relation_with_Congruence 11615PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph, 11616 ppl_const_Congruence_t c)); 11617 11618 11619 11620 11621 11622/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11623int 11624ppl_Pointset_Powerset_C_Polyhedron_is_empty 11625PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph)); 11626 11627/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11628int 11629ppl_Pointset_Powerset_C_Polyhedron_is_universe 11630PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph)); 11631 11632/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11633int 11634ppl_Pointset_Powerset_C_Polyhedron_is_bounded 11635PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph)); 11636 11637/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11638int 11639ppl_Pointset_Powerset_C_Polyhedron_contains_integer_point 11640PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph)); 11641 11642/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11643int 11644ppl_Pointset_Powerset_C_Polyhedron_is_topologically_closed 11645PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph)); 11646 11647/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11648int 11649ppl_Pointset_Powerset_C_Polyhedron_is_discrete 11650PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph)); 11651 11652 11653 11654 11655 11656/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11657int 11658ppl_Pointset_Powerset_C_Polyhedron_topological_closure_assign 11659PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph)); 11660 11661/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11662int 11663ppl_Pointset_Powerset_C_Polyhedron_pairwise_reduce 11664PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph)); 11665 11666/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11667int 11668ppl_Pointset_Powerset_C_Polyhedron_omega_reduce 11669PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph)); 11670 11671 11672 11673 11674 11675/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11676int 11677ppl_Pointset_Powerset_C_Polyhedron_bounds_from_above 11678PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph, 11679 ppl_const_Linear_Expression_t le)); 11680 11681/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11682int 11683ppl_Pointset_Powerset_C_Polyhedron_bounds_from_below 11684PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph, 11685 ppl_const_Linear_Expression_t le)); 11686 11687 11688 11689 11690 11691/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11692int 11693ppl_Pointset_Powerset_C_Polyhedron_maximize 11694PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph, 11695 ppl_const_Linear_Expression_t le, 11696 ppl_Coefficient_t ext_n, 11697 ppl_Coefficient_t ext_d, 11698 int* poptimum)); 11699 11700/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11701int 11702ppl_Pointset_Powerset_C_Polyhedron_minimize 11703PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph, 11704 ppl_const_Linear_Expression_t le, 11705 ppl_Coefficient_t ext_n, 11706 ppl_Coefficient_t ext_d, 11707 int* poptimum)); 11708 11709 11710 11711 11712 11713/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11714int 11715ppl_Pointset_Powerset_C_Polyhedron_maximize_with_point 11716PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph, 11717 ppl_const_Linear_Expression_t le, 11718 ppl_Coefficient_t ext_n, 11719 ppl_Coefficient_t ext_d, 11720 int* poptimum, 11721 ppl_Generator_t point)); 11722 11723/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11724int 11725ppl_Pointset_Powerset_C_Polyhedron_minimize_with_point 11726PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph, 11727 ppl_const_Linear_Expression_t le, 11728 ppl_Coefficient_t ext_n, 11729 ppl_Coefficient_t ext_d, 11730 int* poptimum, 11731 ppl_Generator_t point)); 11732 11733 11734 11735 11736 11737/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11738int 11739ppl_Pointset_Powerset_C_Polyhedron_contains_Pointset_Powerset_C_Polyhedron 11740PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t x, 11741 ppl_const_Pointset_Powerset_C_Polyhedron_t y)); 11742 11743/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11744int 11745ppl_Pointset_Powerset_C_Polyhedron_strictly_contains_Pointset_Powerset_C_Polyhedron 11746PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t x, 11747 ppl_const_Pointset_Powerset_C_Polyhedron_t y)); 11748 11749/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11750int 11751ppl_Pointset_Powerset_C_Polyhedron_is_disjoint_from_Pointset_Powerset_C_Polyhedron 11752PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t x, 11753 ppl_const_Pointset_Powerset_C_Polyhedron_t y)); 11754 11755/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11756int 11757ppl_Pointset_Powerset_C_Polyhedron_geometrically_covers_Pointset_Powerset_C_Polyhedron 11758PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t x, 11759 ppl_const_Pointset_Powerset_C_Polyhedron_t y)); 11760 11761/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11762int 11763ppl_Pointset_Powerset_C_Polyhedron_geometrically_equals_Pointset_Powerset_C_Polyhedron 11764PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t x, 11765 ppl_const_Pointset_Powerset_C_Polyhedron_t y)); 11766 11767 11768 11769 11770 11771/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11772int 11773ppl_Pointset_Powerset_C_Polyhedron_equals_Pointset_Powerset_C_Polyhedron 11774PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t x, 11775 ppl_const_Pointset_Powerset_C_Polyhedron_t y)); 11776 11777 11778 11779 11780/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11781int 11782ppl_Pointset_Powerset_C_Polyhedron_OK 11783PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ph)); 11784 11785 11786 11787 11788/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11789int 11790ppl_Pointset_Powerset_C_Polyhedron_add_constraint 11791PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11792 ppl_const_Constraint_t c)); 11793 11794/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11795int 11796ppl_Pointset_Powerset_C_Polyhedron_add_congruence 11797PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11798 ppl_const_Congruence_t c)); 11799 11800 11801 11802 11803 11804/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11805int 11806ppl_Pointset_Powerset_C_Polyhedron_add_constraints 11807PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11808 ppl_const_Constraint_System_t cs)); 11809 11810/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11811int 11812ppl_Pointset_Powerset_C_Polyhedron_add_congruences 11813PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11814 ppl_const_Congruence_System_t cs)); 11815 11816 11817 11818 11819 11820/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11821int 11822ppl_Pointset_Powerset_C_Polyhedron_refine_with_constraint 11823PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11824 ppl_const_Constraint_t c)); 11825 11826/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11827int 11828ppl_Pointset_Powerset_C_Polyhedron_refine_with_congruence 11829PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11830 ppl_const_Congruence_t c)); 11831 11832 11833 11834 11835 11836/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11837int 11838ppl_Pointset_Powerset_C_Polyhedron_refine_with_constraints 11839PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11840 ppl_const_Constraint_System_t cs)); 11841 11842/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11843int 11844ppl_Pointset_Powerset_C_Polyhedron_refine_with_congruences 11845PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11846 ppl_const_Congruence_System_t cs)); 11847 11848 11849 11850 11851 11852/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11853int 11854ppl_Pointset_Powerset_C_Polyhedron_intersection_assign 11855PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t x, 11856 ppl_const_Pointset_Powerset_C_Polyhedron_t y)); 11857 11858/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11859int 11860ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign 11861PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t x, 11862 ppl_const_Pointset_Powerset_C_Polyhedron_t y)); 11863 11864/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11865int 11866ppl_Pointset_Powerset_C_Polyhedron_difference_assign 11867PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t x, 11868 ppl_const_Pointset_Powerset_C_Polyhedron_t y)); 11869 11870/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11871int 11872ppl_Pointset_Powerset_C_Polyhedron_concatenate_assign 11873PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t x, 11874 ppl_const_Pointset_Powerset_C_Polyhedron_t y)); 11875 11876/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11877int 11878ppl_Pointset_Powerset_C_Polyhedron_time_elapse_assign 11879PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t x, 11880 ppl_const_Pointset_Powerset_C_Polyhedron_t y)); 11881 11882 11883 11884 11885 11886/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11887int 11888ppl_Pointset_Powerset_C_Polyhedron_upper_bound_assign_if_exact 11889PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t x, 11890 ppl_const_Pointset_Powerset_C_Polyhedron_t y)); 11891 11892 11893 11894 11895 11896/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11897int 11898ppl_Pointset_Powerset_C_Polyhedron_simplify_using_context_assign 11899PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t x, 11900 ppl_const_Pointset_Powerset_C_Polyhedron_t y)); 11901 11902 11903 11904 11905/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11906int 11907ppl_Pointset_Powerset_C_Polyhedron_constrains 11908PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11909 ppl_dimension_type var)); 11910 11911 11912 11913 11914/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11915int 11916ppl_Pointset_Powerset_C_Polyhedron_unconstrain_space_dimension 11917PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11918 ppl_dimension_type var)); 11919 11920 11921 11922 11923/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11924int 11925ppl_Pointset_Powerset_C_Polyhedron_unconstrain_space_dimensions 11926PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11927 ppl_dimension_type ds[], 11928 size_t n)); 11929 11930 11931 11932 11933/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11934int 11935ppl_Pointset_Powerset_C_Polyhedron_affine_image 11936PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11937 ppl_dimension_type var, 11938 ppl_const_Linear_Expression_t le, 11939 ppl_const_Coefficient_t d)); 11940 11941/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11942int 11943ppl_Pointset_Powerset_C_Polyhedron_affine_preimage 11944PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11945 ppl_dimension_type var, 11946 ppl_const_Linear_Expression_t le, 11947 ppl_const_Coefficient_t d)); 11948 11949 11950 11951 11952 11953/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11954int 11955ppl_Pointset_Powerset_C_Polyhedron_bounded_affine_image 11956PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11957 ppl_dimension_type var, 11958 ppl_const_Linear_Expression_t lb, 11959 ppl_const_Linear_Expression_t ub, 11960 ppl_const_Coefficient_t d)); 11961 11962/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11963int 11964ppl_Pointset_Powerset_C_Polyhedron_bounded_affine_preimage 11965PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11966 ppl_dimension_type var, 11967 ppl_const_Linear_Expression_t lb, 11968 ppl_const_Linear_Expression_t ub, 11969 ppl_const_Coefficient_t d)); 11970 11971 11972 11973 11974 11975/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11976int 11977ppl_Pointset_Powerset_C_Polyhedron_generalized_affine_image 11978PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11979 ppl_dimension_type var, 11980 enum ppl_enum_Constraint_Type relsym, 11981 ppl_const_Linear_Expression_t le, 11982 ppl_const_Coefficient_t d)); 11983 11984/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11985int 11986ppl_Pointset_Powerset_C_Polyhedron_generalized_affine_preimage 11987PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 11988 ppl_dimension_type var, 11989 enum ppl_enum_Constraint_Type relsym, 11990 ppl_const_Linear_Expression_t le, 11991 ppl_const_Coefficient_t d)); 11992 11993 11994 11995 11996 11997/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 11998int 11999ppl_Pointset_Powerset_C_Polyhedron_generalized_affine_image_lhs_rhs 12000PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 12001 ppl_const_Linear_Expression_t lhs, 12002 enum ppl_enum_Constraint_Type relsym, 12003 ppl_const_Linear_Expression_t rhs)); 12004 12005/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12006int 12007ppl_Pointset_Powerset_C_Polyhedron_generalized_affine_preimage_lhs_rhs 12008PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 12009 ppl_const_Linear_Expression_t lhs, 12010 enum ppl_enum_Constraint_Type relsym, 12011 ppl_const_Linear_Expression_t rhs)); 12012 12013 12014 12015 12016 12017/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12018int 12019ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_embed 12020PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 12021 ppl_dimension_type d)); 12022 12023/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12024int 12025ppl_Pointset_Powerset_C_Polyhedron_add_space_dimensions_and_project 12026PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 12027 ppl_dimension_type d)); 12028 12029 12030 12031 12032 12033/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12034int 12035ppl_Pointset_Powerset_C_Polyhedron_remove_space_dimensions 12036PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 12037 ppl_dimension_type ds[], 12038 size_t n)); 12039 12040 12041 12042 12043/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12044int 12045ppl_Pointset_Powerset_C_Polyhedron_remove_higher_space_dimensions 12046PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 12047 ppl_dimension_type d)); 12048 12049 12050 12051 12052/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12053int 12054ppl_Pointset_Powerset_C_Polyhedron_expand_space_dimension 12055PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 12056 ppl_dimension_type d, 12057 ppl_dimension_type m)); 12058 12059 12060 12061 12062/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12063int 12064ppl_Pointset_Powerset_C_Polyhedron_fold_space_dimensions 12065PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 12066 ppl_dimension_type ds[], 12067 size_t n, 12068 ppl_dimension_type d)); 12069 12070 12071 12072 12073/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12074int 12075ppl_Pointset_Powerset_C_Polyhedron_map_space_dimensions 12076PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 12077 ppl_dimension_type maps[], 12078 size_t n)); 12079 12080 12081 12082 12083/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12084int 12085ppl_Pointset_Powerset_C_Polyhedron_drop_some_non_integer_points 12086PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 12087 int complexity)); 12088 12089 12090 12091 12092/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12093int 12094ppl_Pointset_Powerset_C_Polyhedron_drop_some_non_integer_points_2 12095PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ph, 12096 ppl_dimension_type ds[], 12097 size_t n, 12098 int complexity)); 12099 12100 12101 12102 12103 12104 12105/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12106int 12107ppl_Pointset_Powerset_C_Polyhedron_external_memory_in_bytes 12108PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ps, 12109 size_t* sz)); 12110 12111/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12112int 12113ppl_Pointset_Powerset_C_Polyhedron_total_memory_in_bytes 12114PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ps, 12115 size_t* sz)); 12116 12117/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12118int 12119ppl_Pointset_Powerset_C_Polyhedron_size 12120PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ps, 12121 size_t* sz)); 12122 12123 12124 12125 12126 12127/*! \relates ppl_Pointset_Powerset_C_Polyhedron_iterator_tag */ 12128int 12129ppl_new_Pointset_Powerset_C_Polyhedron_iterator_from_iterator 12130PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_iterator_t* px, 12131 ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t y)); 12132 12133/*! \relates ppl_Pointset_Powerset_C_Polyhedron_const_iterator_tag */ 12134int 12135ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator_from_const_iterator 12136PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t* px, 12137 ppl_const_Pointset_Powerset_C_Polyhedron_const_iterator_t y)); 12138 12139 12140 12141 12142/*! \relates ppl_Pointset_Powerset_C_Polyhedron_iterator_tag */ 12143int 12144ppl_Pointset_Powerset_C_Polyhedron_iterator_begin 12145PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ps, 12146 ppl_Pointset_Powerset_C_Polyhedron_iterator_t psit)); 12147 12148/*! \relates ppl_Pointset_Powerset_C_Polyhedron_const_iterator_tag */ 12149int 12150ppl_Pointset_Powerset_C_Polyhedron_const_iterator_begin 12151PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ps, 12152 ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t psit)); 12153 12154/*! \relates ppl_Pointset_Powerset_C_Polyhedron_iterator_tag */ 12155int 12156ppl_Pointset_Powerset_C_Polyhedron_iterator_end 12157PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ps, 12158 ppl_Pointset_Powerset_C_Polyhedron_iterator_t psit)); 12159 12160/*! \relates ppl_Pointset_Powerset_C_Polyhedron_const_iterator_tag */ 12161int 12162ppl_Pointset_Powerset_C_Polyhedron_const_iterator_end 12163PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_t ps, 12164 ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t psit)); 12165 12166 12167 12168 12169 12170/*! \relates ppl_Pointset_Powerset_C_Polyhedron_iterator_tag */ 12171int 12172ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test 12173PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t x, 12174 ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t y)); 12175 12176/*! \relates ppl_Pointset_Powerset_C_Polyhedron_const_iterator_tag */ 12177int 12178ppl_Pointset_Powerset_C_Polyhedron_const_iterator_equal_test 12179PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_const_iterator_t x, 12180 ppl_const_Pointset_Powerset_C_Polyhedron_const_iterator_t y)); 12181 12182 12183 12184 12185/*! \relates ppl_Pointset_Powerset_C_Polyhedron_iterator_tag */ 12186int 12187ppl_Pointset_Powerset_C_Polyhedron_iterator_increment 12188PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_iterator_t psit)); 12189 12190/*! \relates ppl_Pointset_Powerset_C_Polyhedron_const_iterator_tag */ 12191int 12192ppl_Pointset_Powerset_C_Polyhedron_const_iterator_increment 12193PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t psit)); 12194 12195/*! \relates ppl_Pointset_Powerset_C_Polyhedron_iterator_tag */ 12196int 12197ppl_Pointset_Powerset_C_Polyhedron_iterator_decrement 12198PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_iterator_t psit)); 12199 12200/*! \relates ppl_Pointset_Powerset_C_Polyhedron_const_iterator_tag */ 12201int 12202ppl_Pointset_Powerset_C_Polyhedron_const_iterator_decrement 12203PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t psit)); 12204 12205 12206 12207 12208 12209/*! \relates ppl_Pointset_Powerset_C_Polyhedron_iterator_tag */ 12210int 12211ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference 12212PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t ps, 12213 ppl_const_Polyhedron_t* d)); 12214 12215/*! \relates ppl_Pointset_Powerset_C_Polyhedron_const_iterator_tag */ 12216int 12217ppl_Pointset_Powerset_C_Polyhedron_const_iterator_dereference 12218PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_const_iterator_t ps, 12219 ppl_const_Polyhedron_t* d)); 12220 12221 12222 12223 12224 12225/*! \relates ppl_Pointset_Powerset_C_Polyhedron_iterator_tag */ 12226int 12227ppl_delete_Pointset_Powerset_C_Polyhedron_iterator 12228PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t psit)); 12229 12230/*! \relates ppl_Pointset_Powerset_C_Polyhedron_const_iterator_tag */ 12231int 12232ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator 12233PPL_PROTO((ppl_const_Pointset_Powerset_C_Polyhedron_const_iterator_t psit)); 12234 12235 12236 12237 12238/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12239int 12240ppl_Pointset_Powerset_C_Polyhedron_add_disjunct 12241PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ps, 12242 ppl_const_Polyhedron_t d)); 12243 12244 12245 12246 12247 12248/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12249int 12250ppl_Pointset_Powerset_C_Polyhedron_drop_disjunct 12251PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ps, 12252 ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t cit, 12253 ppl_Pointset_Powerset_C_Polyhedron_iterator_t it)); 12254 12255 12256 12257 12258/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12259int 12260ppl_Pointset_Powerset_C_Polyhedron_drop_disjuncts 12261PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t ps, 12262 ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t first, 12263 ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t last)); 12264 12265 12266 12267 12268/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12269int 12270ppl_Pointset_Powerset_C_Polyhedron_BHZ03_BHRZ03_BHRZ03_widening_assign 12271PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t x, 12272 ppl_const_Pointset_Powerset_C_Polyhedron_t y)); 12273 12274/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12275int 12276ppl_Pointset_Powerset_C_Polyhedron_BHZ03_H79_H79_widening_assign 12277PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t x, 12278 ppl_const_Pointset_Powerset_C_Polyhedron_t y)); 12279 12280 12281 12282 12283 12284/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12285int 12286ppl_Pointset_Powerset_C_Polyhedron_BGP99_BHRZ03_extrapolation_assign 12287PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t x, 12288 ppl_const_Pointset_Powerset_C_Polyhedron_t y, 12289 int disjuncts)); 12290 12291/*! \relates ppl_Pointset_Powerset_C_Polyhedron_tag */ 12292int 12293ppl_Pointset_Powerset_C_Polyhedron_BGP99_H79_extrapolation_assign 12294PPL_PROTO((ppl_Pointset_Powerset_C_Polyhedron_t x, 12295 ppl_const_Pointset_Powerset_C_Polyhedron_t y, 12296 int disjuncts)); 12297 12298 12299 12300 12301 12302 12303PPL_DECLARE_IO_FUNCTIONS(Pointset_Powerset_C_Polyhedron) 12304 12305/* End of Functions Related to ppl_Pointset_Powerset_C_Polyhedron_tag */ 12306 12307/*! \interface ppl_Pointset_Powerset_NNC_Polyhedron_tag 12308 \brief Types and functions for ppl_Pointset_Powerset_NNC_Polyhedron_tag 12309*/ 12310 12311/*! \interface ppl_Pointset_Powerset_NNC_Polyhedron_iterator_tag 12312 \brief Types and functions for iterating on the disjuncts of a 12313 ppl_Pointset_Powerset_NNC_Polyhedron_tag. 12314*/ 12315/*! \interface ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_tag 12316 \brief Types and functions for iterating on the disjuncts of a 12317 const ppl_Pointset_Powerset_NNC_Polyhedron_tag. 12318*/ 12319 12320PPL_TYPE_DECLARATION(Pointset_Powerset_NNC_Polyhedron_iterator) 12321PPL_TYPE_DECLARATION(Pointset_Powerset_NNC_Polyhedron_const_iterator) 12322 12323/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_iterator_tag */ 12324int 12325ppl_new_Pointset_Powerset_NNC_Polyhedron_iterator 12326PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_iterator_t* pit)); 12327 12328/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_tag */ 12329int 12330ppl_new_Pointset_Powerset_NNC_Polyhedron_const_iterator 12331PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_t* pit)); 12332 12333 12334 12335 12336/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12337int 12338ppl_delete_Pointset_Powerset_NNC_Polyhedron 12339PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph)); 12340 12341 12342 12343 12344/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12345int 12346ppl_new_Pointset_Powerset_NNC_Polyhedron_from_space_dimension 12347PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t* pph, ppl_dimension_type d, int empty)); 12348 12349 12350 12351 12352 12353/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12354int 12355ppl_new_Pointset_Powerset_NNC_Polyhedron_from_Pointset_Powerset_NNC_Polyhedron 12356PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t* pph, ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph)); 12357 12358/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12359int 12360ppl_new_Pointset_Powerset_NNC_Polyhedron_from_NNC_Polyhedron 12361PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t* pph, ppl_const_Polyhedron_t ph)); 12362 12363 12364 12365 12366 12367 12368/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12369int 12370ppl_new_Pointset_Powerset_NNC_Polyhedron_from_Pointset_Powerset_NNC_Polyhedron_with_complexity 12371PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t* pph, ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph, int complexity)); 12372 12373/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12374int 12375ppl_new_Pointset_Powerset_NNC_Polyhedron_from_NNC_Polyhedron_with_complexity 12376PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 12377 12378 12379 12380 12381 12382 12383/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12384int 12385ppl_new_Pointset_Powerset_NNC_Polyhedron_from_Constraint_System 12386PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t* pph, ppl_const_Constraint_System_t cs)); 12387 12388/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12389int 12390ppl_new_Pointset_Powerset_NNC_Polyhedron_from_Congruence_System 12391PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t* pph, ppl_const_Congruence_System_t cs)); 12392 12393 12394 12395 12396 12397 12398 12399 12400/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12401int 12402ppl_Pointset_Powerset_NNC_Polyhedron_space_dimension 12403PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph, ppl_dimension_type* m)); 12404 12405/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12406int 12407ppl_Pointset_Powerset_NNC_Polyhedron_affine_dimension 12408PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph, ppl_dimension_type* m)); 12409 12410 12411 12412 12413 12414/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12415int 12416ppl_Pointset_Powerset_NNC_Polyhedron_relation_with_Constraint 12417PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph, 12418 ppl_const_Constraint_t c)); 12419 12420/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12421int 12422ppl_Pointset_Powerset_NNC_Polyhedron_relation_with_Generator 12423PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph, 12424 ppl_const_Generator_t c)); 12425 12426/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12427int 12428ppl_Pointset_Powerset_NNC_Polyhedron_relation_with_Congruence 12429PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph, 12430 ppl_const_Congruence_t c)); 12431 12432 12433 12434 12435 12436/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12437int 12438ppl_Pointset_Powerset_NNC_Polyhedron_is_empty 12439PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph)); 12440 12441/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12442int 12443ppl_Pointset_Powerset_NNC_Polyhedron_is_universe 12444PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph)); 12445 12446/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12447int 12448ppl_Pointset_Powerset_NNC_Polyhedron_is_bounded 12449PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph)); 12450 12451/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12452int 12453ppl_Pointset_Powerset_NNC_Polyhedron_contains_integer_point 12454PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph)); 12455 12456/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12457int 12458ppl_Pointset_Powerset_NNC_Polyhedron_is_topologically_closed 12459PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph)); 12460 12461/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12462int 12463ppl_Pointset_Powerset_NNC_Polyhedron_is_discrete 12464PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph)); 12465 12466 12467 12468 12469 12470/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12471int 12472ppl_Pointset_Powerset_NNC_Polyhedron_topological_closure_assign 12473PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph)); 12474 12475/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12476int 12477ppl_Pointset_Powerset_NNC_Polyhedron_pairwise_reduce 12478PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph)); 12479 12480/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12481int 12482ppl_Pointset_Powerset_NNC_Polyhedron_omega_reduce 12483PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph)); 12484 12485 12486 12487 12488 12489/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12490int 12491ppl_Pointset_Powerset_NNC_Polyhedron_bounds_from_above 12492PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph, 12493 ppl_const_Linear_Expression_t le)); 12494 12495/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12496int 12497ppl_Pointset_Powerset_NNC_Polyhedron_bounds_from_below 12498PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph, 12499 ppl_const_Linear_Expression_t le)); 12500 12501 12502 12503 12504 12505/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12506int 12507ppl_Pointset_Powerset_NNC_Polyhedron_maximize 12508PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph, 12509 ppl_const_Linear_Expression_t le, 12510 ppl_Coefficient_t ext_n, 12511 ppl_Coefficient_t ext_d, 12512 int* poptimum)); 12513 12514/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12515int 12516ppl_Pointset_Powerset_NNC_Polyhedron_minimize 12517PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph, 12518 ppl_const_Linear_Expression_t le, 12519 ppl_Coefficient_t ext_n, 12520 ppl_Coefficient_t ext_d, 12521 int* poptimum)); 12522 12523 12524 12525 12526 12527/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12528int 12529ppl_Pointset_Powerset_NNC_Polyhedron_maximize_with_point 12530PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph, 12531 ppl_const_Linear_Expression_t le, 12532 ppl_Coefficient_t ext_n, 12533 ppl_Coefficient_t ext_d, 12534 int* poptimum, 12535 ppl_Generator_t point)); 12536 12537/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12538int 12539ppl_Pointset_Powerset_NNC_Polyhedron_minimize_with_point 12540PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph, 12541 ppl_const_Linear_Expression_t le, 12542 ppl_Coefficient_t ext_n, 12543 ppl_Coefficient_t ext_d, 12544 int* poptimum, 12545 ppl_Generator_t point)); 12546 12547 12548 12549 12550 12551/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12552int 12553ppl_Pointset_Powerset_NNC_Polyhedron_contains_Pointset_Powerset_NNC_Polyhedron 12554PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t x, 12555 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y)); 12556 12557/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12558int 12559ppl_Pointset_Powerset_NNC_Polyhedron_strictly_contains_Pointset_Powerset_NNC_Polyhedron 12560PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t x, 12561 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y)); 12562 12563/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12564int 12565ppl_Pointset_Powerset_NNC_Polyhedron_is_disjoint_from_Pointset_Powerset_NNC_Polyhedron 12566PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t x, 12567 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y)); 12568 12569/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12570int 12571ppl_Pointset_Powerset_NNC_Polyhedron_geometrically_covers_Pointset_Powerset_NNC_Polyhedron 12572PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t x, 12573 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y)); 12574 12575/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12576int 12577ppl_Pointset_Powerset_NNC_Polyhedron_geometrically_equals_Pointset_Powerset_NNC_Polyhedron 12578PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t x, 12579 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y)); 12580 12581 12582 12583 12584 12585/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12586int 12587ppl_Pointset_Powerset_NNC_Polyhedron_equals_Pointset_Powerset_NNC_Polyhedron 12588PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t x, 12589 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y)); 12590 12591 12592 12593 12594/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12595int 12596ppl_Pointset_Powerset_NNC_Polyhedron_OK 12597PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ph)); 12598 12599 12600 12601 12602/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12603int 12604ppl_Pointset_Powerset_NNC_Polyhedron_add_constraint 12605PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12606 ppl_const_Constraint_t c)); 12607 12608/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12609int 12610ppl_Pointset_Powerset_NNC_Polyhedron_add_congruence 12611PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12612 ppl_const_Congruence_t c)); 12613 12614 12615 12616 12617 12618/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12619int 12620ppl_Pointset_Powerset_NNC_Polyhedron_add_constraints 12621PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12622 ppl_const_Constraint_System_t cs)); 12623 12624/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12625int 12626ppl_Pointset_Powerset_NNC_Polyhedron_add_congruences 12627PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12628 ppl_const_Congruence_System_t cs)); 12629 12630 12631 12632 12633 12634/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12635int 12636ppl_Pointset_Powerset_NNC_Polyhedron_refine_with_constraint 12637PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12638 ppl_const_Constraint_t c)); 12639 12640/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12641int 12642ppl_Pointset_Powerset_NNC_Polyhedron_refine_with_congruence 12643PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12644 ppl_const_Congruence_t c)); 12645 12646 12647 12648 12649 12650/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12651int 12652ppl_Pointset_Powerset_NNC_Polyhedron_refine_with_constraints 12653PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12654 ppl_const_Constraint_System_t cs)); 12655 12656/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12657int 12658ppl_Pointset_Powerset_NNC_Polyhedron_refine_with_congruences 12659PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12660 ppl_const_Congruence_System_t cs)); 12661 12662 12663 12664 12665 12666/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12667int 12668ppl_Pointset_Powerset_NNC_Polyhedron_intersection_assign 12669PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t x, 12670 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y)); 12671 12672/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12673int 12674ppl_Pointset_Powerset_NNC_Polyhedron_upper_bound_assign 12675PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t x, 12676 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y)); 12677 12678/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12679int 12680ppl_Pointset_Powerset_NNC_Polyhedron_difference_assign 12681PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t x, 12682 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y)); 12683 12684/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12685int 12686ppl_Pointset_Powerset_NNC_Polyhedron_concatenate_assign 12687PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t x, 12688 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y)); 12689 12690/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12691int 12692ppl_Pointset_Powerset_NNC_Polyhedron_time_elapse_assign 12693PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t x, 12694 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y)); 12695 12696 12697 12698 12699 12700/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12701int 12702ppl_Pointset_Powerset_NNC_Polyhedron_upper_bound_assign_if_exact 12703PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t x, 12704 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y)); 12705 12706 12707 12708 12709 12710/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12711int 12712ppl_Pointset_Powerset_NNC_Polyhedron_simplify_using_context_assign 12713PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t x, 12714 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y)); 12715 12716 12717 12718 12719/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12720int 12721ppl_Pointset_Powerset_NNC_Polyhedron_constrains 12722PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12723 ppl_dimension_type var)); 12724 12725 12726 12727 12728/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12729int 12730ppl_Pointset_Powerset_NNC_Polyhedron_unconstrain_space_dimension 12731PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12732 ppl_dimension_type var)); 12733 12734 12735 12736 12737/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12738int 12739ppl_Pointset_Powerset_NNC_Polyhedron_unconstrain_space_dimensions 12740PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12741 ppl_dimension_type ds[], 12742 size_t n)); 12743 12744 12745 12746 12747/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12748int 12749ppl_Pointset_Powerset_NNC_Polyhedron_affine_image 12750PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12751 ppl_dimension_type var, 12752 ppl_const_Linear_Expression_t le, 12753 ppl_const_Coefficient_t d)); 12754 12755/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12756int 12757ppl_Pointset_Powerset_NNC_Polyhedron_affine_preimage 12758PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12759 ppl_dimension_type var, 12760 ppl_const_Linear_Expression_t le, 12761 ppl_const_Coefficient_t d)); 12762 12763 12764 12765 12766 12767/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12768int 12769ppl_Pointset_Powerset_NNC_Polyhedron_bounded_affine_image 12770PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12771 ppl_dimension_type var, 12772 ppl_const_Linear_Expression_t lb, 12773 ppl_const_Linear_Expression_t ub, 12774 ppl_const_Coefficient_t d)); 12775 12776/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12777int 12778ppl_Pointset_Powerset_NNC_Polyhedron_bounded_affine_preimage 12779PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12780 ppl_dimension_type var, 12781 ppl_const_Linear_Expression_t lb, 12782 ppl_const_Linear_Expression_t ub, 12783 ppl_const_Coefficient_t d)); 12784 12785 12786 12787 12788 12789/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12790int 12791ppl_Pointset_Powerset_NNC_Polyhedron_generalized_affine_image 12792PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12793 ppl_dimension_type var, 12794 enum ppl_enum_Constraint_Type relsym, 12795 ppl_const_Linear_Expression_t le, 12796 ppl_const_Coefficient_t d)); 12797 12798/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12799int 12800ppl_Pointset_Powerset_NNC_Polyhedron_generalized_affine_preimage 12801PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12802 ppl_dimension_type var, 12803 enum ppl_enum_Constraint_Type relsym, 12804 ppl_const_Linear_Expression_t le, 12805 ppl_const_Coefficient_t d)); 12806 12807 12808 12809 12810 12811/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12812int 12813ppl_Pointset_Powerset_NNC_Polyhedron_generalized_affine_image_lhs_rhs 12814PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12815 ppl_const_Linear_Expression_t lhs, 12816 enum ppl_enum_Constraint_Type relsym, 12817 ppl_const_Linear_Expression_t rhs)); 12818 12819/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12820int 12821ppl_Pointset_Powerset_NNC_Polyhedron_generalized_affine_preimage_lhs_rhs 12822PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12823 ppl_const_Linear_Expression_t lhs, 12824 enum ppl_enum_Constraint_Type relsym, 12825 ppl_const_Linear_Expression_t rhs)); 12826 12827 12828 12829 12830 12831/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12832int 12833ppl_Pointset_Powerset_NNC_Polyhedron_add_space_dimensions_and_embed 12834PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12835 ppl_dimension_type d)); 12836 12837/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12838int 12839ppl_Pointset_Powerset_NNC_Polyhedron_add_space_dimensions_and_project 12840PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12841 ppl_dimension_type d)); 12842 12843 12844 12845 12846 12847/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12848int 12849ppl_Pointset_Powerset_NNC_Polyhedron_remove_space_dimensions 12850PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12851 ppl_dimension_type ds[], 12852 size_t n)); 12853 12854 12855 12856 12857/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12858int 12859ppl_Pointset_Powerset_NNC_Polyhedron_remove_higher_space_dimensions 12860PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12861 ppl_dimension_type d)); 12862 12863 12864 12865 12866/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12867int 12868ppl_Pointset_Powerset_NNC_Polyhedron_expand_space_dimension 12869PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12870 ppl_dimension_type d, 12871 ppl_dimension_type m)); 12872 12873 12874 12875 12876/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12877int 12878ppl_Pointset_Powerset_NNC_Polyhedron_fold_space_dimensions 12879PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12880 ppl_dimension_type ds[], 12881 size_t n, 12882 ppl_dimension_type d)); 12883 12884 12885 12886 12887/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12888int 12889ppl_Pointset_Powerset_NNC_Polyhedron_map_space_dimensions 12890PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12891 ppl_dimension_type maps[], 12892 size_t n)); 12893 12894 12895 12896 12897/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12898int 12899ppl_Pointset_Powerset_NNC_Polyhedron_drop_some_non_integer_points 12900PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12901 int complexity)); 12902 12903 12904 12905 12906/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12907int 12908ppl_Pointset_Powerset_NNC_Polyhedron_drop_some_non_integer_points_2 12909PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ph, 12910 ppl_dimension_type ds[], 12911 size_t n, 12912 int complexity)); 12913 12914 12915 12916 12917 12918 12919/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12920int 12921ppl_Pointset_Powerset_NNC_Polyhedron_external_memory_in_bytes 12922PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ps, 12923 size_t* sz)); 12924 12925/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12926int 12927ppl_Pointset_Powerset_NNC_Polyhedron_total_memory_in_bytes 12928PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ps, 12929 size_t* sz)); 12930 12931/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 12932int 12933ppl_Pointset_Powerset_NNC_Polyhedron_size 12934PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ps, 12935 size_t* sz)); 12936 12937 12938 12939 12940 12941/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_iterator_tag */ 12942int 12943ppl_new_Pointset_Powerset_NNC_Polyhedron_iterator_from_iterator 12944PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_iterator_t* px, 12945 ppl_const_Pointset_Powerset_NNC_Polyhedron_iterator_t y)); 12946 12947/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_tag */ 12948int 12949ppl_new_Pointset_Powerset_NNC_Polyhedron_const_iterator_from_const_iterator 12950PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_t* px, 12951 ppl_const_Pointset_Powerset_NNC_Polyhedron_const_iterator_t y)); 12952 12953 12954 12955 12956/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_iterator_tag */ 12957int 12958ppl_Pointset_Powerset_NNC_Polyhedron_iterator_begin 12959PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ps, 12960 ppl_Pointset_Powerset_NNC_Polyhedron_iterator_t psit)); 12961 12962/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_tag */ 12963int 12964ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_begin 12965PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ps, 12966 ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_t psit)); 12967 12968/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_iterator_tag */ 12969int 12970ppl_Pointset_Powerset_NNC_Polyhedron_iterator_end 12971PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ps, 12972 ppl_Pointset_Powerset_NNC_Polyhedron_iterator_t psit)); 12973 12974/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_tag */ 12975int 12976ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_end 12977PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_t ps, 12978 ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_t psit)); 12979 12980 12981 12982 12983 12984/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_iterator_tag */ 12985int 12986ppl_Pointset_Powerset_NNC_Polyhedron_iterator_equal_test 12987PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_iterator_t x, 12988 ppl_const_Pointset_Powerset_NNC_Polyhedron_iterator_t y)); 12989 12990/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_tag */ 12991int 12992ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_equal_test 12993PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_const_iterator_t x, 12994 ppl_const_Pointset_Powerset_NNC_Polyhedron_const_iterator_t y)); 12995 12996 12997 12998 12999/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_iterator_tag */ 13000int 13001ppl_Pointset_Powerset_NNC_Polyhedron_iterator_increment 13002PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_iterator_t psit)); 13003 13004/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_tag */ 13005int 13006ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_increment 13007PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_t psit)); 13008 13009/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_iterator_tag */ 13010int 13011ppl_Pointset_Powerset_NNC_Polyhedron_iterator_decrement 13012PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_iterator_t psit)); 13013 13014/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_tag */ 13015int 13016ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_decrement 13017PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_t psit)); 13018 13019 13020 13021 13022 13023/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_iterator_tag */ 13024int 13025ppl_Pointset_Powerset_NNC_Polyhedron_iterator_dereference 13026PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_iterator_t ps, 13027 ppl_const_Polyhedron_t* d)); 13028 13029/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_tag */ 13030int 13031ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_dereference 13032PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_const_iterator_t ps, 13033 ppl_const_Polyhedron_t* d)); 13034 13035 13036 13037 13038 13039/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_iterator_tag */ 13040int 13041ppl_delete_Pointset_Powerset_NNC_Polyhedron_iterator 13042PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_iterator_t psit)); 13043 13044/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_const_iterator_tag */ 13045int 13046ppl_delete_Pointset_Powerset_NNC_Polyhedron_const_iterator 13047PPL_PROTO((ppl_const_Pointset_Powerset_NNC_Polyhedron_const_iterator_t psit)); 13048 13049 13050 13051 13052/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 13053int 13054ppl_Pointset_Powerset_NNC_Polyhedron_add_disjunct 13055PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ps, 13056 ppl_const_Polyhedron_t d)); 13057 13058 13059 13060 13061 13062/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 13063int 13064ppl_Pointset_Powerset_NNC_Polyhedron_drop_disjunct 13065PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ps, 13066 ppl_const_Pointset_Powerset_NNC_Polyhedron_iterator_t cit, 13067 ppl_Pointset_Powerset_NNC_Polyhedron_iterator_t it)); 13068 13069 13070 13071 13072/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 13073int 13074ppl_Pointset_Powerset_NNC_Polyhedron_drop_disjuncts 13075PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t ps, 13076 ppl_const_Pointset_Powerset_NNC_Polyhedron_iterator_t first, 13077 ppl_const_Pointset_Powerset_NNC_Polyhedron_iterator_t last)); 13078 13079 13080 13081 13082/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 13083int 13084ppl_Pointset_Powerset_NNC_Polyhedron_BHZ03_BHRZ03_BHRZ03_widening_assign 13085PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t x, 13086 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y)); 13087 13088/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 13089int 13090ppl_Pointset_Powerset_NNC_Polyhedron_BHZ03_H79_H79_widening_assign 13091PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t x, 13092 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y)); 13093 13094 13095 13096 13097 13098/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 13099int 13100ppl_Pointset_Powerset_NNC_Polyhedron_BGP99_BHRZ03_extrapolation_assign 13101PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t x, 13102 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y, 13103 int disjuncts)); 13104 13105/*! \relates ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 13106int 13107ppl_Pointset_Powerset_NNC_Polyhedron_BGP99_H79_extrapolation_assign 13108PPL_PROTO((ppl_Pointset_Powerset_NNC_Polyhedron_t x, 13109 ppl_const_Pointset_Powerset_NNC_Polyhedron_t y, 13110 int disjuncts)); 13111 13112 13113 13114 13115 13116 13117PPL_DECLARE_IO_FUNCTIONS(Pointset_Powerset_NNC_Polyhedron) 13118 13119/* End of Functions Related to ppl_Pointset_Powerset_NNC_Polyhedron_tag */ 13120 13121/*! \interface ppl_Double_Box_tag 13122 \brief Types and functions for ppl_Double_Box_tag 13123*/ 13124 13125/*! \relates ppl_Double_Box_tag */ 13126int 13127ppl_delete_Double_Box 13128PPL_PROTO((ppl_const_Double_Box_t ph)); 13129 13130 13131 13132 13133/*! \relates ppl_Double_Box_tag */ 13134int 13135ppl_new_Double_Box_from_space_dimension 13136PPL_PROTO((ppl_Double_Box_t* pph, ppl_dimension_type d, int empty)); 13137 13138 13139 13140 13141 13142/*! \relates ppl_Double_Box_tag */ 13143int 13144ppl_new_Double_Box_from_C_Polyhedron 13145PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Polyhedron_t ph)); 13146 13147/*! \relates ppl_Double_Box_tag */ 13148int 13149ppl_new_Double_Box_from_NNC_Polyhedron 13150PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Polyhedron_t ph)); 13151 13152/*! \relates ppl_Double_Box_tag */ 13153int 13154ppl_new_Double_Box_from_Grid 13155PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Grid_t ph)); 13156 13157/*! \relates ppl_Double_Box_tag */ 13158int 13159ppl_new_Double_Box_from_Rational_Box 13160PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Rational_Box_t ph)); 13161 13162/*! \relates ppl_Double_Box_tag */ 13163int 13164ppl_new_Double_Box_from_BD_Shape_mpz_class 13165PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_BD_Shape_mpz_class_t ph)); 13166 13167/*! \relates ppl_Double_Box_tag */ 13168int 13169ppl_new_Double_Box_from_BD_Shape_mpq_class 13170PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_BD_Shape_mpq_class_t ph)); 13171 13172/*! \relates ppl_Double_Box_tag */ 13173int 13174ppl_new_Double_Box_from_Octagonal_Shape_mpz_class 13175PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph)); 13176 13177/*! \relates ppl_Double_Box_tag */ 13178int 13179ppl_new_Double_Box_from_Octagonal_Shape_mpq_class 13180PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph)); 13181 13182/*! \relates ppl_Double_Box_tag */ 13183int 13184ppl_new_Double_Box_from_Double_Box 13185PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Double_Box_t ph)); 13186 13187/*! \relates ppl_Double_Box_tag */ 13188int 13189ppl_new_Double_Box_from_BD_Shape_double 13190PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_BD_Shape_double_t ph)); 13191 13192/*! \relates ppl_Double_Box_tag */ 13193int 13194ppl_new_Double_Box_from_Octagonal_Shape_double 13195PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Octagonal_Shape_double_t ph)); 13196 13197 13198 13199 13200 13201 13202/*! \relates ppl_Double_Box_tag */ 13203int 13204ppl_new_Double_Box_from_C_Polyhedron_with_complexity 13205PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 13206 13207/*! \relates ppl_Double_Box_tag */ 13208int 13209ppl_new_Double_Box_from_NNC_Polyhedron_with_complexity 13210PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 13211 13212/*! \relates ppl_Double_Box_tag */ 13213int 13214ppl_new_Double_Box_from_Grid_with_complexity 13215PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Grid_t ph, int complexity)); 13216 13217/*! \relates ppl_Double_Box_tag */ 13218int 13219ppl_new_Double_Box_from_Rational_Box_with_complexity 13220PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Rational_Box_t ph, int complexity)); 13221 13222/*! \relates ppl_Double_Box_tag */ 13223int 13224ppl_new_Double_Box_from_BD_Shape_mpz_class_with_complexity 13225PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_BD_Shape_mpz_class_t ph, int complexity)); 13226 13227/*! \relates ppl_Double_Box_tag */ 13228int 13229ppl_new_Double_Box_from_BD_Shape_mpq_class_with_complexity 13230PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_BD_Shape_mpq_class_t ph, int complexity)); 13231 13232/*! \relates ppl_Double_Box_tag */ 13233int 13234ppl_new_Double_Box_from_Octagonal_Shape_mpz_class_with_complexity 13235PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph, int complexity)); 13236 13237/*! \relates ppl_Double_Box_tag */ 13238int 13239ppl_new_Double_Box_from_Octagonal_Shape_mpq_class_with_complexity 13240PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph, int complexity)); 13241 13242/*! \relates ppl_Double_Box_tag */ 13243int 13244ppl_new_Double_Box_from_Double_Box_with_complexity 13245PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Double_Box_t ph, int complexity)); 13246 13247/*! \relates ppl_Double_Box_tag */ 13248int 13249ppl_new_Double_Box_from_BD_Shape_double_with_complexity 13250PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_BD_Shape_double_t ph, int complexity)); 13251 13252/*! \relates ppl_Double_Box_tag */ 13253int 13254ppl_new_Double_Box_from_Octagonal_Shape_double_with_complexity 13255PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Octagonal_Shape_double_t ph, int complexity)); 13256 13257 13258 13259 13260 13261 13262/*! \relates ppl_Double_Box_tag */ 13263int 13264ppl_new_Double_Box_from_Constraint_System 13265PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Constraint_System_t cs)); 13266 13267/*! \relates ppl_Double_Box_tag */ 13268int 13269ppl_new_Double_Box_from_Congruence_System 13270PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Congruence_System_t cs)); 13271 13272/*! \relates ppl_Double_Box_tag */ 13273int 13274ppl_new_Double_Box_from_Generator_System 13275PPL_PROTO((ppl_Double_Box_t* pph, ppl_const_Generator_System_t cs)); 13276 13277 13278 13279 13280 13281 13282 13283 13284/*! \relates ppl_Double_Box_tag */ 13285int 13286ppl_Double_Box_space_dimension 13287PPL_PROTO((ppl_const_Double_Box_t ph, ppl_dimension_type* m)); 13288 13289/*! \relates ppl_Double_Box_tag */ 13290int 13291ppl_Double_Box_affine_dimension 13292PPL_PROTO((ppl_const_Double_Box_t ph, ppl_dimension_type* m)); 13293 13294 13295 13296 13297 13298/*! \relates ppl_Double_Box_tag */ 13299int 13300ppl_Double_Box_relation_with_Constraint 13301PPL_PROTO((ppl_const_Double_Box_t ph, 13302 ppl_const_Constraint_t c)); 13303 13304/*! \relates ppl_Double_Box_tag */ 13305int 13306ppl_Double_Box_relation_with_Generator 13307PPL_PROTO((ppl_const_Double_Box_t ph, 13308 ppl_const_Generator_t c)); 13309 13310/*! \relates ppl_Double_Box_tag */ 13311int 13312ppl_Double_Box_relation_with_Congruence 13313PPL_PROTO((ppl_const_Double_Box_t ph, 13314 ppl_const_Congruence_t c)); 13315 13316 13317 13318 13319 13320/*! \relates ppl_Double_Box_tag */ 13321int 13322ppl_Double_Box_get_constraints 13323PPL_PROTO((ppl_const_Double_Box_t ph, 13324 ppl_const_Constraint_System_t* pcs)); 13325 13326/*! \relates ppl_Double_Box_tag */ 13327int 13328ppl_Double_Box_get_congruences 13329PPL_PROTO((ppl_const_Double_Box_t ph, 13330 ppl_const_Congruence_System_t* pcs)); 13331 13332 13333 13334 13335 13336/*! \relates ppl_Double_Box_tag */ 13337int 13338ppl_Double_Box_get_minimized_constraints 13339PPL_PROTO((ppl_const_Double_Box_t ph, 13340 ppl_const_Constraint_System_t* pcs)); 13341 13342/*! \relates ppl_Double_Box_tag */ 13343int 13344ppl_Double_Box_get_minimized_congruences 13345PPL_PROTO((ppl_const_Double_Box_t ph, 13346 ppl_const_Congruence_System_t* pcs)); 13347 13348 13349 13350 13351 13352/*! \relates ppl_Double_Box_tag */ 13353int 13354ppl_Double_Box_is_empty 13355PPL_PROTO((ppl_const_Double_Box_t ph)); 13356 13357/*! \relates ppl_Double_Box_tag */ 13358int 13359ppl_Double_Box_is_universe 13360PPL_PROTO((ppl_const_Double_Box_t ph)); 13361 13362/*! \relates ppl_Double_Box_tag */ 13363int 13364ppl_Double_Box_is_bounded 13365PPL_PROTO((ppl_const_Double_Box_t ph)); 13366 13367/*! \relates ppl_Double_Box_tag */ 13368int 13369ppl_Double_Box_contains_integer_point 13370PPL_PROTO((ppl_const_Double_Box_t ph)); 13371 13372/*! \relates ppl_Double_Box_tag */ 13373int 13374ppl_Double_Box_is_topologically_closed 13375PPL_PROTO((ppl_const_Double_Box_t ph)); 13376 13377/*! \relates ppl_Double_Box_tag */ 13378int 13379ppl_Double_Box_is_discrete 13380PPL_PROTO((ppl_const_Double_Box_t ph)); 13381 13382 13383 13384 13385 13386/*! \relates ppl_Double_Box_tag */ 13387int 13388ppl_Double_Box_topological_closure_assign 13389PPL_PROTO((ppl_Double_Box_t ph)); 13390 13391 13392 13393 13394 13395/*! \relates ppl_Double_Box_tag */ 13396int 13397ppl_Double_Box_bounds_from_above 13398PPL_PROTO((ppl_const_Double_Box_t ph, 13399 ppl_const_Linear_Expression_t le)); 13400 13401/*! \relates ppl_Double_Box_tag */ 13402int 13403ppl_Double_Box_bounds_from_below 13404PPL_PROTO((ppl_const_Double_Box_t ph, 13405 ppl_const_Linear_Expression_t le)); 13406 13407 13408 13409 13410 13411/*! \relates ppl_Double_Box_tag */ 13412int 13413ppl_Double_Box_get_upper_bound 13414PPL_PROTO((ppl_Double_Box_t ps, 13415 ppl_dimension_type var, 13416 ppl_Coefficient_t ext_n, 13417 ppl_Coefficient_t ext_d, 13418 int* pclosed)); 13419 13420/*! \relates ppl_Double_Box_tag */ 13421int 13422ppl_Double_Box_get_lower_bound 13423PPL_PROTO((ppl_Double_Box_t ps, 13424 ppl_dimension_type var, 13425 ppl_Coefficient_t ext_n, 13426 ppl_Coefficient_t ext_d, 13427 int* pclosed)); 13428 13429 13430 13431 13432 13433/*! \relates ppl_Double_Box_tag */ 13434int 13435ppl_Double_Box_maximize 13436PPL_PROTO((ppl_const_Double_Box_t ph, 13437 ppl_const_Linear_Expression_t le, 13438 ppl_Coefficient_t ext_n, 13439 ppl_Coefficient_t ext_d, 13440 int* poptimum)); 13441 13442/*! \relates ppl_Double_Box_tag */ 13443int 13444ppl_Double_Box_minimize 13445PPL_PROTO((ppl_const_Double_Box_t ph, 13446 ppl_const_Linear_Expression_t le, 13447 ppl_Coefficient_t ext_n, 13448 ppl_Coefficient_t ext_d, 13449 int* poptimum)); 13450 13451 13452 13453 13454 13455/*! \relates ppl_Double_Box_tag */ 13456int 13457ppl_Double_Box_maximize_with_point 13458PPL_PROTO((ppl_const_Double_Box_t ph, 13459 ppl_const_Linear_Expression_t le, 13460 ppl_Coefficient_t ext_n, 13461 ppl_Coefficient_t ext_d, 13462 int* poptimum, 13463 ppl_Generator_t point)); 13464 13465/*! \relates ppl_Double_Box_tag */ 13466int 13467ppl_Double_Box_minimize_with_point 13468PPL_PROTO((ppl_const_Double_Box_t ph, 13469 ppl_const_Linear_Expression_t le, 13470 ppl_Coefficient_t ext_n, 13471 ppl_Coefficient_t ext_d, 13472 int* poptimum, 13473 ppl_Generator_t point)); 13474 13475 13476 13477 13478 13479/*! \relates ppl_Double_Box_tag */ 13480int 13481ppl_Double_Box_frequency 13482PPL_PROTO((ppl_const_Double_Box_t ph, 13483 ppl_const_Linear_Expression_t le, 13484 ppl_Coefficient_t ext_fn, 13485 ppl_Coefficient_t ext_fd, 13486 ppl_Coefficient_t ext_vn, 13487 ppl_Coefficient_t ext_vd)); 13488 13489 13490 13491 13492/*! \relates ppl_Double_Box_tag */ 13493int 13494ppl_Double_Box_contains_Double_Box 13495PPL_PROTO((ppl_const_Double_Box_t x, 13496 ppl_const_Double_Box_t y)); 13497 13498/*! \relates ppl_Double_Box_tag */ 13499int 13500ppl_Double_Box_strictly_contains_Double_Box 13501PPL_PROTO((ppl_const_Double_Box_t x, 13502 ppl_const_Double_Box_t y)); 13503 13504/*! \relates ppl_Double_Box_tag */ 13505int 13506ppl_Double_Box_is_disjoint_from_Double_Box 13507PPL_PROTO((ppl_const_Double_Box_t x, 13508 ppl_const_Double_Box_t y)); 13509 13510 13511 13512 13513 13514/*! \relates ppl_Double_Box_tag */ 13515int 13516ppl_Double_Box_equals_Double_Box 13517PPL_PROTO((ppl_const_Double_Box_t x, 13518 ppl_const_Double_Box_t y)); 13519 13520 13521 13522 13523/*! \relates ppl_Double_Box_tag */ 13524int 13525ppl_Double_Box_OK 13526PPL_PROTO((ppl_const_Double_Box_t ph)); 13527 13528 13529 13530 13531/*! \relates ppl_Double_Box_tag */ 13532int 13533ppl_Double_Box_add_constraint 13534PPL_PROTO((ppl_Double_Box_t ph, 13535 ppl_const_Constraint_t c)); 13536 13537/*! \relates ppl_Double_Box_tag */ 13538int 13539ppl_Double_Box_add_congruence 13540PPL_PROTO((ppl_Double_Box_t ph, 13541 ppl_const_Congruence_t c)); 13542 13543 13544 13545 13546 13547/*! \relates ppl_Double_Box_tag */ 13548int 13549ppl_Double_Box_add_constraints 13550PPL_PROTO((ppl_Double_Box_t ph, 13551 ppl_const_Constraint_System_t cs)); 13552 13553/*! \relates ppl_Double_Box_tag */ 13554int 13555ppl_Double_Box_add_congruences 13556PPL_PROTO((ppl_Double_Box_t ph, 13557 ppl_const_Congruence_System_t cs)); 13558 13559 13560 13561 13562 13563/*! \relates ppl_Double_Box_tag */ 13564int 13565ppl_Double_Box_refine_with_constraint 13566PPL_PROTO((ppl_Double_Box_t ph, 13567 ppl_const_Constraint_t c)); 13568 13569/*! \relates ppl_Double_Box_tag */ 13570int 13571ppl_Double_Box_refine_with_congruence 13572PPL_PROTO((ppl_Double_Box_t ph, 13573 ppl_const_Congruence_t c)); 13574 13575 13576 13577 13578 13579/*! \relates ppl_Double_Box_tag */ 13580int 13581ppl_Double_Box_refine_with_constraints 13582PPL_PROTO((ppl_Double_Box_t ph, 13583 ppl_const_Constraint_System_t cs)); 13584 13585/*! \relates ppl_Double_Box_tag */ 13586int 13587ppl_Double_Box_refine_with_congruences 13588PPL_PROTO((ppl_Double_Box_t ph, 13589 ppl_const_Congruence_System_t cs)); 13590 13591 13592 13593 13594 13595/*! \relates ppl_Double_Box_tag */ 13596int 13597ppl_Double_Box_intersection_assign 13598PPL_PROTO((ppl_Double_Box_t x, 13599 ppl_const_Double_Box_t y)); 13600 13601/*! \relates ppl_Double_Box_tag */ 13602int 13603ppl_Double_Box_upper_bound_assign 13604PPL_PROTO((ppl_Double_Box_t x, 13605 ppl_const_Double_Box_t y)); 13606 13607/*! \relates ppl_Double_Box_tag */ 13608int 13609ppl_Double_Box_difference_assign 13610PPL_PROTO((ppl_Double_Box_t x, 13611 ppl_const_Double_Box_t y)); 13612 13613/*! \relates ppl_Double_Box_tag */ 13614int 13615ppl_Double_Box_concatenate_assign 13616PPL_PROTO((ppl_Double_Box_t x, 13617 ppl_const_Double_Box_t y)); 13618 13619/*! \relates ppl_Double_Box_tag */ 13620int 13621ppl_Double_Box_time_elapse_assign 13622PPL_PROTO((ppl_Double_Box_t x, 13623 ppl_const_Double_Box_t y)); 13624 13625 13626 13627 13628 13629/*! \relates ppl_Double_Box_tag */ 13630int 13631ppl_Double_Box_upper_bound_assign_if_exact 13632PPL_PROTO((ppl_Double_Box_t x, 13633 ppl_const_Double_Box_t y)); 13634 13635 13636 13637 13638 13639/*! \relates ppl_Double_Box_tag */ 13640int 13641ppl_Double_Box_simplify_using_context_assign 13642PPL_PROTO((ppl_Double_Box_t x, 13643 ppl_const_Double_Box_t y)); 13644 13645 13646 13647 13648/*! \relates ppl_Double_Box_tag */ 13649int 13650ppl_Double_Box_constrains 13651PPL_PROTO((ppl_Double_Box_t ph, 13652 ppl_dimension_type var)); 13653 13654 13655 13656 13657/*! \relates ppl_Double_Box_tag */ 13658int 13659ppl_Double_Box_unconstrain_space_dimension 13660PPL_PROTO((ppl_Double_Box_t ph, 13661 ppl_dimension_type var)); 13662 13663 13664 13665 13666/*! \relates ppl_Double_Box_tag */ 13667int 13668ppl_Double_Box_unconstrain_space_dimensions 13669PPL_PROTO((ppl_Double_Box_t ph, 13670 ppl_dimension_type ds[], 13671 size_t n)); 13672 13673 13674 13675 13676/*! \relates ppl_Double_Box_tag */ 13677int 13678ppl_Double_Box_affine_image 13679PPL_PROTO((ppl_Double_Box_t ph, 13680 ppl_dimension_type var, 13681 ppl_const_Linear_Expression_t le, 13682 ppl_const_Coefficient_t d)); 13683 13684/*! \relates ppl_Double_Box_tag */ 13685int 13686ppl_Double_Box_affine_preimage 13687PPL_PROTO((ppl_Double_Box_t ph, 13688 ppl_dimension_type var, 13689 ppl_const_Linear_Expression_t le, 13690 ppl_const_Coefficient_t d)); 13691 13692 13693 13694 13695 13696/*! \relates ppl_Double_Box_tag */ 13697int 13698ppl_Double_Box_bounded_affine_image 13699PPL_PROTO((ppl_Double_Box_t ph, 13700 ppl_dimension_type var, 13701 ppl_const_Linear_Expression_t lb, 13702 ppl_const_Linear_Expression_t ub, 13703 ppl_const_Coefficient_t d)); 13704 13705/*! \relates ppl_Double_Box_tag */ 13706int 13707ppl_Double_Box_bounded_affine_preimage 13708PPL_PROTO((ppl_Double_Box_t ph, 13709 ppl_dimension_type var, 13710 ppl_const_Linear_Expression_t lb, 13711 ppl_const_Linear_Expression_t ub, 13712 ppl_const_Coefficient_t d)); 13713 13714 13715 13716 13717 13718/*! \relates ppl_Double_Box_tag */ 13719int 13720ppl_Double_Box_generalized_affine_image 13721PPL_PROTO((ppl_Double_Box_t ph, 13722 ppl_dimension_type var, 13723 enum ppl_enum_Constraint_Type relsym, 13724 ppl_const_Linear_Expression_t le, 13725 ppl_const_Coefficient_t d)); 13726 13727/*! \relates ppl_Double_Box_tag */ 13728int 13729ppl_Double_Box_generalized_affine_preimage 13730PPL_PROTO((ppl_Double_Box_t ph, 13731 ppl_dimension_type var, 13732 enum ppl_enum_Constraint_Type relsym, 13733 ppl_const_Linear_Expression_t le, 13734 ppl_const_Coefficient_t d)); 13735 13736 13737 13738 13739 13740/*! \relates ppl_Double_Box_tag */ 13741int 13742ppl_Double_Box_generalized_affine_image_lhs_rhs 13743PPL_PROTO((ppl_Double_Box_t ph, 13744 ppl_const_Linear_Expression_t lhs, 13745 enum ppl_enum_Constraint_Type relsym, 13746 ppl_const_Linear_Expression_t rhs)); 13747 13748/*! \relates ppl_Double_Box_tag */ 13749int 13750ppl_Double_Box_generalized_affine_preimage_lhs_rhs 13751PPL_PROTO((ppl_Double_Box_t ph, 13752 ppl_const_Linear_Expression_t lhs, 13753 enum ppl_enum_Constraint_Type relsym, 13754 ppl_const_Linear_Expression_t rhs)); 13755 13756 13757 13758 13759 13760/*! \relates ppl_Double_Box_tag */ 13761int 13762ppl_Double_Box_add_space_dimensions_and_embed 13763PPL_PROTO((ppl_Double_Box_t ph, 13764 ppl_dimension_type d)); 13765 13766/*! \relates ppl_Double_Box_tag */ 13767int 13768ppl_Double_Box_add_space_dimensions_and_project 13769PPL_PROTO((ppl_Double_Box_t ph, 13770 ppl_dimension_type d)); 13771 13772 13773 13774 13775 13776/*! \relates ppl_Double_Box_tag */ 13777int 13778ppl_Double_Box_remove_space_dimensions 13779PPL_PROTO((ppl_Double_Box_t ph, 13780 ppl_dimension_type ds[], 13781 size_t n)); 13782 13783 13784 13785 13786/*! \relates ppl_Double_Box_tag */ 13787int 13788ppl_Double_Box_remove_higher_space_dimensions 13789PPL_PROTO((ppl_Double_Box_t ph, 13790 ppl_dimension_type d)); 13791 13792 13793 13794 13795/*! \relates ppl_Double_Box_tag */ 13796int 13797ppl_Double_Box_expand_space_dimension 13798PPL_PROTO((ppl_Double_Box_t ph, 13799 ppl_dimension_type d, 13800 ppl_dimension_type m)); 13801 13802 13803 13804 13805/*! \relates ppl_Double_Box_tag */ 13806int 13807ppl_Double_Box_fold_space_dimensions 13808PPL_PROTO((ppl_Double_Box_t ph, 13809 ppl_dimension_type ds[], 13810 size_t n, 13811 ppl_dimension_type d)); 13812 13813 13814 13815 13816/*! \relates ppl_Double_Box_tag */ 13817int 13818ppl_Double_Box_map_space_dimensions 13819PPL_PROTO((ppl_Double_Box_t ph, 13820 ppl_dimension_type maps[], 13821 size_t n)); 13822 13823 13824 13825 13826/*! \relates ppl_Double_Box_tag */ 13827int 13828ppl_Double_Box_drop_some_non_integer_points 13829PPL_PROTO((ppl_Double_Box_t ph, 13830 int complexity)); 13831 13832 13833 13834 13835/*! \relates ppl_Double_Box_tag */ 13836int 13837ppl_Double_Box_drop_some_non_integer_points_2 13838PPL_PROTO((ppl_Double_Box_t ph, 13839 ppl_dimension_type ds[], 13840 size_t n, 13841 int complexity)); 13842 13843 13844 13845 13846 13847 13848/*! \relates ppl_Double_Box_tag */ 13849int 13850ppl_Double_Box_external_memory_in_bytes 13851PPL_PROTO((ppl_const_Double_Box_t ps, 13852 size_t* sz)); 13853 13854/*! \relates ppl_Double_Box_tag */ 13855int 13856ppl_Double_Box_total_memory_in_bytes 13857PPL_PROTO((ppl_const_Double_Box_t ps, 13858 size_t* sz)); 13859 13860 13861 13862 13863 13864/*! \relates ppl_Double_Box_tag */ 13865int 13866ppl_Double_Box_CC76_widening_assign_with_tokens 13867PPL_PROTO((ppl_Double_Box_t x, 13868 ppl_const_Double_Box_t y, 13869 unsigned* tp)); 13870 13871 13872 13873 13874 13875/*! \relates ppl_Double_Box_tag */ 13876int 13877ppl_Double_Box_CC76_widening_assign 13878PPL_PROTO((ppl_Double_Box_t x, 13879 ppl_const_Double_Box_t y)); 13880 13881 13882 13883 13884 13885/*! \relates ppl_Double_Box_tag */ 13886int 13887ppl_Double_Box_widening_assign_with_tokens 13888PPL_PROTO((ppl_Double_Box_t x, 13889 ppl_const_Double_Box_t y, 13890 unsigned* tp)); 13891 13892 13893 13894 13895/*! \relates ppl_Double_Box_tag */ 13896int 13897ppl_Double_Box_widening_assign 13898PPL_PROTO((ppl_Double_Box_t x, 13899 ppl_const_Double_Box_t y)); 13900 13901 13902 13903 13904/*! \relates ppl_Double_Box_tag */ 13905int 13906ppl_Double_Box_limited_CC76_extrapolation_assign_with_tokens 13907PPL_PROTO((ppl_Double_Box_t x, 13908 ppl_const_Double_Box_t y, 13909 ppl_const_Constraint_System_t cs, 13910 unsigned* tp)); 13911 13912 13913 13914 13915 13916 13917 13918/*! \relates ppl_Double_Box_tag */ 13919int 13920ppl_Double_Box_limited_CC76_extrapolation_assign 13921PPL_PROTO((ppl_Double_Box_t x, 13922 ppl_const_Double_Box_t y, 13923 ppl_const_Constraint_System_t cs)); 13924 13925 13926 13927 13928 13929 13930 13931/*! \relates ppl_Double_Box_tag */ 13932int 13933ppl_Double_Box_CC76_narrowing_assign 13934PPL_PROTO((ppl_Double_Box_t x, 13935 ppl_const_Double_Box_t y)); 13936 13937 13938 13939 13940 13941/*! \relates ppl_Double_Box_tag */ 13942int 13943ppl_Double_Box_linear_partition 13944PPL_PROTO((ppl_const_Double_Box_t x, 13945 ppl_const_Double_Box_t y, 13946 ppl_Double_Box_t* p_inters, 13947 ppl_Pointset_Powerset_NNC_Polyhedron_t* p_rest)); 13948 13949 13950 13951 13952 13953/*! \relates ppl_Double_Box_tag */ 13954int 13955ppl_Double_Box_wrap_assign 13956PPL_PROTO((ppl_Double_Box_t ph, 13957 ppl_dimension_type ds[], 13958 size_t n, 13959 enum ppl_enum_Bounded_Integer_Type_Width w, 13960 enum ppl_enum_Bounded_Integer_Type_Representation r, 13961 enum ppl_enum_Bounded_Integer_Type_Overflow o, 13962 const ppl_const_Constraint_System_t* pcs, 13963 unsigned complexity_threshold, 13964 int wrap_individually)); 13965 13966 13967 13968/*! \relates ppl_Double_Box_tag */ 13969int 13970ppl_new_Double_Box_recycle_Constraint_System 13971PPL_PROTO((ppl_Double_Box_t* pph, ppl_Constraint_System_t cs)); 13972 13973/*! \relates ppl_Double_Box_tag */ 13974int 13975ppl_new_Double_Box_recycle_Congruence_System 13976PPL_PROTO((ppl_Double_Box_t* pph, ppl_Congruence_System_t cs)); 13977 13978/*! \relates ppl_Double_Box_tag */ 13979int 13980ppl_new_Double_Box_recycle_Generator_System 13981PPL_PROTO((ppl_Double_Box_t* pph, ppl_Generator_System_t cs)); 13982 13983 13984 13985 13986 13987 13988/*! \relates ppl_Double_Box_tag */ 13989int 13990ppl_assign_Double_Box_from_Double_Box 13991PPL_PROTO((ppl_Double_Box_t dst, ppl_const_Double_Box_t src)); 13992 13993 13994 13995 13996 13997/*! \relates ppl_Double_Box_tag */ 13998int 13999ppl_Double_Box_add_recycled_constraints 14000PPL_PROTO((ppl_Double_Box_t ph, 14001 ppl_Constraint_System_t cs)); 14002 14003/*! \relates ppl_Double_Box_tag */ 14004int 14005ppl_Double_Box_add_recycled_congruences 14006PPL_PROTO((ppl_Double_Box_t ph, 14007 ppl_Congruence_System_t cs)); 14008 14009 14010 14011 14012 14013/*! \relates ppl_Double_Box_tag */ 14014int 14015ppl_termination_test_MS_Double_Box 14016PPL_PROTO((ppl_const_Double_Box_t pset)); 14017 14018/*! \relates ppl_Double_Box_tag */ 14019int 14020ppl_termination_test_PR_Double_Box 14021PPL_PROTO((ppl_const_Double_Box_t pset)); 14022 14023 14024 14025 14026 14027 14028/*! \relates ppl_Double_Box_tag */ 14029int 14030ppl_one_affine_ranking_function_MS_Double_Box 14031PPL_PROTO((ppl_const_Double_Box_t pset, 14032 ppl_Generator_t point)); 14033 14034/*! \relates ppl_Double_Box_tag */ 14035int 14036ppl_one_affine_ranking_function_PR_Double_Box 14037PPL_PROTO((ppl_const_Double_Box_t pset, 14038 ppl_Generator_t point)); 14039 14040 14041 14042 14043 14044 14045/*! \relates ppl_Double_Box_tag */ 14046int 14047ppl_all_affine_ranking_functions_MS_Double_Box 14048PPL_PROTO((ppl_const_Double_Box_t pset, 14049 ppl_Polyhedron_t ph)); 14050 14051/*! \relates ppl_Double_Box_tag */ 14052int 14053ppl_all_affine_ranking_functions_PR_Double_Box 14054PPL_PROTO((ppl_const_Double_Box_t pset, 14055 ppl_Polyhedron_t ph)); 14056 14057 14058 14059 14060 14061 14062/*! \relates ppl_Double_Box_tag */ 14063int 14064ppl_termination_test_MS_Double_Box_2 14065PPL_PROTO((ppl_const_Double_Box_t pset_before, ppl_const_Double_Box_t pset_after)); 14066 14067/*! \relates ppl_Double_Box_tag */ 14068int 14069ppl_termination_test_PR_Double_Box_2 14070PPL_PROTO((ppl_const_Double_Box_t pset_before, ppl_const_Double_Box_t pset_after)); 14071 14072 14073 14074 14075 14076 14077/*! \relates ppl_Double_Box_tag */ 14078int 14079ppl_one_affine_ranking_function_MS_Double_Box_2 14080PPL_PROTO((ppl_const_Double_Box_t pset_before, 14081 ppl_const_Double_Box_t pset_after, 14082 ppl_Generator_t point)); 14083 14084/*! \relates ppl_Double_Box_tag */ 14085int 14086ppl_one_affine_ranking_function_PR_Double_Box_2 14087PPL_PROTO((ppl_const_Double_Box_t pset_before, 14088 ppl_const_Double_Box_t pset_after, 14089 ppl_Generator_t point)); 14090 14091 14092 14093 14094 14095 14096/*! \relates ppl_Double_Box_tag */ 14097int 14098ppl_all_affine_ranking_functions_MS_Double_Box_2 14099PPL_PROTO((ppl_const_Double_Box_t pset_before, 14100 ppl_const_Double_Box_t pset_after, 14101 ppl_Polyhedron_t ph)); 14102 14103/*! \relates ppl_Double_Box_tag */ 14104int 14105ppl_all_affine_ranking_functions_PR_Double_Box_2 14106PPL_PROTO((ppl_const_Double_Box_t pset_before, 14107 ppl_const_Double_Box_t pset_after, 14108 ppl_Polyhedron_t ph)); 14109 14110 14111 14112 14113 14114 14115 14116PPL_DECLARE_IO_FUNCTIONS(Double_Box) 14117 14118/* End of Functions Related to ppl_Double_Box_tag */ 14119 14120/*! \interface ppl_BD_Shape_double_tag 14121 \brief Types and functions for ppl_BD_Shape_double_tag 14122*/ 14123 14124/*! \relates ppl_BD_Shape_double_tag */ 14125int 14126ppl_delete_BD_Shape_double 14127PPL_PROTO((ppl_const_BD_Shape_double_t ph)); 14128 14129 14130 14131 14132/*! \relates ppl_BD_Shape_double_tag */ 14133int 14134ppl_new_BD_Shape_double_from_space_dimension 14135PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_dimension_type d, int empty)); 14136 14137 14138 14139 14140 14141/*! \relates ppl_BD_Shape_double_tag */ 14142int 14143ppl_new_BD_Shape_double_from_C_Polyhedron 14144PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Polyhedron_t ph)); 14145 14146/*! \relates ppl_BD_Shape_double_tag */ 14147int 14148ppl_new_BD_Shape_double_from_NNC_Polyhedron 14149PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Polyhedron_t ph)); 14150 14151/*! \relates ppl_BD_Shape_double_tag */ 14152int 14153ppl_new_BD_Shape_double_from_Grid 14154PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Grid_t ph)); 14155 14156/*! \relates ppl_BD_Shape_double_tag */ 14157int 14158ppl_new_BD_Shape_double_from_Rational_Box 14159PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Rational_Box_t ph)); 14160 14161/*! \relates ppl_BD_Shape_double_tag */ 14162int 14163ppl_new_BD_Shape_double_from_BD_Shape_mpz_class 14164PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_BD_Shape_mpz_class_t ph)); 14165 14166/*! \relates ppl_BD_Shape_double_tag */ 14167int 14168ppl_new_BD_Shape_double_from_BD_Shape_mpq_class 14169PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_BD_Shape_mpq_class_t ph)); 14170 14171/*! \relates ppl_BD_Shape_double_tag */ 14172int 14173ppl_new_BD_Shape_double_from_Octagonal_Shape_mpz_class 14174PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph)); 14175 14176/*! \relates ppl_BD_Shape_double_tag */ 14177int 14178ppl_new_BD_Shape_double_from_Octagonal_Shape_mpq_class 14179PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph)); 14180 14181/*! \relates ppl_BD_Shape_double_tag */ 14182int 14183ppl_new_BD_Shape_double_from_Double_Box 14184PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Double_Box_t ph)); 14185 14186/*! \relates ppl_BD_Shape_double_tag */ 14187int 14188ppl_new_BD_Shape_double_from_BD_Shape_double 14189PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_BD_Shape_double_t ph)); 14190 14191/*! \relates ppl_BD_Shape_double_tag */ 14192int 14193ppl_new_BD_Shape_double_from_Octagonal_Shape_double 14194PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Octagonal_Shape_double_t ph)); 14195 14196 14197 14198 14199 14200 14201/*! \relates ppl_BD_Shape_double_tag */ 14202int 14203ppl_new_BD_Shape_double_from_C_Polyhedron_with_complexity 14204PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 14205 14206/*! \relates ppl_BD_Shape_double_tag */ 14207int 14208ppl_new_BD_Shape_double_from_NNC_Polyhedron_with_complexity 14209PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 14210 14211/*! \relates ppl_BD_Shape_double_tag */ 14212int 14213ppl_new_BD_Shape_double_from_Grid_with_complexity 14214PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Grid_t ph, int complexity)); 14215 14216/*! \relates ppl_BD_Shape_double_tag */ 14217int 14218ppl_new_BD_Shape_double_from_Rational_Box_with_complexity 14219PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Rational_Box_t ph, int complexity)); 14220 14221/*! \relates ppl_BD_Shape_double_tag */ 14222int 14223ppl_new_BD_Shape_double_from_BD_Shape_mpz_class_with_complexity 14224PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_BD_Shape_mpz_class_t ph, int complexity)); 14225 14226/*! \relates ppl_BD_Shape_double_tag */ 14227int 14228ppl_new_BD_Shape_double_from_BD_Shape_mpq_class_with_complexity 14229PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_BD_Shape_mpq_class_t ph, int complexity)); 14230 14231/*! \relates ppl_BD_Shape_double_tag */ 14232int 14233ppl_new_BD_Shape_double_from_Octagonal_Shape_mpz_class_with_complexity 14234PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph, int complexity)); 14235 14236/*! \relates ppl_BD_Shape_double_tag */ 14237int 14238ppl_new_BD_Shape_double_from_Octagonal_Shape_mpq_class_with_complexity 14239PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph, int complexity)); 14240 14241/*! \relates ppl_BD_Shape_double_tag */ 14242int 14243ppl_new_BD_Shape_double_from_Double_Box_with_complexity 14244PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Double_Box_t ph, int complexity)); 14245 14246/*! \relates ppl_BD_Shape_double_tag */ 14247int 14248ppl_new_BD_Shape_double_from_BD_Shape_double_with_complexity 14249PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_BD_Shape_double_t ph, int complexity)); 14250 14251/*! \relates ppl_BD_Shape_double_tag */ 14252int 14253ppl_new_BD_Shape_double_from_Octagonal_Shape_double_with_complexity 14254PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Octagonal_Shape_double_t ph, int complexity)); 14255 14256 14257 14258 14259 14260 14261/*! \relates ppl_BD_Shape_double_tag */ 14262int 14263ppl_new_BD_Shape_double_from_Constraint_System 14264PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Constraint_System_t cs)); 14265 14266/*! \relates ppl_BD_Shape_double_tag */ 14267int 14268ppl_new_BD_Shape_double_from_Congruence_System 14269PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Congruence_System_t cs)); 14270 14271/*! \relates ppl_BD_Shape_double_tag */ 14272int 14273ppl_new_BD_Shape_double_from_Generator_System 14274PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_const_Generator_System_t cs)); 14275 14276 14277 14278 14279 14280 14281 14282 14283/*! \relates ppl_BD_Shape_double_tag */ 14284int 14285ppl_BD_Shape_double_space_dimension 14286PPL_PROTO((ppl_const_BD_Shape_double_t ph, ppl_dimension_type* m)); 14287 14288/*! \relates ppl_BD_Shape_double_tag */ 14289int 14290ppl_BD_Shape_double_affine_dimension 14291PPL_PROTO((ppl_const_BD_Shape_double_t ph, ppl_dimension_type* m)); 14292 14293 14294 14295 14296 14297/*! \relates ppl_BD_Shape_double_tag */ 14298int 14299ppl_BD_Shape_double_relation_with_Constraint 14300PPL_PROTO((ppl_const_BD_Shape_double_t ph, 14301 ppl_const_Constraint_t c)); 14302 14303/*! \relates ppl_BD_Shape_double_tag */ 14304int 14305ppl_BD_Shape_double_relation_with_Generator 14306PPL_PROTO((ppl_const_BD_Shape_double_t ph, 14307 ppl_const_Generator_t c)); 14308 14309/*! \relates ppl_BD_Shape_double_tag */ 14310int 14311ppl_BD_Shape_double_relation_with_Congruence 14312PPL_PROTO((ppl_const_BD_Shape_double_t ph, 14313 ppl_const_Congruence_t c)); 14314 14315 14316 14317 14318 14319/*! \relates ppl_BD_Shape_double_tag */ 14320int 14321ppl_BD_Shape_double_get_constraints 14322PPL_PROTO((ppl_const_BD_Shape_double_t ph, 14323 ppl_const_Constraint_System_t* pcs)); 14324 14325/*! \relates ppl_BD_Shape_double_tag */ 14326int 14327ppl_BD_Shape_double_get_congruences 14328PPL_PROTO((ppl_const_BD_Shape_double_t ph, 14329 ppl_const_Congruence_System_t* pcs)); 14330 14331 14332 14333 14334 14335/*! \relates ppl_BD_Shape_double_tag */ 14336int 14337ppl_BD_Shape_double_get_minimized_constraints 14338PPL_PROTO((ppl_const_BD_Shape_double_t ph, 14339 ppl_const_Constraint_System_t* pcs)); 14340 14341/*! \relates ppl_BD_Shape_double_tag */ 14342int 14343ppl_BD_Shape_double_get_minimized_congruences 14344PPL_PROTO((ppl_const_BD_Shape_double_t ph, 14345 ppl_const_Congruence_System_t* pcs)); 14346 14347 14348 14349 14350 14351/*! \relates ppl_BD_Shape_double_tag */ 14352int 14353ppl_BD_Shape_double_is_empty 14354PPL_PROTO((ppl_const_BD_Shape_double_t ph)); 14355 14356/*! \relates ppl_BD_Shape_double_tag */ 14357int 14358ppl_BD_Shape_double_is_universe 14359PPL_PROTO((ppl_const_BD_Shape_double_t ph)); 14360 14361/*! \relates ppl_BD_Shape_double_tag */ 14362int 14363ppl_BD_Shape_double_is_bounded 14364PPL_PROTO((ppl_const_BD_Shape_double_t ph)); 14365 14366/*! \relates ppl_BD_Shape_double_tag */ 14367int 14368ppl_BD_Shape_double_contains_integer_point 14369PPL_PROTO((ppl_const_BD_Shape_double_t ph)); 14370 14371/*! \relates ppl_BD_Shape_double_tag */ 14372int 14373ppl_BD_Shape_double_is_topologically_closed 14374PPL_PROTO((ppl_const_BD_Shape_double_t ph)); 14375 14376/*! \relates ppl_BD_Shape_double_tag */ 14377int 14378ppl_BD_Shape_double_is_discrete 14379PPL_PROTO((ppl_const_BD_Shape_double_t ph)); 14380 14381 14382 14383 14384 14385/*! \relates ppl_BD_Shape_double_tag */ 14386int 14387ppl_BD_Shape_double_topological_closure_assign 14388PPL_PROTO((ppl_BD_Shape_double_t ph)); 14389 14390 14391 14392 14393 14394/*! \relates ppl_BD_Shape_double_tag */ 14395int 14396ppl_BD_Shape_double_bounds_from_above 14397PPL_PROTO((ppl_const_BD_Shape_double_t ph, 14398 ppl_const_Linear_Expression_t le)); 14399 14400/*! \relates ppl_BD_Shape_double_tag */ 14401int 14402ppl_BD_Shape_double_bounds_from_below 14403PPL_PROTO((ppl_const_BD_Shape_double_t ph, 14404 ppl_const_Linear_Expression_t le)); 14405 14406 14407 14408 14409 14410/*! \relates ppl_BD_Shape_double_tag */ 14411int 14412ppl_BD_Shape_double_maximize 14413PPL_PROTO((ppl_const_BD_Shape_double_t ph, 14414 ppl_const_Linear_Expression_t le, 14415 ppl_Coefficient_t ext_n, 14416 ppl_Coefficient_t ext_d, 14417 int* poptimum)); 14418 14419/*! \relates ppl_BD_Shape_double_tag */ 14420int 14421ppl_BD_Shape_double_minimize 14422PPL_PROTO((ppl_const_BD_Shape_double_t ph, 14423 ppl_const_Linear_Expression_t le, 14424 ppl_Coefficient_t ext_n, 14425 ppl_Coefficient_t ext_d, 14426 int* poptimum)); 14427 14428 14429 14430 14431 14432/*! \relates ppl_BD_Shape_double_tag */ 14433int 14434ppl_BD_Shape_double_maximize_with_point 14435PPL_PROTO((ppl_const_BD_Shape_double_t ph, 14436 ppl_const_Linear_Expression_t le, 14437 ppl_Coefficient_t ext_n, 14438 ppl_Coefficient_t ext_d, 14439 int* poptimum, 14440 ppl_Generator_t point)); 14441 14442/*! \relates ppl_BD_Shape_double_tag */ 14443int 14444ppl_BD_Shape_double_minimize_with_point 14445PPL_PROTO((ppl_const_BD_Shape_double_t ph, 14446 ppl_const_Linear_Expression_t le, 14447 ppl_Coefficient_t ext_n, 14448 ppl_Coefficient_t ext_d, 14449 int* poptimum, 14450 ppl_Generator_t point)); 14451 14452 14453 14454 14455 14456/*! \relates ppl_BD_Shape_double_tag */ 14457int 14458ppl_BD_Shape_double_frequency 14459PPL_PROTO((ppl_const_BD_Shape_double_t ph, 14460 ppl_const_Linear_Expression_t le, 14461 ppl_Coefficient_t ext_fn, 14462 ppl_Coefficient_t ext_fd, 14463 ppl_Coefficient_t ext_vn, 14464 ppl_Coefficient_t ext_vd)); 14465 14466 14467 14468 14469/*! \relates ppl_BD_Shape_double_tag */ 14470int 14471ppl_BD_Shape_double_contains_BD_Shape_double 14472PPL_PROTO((ppl_const_BD_Shape_double_t x, 14473 ppl_const_BD_Shape_double_t y)); 14474 14475/*! \relates ppl_BD_Shape_double_tag */ 14476int 14477ppl_BD_Shape_double_strictly_contains_BD_Shape_double 14478PPL_PROTO((ppl_const_BD_Shape_double_t x, 14479 ppl_const_BD_Shape_double_t y)); 14480 14481/*! \relates ppl_BD_Shape_double_tag */ 14482int 14483ppl_BD_Shape_double_is_disjoint_from_BD_Shape_double 14484PPL_PROTO((ppl_const_BD_Shape_double_t x, 14485 ppl_const_BD_Shape_double_t y)); 14486 14487 14488 14489 14490 14491/*! \relates ppl_BD_Shape_double_tag */ 14492int 14493ppl_BD_Shape_double_equals_BD_Shape_double 14494PPL_PROTO((ppl_const_BD_Shape_double_t x, 14495 ppl_const_BD_Shape_double_t y)); 14496 14497 14498 14499 14500/*! \relates ppl_BD_Shape_double_tag */ 14501int 14502ppl_BD_Shape_double_OK 14503PPL_PROTO((ppl_const_BD_Shape_double_t ph)); 14504 14505 14506 14507 14508/*! \relates ppl_BD_Shape_double_tag */ 14509int 14510ppl_BD_Shape_double_add_constraint 14511PPL_PROTO((ppl_BD_Shape_double_t ph, 14512 ppl_const_Constraint_t c)); 14513 14514/*! \relates ppl_BD_Shape_double_tag */ 14515int 14516ppl_BD_Shape_double_add_congruence 14517PPL_PROTO((ppl_BD_Shape_double_t ph, 14518 ppl_const_Congruence_t c)); 14519 14520 14521 14522 14523 14524/*! \relates ppl_BD_Shape_double_tag */ 14525int 14526ppl_BD_Shape_double_add_constraints 14527PPL_PROTO((ppl_BD_Shape_double_t ph, 14528 ppl_const_Constraint_System_t cs)); 14529 14530/*! \relates ppl_BD_Shape_double_tag */ 14531int 14532ppl_BD_Shape_double_add_congruences 14533PPL_PROTO((ppl_BD_Shape_double_t ph, 14534 ppl_const_Congruence_System_t cs)); 14535 14536 14537 14538 14539 14540/*! \relates ppl_BD_Shape_double_tag */ 14541int 14542ppl_BD_Shape_double_refine_with_constraint 14543PPL_PROTO((ppl_BD_Shape_double_t ph, 14544 ppl_const_Constraint_t c)); 14545 14546/*! \relates ppl_BD_Shape_double_tag */ 14547int 14548ppl_BD_Shape_double_refine_with_congruence 14549PPL_PROTO((ppl_BD_Shape_double_t ph, 14550 ppl_const_Congruence_t c)); 14551 14552 14553 14554 14555 14556/*! \relates ppl_BD_Shape_double_tag */ 14557int 14558ppl_BD_Shape_double_refine_with_constraints 14559PPL_PROTO((ppl_BD_Shape_double_t ph, 14560 ppl_const_Constraint_System_t cs)); 14561 14562/*! \relates ppl_BD_Shape_double_tag */ 14563int 14564ppl_BD_Shape_double_refine_with_congruences 14565PPL_PROTO((ppl_BD_Shape_double_t ph, 14566 ppl_const_Congruence_System_t cs)); 14567 14568 14569 14570 14571 14572/*! \relates ppl_BD_Shape_double_tag */ 14573int 14574ppl_BD_Shape_double_intersection_assign 14575PPL_PROTO((ppl_BD_Shape_double_t x, 14576 ppl_const_BD_Shape_double_t y)); 14577 14578/*! \relates ppl_BD_Shape_double_tag */ 14579int 14580ppl_BD_Shape_double_upper_bound_assign 14581PPL_PROTO((ppl_BD_Shape_double_t x, 14582 ppl_const_BD_Shape_double_t y)); 14583 14584/*! \relates ppl_BD_Shape_double_tag */ 14585int 14586ppl_BD_Shape_double_difference_assign 14587PPL_PROTO((ppl_BD_Shape_double_t x, 14588 ppl_const_BD_Shape_double_t y)); 14589 14590/*! \relates ppl_BD_Shape_double_tag */ 14591int 14592ppl_BD_Shape_double_concatenate_assign 14593PPL_PROTO((ppl_BD_Shape_double_t x, 14594 ppl_const_BD_Shape_double_t y)); 14595 14596/*! \relates ppl_BD_Shape_double_tag */ 14597int 14598ppl_BD_Shape_double_time_elapse_assign 14599PPL_PROTO((ppl_BD_Shape_double_t x, 14600 ppl_const_BD_Shape_double_t y)); 14601 14602 14603 14604 14605 14606/*! \relates ppl_BD_Shape_double_tag */ 14607int 14608ppl_BD_Shape_double_upper_bound_assign_if_exact 14609PPL_PROTO((ppl_BD_Shape_double_t x, 14610 ppl_const_BD_Shape_double_t y)); 14611 14612 14613 14614 14615 14616/*! \relates ppl_BD_Shape_double_tag */ 14617int 14618ppl_BD_Shape_double_simplify_using_context_assign 14619PPL_PROTO((ppl_BD_Shape_double_t x, 14620 ppl_const_BD_Shape_double_t y)); 14621 14622 14623 14624 14625/*! \relates ppl_BD_Shape_double_tag */ 14626int 14627ppl_BD_Shape_double_constrains 14628PPL_PROTO((ppl_BD_Shape_double_t ph, 14629 ppl_dimension_type var)); 14630 14631 14632 14633 14634/*! \relates ppl_BD_Shape_double_tag */ 14635int 14636ppl_BD_Shape_double_unconstrain_space_dimension 14637PPL_PROTO((ppl_BD_Shape_double_t ph, 14638 ppl_dimension_type var)); 14639 14640 14641 14642 14643/*! \relates ppl_BD_Shape_double_tag */ 14644int 14645ppl_BD_Shape_double_unconstrain_space_dimensions 14646PPL_PROTO((ppl_BD_Shape_double_t ph, 14647 ppl_dimension_type ds[], 14648 size_t n)); 14649 14650 14651 14652 14653/*! \relates ppl_BD_Shape_double_tag */ 14654int 14655ppl_BD_Shape_double_affine_image 14656PPL_PROTO((ppl_BD_Shape_double_t ph, 14657 ppl_dimension_type var, 14658 ppl_const_Linear_Expression_t le, 14659 ppl_const_Coefficient_t d)); 14660 14661/*! \relates ppl_BD_Shape_double_tag */ 14662int 14663ppl_BD_Shape_double_affine_preimage 14664PPL_PROTO((ppl_BD_Shape_double_t ph, 14665 ppl_dimension_type var, 14666 ppl_const_Linear_Expression_t le, 14667 ppl_const_Coefficient_t d)); 14668 14669 14670 14671 14672 14673/*! \relates ppl_BD_Shape_double_tag */ 14674int 14675ppl_BD_Shape_double_bounded_affine_image 14676PPL_PROTO((ppl_BD_Shape_double_t ph, 14677 ppl_dimension_type var, 14678 ppl_const_Linear_Expression_t lb, 14679 ppl_const_Linear_Expression_t ub, 14680 ppl_const_Coefficient_t d)); 14681 14682/*! \relates ppl_BD_Shape_double_tag */ 14683int 14684ppl_BD_Shape_double_bounded_affine_preimage 14685PPL_PROTO((ppl_BD_Shape_double_t ph, 14686 ppl_dimension_type var, 14687 ppl_const_Linear_Expression_t lb, 14688 ppl_const_Linear_Expression_t ub, 14689 ppl_const_Coefficient_t d)); 14690 14691 14692 14693 14694 14695/*! \relates ppl_BD_Shape_double_tag */ 14696int 14697ppl_BD_Shape_double_generalized_affine_image 14698PPL_PROTO((ppl_BD_Shape_double_t ph, 14699 ppl_dimension_type var, 14700 enum ppl_enum_Constraint_Type relsym, 14701 ppl_const_Linear_Expression_t le, 14702 ppl_const_Coefficient_t d)); 14703 14704/*! \relates ppl_BD_Shape_double_tag */ 14705int 14706ppl_BD_Shape_double_generalized_affine_preimage 14707PPL_PROTO((ppl_BD_Shape_double_t ph, 14708 ppl_dimension_type var, 14709 enum ppl_enum_Constraint_Type relsym, 14710 ppl_const_Linear_Expression_t le, 14711 ppl_const_Coefficient_t d)); 14712 14713 14714 14715 14716 14717/*! \relates ppl_BD_Shape_double_tag */ 14718int 14719ppl_BD_Shape_double_generalized_affine_image_lhs_rhs 14720PPL_PROTO((ppl_BD_Shape_double_t ph, 14721 ppl_const_Linear_Expression_t lhs, 14722 enum ppl_enum_Constraint_Type relsym, 14723 ppl_const_Linear_Expression_t rhs)); 14724 14725/*! \relates ppl_BD_Shape_double_tag */ 14726int 14727ppl_BD_Shape_double_generalized_affine_preimage_lhs_rhs 14728PPL_PROTO((ppl_BD_Shape_double_t ph, 14729 ppl_const_Linear_Expression_t lhs, 14730 enum ppl_enum_Constraint_Type relsym, 14731 ppl_const_Linear_Expression_t rhs)); 14732 14733 14734 14735 14736 14737/*! \relates ppl_BD_Shape_double_tag */ 14738int 14739ppl_BD_Shape_double_add_space_dimensions_and_embed 14740PPL_PROTO((ppl_BD_Shape_double_t ph, 14741 ppl_dimension_type d)); 14742 14743/*! \relates ppl_BD_Shape_double_tag */ 14744int 14745ppl_BD_Shape_double_add_space_dimensions_and_project 14746PPL_PROTO((ppl_BD_Shape_double_t ph, 14747 ppl_dimension_type d)); 14748 14749 14750 14751 14752 14753/*! \relates ppl_BD_Shape_double_tag */ 14754int 14755ppl_BD_Shape_double_remove_space_dimensions 14756PPL_PROTO((ppl_BD_Shape_double_t ph, 14757 ppl_dimension_type ds[], 14758 size_t n)); 14759 14760 14761 14762 14763/*! \relates ppl_BD_Shape_double_tag */ 14764int 14765ppl_BD_Shape_double_remove_higher_space_dimensions 14766PPL_PROTO((ppl_BD_Shape_double_t ph, 14767 ppl_dimension_type d)); 14768 14769 14770 14771 14772/*! \relates ppl_BD_Shape_double_tag */ 14773int 14774ppl_BD_Shape_double_expand_space_dimension 14775PPL_PROTO((ppl_BD_Shape_double_t ph, 14776 ppl_dimension_type d, 14777 ppl_dimension_type m)); 14778 14779 14780 14781 14782/*! \relates ppl_BD_Shape_double_tag */ 14783int 14784ppl_BD_Shape_double_fold_space_dimensions 14785PPL_PROTO((ppl_BD_Shape_double_t ph, 14786 ppl_dimension_type ds[], 14787 size_t n, 14788 ppl_dimension_type d)); 14789 14790 14791 14792 14793/*! \relates ppl_BD_Shape_double_tag */ 14794int 14795ppl_BD_Shape_double_map_space_dimensions 14796PPL_PROTO((ppl_BD_Shape_double_t ph, 14797 ppl_dimension_type maps[], 14798 size_t n)); 14799 14800 14801 14802 14803/*! \relates ppl_BD_Shape_double_tag */ 14804int 14805ppl_BD_Shape_double_drop_some_non_integer_points 14806PPL_PROTO((ppl_BD_Shape_double_t ph, 14807 int complexity)); 14808 14809 14810 14811 14812/*! \relates ppl_BD_Shape_double_tag */ 14813int 14814ppl_BD_Shape_double_drop_some_non_integer_points_2 14815PPL_PROTO((ppl_BD_Shape_double_t ph, 14816 ppl_dimension_type ds[], 14817 size_t n, 14818 int complexity)); 14819 14820 14821 14822 14823 14824 14825/*! \relates ppl_BD_Shape_double_tag */ 14826int 14827ppl_BD_Shape_double_external_memory_in_bytes 14828PPL_PROTO((ppl_const_BD_Shape_double_t ps, 14829 size_t* sz)); 14830 14831/*! \relates ppl_BD_Shape_double_tag */ 14832int 14833ppl_BD_Shape_double_total_memory_in_bytes 14834PPL_PROTO((ppl_const_BD_Shape_double_t ps, 14835 size_t* sz)); 14836 14837 14838 14839 14840 14841/*! \relates ppl_BD_Shape_double_tag */ 14842int 14843ppl_BD_Shape_double_BHMZ05_widening_assign_with_tokens 14844PPL_PROTO((ppl_BD_Shape_double_t x, 14845 ppl_const_BD_Shape_double_t y, 14846 unsigned* tp)); 14847 14848/*! \relates ppl_BD_Shape_double_tag */ 14849int 14850ppl_BD_Shape_double_H79_widening_assign_with_tokens 14851PPL_PROTO((ppl_BD_Shape_double_t x, 14852 ppl_const_BD_Shape_double_t y, 14853 unsigned* tp)); 14854 14855 14856 14857 14858 14859/*! \relates ppl_BD_Shape_double_tag */ 14860int 14861ppl_BD_Shape_double_BHMZ05_widening_assign 14862PPL_PROTO((ppl_BD_Shape_double_t x, 14863 ppl_const_BD_Shape_double_t y)); 14864 14865/*! \relates ppl_BD_Shape_double_tag */ 14866int 14867ppl_BD_Shape_double_H79_widening_assign 14868PPL_PROTO((ppl_BD_Shape_double_t x, 14869 ppl_const_BD_Shape_double_t y)); 14870 14871 14872 14873 14874 14875/*! \relates ppl_BD_Shape_double_tag */ 14876int 14877ppl_BD_Shape_double_widening_assign_with_tokens 14878PPL_PROTO((ppl_BD_Shape_double_t x, 14879 ppl_const_BD_Shape_double_t y, 14880 unsigned* tp)); 14881 14882 14883 14884 14885/*! \relates ppl_BD_Shape_double_tag */ 14886int 14887ppl_BD_Shape_double_widening_assign 14888PPL_PROTO((ppl_BD_Shape_double_t x, 14889 ppl_const_BD_Shape_double_t y)); 14890 14891 14892 14893 14894/*! \relates ppl_BD_Shape_double_tag */ 14895int 14896ppl_BD_Shape_double_limited_BHMZ05_extrapolation_assign_with_tokens 14897PPL_PROTO((ppl_BD_Shape_double_t x, 14898 ppl_const_BD_Shape_double_t y, 14899 ppl_const_Constraint_System_t cs, 14900 unsigned* tp)); 14901 14902/*! \relates ppl_BD_Shape_double_tag */ 14903int 14904ppl_BD_Shape_double_limited_H79_extrapolation_assign_with_tokens 14905PPL_PROTO((ppl_BD_Shape_double_t x, 14906 ppl_const_BD_Shape_double_t y, 14907 ppl_const_Constraint_System_t cs, 14908 unsigned* tp)); 14909 14910/*! \relates ppl_BD_Shape_double_tag */ 14911int 14912ppl_BD_Shape_double_limited_CC76_extrapolation_assign_with_tokens 14913PPL_PROTO((ppl_BD_Shape_double_t x, 14914 ppl_const_BD_Shape_double_t y, 14915 ppl_const_Constraint_System_t cs, 14916 unsigned* tp)); 14917 14918 14919 14920 14921 14922 14923 14924/*! \relates ppl_BD_Shape_double_tag */ 14925int 14926ppl_BD_Shape_double_limited_BHMZ05_extrapolation_assign 14927PPL_PROTO((ppl_BD_Shape_double_t x, 14928 ppl_const_BD_Shape_double_t y, 14929 ppl_const_Constraint_System_t cs)); 14930 14931/*! \relates ppl_BD_Shape_double_tag */ 14932int 14933ppl_BD_Shape_double_limited_H79_extrapolation_assign 14934PPL_PROTO((ppl_BD_Shape_double_t x, 14935 ppl_const_BD_Shape_double_t y, 14936 ppl_const_Constraint_System_t cs)); 14937 14938/*! \relates ppl_BD_Shape_double_tag */ 14939int 14940ppl_BD_Shape_double_limited_CC76_extrapolation_assign 14941PPL_PROTO((ppl_BD_Shape_double_t x, 14942 ppl_const_BD_Shape_double_t y, 14943 ppl_const_Constraint_System_t cs)); 14944 14945 14946 14947 14948 14949 14950 14951/*! \relates ppl_BD_Shape_double_tag */ 14952int 14953ppl_BD_Shape_double_CC76_extrapolation_assign_with_tokens 14954PPL_PROTO((ppl_BD_Shape_double_t x, 14955 ppl_const_BD_Shape_double_t y, 14956 unsigned* tp)); 14957 14958 14959 14960 14961 14962/*! \relates ppl_BD_Shape_double_tag */ 14963int 14964ppl_BD_Shape_double_CC76_extrapolation_assign 14965PPL_PROTO((ppl_BD_Shape_double_t x, 14966 ppl_const_BD_Shape_double_t y)); 14967 14968 14969 14970 14971 14972/*! \relates ppl_BD_Shape_double_tag */ 14973int 14974ppl_BD_Shape_double_CC76_narrowing_assign 14975PPL_PROTO((ppl_BD_Shape_double_t x, 14976 ppl_const_BD_Shape_double_t y)); 14977 14978 14979 14980 14981 14982/*! \relates ppl_BD_Shape_double_tag */ 14983int 14984ppl_BD_Shape_double_linear_partition 14985PPL_PROTO((ppl_const_BD_Shape_double_t x, 14986 ppl_const_BD_Shape_double_t y, 14987 ppl_BD_Shape_double_t* p_inters, 14988 ppl_Pointset_Powerset_NNC_Polyhedron_t* p_rest)); 14989 14990 14991 14992 14993 14994/*! \relates ppl_BD_Shape_double_tag */ 14995int 14996ppl_BD_Shape_double_wrap_assign 14997PPL_PROTO((ppl_BD_Shape_double_t ph, 14998 ppl_dimension_type ds[], 14999 size_t n, 15000 enum ppl_enum_Bounded_Integer_Type_Width w, 15001 enum ppl_enum_Bounded_Integer_Type_Representation r, 15002 enum ppl_enum_Bounded_Integer_Type_Overflow o, 15003 const ppl_const_Constraint_System_t* pcs, 15004 unsigned complexity_threshold, 15005 int wrap_individually)); 15006 15007 15008 15009/*! \relates ppl_BD_Shape_double_tag */ 15010int 15011ppl_new_BD_Shape_double_recycle_Constraint_System 15012PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_Constraint_System_t cs)); 15013 15014/*! \relates ppl_BD_Shape_double_tag */ 15015int 15016ppl_new_BD_Shape_double_recycle_Congruence_System 15017PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_Congruence_System_t cs)); 15018 15019/*! \relates ppl_BD_Shape_double_tag */ 15020int 15021ppl_new_BD_Shape_double_recycle_Generator_System 15022PPL_PROTO((ppl_BD_Shape_double_t* pph, ppl_Generator_System_t cs)); 15023 15024 15025 15026 15027 15028 15029/*! \relates ppl_BD_Shape_double_tag */ 15030int 15031ppl_assign_BD_Shape_double_from_BD_Shape_double 15032PPL_PROTO((ppl_BD_Shape_double_t dst, ppl_const_BD_Shape_double_t src)); 15033 15034 15035 15036 15037 15038/*! \relates ppl_BD_Shape_double_tag */ 15039int 15040ppl_BD_Shape_double_add_recycled_constraints 15041PPL_PROTO((ppl_BD_Shape_double_t ph, 15042 ppl_Constraint_System_t cs)); 15043 15044/*! \relates ppl_BD_Shape_double_tag */ 15045int 15046ppl_BD_Shape_double_add_recycled_congruences 15047PPL_PROTO((ppl_BD_Shape_double_t ph, 15048 ppl_Congruence_System_t cs)); 15049 15050 15051 15052 15053 15054/*! \relates ppl_BD_Shape_double_tag */ 15055int 15056ppl_termination_test_MS_BD_Shape_double 15057PPL_PROTO((ppl_const_BD_Shape_double_t pset)); 15058 15059/*! \relates ppl_BD_Shape_double_tag */ 15060int 15061ppl_termination_test_PR_BD_Shape_double 15062PPL_PROTO((ppl_const_BD_Shape_double_t pset)); 15063 15064 15065 15066 15067 15068 15069/*! \relates ppl_BD_Shape_double_tag */ 15070int 15071ppl_one_affine_ranking_function_MS_BD_Shape_double 15072PPL_PROTO((ppl_const_BD_Shape_double_t pset, 15073 ppl_Generator_t point)); 15074 15075/*! \relates ppl_BD_Shape_double_tag */ 15076int 15077ppl_one_affine_ranking_function_PR_BD_Shape_double 15078PPL_PROTO((ppl_const_BD_Shape_double_t pset, 15079 ppl_Generator_t point)); 15080 15081 15082 15083 15084 15085 15086/*! \relates ppl_BD_Shape_double_tag */ 15087int 15088ppl_all_affine_ranking_functions_MS_BD_Shape_double 15089PPL_PROTO((ppl_const_BD_Shape_double_t pset, 15090 ppl_Polyhedron_t ph)); 15091 15092/*! \relates ppl_BD_Shape_double_tag */ 15093int 15094ppl_all_affine_ranking_functions_PR_BD_Shape_double 15095PPL_PROTO((ppl_const_BD_Shape_double_t pset, 15096 ppl_Polyhedron_t ph)); 15097 15098 15099 15100 15101 15102 15103/*! \relates ppl_BD_Shape_double_tag */ 15104int 15105ppl_termination_test_MS_BD_Shape_double_2 15106PPL_PROTO((ppl_const_BD_Shape_double_t pset_before, ppl_const_BD_Shape_double_t pset_after)); 15107 15108/*! \relates ppl_BD_Shape_double_tag */ 15109int 15110ppl_termination_test_PR_BD_Shape_double_2 15111PPL_PROTO((ppl_const_BD_Shape_double_t pset_before, ppl_const_BD_Shape_double_t pset_after)); 15112 15113 15114 15115 15116 15117 15118/*! \relates ppl_BD_Shape_double_tag */ 15119int 15120ppl_one_affine_ranking_function_MS_BD_Shape_double_2 15121PPL_PROTO((ppl_const_BD_Shape_double_t pset_before, 15122 ppl_const_BD_Shape_double_t pset_after, 15123 ppl_Generator_t point)); 15124 15125/*! \relates ppl_BD_Shape_double_tag */ 15126int 15127ppl_one_affine_ranking_function_PR_BD_Shape_double_2 15128PPL_PROTO((ppl_const_BD_Shape_double_t pset_before, 15129 ppl_const_BD_Shape_double_t pset_after, 15130 ppl_Generator_t point)); 15131 15132 15133 15134 15135 15136 15137/*! \relates ppl_BD_Shape_double_tag */ 15138int 15139ppl_all_affine_ranking_functions_MS_BD_Shape_double_2 15140PPL_PROTO((ppl_const_BD_Shape_double_t pset_before, 15141 ppl_const_BD_Shape_double_t pset_after, 15142 ppl_Polyhedron_t ph)); 15143 15144/*! \relates ppl_BD_Shape_double_tag */ 15145int 15146ppl_all_affine_ranking_functions_PR_BD_Shape_double_2 15147PPL_PROTO((ppl_const_BD_Shape_double_t pset_before, 15148 ppl_const_BD_Shape_double_t pset_after, 15149 ppl_Polyhedron_t ph)); 15150 15151 15152 15153 15154 15155 15156 15157PPL_DECLARE_IO_FUNCTIONS(BD_Shape_double) 15158 15159/* End of Functions Related to ppl_BD_Shape_double_tag */ 15160 15161/*! \interface ppl_Octagonal_Shape_double_tag 15162 \brief Types and functions for ppl_Octagonal_Shape_double_tag 15163*/ 15164 15165/*! \relates ppl_Octagonal_Shape_double_tag */ 15166int 15167ppl_delete_Octagonal_Shape_double 15168PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph)); 15169 15170 15171 15172 15173/*! \relates ppl_Octagonal_Shape_double_tag */ 15174int 15175ppl_new_Octagonal_Shape_double_from_space_dimension 15176PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_dimension_type d, int empty)); 15177 15178 15179 15180 15181 15182/*! \relates ppl_Octagonal_Shape_double_tag */ 15183int 15184ppl_new_Octagonal_Shape_double_from_C_Polyhedron 15185PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Polyhedron_t ph)); 15186 15187/*! \relates ppl_Octagonal_Shape_double_tag */ 15188int 15189ppl_new_Octagonal_Shape_double_from_NNC_Polyhedron 15190PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Polyhedron_t ph)); 15191 15192/*! \relates ppl_Octagonal_Shape_double_tag */ 15193int 15194ppl_new_Octagonal_Shape_double_from_Grid 15195PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Grid_t ph)); 15196 15197/*! \relates ppl_Octagonal_Shape_double_tag */ 15198int 15199ppl_new_Octagonal_Shape_double_from_Rational_Box 15200PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Rational_Box_t ph)); 15201 15202/*! \relates ppl_Octagonal_Shape_double_tag */ 15203int 15204ppl_new_Octagonal_Shape_double_from_BD_Shape_mpz_class 15205PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_BD_Shape_mpz_class_t ph)); 15206 15207/*! \relates ppl_Octagonal_Shape_double_tag */ 15208int 15209ppl_new_Octagonal_Shape_double_from_BD_Shape_mpq_class 15210PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_BD_Shape_mpq_class_t ph)); 15211 15212/*! \relates ppl_Octagonal_Shape_double_tag */ 15213int 15214ppl_new_Octagonal_Shape_double_from_Octagonal_Shape_mpz_class 15215PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph)); 15216 15217/*! \relates ppl_Octagonal_Shape_double_tag */ 15218int 15219ppl_new_Octagonal_Shape_double_from_Octagonal_Shape_mpq_class 15220PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph)); 15221 15222/*! \relates ppl_Octagonal_Shape_double_tag */ 15223int 15224ppl_new_Octagonal_Shape_double_from_Double_Box 15225PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Double_Box_t ph)); 15226 15227/*! \relates ppl_Octagonal_Shape_double_tag */ 15228int 15229ppl_new_Octagonal_Shape_double_from_BD_Shape_double 15230PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_BD_Shape_double_t ph)); 15231 15232/*! \relates ppl_Octagonal_Shape_double_tag */ 15233int 15234ppl_new_Octagonal_Shape_double_from_Octagonal_Shape_double 15235PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Octagonal_Shape_double_t ph)); 15236 15237 15238 15239 15240 15241 15242/*! \relates ppl_Octagonal_Shape_double_tag */ 15243int 15244ppl_new_Octagonal_Shape_double_from_C_Polyhedron_with_complexity 15245PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 15246 15247/*! \relates ppl_Octagonal_Shape_double_tag */ 15248int 15249ppl_new_Octagonal_Shape_double_from_NNC_Polyhedron_with_complexity 15250PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Polyhedron_t ph, int complexity)); 15251 15252/*! \relates ppl_Octagonal_Shape_double_tag */ 15253int 15254ppl_new_Octagonal_Shape_double_from_Grid_with_complexity 15255PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Grid_t ph, int complexity)); 15256 15257/*! \relates ppl_Octagonal_Shape_double_tag */ 15258int 15259ppl_new_Octagonal_Shape_double_from_Rational_Box_with_complexity 15260PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Rational_Box_t ph, int complexity)); 15261 15262/*! \relates ppl_Octagonal_Shape_double_tag */ 15263int 15264ppl_new_Octagonal_Shape_double_from_BD_Shape_mpz_class_with_complexity 15265PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_BD_Shape_mpz_class_t ph, int complexity)); 15266 15267/*! \relates ppl_Octagonal_Shape_double_tag */ 15268int 15269ppl_new_Octagonal_Shape_double_from_BD_Shape_mpq_class_with_complexity 15270PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_BD_Shape_mpq_class_t ph, int complexity)); 15271 15272/*! \relates ppl_Octagonal_Shape_double_tag */ 15273int 15274ppl_new_Octagonal_Shape_double_from_Octagonal_Shape_mpz_class_with_complexity 15275PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Octagonal_Shape_mpz_class_t ph, int complexity)); 15276 15277/*! \relates ppl_Octagonal_Shape_double_tag */ 15278int 15279ppl_new_Octagonal_Shape_double_from_Octagonal_Shape_mpq_class_with_complexity 15280PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Octagonal_Shape_mpq_class_t ph, int complexity)); 15281 15282/*! \relates ppl_Octagonal_Shape_double_tag */ 15283int 15284ppl_new_Octagonal_Shape_double_from_Double_Box_with_complexity 15285PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Double_Box_t ph, int complexity)); 15286 15287/*! \relates ppl_Octagonal_Shape_double_tag */ 15288int 15289ppl_new_Octagonal_Shape_double_from_BD_Shape_double_with_complexity 15290PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_BD_Shape_double_t ph, int complexity)); 15291 15292/*! \relates ppl_Octagonal_Shape_double_tag */ 15293int 15294ppl_new_Octagonal_Shape_double_from_Octagonal_Shape_double_with_complexity 15295PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Octagonal_Shape_double_t ph, int complexity)); 15296 15297 15298 15299 15300 15301 15302/*! \relates ppl_Octagonal_Shape_double_tag */ 15303int 15304ppl_new_Octagonal_Shape_double_from_Constraint_System 15305PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Constraint_System_t cs)); 15306 15307/*! \relates ppl_Octagonal_Shape_double_tag */ 15308int 15309ppl_new_Octagonal_Shape_double_from_Congruence_System 15310PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Congruence_System_t cs)); 15311 15312/*! \relates ppl_Octagonal_Shape_double_tag */ 15313int 15314ppl_new_Octagonal_Shape_double_from_Generator_System 15315PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_const_Generator_System_t cs)); 15316 15317 15318 15319 15320 15321 15322 15323 15324/*! \relates ppl_Octagonal_Shape_double_tag */ 15325int 15326ppl_Octagonal_Shape_double_space_dimension 15327PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, ppl_dimension_type* m)); 15328 15329/*! \relates ppl_Octagonal_Shape_double_tag */ 15330int 15331ppl_Octagonal_Shape_double_affine_dimension 15332PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, ppl_dimension_type* m)); 15333 15334 15335 15336 15337 15338/*! \relates ppl_Octagonal_Shape_double_tag */ 15339int 15340ppl_Octagonal_Shape_double_relation_with_Constraint 15341PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, 15342 ppl_const_Constraint_t c)); 15343 15344/*! \relates ppl_Octagonal_Shape_double_tag */ 15345int 15346ppl_Octagonal_Shape_double_relation_with_Generator 15347PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, 15348 ppl_const_Generator_t c)); 15349 15350/*! \relates ppl_Octagonal_Shape_double_tag */ 15351int 15352ppl_Octagonal_Shape_double_relation_with_Congruence 15353PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, 15354 ppl_const_Congruence_t c)); 15355 15356 15357 15358 15359 15360/*! \relates ppl_Octagonal_Shape_double_tag */ 15361int 15362ppl_Octagonal_Shape_double_get_constraints 15363PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, 15364 ppl_const_Constraint_System_t* pcs)); 15365 15366/*! \relates ppl_Octagonal_Shape_double_tag */ 15367int 15368ppl_Octagonal_Shape_double_get_congruences 15369PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, 15370 ppl_const_Congruence_System_t* pcs)); 15371 15372 15373 15374 15375 15376/*! \relates ppl_Octagonal_Shape_double_tag */ 15377int 15378ppl_Octagonal_Shape_double_get_minimized_constraints 15379PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, 15380 ppl_const_Constraint_System_t* pcs)); 15381 15382/*! \relates ppl_Octagonal_Shape_double_tag */ 15383int 15384ppl_Octagonal_Shape_double_get_minimized_congruences 15385PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, 15386 ppl_const_Congruence_System_t* pcs)); 15387 15388 15389 15390 15391 15392/*! \relates ppl_Octagonal_Shape_double_tag */ 15393int 15394ppl_Octagonal_Shape_double_is_empty 15395PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph)); 15396 15397/*! \relates ppl_Octagonal_Shape_double_tag */ 15398int 15399ppl_Octagonal_Shape_double_is_universe 15400PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph)); 15401 15402/*! \relates ppl_Octagonal_Shape_double_tag */ 15403int 15404ppl_Octagonal_Shape_double_is_bounded 15405PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph)); 15406 15407/*! \relates ppl_Octagonal_Shape_double_tag */ 15408int 15409ppl_Octagonal_Shape_double_contains_integer_point 15410PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph)); 15411 15412/*! \relates ppl_Octagonal_Shape_double_tag */ 15413int 15414ppl_Octagonal_Shape_double_is_topologically_closed 15415PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph)); 15416 15417/*! \relates ppl_Octagonal_Shape_double_tag */ 15418int 15419ppl_Octagonal_Shape_double_is_discrete 15420PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph)); 15421 15422 15423 15424 15425 15426/*! \relates ppl_Octagonal_Shape_double_tag */ 15427int 15428ppl_Octagonal_Shape_double_topological_closure_assign 15429PPL_PROTO((ppl_Octagonal_Shape_double_t ph)); 15430 15431 15432 15433 15434 15435/*! \relates ppl_Octagonal_Shape_double_tag */ 15436int 15437ppl_Octagonal_Shape_double_bounds_from_above 15438PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, 15439 ppl_const_Linear_Expression_t le)); 15440 15441/*! \relates ppl_Octagonal_Shape_double_tag */ 15442int 15443ppl_Octagonal_Shape_double_bounds_from_below 15444PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, 15445 ppl_const_Linear_Expression_t le)); 15446 15447 15448 15449 15450 15451/*! \relates ppl_Octagonal_Shape_double_tag */ 15452int 15453ppl_Octagonal_Shape_double_maximize 15454PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, 15455 ppl_const_Linear_Expression_t le, 15456 ppl_Coefficient_t ext_n, 15457 ppl_Coefficient_t ext_d, 15458 int* poptimum)); 15459 15460/*! \relates ppl_Octagonal_Shape_double_tag */ 15461int 15462ppl_Octagonal_Shape_double_minimize 15463PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, 15464 ppl_const_Linear_Expression_t le, 15465 ppl_Coefficient_t ext_n, 15466 ppl_Coefficient_t ext_d, 15467 int* poptimum)); 15468 15469 15470 15471 15472 15473/*! \relates ppl_Octagonal_Shape_double_tag */ 15474int 15475ppl_Octagonal_Shape_double_maximize_with_point 15476PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, 15477 ppl_const_Linear_Expression_t le, 15478 ppl_Coefficient_t ext_n, 15479 ppl_Coefficient_t ext_d, 15480 int* poptimum, 15481 ppl_Generator_t point)); 15482 15483/*! \relates ppl_Octagonal_Shape_double_tag */ 15484int 15485ppl_Octagonal_Shape_double_minimize_with_point 15486PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, 15487 ppl_const_Linear_Expression_t le, 15488 ppl_Coefficient_t ext_n, 15489 ppl_Coefficient_t ext_d, 15490 int* poptimum, 15491 ppl_Generator_t point)); 15492 15493 15494 15495 15496 15497/*! \relates ppl_Octagonal_Shape_double_tag */ 15498int 15499ppl_Octagonal_Shape_double_frequency 15500PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph, 15501 ppl_const_Linear_Expression_t le, 15502 ppl_Coefficient_t ext_fn, 15503 ppl_Coefficient_t ext_fd, 15504 ppl_Coefficient_t ext_vn, 15505 ppl_Coefficient_t ext_vd)); 15506 15507 15508 15509 15510/*! \relates ppl_Octagonal_Shape_double_tag */ 15511int 15512ppl_Octagonal_Shape_double_contains_Octagonal_Shape_double 15513PPL_PROTO((ppl_const_Octagonal_Shape_double_t x, 15514 ppl_const_Octagonal_Shape_double_t y)); 15515 15516/*! \relates ppl_Octagonal_Shape_double_tag */ 15517int 15518ppl_Octagonal_Shape_double_strictly_contains_Octagonal_Shape_double 15519PPL_PROTO((ppl_const_Octagonal_Shape_double_t x, 15520 ppl_const_Octagonal_Shape_double_t y)); 15521 15522/*! \relates ppl_Octagonal_Shape_double_tag */ 15523int 15524ppl_Octagonal_Shape_double_is_disjoint_from_Octagonal_Shape_double 15525PPL_PROTO((ppl_const_Octagonal_Shape_double_t x, 15526 ppl_const_Octagonal_Shape_double_t y)); 15527 15528 15529 15530 15531 15532/*! \relates ppl_Octagonal_Shape_double_tag */ 15533int 15534ppl_Octagonal_Shape_double_equals_Octagonal_Shape_double 15535PPL_PROTO((ppl_const_Octagonal_Shape_double_t x, 15536 ppl_const_Octagonal_Shape_double_t y)); 15537 15538 15539 15540 15541/*! \relates ppl_Octagonal_Shape_double_tag */ 15542int 15543ppl_Octagonal_Shape_double_OK 15544PPL_PROTO((ppl_const_Octagonal_Shape_double_t ph)); 15545 15546 15547 15548 15549/*! \relates ppl_Octagonal_Shape_double_tag */ 15550int 15551ppl_Octagonal_Shape_double_add_constraint 15552PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15553 ppl_const_Constraint_t c)); 15554 15555/*! \relates ppl_Octagonal_Shape_double_tag */ 15556int 15557ppl_Octagonal_Shape_double_add_congruence 15558PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15559 ppl_const_Congruence_t c)); 15560 15561 15562 15563 15564 15565/*! \relates ppl_Octagonal_Shape_double_tag */ 15566int 15567ppl_Octagonal_Shape_double_add_constraints 15568PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15569 ppl_const_Constraint_System_t cs)); 15570 15571/*! \relates ppl_Octagonal_Shape_double_tag */ 15572int 15573ppl_Octagonal_Shape_double_add_congruences 15574PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15575 ppl_const_Congruence_System_t cs)); 15576 15577 15578 15579 15580 15581/*! \relates ppl_Octagonal_Shape_double_tag */ 15582int 15583ppl_Octagonal_Shape_double_refine_with_constraint 15584PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15585 ppl_const_Constraint_t c)); 15586 15587/*! \relates ppl_Octagonal_Shape_double_tag */ 15588int 15589ppl_Octagonal_Shape_double_refine_with_congruence 15590PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15591 ppl_const_Congruence_t c)); 15592 15593 15594 15595 15596 15597/*! \relates ppl_Octagonal_Shape_double_tag */ 15598int 15599ppl_Octagonal_Shape_double_refine_with_constraints 15600PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15601 ppl_const_Constraint_System_t cs)); 15602 15603/*! \relates ppl_Octagonal_Shape_double_tag */ 15604int 15605ppl_Octagonal_Shape_double_refine_with_congruences 15606PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15607 ppl_const_Congruence_System_t cs)); 15608 15609 15610 15611 15612 15613/*! \relates ppl_Octagonal_Shape_double_tag */ 15614int 15615ppl_Octagonal_Shape_double_intersection_assign 15616PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15617 ppl_const_Octagonal_Shape_double_t y)); 15618 15619/*! \relates ppl_Octagonal_Shape_double_tag */ 15620int 15621ppl_Octagonal_Shape_double_upper_bound_assign 15622PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15623 ppl_const_Octagonal_Shape_double_t y)); 15624 15625/*! \relates ppl_Octagonal_Shape_double_tag */ 15626int 15627ppl_Octagonal_Shape_double_difference_assign 15628PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15629 ppl_const_Octagonal_Shape_double_t y)); 15630 15631/*! \relates ppl_Octagonal_Shape_double_tag */ 15632int 15633ppl_Octagonal_Shape_double_concatenate_assign 15634PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15635 ppl_const_Octagonal_Shape_double_t y)); 15636 15637/*! \relates ppl_Octagonal_Shape_double_tag */ 15638int 15639ppl_Octagonal_Shape_double_time_elapse_assign 15640PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15641 ppl_const_Octagonal_Shape_double_t y)); 15642 15643 15644 15645 15646 15647/*! \relates ppl_Octagonal_Shape_double_tag */ 15648int 15649ppl_Octagonal_Shape_double_upper_bound_assign_if_exact 15650PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15651 ppl_const_Octagonal_Shape_double_t y)); 15652 15653 15654 15655 15656 15657/*! \relates ppl_Octagonal_Shape_double_tag */ 15658int 15659ppl_Octagonal_Shape_double_simplify_using_context_assign 15660PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15661 ppl_const_Octagonal_Shape_double_t y)); 15662 15663 15664 15665 15666/*! \relates ppl_Octagonal_Shape_double_tag */ 15667int 15668ppl_Octagonal_Shape_double_constrains 15669PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15670 ppl_dimension_type var)); 15671 15672 15673 15674 15675/*! \relates ppl_Octagonal_Shape_double_tag */ 15676int 15677ppl_Octagonal_Shape_double_unconstrain_space_dimension 15678PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15679 ppl_dimension_type var)); 15680 15681 15682 15683 15684/*! \relates ppl_Octagonal_Shape_double_tag */ 15685int 15686ppl_Octagonal_Shape_double_unconstrain_space_dimensions 15687PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15688 ppl_dimension_type ds[], 15689 size_t n)); 15690 15691 15692 15693 15694/*! \relates ppl_Octagonal_Shape_double_tag */ 15695int 15696ppl_Octagonal_Shape_double_affine_image 15697PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15698 ppl_dimension_type var, 15699 ppl_const_Linear_Expression_t le, 15700 ppl_const_Coefficient_t d)); 15701 15702/*! \relates ppl_Octagonal_Shape_double_tag */ 15703int 15704ppl_Octagonal_Shape_double_affine_preimage 15705PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15706 ppl_dimension_type var, 15707 ppl_const_Linear_Expression_t le, 15708 ppl_const_Coefficient_t d)); 15709 15710 15711 15712 15713 15714/*! \relates ppl_Octagonal_Shape_double_tag */ 15715int 15716ppl_Octagonal_Shape_double_bounded_affine_image 15717PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15718 ppl_dimension_type var, 15719 ppl_const_Linear_Expression_t lb, 15720 ppl_const_Linear_Expression_t ub, 15721 ppl_const_Coefficient_t d)); 15722 15723/*! \relates ppl_Octagonal_Shape_double_tag */ 15724int 15725ppl_Octagonal_Shape_double_bounded_affine_preimage 15726PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15727 ppl_dimension_type var, 15728 ppl_const_Linear_Expression_t lb, 15729 ppl_const_Linear_Expression_t ub, 15730 ppl_const_Coefficient_t d)); 15731 15732 15733 15734 15735 15736/*! \relates ppl_Octagonal_Shape_double_tag */ 15737int 15738ppl_Octagonal_Shape_double_generalized_affine_image 15739PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15740 ppl_dimension_type var, 15741 enum ppl_enum_Constraint_Type relsym, 15742 ppl_const_Linear_Expression_t le, 15743 ppl_const_Coefficient_t d)); 15744 15745/*! \relates ppl_Octagonal_Shape_double_tag */ 15746int 15747ppl_Octagonal_Shape_double_generalized_affine_preimage 15748PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15749 ppl_dimension_type var, 15750 enum ppl_enum_Constraint_Type relsym, 15751 ppl_const_Linear_Expression_t le, 15752 ppl_const_Coefficient_t d)); 15753 15754 15755 15756 15757 15758/*! \relates ppl_Octagonal_Shape_double_tag */ 15759int 15760ppl_Octagonal_Shape_double_generalized_affine_image_lhs_rhs 15761PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15762 ppl_const_Linear_Expression_t lhs, 15763 enum ppl_enum_Constraint_Type relsym, 15764 ppl_const_Linear_Expression_t rhs)); 15765 15766/*! \relates ppl_Octagonal_Shape_double_tag */ 15767int 15768ppl_Octagonal_Shape_double_generalized_affine_preimage_lhs_rhs 15769PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15770 ppl_const_Linear_Expression_t lhs, 15771 enum ppl_enum_Constraint_Type relsym, 15772 ppl_const_Linear_Expression_t rhs)); 15773 15774 15775 15776 15777 15778/*! \relates ppl_Octagonal_Shape_double_tag */ 15779int 15780ppl_Octagonal_Shape_double_add_space_dimensions_and_embed 15781PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15782 ppl_dimension_type d)); 15783 15784/*! \relates ppl_Octagonal_Shape_double_tag */ 15785int 15786ppl_Octagonal_Shape_double_add_space_dimensions_and_project 15787PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15788 ppl_dimension_type d)); 15789 15790 15791 15792 15793 15794/*! \relates ppl_Octagonal_Shape_double_tag */ 15795int 15796ppl_Octagonal_Shape_double_remove_space_dimensions 15797PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15798 ppl_dimension_type ds[], 15799 size_t n)); 15800 15801 15802 15803 15804/*! \relates ppl_Octagonal_Shape_double_tag */ 15805int 15806ppl_Octagonal_Shape_double_remove_higher_space_dimensions 15807PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15808 ppl_dimension_type d)); 15809 15810 15811 15812 15813/*! \relates ppl_Octagonal_Shape_double_tag */ 15814int 15815ppl_Octagonal_Shape_double_expand_space_dimension 15816PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15817 ppl_dimension_type d, 15818 ppl_dimension_type m)); 15819 15820 15821 15822 15823/*! \relates ppl_Octagonal_Shape_double_tag */ 15824int 15825ppl_Octagonal_Shape_double_fold_space_dimensions 15826PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15827 ppl_dimension_type ds[], 15828 size_t n, 15829 ppl_dimension_type d)); 15830 15831 15832 15833 15834/*! \relates ppl_Octagonal_Shape_double_tag */ 15835int 15836ppl_Octagonal_Shape_double_map_space_dimensions 15837PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15838 ppl_dimension_type maps[], 15839 size_t n)); 15840 15841 15842 15843 15844/*! \relates ppl_Octagonal_Shape_double_tag */ 15845int 15846ppl_Octagonal_Shape_double_drop_some_non_integer_points 15847PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15848 int complexity)); 15849 15850 15851 15852 15853/*! \relates ppl_Octagonal_Shape_double_tag */ 15854int 15855ppl_Octagonal_Shape_double_drop_some_non_integer_points_2 15856PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 15857 ppl_dimension_type ds[], 15858 size_t n, 15859 int complexity)); 15860 15861 15862 15863 15864 15865 15866/*! \relates ppl_Octagonal_Shape_double_tag */ 15867int 15868ppl_Octagonal_Shape_double_external_memory_in_bytes 15869PPL_PROTO((ppl_const_Octagonal_Shape_double_t ps, 15870 size_t* sz)); 15871 15872/*! \relates ppl_Octagonal_Shape_double_tag */ 15873int 15874ppl_Octagonal_Shape_double_total_memory_in_bytes 15875PPL_PROTO((ppl_const_Octagonal_Shape_double_t ps, 15876 size_t* sz)); 15877 15878 15879 15880 15881 15882/*! \relates ppl_Octagonal_Shape_double_tag */ 15883int 15884ppl_Octagonal_Shape_double_BHMZ05_widening_assign_with_tokens 15885PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15886 ppl_const_Octagonal_Shape_double_t y, 15887 unsigned* tp)); 15888 15889 15890 15891 15892 15893/*! \relates ppl_Octagonal_Shape_double_tag */ 15894int 15895ppl_Octagonal_Shape_double_BHMZ05_widening_assign 15896PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15897 ppl_const_Octagonal_Shape_double_t y)); 15898 15899 15900 15901 15902 15903/*! \relates ppl_Octagonal_Shape_double_tag */ 15904int 15905ppl_Octagonal_Shape_double_widening_assign_with_tokens 15906PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15907 ppl_const_Octagonal_Shape_double_t y, 15908 unsigned* tp)); 15909 15910 15911 15912 15913/*! \relates ppl_Octagonal_Shape_double_tag */ 15914int 15915ppl_Octagonal_Shape_double_widening_assign 15916PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15917 ppl_const_Octagonal_Shape_double_t y)); 15918 15919 15920 15921 15922/*! \relates ppl_Octagonal_Shape_double_tag */ 15923int 15924ppl_Octagonal_Shape_double_limited_BHMZ05_extrapolation_assign_with_tokens 15925PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15926 ppl_const_Octagonal_Shape_double_t y, 15927 ppl_const_Constraint_System_t cs, 15928 unsigned* tp)); 15929 15930/*! \relates ppl_Octagonal_Shape_double_tag */ 15931int 15932ppl_Octagonal_Shape_double_limited_CC76_extrapolation_assign_with_tokens 15933PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15934 ppl_const_Octagonal_Shape_double_t y, 15935 ppl_const_Constraint_System_t cs, 15936 unsigned* tp)); 15937 15938 15939 15940 15941 15942 15943 15944/*! \relates ppl_Octagonal_Shape_double_tag */ 15945int 15946ppl_Octagonal_Shape_double_limited_BHMZ05_extrapolation_assign 15947PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15948 ppl_const_Octagonal_Shape_double_t y, 15949 ppl_const_Constraint_System_t cs)); 15950 15951/*! \relates ppl_Octagonal_Shape_double_tag */ 15952int 15953ppl_Octagonal_Shape_double_limited_CC76_extrapolation_assign 15954PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15955 ppl_const_Octagonal_Shape_double_t y, 15956 ppl_const_Constraint_System_t cs)); 15957 15958 15959 15960 15961 15962 15963 15964/*! \relates ppl_Octagonal_Shape_double_tag */ 15965int 15966ppl_Octagonal_Shape_double_CC76_extrapolation_assign_with_tokens 15967PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15968 ppl_const_Octagonal_Shape_double_t y, 15969 unsigned* tp)); 15970 15971 15972 15973 15974 15975/*! \relates ppl_Octagonal_Shape_double_tag */ 15976int 15977ppl_Octagonal_Shape_double_CC76_extrapolation_assign 15978PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15979 ppl_const_Octagonal_Shape_double_t y)); 15980 15981 15982 15983 15984 15985/*! \relates ppl_Octagonal_Shape_double_tag */ 15986int 15987ppl_Octagonal_Shape_double_CC76_narrowing_assign 15988PPL_PROTO((ppl_Octagonal_Shape_double_t x, 15989 ppl_const_Octagonal_Shape_double_t y)); 15990 15991 15992 15993 15994 15995/*! \relates ppl_Octagonal_Shape_double_tag */ 15996int 15997ppl_Octagonal_Shape_double_linear_partition 15998PPL_PROTO((ppl_const_Octagonal_Shape_double_t x, 15999 ppl_const_Octagonal_Shape_double_t y, 16000 ppl_Octagonal_Shape_double_t* p_inters, 16001 ppl_Pointset_Powerset_NNC_Polyhedron_t* p_rest)); 16002 16003 16004 16005 16006 16007/*! \relates ppl_Octagonal_Shape_double_tag */ 16008int 16009ppl_Octagonal_Shape_double_wrap_assign 16010PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 16011 ppl_dimension_type ds[], 16012 size_t n, 16013 enum ppl_enum_Bounded_Integer_Type_Width w, 16014 enum ppl_enum_Bounded_Integer_Type_Representation r, 16015 enum ppl_enum_Bounded_Integer_Type_Overflow o, 16016 const ppl_const_Constraint_System_t* pcs, 16017 unsigned complexity_threshold, 16018 int wrap_individually)); 16019 16020 16021 16022/*! \relates ppl_Octagonal_Shape_double_tag */ 16023int 16024ppl_new_Octagonal_Shape_double_recycle_Constraint_System 16025PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_Constraint_System_t cs)); 16026 16027/*! \relates ppl_Octagonal_Shape_double_tag */ 16028int 16029ppl_new_Octagonal_Shape_double_recycle_Congruence_System 16030PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_Congruence_System_t cs)); 16031 16032/*! \relates ppl_Octagonal_Shape_double_tag */ 16033int 16034ppl_new_Octagonal_Shape_double_recycle_Generator_System 16035PPL_PROTO((ppl_Octagonal_Shape_double_t* pph, ppl_Generator_System_t cs)); 16036 16037 16038 16039 16040 16041 16042/*! \relates ppl_Octagonal_Shape_double_tag */ 16043int 16044ppl_assign_Octagonal_Shape_double_from_Octagonal_Shape_double 16045PPL_PROTO((ppl_Octagonal_Shape_double_t dst, ppl_const_Octagonal_Shape_double_t src)); 16046 16047 16048 16049 16050 16051/*! \relates ppl_Octagonal_Shape_double_tag */ 16052int 16053ppl_Octagonal_Shape_double_add_recycled_constraints 16054PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 16055 ppl_Constraint_System_t cs)); 16056 16057/*! \relates ppl_Octagonal_Shape_double_tag */ 16058int 16059ppl_Octagonal_Shape_double_add_recycled_congruences 16060PPL_PROTO((ppl_Octagonal_Shape_double_t ph, 16061 ppl_Congruence_System_t cs)); 16062 16063 16064 16065 16066 16067/*! \relates ppl_Octagonal_Shape_double_tag */ 16068int 16069ppl_termination_test_MS_Octagonal_Shape_double 16070PPL_PROTO((ppl_const_Octagonal_Shape_double_t pset)); 16071 16072/*! \relates ppl_Octagonal_Shape_double_tag */ 16073int 16074ppl_termination_test_PR_Octagonal_Shape_double 16075PPL_PROTO((ppl_const_Octagonal_Shape_double_t pset)); 16076 16077 16078 16079 16080 16081 16082/*! \relates ppl_Octagonal_Shape_double_tag */ 16083int 16084ppl_one_affine_ranking_function_MS_Octagonal_Shape_double 16085PPL_PROTO((ppl_const_Octagonal_Shape_double_t pset, 16086 ppl_Generator_t point)); 16087 16088/*! \relates ppl_Octagonal_Shape_double_tag */ 16089int 16090ppl_one_affine_ranking_function_PR_Octagonal_Shape_double 16091PPL_PROTO((ppl_const_Octagonal_Shape_double_t pset, 16092 ppl_Generator_t point)); 16093 16094 16095 16096 16097 16098 16099/*! \relates ppl_Octagonal_Shape_double_tag */ 16100int 16101ppl_all_affine_ranking_functions_MS_Octagonal_Shape_double 16102PPL_PROTO((ppl_const_Octagonal_Shape_double_t pset, 16103 ppl_Polyhedron_t ph)); 16104 16105/*! \relates ppl_Octagonal_Shape_double_tag */ 16106int 16107ppl_all_affine_ranking_functions_PR_Octagonal_Shape_double 16108PPL_PROTO((ppl_const_Octagonal_Shape_double_t pset, 16109 ppl_Polyhedron_t ph)); 16110 16111 16112 16113 16114 16115 16116/*! \relates ppl_Octagonal_Shape_double_tag */ 16117int 16118ppl_termination_test_MS_Octagonal_Shape_double_2 16119PPL_PROTO((ppl_const_Octagonal_Shape_double_t pset_before, ppl_const_Octagonal_Shape_double_t pset_after)); 16120 16121/*! \relates ppl_Octagonal_Shape_double_tag */ 16122int 16123ppl_termination_test_PR_Octagonal_Shape_double_2 16124PPL_PROTO((ppl_const_Octagonal_Shape_double_t pset_before, ppl_const_Octagonal_Shape_double_t pset_after)); 16125 16126 16127 16128 16129 16130 16131/*! \relates ppl_Octagonal_Shape_double_tag */ 16132int 16133ppl_one_affine_ranking_function_MS_Octagonal_Shape_double_2 16134PPL_PROTO((ppl_const_Octagonal_Shape_double_t pset_before, 16135 ppl_const_Octagonal_Shape_double_t pset_after, 16136 ppl_Generator_t point)); 16137 16138/*! \relates ppl_Octagonal_Shape_double_tag */ 16139int 16140ppl_one_affine_ranking_function_PR_Octagonal_Shape_double_2 16141PPL_PROTO((ppl_const_Octagonal_Shape_double_t pset_before, 16142 ppl_const_Octagonal_Shape_double_t pset_after, 16143 ppl_Generator_t point)); 16144 16145 16146 16147 16148 16149 16150/*! \relates ppl_Octagonal_Shape_double_tag */ 16151int 16152ppl_all_affine_ranking_functions_MS_Octagonal_Shape_double_2 16153PPL_PROTO((ppl_const_Octagonal_Shape_double_t pset_before, 16154 ppl_const_Octagonal_Shape_double_t pset_after, 16155 ppl_Polyhedron_t ph)); 16156 16157/*! \relates ppl_Octagonal_Shape_double_tag */ 16158int 16159ppl_all_affine_ranking_functions_PR_Octagonal_Shape_double_2 16160PPL_PROTO((ppl_const_Octagonal_Shape_double_t pset_before, 16161 ppl_const_Octagonal_Shape_double_t pset_after, 16162 ppl_Polyhedron_t ph)); 16163 16164 16165 16166 16167 16168 16169 16170PPL_DECLARE_IO_FUNCTIONS(Octagonal_Shape_double) 16171 16172/* End of Functions Related to ppl_Octagonal_Shape_double_tag */ 16173 16174#ifdef __cplusplus 16175} /* extern "C" */ 16176#endif 16177 16178#undef PPL_TYPE_DECLARATION 16179#undef PPL_PROTO 16180#undef PPL_DECLARE_PRINT_FUNCTIONS 16181#undef PPL_DECLARE_ASCII_DUMP_LOAD_FUNCTIONS 16182#undef PPL_DECLARE_IO_FUNCTIONS 16183#undef PPL_DECLARE_AND_DOCUMENT_PRINT_FUNCTIONS 16184#undef PPL_DECLARE_AND_DOCUMENT_ASCII_DUMP_LOAD_FUNCTIONS 16185#undef PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS 16186 16187#endif /* !defined(PPL_ppl_c_h) */ 16188