Home

The Parma Polyhedra Library C Language Interface User`s Manual

image

Contents

1. Returns a positive integer if cs is well formed i e if it satisfies all its implementation invariants returns 0 and perhaps makes some noise if cs is broken Useful for debugging purposes Functions that May Modify the Congruence System e int ppl_Congruence_System_clear ppl_Congruence_System _t cs Removes all the congruences from the congruence system cs and sets its space dimension to 0 intppl_Congruence_System_insert_Congruence ppl_Congruence_System_t cs ppl_const_Congruence tc Inserts a copy of the congruence c into cs the space dimension is increased if necessary Input Output Functions e intppl io print Congruence_System ppl_const_Congruence_System_t x The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 40 CONTENTS Prints x to stdout int ppl_io_fprint_Congruence_System FILE stream ppl_const_Congruence_System_t x Prints x to the given output st ream e int ppl_io_asprint_Congruence_System char x strp ppl_const_Congruence_System_t x Prints x to a malloc allocated string a pointer to which is returned via st rp e int ppl_Congruence_System_ascii_dump ppl const Congruence System t x FILE stream Dumps an ascii representation of x on st ream e int ppl_Congruence_System_ascii_load ppl Congruence System t x FILE xstream Loads an ascii representation of x from stream 7 51 Detailed Description Types and functions for congruenc
2. intppl_Generator_System_const_iterator_dereference ppl_const_Generator_System_const_iterator _t git ppl const Generator t pg The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 46 CONTENTS Dereference git writing a const handle to the resulting generator at address pg e intppl_Generator_System_const_iterator_increment ppl_Generator_System_const_iterator_t git Increment git so that it points to the next generator intppl_Generator_System_const_iterator_egual test ppl_const_Generator_System_const_iterator _t x ppl_const_Generator_System_const_iterator_t y Returns a positive integer if the iterators corresponding to x and y are equal returns O if they are different 7 10 1 Detailed Description Types and functions for iterating on generator systems The types and functions for generator systems iterators provide read only access to the elements of a generator system by interfacing Generator_System const_iterator The documentation for this interface was generated from the following file ppl_c_header h 7 11 ppl_Generator_System_tag Interface Reference Types and functions for generator systems include lt ppl_c_header h gt Related Functions Note that these are not member functions Constructors Assignment and Destructor e int ppl_new_Generator_System ppl_Generator_System_t pgs Builds an empty system of generators and wr
3. pminimum Will store 1 in this location if the infimum is also the minimum will store O otherwise point Will be assigned the point or closure point where le reaches the extremum value If ph is empty or 1 Le is not bounded from below O will be returned and sup_n sup_d pmaximum and point will be left untouched The PPL C Language Inte rface User s Manual version 1 0 See http bugseng com for more information 80 CONTENTS 7 25 2 17 int ppl_Polyhedron_equals_Polyhedron ppl_const_Polyhedron_t x ppl_const_Polyhedron_t y related Returns a positive integer if x and y are the same polyhedron returns 0 if they are different Note that x and y may be topology and or dimension incompatible polyhedra in those cases the value 0 is returned 7 25 2 18 int ppl Polyhedron add recycled constraints ppl Polyhedron_t ph ppl_Constraint_System_tcs related Adds the system of constraints cs to the system of constraints of ph Warning This function modifies the constraint system referenced by cs upon return no assumption can be made on its value 7 25 2 19 int ppl_Polyhedron_add_recycled_congruences ppl Polyhedron_t ph ppl_Congruence_System_tcs related Adds the system of congruences cs to the polyhedron ph Warning This function modifies the congruence system referenced by cs upon return no assumption can be made on its value 7 25 2 20 int ppl Polyhedron upper bou
4. PPL The Parma Polyhedra Library C Language Interface User s Manual version 1 0 Roberto Bagnara Patricia M Hill Enea Zaffanella Abramo Bagnara June 28 2012 This work has been partly supported by University of Parma s FIL scientific research project ex 60 Pure and Applied Math ematics MURST project Automatic Program Certification by Abstract Interpretation MURST project Abstract Interpretation Type Systems and Control Flow Analysis MURST project Automatic Aggregate and Number Reasoning for Computing from Decision Algorithms to Constraint Programming with Multisets Sets and Maps MURST project Constraint Based Verification of Reactive Systems MURST project Abstract Interpretation Design and Applications EPSRC project Numerical Domains for Software Analysis EPSRC project Geometric Abstractions for Scalable Program Analyzers PbagnaraOcs unipr it Department of Mathematics University of Parma Italy and BUGSENG srl t patricia hill bugseng com BUGSENG srl 8 zaffanella cs unipr it Department of Mathematics University of Parma Italy and BUGSENG srl 1 abramo bagnara bugseng com BUGSENG srl Copyright 2001 2010 Roberto Bagnara bagnara cs unipr it Copyright O 2010 2012 BUGSENG srl http bugseng com This document describes the Parma Polyhedra Library PPL Permission is granted to copy distribute and or modify this document under the term
5. e int ppl_assign_Grid_Generator_from_Grid_ Generator ppl_Grid_Generator_tdst ppl_const_Grid _ Generator tt src Assigns a copy of the grid generator src to dst e int ppl_delete_Grid_Generator ppl_const_Grid_Generator_t g Invalidates the handle g this makes sure the corresponding resources will eventually be released Functions that Do Not Modify the Grid Generator e int ppl_Grid_Generator_space_dimension ppl_const_Grid_Generator_t g ppl_dimension_type m Writes to m the space dimension of g e int ppl_Grid_Generator_type ppl const Grid Generator_t g Returns the type of grid generator g e intppl Grid Generator_coefficient ppl_const_Grid_Generator_t g ppl dimension_type var ppl _Coefficient_t n Copies into n the coefficient of variable var in grid generator g e int ppl_Grid_Generator_divisor ppl_const_Grid_Generator_t g ppl_Coefficient_t n If g is a point or a parameter assigns its divisor to n int ppl_Grid_Generator_OK ppl_const_Grid_Generator_t g Returns a positive integer if g is well formed i e if it satisfies all its implementation invariants returns 0 and perhaps makes some noise if g is broken Useful for debugging purposes Input Output Functions intppl io print Grid Generator ppl_const_Grid_Generator_t x Prints x to stdout int ppl_io_fprint_Grid_Generator FILE xstream ppl_const_Grid_Generator_t x Prints x to the given output stream e int ppl_io_asprint_Grid_Generator char strp
6. users freedom to change the software The systematic pattern of such abuse occurs in the area of products for individuals to use which is precisely where it is most unacceptable Therefore we have designed this version of the GPL to prohibit the practice for those products If such problems arise substantially in other domains we stand ready to extend this provision to those domains in future versions of the GPL as needed to protect the freedom of users Finally every program is threatened constantly by software patents States should not allow patents to restrict development and use of software on general purpose computers but in those that do we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary To prevent this the GPL assures that patents cannot be used to render the program non free The precise terms and conditions for copying distribution and modification follow TERMS AND CONDITIONS 0 Definitions This License refers to version 3 of the GNU General Public License Copyright also means copyright like laws that apply to other kinds of works such as semiconductor masks The Program refers to any copyrightable work licensed under this License Each licensee is addressed as you Licensees and recipients may be individuals or organizations To modify a work means to copy from or adapt all or part of the work in a fashion regui
7. if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation Moreover your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means this is the first time you have received notice of violation of this License for any work from that copyright holder and you cure the violation prior to 30 days after your receipt of the notice The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 8 CONTENTS Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License If your rights have been terminated and not permanently reinstated you do not gualify to receive new licenses for the same material under section 10 9 Acceptance Not Reguired for Having Copies You are not reguired to accept this License in order to receive or run a copy of the Program Ancillary propagation of a covered work occurring solely as a conseguence of using peer to peer transmission to receive a copy likewise does not reguire acceptance However nothing other than this License grants you permission to propagate or modify any covered work These actions infringe copyright if you do not accept this License Therefore by modifying or propagating a covered work you indicate your accepta
8. ppl_dimension_type maps size tn Remaps the dimensions of the vector space according to a partial function This function is specified by means of the maps array which has n entries e int ppl_Polyhedron_expand_space_dimension ppl_Polyhedron_t ph ppl_dimension_type d ppl _dimension_type m Expands the d th dimension of the vector space enclosing ph to m new space dimensions e intppl_Polyhedron_fold_space_dimensions ppl_Polyhedron_t ph ppl_dimension_type ds size _tn ppl_dimension_type d Modifies ph by folding the space dimensions contained in the first n positions of the array ds into dimension d The presence of duplicates in ds is a waste but an innocuous one Input Output Functions int ppl_io_print_Polyhedron ppl_const_Polyhedron_t x Prints x to stdout e int ppl_io_fprint_Polyhedron FILE stream ppl_const_Polyhedron_t x Prints x to the given output st ream e int ppl_io_asprint_Polyhedron char strp ppl_const_Polyhedron_t x Prints x to a malloc allocated string a pointer to which is returned via st rp e int ppl_Polyhedron_ascii_dump ppl_const_Polyhedron_t x FILE stream Dumps an ascii representation of x on stream e int ppl Polyhedron_ascii_load ppl_Polyhedron_t x FILE stream Loads an ascii representation of x from stream Ad Hoc Functions for C or NNC Polyhedra The functions listed here below being specific of the polyhedron domains do not have a correspondence in other semantic geometric d
9. unsigned int PPL_POLY_CON_RELATION_IS_INCLUDED Individual bit saying that the polyhedron is included in the set of points satisfying the constraint unsigned int PPL_POLY_CON_RELATION_SATURATES The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 32 CONTENTS Individual bit saying that the polyhedron is included in the set of points saturating the constraint unsigned int PPL_POLY_GEN_RELATION_SUBSUMES Individual bit saying that adding the generator would not change the polyhedron 6 6 1 Detailed Description Typedefs for the library datatypes and related symbolic constants The datatypes provided by the library should be manipulated by means of the corresponding opaque pointer types and the functions working on them Note To simplify the detection of common programming mistakes we provide both pointer to const and pointer to nonconst opaque pointers with implicit conversions mapping each pointer to nonconst to the corresponding pointer to const when needed The user of the C interface is therefore recommended to adopt the pointer to const type whenever read only access is meant 6 6 2 Typedef Documentation 6 6 2 1 typedef const charx ppl io variable output function_type ppl dimension type var The type of output functions used for printing variables An output function for variables must write a textual representation for var to a character buffer null terminate it
10. Input Output Functions e int ppl_io_print_Generator ppl_const_Generator_t x Prints x to stdout e int ppl_io_fprint_Generator FILE stream ppl_const_Generator_t x Prints x to the given output st ream e int ppl_io_asprint_Generator char strp ppl_const_Generator_t x Prints x to a malloc allocated string a pointer to which is returned via st rp e int ppl_Generator_ascii_dump ppl_const_Generator_t x FILE xstream Dumps an ascii representation of x on stream e int ppl_Generator_ascii_load ppl_Generator_t x FILE xstream Loads an ascii representation of x from stream The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 13 ppl Grid Generator System const iterator tag Interface Reference 49 7 12 1 Detailed Description Types and functions for generators The types and functions for generators provide an interface towards Generator The documentation for this interface was generated from the following file ppl_c_header h 7 13 ppl_Grid_Generator_System_const_iterator_tag Interface Reference Types and functions for iterating on grid generator systems include lt ppl_c header h gt Related Functions Note that these are not member functions Constructors Assignment and Destructor e intppl new Grid Generator System const iterator ppl Grid Generator System const iterator _t xpgit Builds a new const iterator and writes a handle to
11. This License is a kind of copyleft which means that derivative works of the document must themselves be free in the same sense It complements the GNU General Public License which is a copyleft license designed for free software The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 12 CONTENTS We have designed this License in order to use it for manuals for free software because free software needs free documentation a free program should come with manuals providing the same freedoms that the software does But this License is not limited to software manuals it can be used for any textual work regardless of subject matter or whether it is published as a printed book We recommend this License principally for works whose purpose is instruction or reference 1 APPLICABILITY AND DEFINITIONS This License applies to any manual or other work in any medium that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License Such a notice grants a world wide royalty free license unlimited in duration to use that work under the conditions stated herein The Document below refers to any such manual or work Any member of the public is a licensee and is addressed as you You accept the license if you copy modify or distribute the work in a way reguiring permission under copyright law A Modified Version of the Document means any
12. a PIP problem that is a copy of pip writes a handle for the newly created problem at address Pp1P int ppl_assign_PIP_Problem_from_PIP_Problem ppl_PIP_Problem_t dst ppl_const_PIP_Problem _t src The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 60 CONTENTS Assigns a copy of the PIP problem src to dst e int ppl new_PIP_Problem_from_constraints ppl_PIP_Problem_t ppip ppl_dimension_type d ppl_Constraint_System_const_iterator_t first ppl Constraint System const _iterator_t last size _tn ppl dimension_type ds Builds a PIP problem having space dimension d from the sequence of constraints in the range first last the n dimensions whose indices occur in ds are interpreted as parameters int ppl_delete_PIP_Problem ppl_const_PIP_Problem_t pip Invalidates the handle pip this makes sure the corresponding resources will eventually be released Functions that Do Not Modify the PIP_Problem e int ppl_PIP_Problem_space_dimension ppl_const_PIP_Problem_t pip ppl_dimension_type m Writes to m the dimension of the vector space enclosing pip int ppl_PIP_Problem_number_of_parameter_space_dimensions ppl_const_PIP_Problem_t pip ppl_dimension_type m Writes to m the number of parameter space dimensions of pip int ppl_PIP_Problem_parameter_space_dimensions ppl_const_PIP_Problem_t pip ppl_dimension _type ds Writes in the first posi
13. and return a pointer to the beginning of the buffer In case the operation fails O should be returned and perhaps errno should be set in a meaningful way The library does nothing with the buffer besides printing its contents 6 6 3 Enumeration Type Documentation 6 6 3 1 enum ppl_enum_Constraint_Type Describes the relations represented by a constraint Enumerator PPL_CONSTRAINT_TYPE_LESS_THAN The constraint is of the form e lt 0 PPL_CONSTRAINT_TYPE_LESS_OR_EQUAL The constraint is of the form e lt 0 PPL_CONSTRAINT_TYPE_EQUAL The constraint is of the form e 0 PPL_CONSTRAINT_TYPE_GREATER_OR_EQUAL The constraint is of the form e gt 0 PPL_CONSTRAINT_TYPE_GREATER_THAN The constraint is of the form e gt 0 6 6 3 2 enum ppl_enum_Generator_Type Describes the different kinds of generators Enumerator PPL_GENERATOR_TYPE_LINE The generator is a line PPL_GENERATOR_TYPE_RAY The generator is a ray PPL_GENERATOR_TYPE_POINT The generator is a point PPL_GENERATOR_TYPE_CLOSURE_POINT The generator is a closure point The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 6 6 Library Datatypes 33 6 6 3 3 enum ppl enum_Grid_Generator_Type Describes the different kinds of grid generators Enumerator PPL_GRID_GENERATOR_TYPE_LINE The grid generator is a line PPL_ GRID GENERATOR TYPE PARAMETER The grid generator is a parameter PPL_GRID_GENERATOR_TYPE_POINT The grid gen
14. any existing section to be Entitled Endorsements or to conflict in title with any Invariant Section e O Preserve any Warranty Disclaimers If the Modified Version includes new front matter sections or appendices that gualify as Secondary Sections and contain no material copied from the Document you may at your option designate some or all of these sections as invariant To do this add their titles to the list of Invariant Sections in the Modified Version s license notice These titles must be distinct from any other section titles You may add a section Entitled Endorsements provided it contains nothing but endorsements of your Modified Version by various parties for example statements of peer review or that the text has been ap proved by an organization as the authoritative definition of a standard You may add a passage of up to five words as a Front Cover Text and a passage of up to 25 words as a Back Cover Text to the end of the list of Cover Texts in the Modified Version Only one passage of Front Cover Text and one of Back Cover Text may be added by or through arrangements made by any one entity If the Document already includes a cover text for the same cover previously added by you or by arrangement made by the same entity you are acting on behalf of you may not add another but you may replace the old one on explicit permission from the previous publisher that added the old one The PPL C Language Interface User s Man
15. are not member functions e int ppl_PIP_Decision_Node_get_child_node ppl_const_PIP_Decision_Node_t pip dec int b ppl const_PIP_Tree_Node_t xpip_tree Writes to pip_ tree a const pointer to either the true branch if b is not zero or the false branch if b is zero of pip dec Input Output Functions int ppl_io_print_PIP_Decision_Node ppl_const_PIP_Decision_Node_t x Prints xto stdout int ppl_io_fprint_PIP_Decision_Node FILE stream ppl_const_PIP_Decision_Node_t x Prints x to the given output st ream int ppl_io_asprint_PIP_Decision_Node char xstrp ppl_const_PIP_Decision_Node_t x Prints x to a malloc allocated string a pointer to which is returned via st rp int ppl_PIP_Decision_Node_ascii_dump ppl_const_PIP_Decision_Node_t x FILE stream Dumps an ascii representation of x on st ream int ppl_PIP_Decision_Node_ascii_load ppl_PIP_Decision_Node_t x FILE xstream Loads an ascii representation of x from st ream The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 19 ppl PIP Problem_tag Interface Reference 59 7 18 1 Detailed Description Types and functions for PIP decision nodes The types and functions for decision nodes provide an interface towards PIP_Decision_Node The documentation for this interface was generated from the following file ppl_c_header h 7 19 ppl PIP Problem tag Interface Reference Types and functions for PIP problems
16. copy of this License I Preserve the section Entitled History Preserve its Title and add to it an item stating at least the title year new authors and publisher of the Modified Version as given on the Title Page If there is no section Entitled History in the Document create one stating the title year authors and publisher of the Document as given on its Title Page then add an item describing the Modified Version as stated in the previous sentence J Preserve the network location if any given in the Document for public access to a Transpar ent copy of the Document and likewise the network locations given in the Document for previous versions it was based on These may be placed in the History section You may omit a network location for a work that was published at least four years before the Document itself or if the original publisher of the version it refers to gives permission K For any section Entitled Acknowledgements or Dedications Preserve the Title of the section and preserve in the section all the substance and tone of each of the contributor acknowledgements and or dedications given therein e L Preserve all the Invariant Sections of the Document unaltered in their text and in their titles Section numbers or the eguivalent are not considered part of the section titles M Delete any section Entitled Endorsements Such a section may not be included in the Modified Version N Do not retitle
17. copyright notices and the license notice saying this License applies to the Document are reproduced in all copies and that you add no other conditions whatsoever to those of this License You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute However you may accept compensation in exchange for copies If you distribute a large enough number of copies you must also follow the conditions in section 3 You may also lend copies under the same conditions stated above and you may publicly display copies 3 COPYING IN OUANTITY If you publish printed copies or copies in media that commonly have printed covers of the Document numbering more than 100 and the Document s license notice reguires Cover Texts you must enclose the copies in covers that carry clearly and legibly all these Cover Texts Front Cover Texts on the front cover and Back Cover Texts on the back cover Both covers must also clearly and legibly identify you as the publisher of these copies The front cover must present the full title with all words of the title egually prominent and visible You may add other material on the covers in addition Copying with changes limited to the covers as long as they preserve the title of the Document and satisfy these conditions can be treated as verbatim copying in other respects If the reguired texts for either cover are too voluminous to fit legibly you should put the f
18. e intppl new Congruence System const iterator ppl_Congruence_System_const_iterator_t pcit Builds a new const iterator and writes a handle to it at address pcit intppl_new_Congruence_System_const_iterator_from_Congruence_System_const_iterator ppl _Congruence_System_const_iterator_t pcit ppl_const_Congruence_System_const_iterator_t cit Builds a const iterator that is a copy of cit writes a handle for the newly created const iterator at address pcit e int ppl_assign_Congruence_System_const_iterator_from_Congruence_System_const_iterator ppl _Congruence_System_const_iterator_t dst ppl_const_Congruence_System_const_iterator_t src Assigns a copy of the const iterator src to dst e int ppl_delete_Congruence_System_const_iterator ppl const Congruence System const iterator _tccit Invalidates the handle cit this makes sure the corresponding resources will eventually be released Dereferencing Incrementing and Eguality Testing int ppl_Congruence_System_const_iterator_dereference ppl_const_Congruence_System_const iterator_t cit ppl_const_Congruence_t pc Dereference cit writing a const handle to the resulting congruence at address pc e int ppl_Congruence_System_const_iterator_increment ppl Congruence System const iterator _t cit Increment cit so that it points to the next congruence int ppl_Congruence_System_const_iterator_equal_test ppl_const_Congruence_System_const_ iterator_t x
19. handle for the newly created system at address pgs int ppl_assign_Grid_Generator_System_from_Grid_Generator_System ppl_Grid_Generator_System t dst ppl_const_Grid_Generator_System_t src Assigns a copy of the grid generator system src to dst e int ppl_delete_Grid_Generator_System ppl_const_Grid_Generator_System_t gs Invalidates the handle gs this makes sure the corresponding resources will eventually be released Functions that Do Not Modify the Grid Generator System e int ppl_Grid_Generator_System_space_dimension ppl_const_Grid_Generator_System_t gs ppl _dimension_type m Writes to m the dimension of the vector space enclosing gs e int ppl_Grid_Generator_System_empty ppl_const_Grid_Generator_System_t gs Returns a positive integer if gs contains no generator returns O otherwise e int ppl_Grid_Generator_System_begin ppl_const_Grid_Generator_System_t gs ppl_Grid_Generator System_const_iterator_t git Assigns to git a const iterator pointing to the beginning of the grid generator system gs e int ppl_Grid_Generator_System_end ppl_const_Grid_Generator_System_t gs ppl_Grid_Generator System_const_iterator_t git Assigns to git a const iterator pointing past the end of the grid generator system gs int ppl_Grid_Generator_System_OK ppl_const_Grid_Generator_System_t gs The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 15 ppl Grid _Gen
20. newly created system at address pcs e int ppl_new_Congruence_System_from_Congruence_System ppl_Congruence_System_t xpcs ppl_const_Congruence_System_t cs Builds a congruence system that is a copy of cs writes a handle for the newly created system at address pcs e int ppl_assign_Congruence_System_from_Congruence_System ppl_Congruence_System_t dst ppl_const_Congruence_System_t src Assigns a copy of the congruence system src to dst int ppl_delete_Congruence_System ppl_const_Congruence_System_t cs Invalidates the handle cs this makes sure the corresponding resources will eventually be released Functions that Do Not Modify the Congruence System e int ppl_Congruence_System_space_dimension ppl_const_Congruence_System_t cs ppl_dimension _type m Writes to m the dimension of the vector space enclosing cs int ppl_Congruence_System_empty ppl_const_Congruence_System_t cs Returns a positive integer if cs contains no non trivial congruence returns O otherwise intppl_Congruence_System_begin ppl_const_Congruence_System_tcs ppl_Congruence_System _const_iterator_t cit Assigns to cit a const iterator pointing to the beginning of the congruence system cs intppl_Congruence_System_end ppl_const_Congruence_System_t cs ppl_Congruence_System _const_iterator_t cit Assigns to cit a const iterator pointing past the end of the congruence system cs int ppl_Congruence_System_OK ppl_const_Congruence_System_t cs
21. ppl_const_Congruence_System_const_iterator_t y Returns a positive integer if the iterators corresponding to x and y are equal returns O if they are different 7 41 Detailed Description Types and functions for iterating on congruence systems The types and functions for congruence systems iterators provide read only access to the elements of a congruence system by interfacing Congruence_System const_iterator The documentation for this interface was generated from the following file ppl_c_header h 7 5 ppl Congruence System tag Interface Reference Types and functions for congruence systems include lt ppl_c header h gt The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 5 ppl Congruence System tag Interface Reference 39 Related Functions Note that these are not member functions Constructors Assignment and Destructor e int ppl_new_Congruence_System ppl_Congruence_System_t pcs Builds an empty system of congruences and writes a handle to it at address pcs intppl new Congruence System zero dim empty ppl_Congruence_System_t pcs Builds a zero dimensional unsatisfiable congruence system and writes a handle to it at address pcs e int ppl_new_Congruence_System_from_Congruence ppl_Congruence_System_t pcs ppl_const _Congruence_t c Builds the singleton congruence system containing only a copy of congruence c writes a handle for the
22. preferred form of the work for making modifications to it Object code means any non source form of a work A Standard Interface means an interface that either is an official standard defined by a recognized stan dards body or in the case of interfaces specified for a particular programming language one that is widely used among developers working in that language The System Libraries of an executable work include anything other than the work as a whole that a is included in the normal form of packaging a Major Component but which is not part of that Major Component and b serves only to enable use of the work with that Major Component or to implement a Standard Interface for which an implementation is available to the public in source code form A Major The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 4 CONTENTS Component in this context means a major essential component kernel window system and so on of the specific operating system if any on which the executable work runs or a compiler used to produce the work or an object code interpreter used to run it The Corresponding Source for a work in object code form means all the source code needed to generate install and for an executable work run the object code and to modify the work including scripts to control those activities However it does not include the work s System Li
23. tag Interface Reference LL LL LL LL LL ppl Grid Generator tag Interface Reference 4 LL LL ee we ppl_Linear_Expression_tag Interface Reference es ppl_MIP_Problem tag Interface Reference pa ug ppl_PIP_Decision_Node_tag Interface Reference LL o ppl_PIP Problem t p Interface Reference p o ee Aa a a ee ee ppl_PIP_Solution_Node_tag Interface Reference es ppl PIP Tree Node tag Interface Reference eu rs do ERS ppl_Pointset_Powerset_C_Polyhedron_const_iterator_tag Interface Reference ppl_Pointset_Powerset_C_Polyhedron_iterator_tag Interface Reference ppl_Pointset_Powerset_C_Polyhedron_tag Interface Reference ppl Polyhedron tag Interface Reference ooo ci rota ESE ES 11 16 16 17 17 18 18 19 21 23 25 27 The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 1 Main Page 1 1 Main Page All the declarations needed for using the PPU s C interface preprocessor symbols data types variables and functions are collected in the header file pp1_c h This file which is designed to work with pre ANSI and ANSI C compilers as well as C99 and C compilers should be included either directly or via some other header file with the directive finclude lt ppl_c h gt If this directive does not work then your compiler is unable to find the file ppl_c h So check that
24. the library is installed if it is not installed you may want to make install perhaps with root privileges in the right place if not you may want to reconfigure the library using the appropriate pathname for the prefix option and that your compiler knows where it is installed if not you should add the path to the directory where pp1_c h is located to the compiler s include file search path this is usually done with the I option The name space of the PPL s C interface is PPL_x for preprocessor symbols enumeration values and variables and ppl_ for data types and function names The interface systematically uses opaque data types generic pointers that completely hide the internal representations from the client code and provides all reguired access functions By using just the interface the client code can exploit all the functionalities of the library yet avoid directly manipulating the library s data structures The advantages are that 1 applications do not depend on the internals of the library these may change from release to release and 2 the interface invariants can be thoroughly checked by the access functions Note All functions taking as input argument an opague pointer datatype assume that such an argument is actually referring to a valid PPL object For instance a function with an argument having type ppl _MIP_Problem_t will expect a valid MIP_Problem object previously initialized by calling e g ppl_new_MIP
25. the generalized affine transfer relation lhs gt a rhs where bd is the relation symbol encoded by relsym Functions that May Modify the Dimension of the Vector Space int ppl_Polyhedron_concatenate_assign ppl_Polyhedron_t x ppl_const_Polyhedron_t y Seeing a polyhedron as a set of tuples its points assigns to x all the tuples that can be obtained by concatenating in the order given a tuple of x with a tuple of y int ppl_Polyhedron_add_ space_dimensions_and_embed ppl_Polyhedron_t ph ppl_dimension_ type d Adds d new dimensions to the space enclosing the polyhedron ph and to ph itself int ppl_Polyhedron_add_space_dimensions_and project ppl_Polyhedron_t ph ppl_dimension_ type d Adds d new dimensions to the space enclosing the polyhedron ph int ppl_Polyhedron_remove_space_dimensions ppl_Polyhedron_t ph ppl_dimension_type ds size_t n Removes from the vector space enclosing ph the space dimensions that are specified in first n positions of the array ds The presence of duplicates in ds is a waste but an innocuous one int ppl_Polyhedron_remove_higher_space_dimensions ppl_Polyhedron_t ph ppl_dimension_ type d Removes the higher dimensions from the vector space enclosing ph so that upon successful return the new space dimension is d The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 74 CONTENTS e int ppl_Polyhedron_map_space_dimensions ppl_Polyhedron_t ph
26. the powerset object any function call on the owning powerset object may invalidate it Moreover d should not be deleted directly its resources will be released when deleting the owning powerset The documentation for this interface was generated from the following file e C_interface dox The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 66 CONTENTS 7 23 ppl_Pointset Powerset_C_Polyhedron_iterator tag Interface Reference Types and functions for iterating on the disjuncts of a ppl_Pointset_Powerset_C_Polyhedron tag Related Functions Note that these are not member functions Construction Initialization and Destruction int ppl_new_Pointset_Powerset_C_Polyhedron_iterator ppl_Pointset_Powerset_C_Polyhedron _iterator_t pit Builds a new iterator and writes a handle to it at address pit e int ppl_new_Pointset_Powerset_C_Polyhedron_iterator_from_iterator ppl_Pointset_Powerset_ C_Polyhedron_iterator_t pit ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t y Builds a copy of y and writes a handle to it at address pit e int ppl_Pointset_Powerset_C_Polyhedron_iterator_begin ppl_Pointset_Powerset_C_Polyhedron t ps ppl_Pointset_Powerset_C_Polyhedron_iterator_t psit Assigns to psit an iterator pointing to the beginning of the sequence of disjuncts of ps e int ppl_Pointset_Powerset_C_Polyhedron_iterator_end ppl_Pointset_Powerset_C_Polyhedron_t ps ppl_
27. value in problem mip e int ppl MIP Problem total memory in bytes ppl_const_MIP_Problem_t mip size_t sz Writes into sz the size in bytes of the memory occupied by mip e int ppl MIP Problem external memory in bytes ppl_const_MIP_Problem_t mip size_t sz Writes into xsz the size in bytes of the memory managed by mip Input Output Functions e int ppl_io_print_MIP_Problem ppl_const_MIP_Problem_t x Prints x to stdout int ppl_io_fprint_MIP_Problem FILE stream ppl_const_MIP_Problem_t x Prints x to the given output st ream e int ppl_io_asprint_MIP_Problem char strp ppl_const_MIP_Problem_t x Prints x to a malloc allocated string a pointer to which is returned via st rp e int ppl MIP_Problem_ascii_dump ppl_const_MIP_Problem_t x FILE stream Dumps an ascii representation of x on st ream e int ppl MIP_Problem_ascii_load ppl_MIP_Problem_t x FILE xstream Loads an ascii representation of x from st ream 7174 Detailed Description Types and functions for MIP problems The types and functions for MIP problems provide an interface towards MIP_Problem 7 17 2 Friends And Related Function Documentation 7 17 2 1 int ppl MIP Problem solve ppl_const_MIP_Problem_t mip related Solves the MIP problem mip returning an exit status Returns PPL_MIP_PROBLEM_STATUS_UNFEASIBLE if the MIP problem is not satisfiable PPL_MIP_ PROBLEM STATUS_UNBOUNDED if the MIP problem is s
28. work containing the Document or a portion of it either copied verbatim or with modifications and or translated into another language A Secondary Section is a named appendix or a front matter section of the Document that deals exclu sively with the relationship of the publishers or authors of the Document to the Document s overall subject or to related matters and contains nothing that could fall directly within that overall subject Thus if the Document is in part a textbook of mathematics a Secondary Section may not explain any mathematics The relationship could be a matter of historical connection with the subject or with related matters or of legal commercial philosophical ethical or political position regarding them The Invariant Sections are certain Secondary Sections whose titles are designated as being those of Invariant Sections in the notice that says that the Document is released under this License If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant The Document may contain zero Invariant Sections If the Document does not identify any Invariant Sections then there are none The Cover Texts are certain short passages of text that are listed as Front Cover Texts or Back Cover Texts in the notice that says that the Document is released under this License A Front Cover Text may be at most 5 words and a Back Cover Text may be at most 25 words A Transpare
29. y is contained in or equal to the polyhedron x assigns to x the H79 widening of x and y intersected with the constraints in cs that are satisfied by all the points of x If tp is not the null pointer the widening with tokens delay technique is applied with xt p available tokens int ppl_Polyhedron_limited_BHRZ03_extrapolation_assign ppl_Polyhedron_t x ppl_const_Polyhedron _t y ppl_const_Constraint_System_t cs If the polyhedron y is contained in or equal to the polyhedron x assigns to x the BHRZ03 widening of x and y intersected with the constraints in cs that are satisfied by all the points of x int ppl_Polyhedron_limited_H79_extrapolation_assign ppl_Polyhedron_t x ppl_const_Polyhedron _t y ppl_const_Constraint_System_t cs If the polyhedron y is contained in or equal to the polyhedron x assigns to x the H79 widening of x and y intersected with the constraints in cs that are satisfied by all the points of x int ppl_Polyhedron_bounded_BHRZ03_extrapolation_assign_with_tokens ppl_Polyhedron_t x ppl_const_Polyhedron_t y ppl_const_Constraint_System_t cs unsigned xtp If the polyhedron y is contained in or equal to the polyhedron x assigns to x the BHRZ03 widening of x and y intersected with the constraints in cs that are satisfied by all the points of x further intersected with all the constraints of the form v lt r and v lt r with r Q that are satisfied by all the points of x If tp is not the null pointer the widening wi
30. 2 1 int ppl Pointset Powerset C Polyhedron iterator dereference ppl_const_Pointset _Powerset_C_Polyhedron_iterator_t it ppl_const_Polyhedron_t x d related Dereferences it writing a const handle to the resulting disjunct at address d The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 24 ppl Pointset_Powerset_C_Polyhedron_ tag Interface Reference 67 Note Even though it is an non const iterator dereferencing it results in a handle to a const disjunct This is because mutable iterators are meant to allow for the modification of the seguence of disjuncts e g by dropping elements while preventing direct modifications of the disjuncts they point to Warning On exit the disjunct d is still owned by the powerset object any function call on the owning powerset object may invalidate it Moreover d should not be deleted directly its resources will be released when deleting the owning powerset The documentation for this interface was generated from the following file e C_interface dox 7 24 ppl_Pointset_Powerset_C_Polyhedron_tag Interface Reference Types and functions for the Pointset_Powerset of C_Polyhedron objects Related Functions Note that these are not member functions Ad Hoc Functions for Pointset_Powerset domains e int ppl_Pointset_Powerset_C_Polyhedron_omega reduce ppl_const_Pointset_Powerset_C_Polyhedron _t ps Drops from the sequence
31. 3 int ppl_PIP_Problem_solve ppl_const_PIP_Problem_t pip related Solves the PIP problem pip returning an exit status Returns PPL_PIP_PROBLEM_STATUS_UNFEASIBLE if the PIP problem is not satisfiable PPL_PIP_P ROBLEM_STATUS_OPTIMIZED if the PIP problem admits an optimal solution The documentation for this interface was generated from the following file ppl_c_header h 7 20 ppl_PIP_Solution_Node_tag Interface Reference Types and functions for PIP solution nodes include lt ppl_c header h gt Related Functions Note that these are not member functions int ppl_PIP_Solution_Node_get_parametric_values ppl_const_PIP_Solution_Node_t pip_sol ppl _dimension_type var ppl_const_Linear_Expression_t xle Writes to le a const pointer to the parametric expression of the values of variable var in solution node pip sol Input Output Functions e int ppl io print PIP Solution Node ppl_const_PIP_Solution_Node_t x Prints xto stdout int ppl_io_fprint_PIP_Solution_Node FILE stream ppl_const_PIP_Solution_Node_t x Prints x to the given output st ream e int ppl_io_asprint_PIP_Solution_Node char x strp ppl_const_PIP_Solution_Node_t x The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 21 ppl PIP_Tree_Node_tag Interface Reference 63 Prints x to a malloc allocated string a pointer to which is returned via st
32. AMETER Library Datatypes 33 PPL_GRID_GENERATOR_TYPE_POINT Library Datatypes 33 PPL_OVERFLOW_IMPOSSIBLE Library Datatypes 33 PPL_OVERFLOW_UNDEFINED Library Datatypes 33 PPL_OVERFLOW_WRAPS Library Datatypes 33 PPL SIGNED 2 COMPLEMENT Library Datatypes 33 PPL STDIO ERROR Error Handling 23 PPL_TIMEOUT_EXCEPTION Error Handling 23 PPL_UNSIGNED Library Datatypes 33 PPL_VERSION Version Checking 21 ppl_Artificial_Parameter_Sequence_const_iterator_ tag 35 ppl_Artificial_Parameter_tag 36 ppl_Coefficient_tag 36 ppl_Congruence_System_const_iterator_tag 38 ppl_Congruence_System_tag 38 ppl_Congruence_tag 40 ppl_Constraint_System_const_iterator_tag 41 ppl_Constraint_System_tag 42 ppl_Constraint_tag 44 ppl_Generator_System_const_iterator_tag 45 ppl_Generator_System_tag 46 ppl_Generator_tag 47 ppl_Grid_Generator_System_const_iterator_tag 49 ppl_Grid_Generator_System_tag 50 ppl_Grid_Generator_tag 51 ppl_Linear_Expression_tag 53 ppl_MIP_Problem_evaluate_objective_function ppl_MIP_Problem_tag 57 ppl_MIP_Problem_optimal_value ppl_MIP_Problem_tag 58 ppl_MIP_Problem_solve ppl_MIP_Problem_tag 57 ppl_MIP_Problem_tag 55 ppl_MIP_Problem_solve 57 ppl_PIP_Decision_Node_tag 58 ppl_PIP_Problem_solve ppl_PIP_Problem_tag 62 ppl_PIP_Problem_space_dimension ppl_PIP_Problem_tag 61 ppl_PIP_Problem_tag 59 ppl_PIP_Problem_solve 62 ppl_PIP_Solution_Node_tag 62 ppl_PIP_Tree_Node_tag 63 ppl_Poi
33. CE Bb O a es 6 Module Documentation 6 1 6 2 63 6 4 6 5 6 6 C Language FEW pona ee wed ANA Dh E A eS ee es EO A Library Initialization and Finalization 9 FE EE RA Veron Checkin ici a A A a SG S a Od Ge RR Error a EL c ccce e rao ew ee BG we ee a A E ow ee Timeout Handling geu os ea eS da we Dd dy EAA ee we a Se oy dy lon Library Datatypes oe as ee ee a e ee a og 7 Class Documentation 7 1 Ta FA 7 4 dOS 7 6 Ta 7 8 7 9 7 10 7 11 tele FAB 7 14 15 7 16 MW FAS 7 19 7 20 eel TELE Taa 724 7 23 ppl Artificial Parameter Sequence const iterator tag Interface Reference ppl Artificial Parameter tag Interface Reference Li LL LL LL ppl Cocffici nt tag Interface Referenc oe cc DUN E Re DISE UR yR ppl Congruence System const iterator tag Interface Reference ppl Congruence System tag Interface Reference LL LL LL LL LL LE ppl_Congruence tag Interface Reference Lousa cocco oa A AI A ea n ppl Constraint System const iterator tag Interface Reference ppl Constraint System tag Interface Reference ii LL LL LL LL e ppl_Constraint_tag Interface Reference LL LL LL LL e ppl Generator System const iterator tag Interface Reference ppl Generator System tag Interface Reference See ee ee ppl Generator tag Interface Reference o ose ocn REG E EN ppl Grid Generator System const iterator tag Interface Reference ppl Grid Generator System
34. HMETIC OVERFLOW Error Handling 23 PPL_BITS_128 Library Datatypes 33 PPL_BITS_ 16 Library Datatypes 33 PPL_BITS_32 Library Datatypes 33 PPL_BITS_64 Library Datatypes 33 PPL_BITS_8 Library Datatypes 33 PPL_CONSTRAINT_TYPE_EQUAL Library Datatypes 32 PPL_CONSTRAINT_TYPE_GREATER_OR_EQU AL Library Datatypes 32 PPL_CONSTRAINT_TYPE_GREATER_THAN Library Datatypes 32 PPL_CONSTRAINT_TYPE_LESS_OR_EQUAL Library Datatypes 32 PPL_CONSTRAINT_TYPE_LESS_THAN Library Datatypes 32 PPL_ERROR_DOMAIN_ERROR Error Handling 23 PPL_ERROR_INTERNAL_ERROR Error Handling 23 PPL_ERROR_INVALID_ARGUMENT Error Handling 23 PPL_ERROR_LENGTH_ERROR Error Handling 23 PPL_ERROR_LOGIC_ERROR Error Handling 23 PPL_ERROR_OUT_OF_MEMORY Error Handling 23 ppl_enum_Bounded_Integer_Type_Overflow 33PPL ERROR UNEXPECTED ERROR ppl enum Bounded Integer Type Representation 33 ppl enum Bounded Integer Type Width 33 ppl enum Constraint Type 32 The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information Error Handling 23 PPL ERROR UNKNOWN _STANDARD_ EXCEP TION Error Handling 23 86 INDEX PPL_GENERATOR_TYPE_CLOSURE_POINT Library Datatypes 32 PPL_GENERATOR_TYPE_LINE Library Datatypes 32 PPL_GENERATOR_TYPE_POINT Library Datatypes 32 PPL_GENERATOR_TYPE_RAY Library Datatypes 32 PPL_GRID_GENERATOR_TYPE_LINE Library Datatypes 33 PPL_GRID_GENERATOR_TYPE_PAR
35. IP_Decision_Node_tag Types and functions for PIP decision nodes ppl_PIP_Problem_tag Types and functions for PIP problems ppl_PIP_Solution_Node_tag Types and functions for PIP solution nodes ppl_PIP_Tree_Node_tag Types and functions for generic PIP tree nodes ppl_Pointset_Powerset_C_Polyhedron_const_iterator_tag Types and functions for iterating on the disjuncts of a const ppl_Pointset_Powerset_C _Polyhedron_tag ppl_Pointset_Powerset_C_Polyhedron_iterator_tag 51 53 55 58 59 62 63 64 Types and functions for iterating on the disjuncts of a ppl_Pointset_Powerset_C_Polyhedron _tag ppl_Pointset_Powerset_C_Polyhedron_tag Types and functions for the Pointset_Powerset of C_Polyhedron objects ppl_Polyhedron_tag Types and functions for the domains of C and NNC convex polyhedra 6 Module Documentation 6 1 C Language Interface The Parma Polyhedra Library comes equipped with an interface for the C language 66 67 68 The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 6 2 Library Initialization and Finalization 19 6 2 Library Initialization and Finalization Functions e int ppl initialize void Initializes the Parma Polyhedra Library This function must be called before any other function e int ppl finalize void Finalizes the Parma Polyhedra Library This function must be called after any other function e int ppl_set_rounding_fo
36. Increment Decrement and Equality Testing int ppl_Pointset_Powerset_C_Polyhedron_const_iterator_dereference ppl_const_Pointset_Powerset _C_Polyhedron_const_iterator_t it ppl_const_Polyhedron_t d Dereferences it writing a const handle to the resulting disjunct at address d e int ppl_Pointset_Powerset_C_Polyhedron_const_iterator_increment ppl_Pointset_Powerset_C_ Polyhedron_const_iterator_t it Increments it so that it points to the next disjunct e int ppl_Pointset_Powerset_C_Polyhedron_const_iterator_decrement ppl_Pointset_Powerset_C _Polyhedron_const_iterator_t it Decrements it so that it points to the previous disjunct int ppl_Pointset_Powerset_C_Polyhedron_const_iterator_equal_test ppl_const_Pointset_Powerset _C_Polyhedron_const_iterator_t x ppl_const_Pointset_Powerset_C_Polyhedron_const_iterator ty Returns a positive integer if the iterators corresponding to x and y are equal returns O if they are different 7 221 Detailed Description Types and functions for iterating on the disjuncts of a const ppl_Pointset_Powerset_C_Polyhedron_tag 7 22 2 Friends And Related Function Documentation 7 22 2 1 int ppl_Pointset_Powerset_C_Polyhedron_const_iterator_dereference ppl_const_Pointset _Powerset_C_Polyhedron_const_iterator_t it ppl_const_Polyhedron_t x d related Dereferences it writing a const handle to the resulting disjunct at address d Warning On exit the disjunct d is still owned by
37. LE TO YOU FOR DAMAGES INCLUDING ANY GENERAL SPECIAL INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM INCLUDING BUT NOT LIMITED TO LOSS OF D ATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES 17 Interpretation of Sections 15 and 16 If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program and you want it to be of the greatest possible use to the public the best way to achieve this is to make it free software which everyone can redistribute and change under these terms To do so attach the following notices to the program It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty and each file should have at least the copyright line and a pointer to where the full notice is found one line to give the program s name and a brief idea of
38. Library Initialization and Finalization 19 ppl_initialize Library Initialization and Finalization 19 ppl_io_variable_output_function_type Library Datatypes 32 ppl_io_wrap_string Library Datatypes 34 ppl_new_C_Polyhedron_from_Congruence_System ppl_Polyhedron_tag 77 ppl_new_C_Polyhedron_from_Constraint_System ppl_Polyhedron_tag 76 ppl_new_C_Polyhedron_from_Generator_System ppl_Polyhedron_tag 83 Library Initialization and Finalization 19 ppl set rounding_for_PPL Library Initialization and Finalization 19 ppl set timeout Timeout Handling 25 Timeout Handling 25 ppl set deterministic_timeout 25 ppl_set_timeout 25 Version Checking 21 PPL_ VERSION 21 ppl_banner 22 wrap_assign ppl_Polyhedron_tag 83 ppl_new_C_Polyhedron_recycle_Congruence_System ppl_Polyhedron_tag 77 ppl_new_C_Polyhedron_recycle_Constraint_System ppl_Polyhedron_tag 76 The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information
39. P_Tree_Node_as_solution ppl const PIP Tree Node tspip tree ppl_const_PIP_Solution _Node_t xdpip tree Writes to dpip_ tree the solution node if spip_tree is a solution node and O otherwise intppl PIP Tree Node as decision ppl const PIP Tree Node tspip tree ppl_const_PIP_Decision _Node_t xdpip tree The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 64 CONTENTS Writes to dpip_tree the decision node if spip_t ree is a decision node and 0 otherwise e intppl_PIP_Tree_Node_get_constraints ppl const PIP Tree Node tpip tree ppl_const_Constraint _System_t pcs Writes to pcs the local system of parameter constraints at the pip tree node pip_tree intppl PIP Tree Node OK ppl const PIP Tree Node tpip Returns a positive integer if pip_tree is well formed i e if it satisfies all its implementation invariants returns O and perhaps makes some noise if pip_tree is broken Useful for debugging purposes e intppl_PIP_Tree_Node_number_of artificials ppl const PIP Tree Node tpip tree ppl_dimension _type m Writes to m the number of elements in the artificial parameter seguence in the pip tree node pip_tree e intppl_PIP_Tree_Node_begin ppl_const_PIP_Tree_Node_t pip_tree ppl_Artificial_Parameter_Sequence _const_iterator_t pit Assigns to pit a const iterator pointing to the beginning of the artificial parameter sequence in the pip tree no
40. Pointset_Powerset_C_Polyhedron_iterator_t psit Assigns to psit an iterator pointing past the end of the sequence of disjuncts of ps e int ppl_delete_Pointset_Powerset_C_Polyhedron_iterator ppl_const_Pointset_Powerset_C_Polyhedron _iterator_t it Invalidates the handle it this makes sure the corresponding resources will eventually be released Dereferencing Increment Decrement and Equality Testing int ppl_Pointset_Powerset_C_Polyhedron_iterator_dereference ppl_const_Pointset_Powerset_C _Polyhedron_iterator_t it ppl const Polyhedron t d Dereferences it writing a const handle to the resulting disjunct at address d e intppl_Pointset_Powerset_C_Polyhedron_iterator_increment ppl_Pointset_Powerset_C_Polyhedron _iterator_t it Increments it so that it points to the next disjunct int ppl_Pointset_Powerset_C_Polyhedron_iterator_decrement ppl_Pointset_Powerset_C_Polyhedron _iterator_t it Decrements it so that it points to the previous disjunct int ppl_Pointset_Powerset_C_Polyhedron_iterator_equal_test ppl_const_Pointset_Powerset_C _Polyhedron_iterator_t x ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t y Returns a positive integer if the iterators corresponding to x and y are equal returns O if they are different 7 23 1 Detailed Description Types and functions for iterating on the disjuncts of a ppl_Pointset_Powerset_C_Polyhedron_tag 7 23 2 Friends And Related Function Documentation 7 23
41. Prints x to a malloc allocated string a pointer to which is returned via st rp e int ppl_Congruence_ascii_dump ppl_const_Congruence_t x FILE stream Dumps an ascii representation of x on st ream e int ppl_Congruence_ascii_load ppl_Congruence_t x FILE xstream Loads an ascii representation of x from stream 7 6 1 Detailed Description Types and functions for congruences The types and functions for congruences provide an interface towards Congruence The documentation for this interface was generated from the following file ppl_c_header h 7 7 pplConstraint System const iterator tag Interface Reference Types and functions for iterating on constraint systems finclude lt ppl_c header h gt Related Functions Note that these are not member functions Constructors Assignment and Destructor e int ppl_new_Constraint_System_const_iterator ppl Constraint System const iterator t pcit Builds a new const iterator and writes a handle to it at address pcit e intppl new Constraint System const iterator from Constraint System const iterator ppl_Constraint System const iterator t xpcit ppl const Constraint System const iterator t cit The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 42 CONTENTS Builds a const iterator that is a copy of cit writes a handle for the newly created const iterator at address pcit intppl_assign_Constraint_Sy
42. THAN PPL_CONSTRAINT_TYPE_LESS_OR_EQUAL P PL_CONSTRAINT_TYPE_EQUAL PPL_CONSTRAINT_TYPE_GREATER_OR_EQUAL PPL_CONSTRAINT_TYPE_GREATER_THAN Describes the relations represented by a constraint enum ppl_enum_Generator_Type PPL_GENERATOR_TYPE_LINE PPL_GENERATOR_TY PE_RAY PPL_GENERATOR_TYPE_POINT PPL_GENERATOR_TYPE_CLOSURE_POINT Describes the different kinds of generators enum ppl_enum_Grid_Generator_Type PPL_GRID_GENERATOR_TYPE_LINE PPL_GRID_ GENERATOR_TYPE PARAMETER PPL_GRID_GENERATOR_TYPE_POINT Describes the different kinds of grid generators The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 6 6 Library Datatypes 31 enum ppl_enum_Bounded_Integer_Type_Width PPL_BITS_8 PPL_BITS_16 PPL_BITS_32 PPL_BITS_64 PPL_BITS_128 Widths of bounded integer types enum ppl_enum_Bounded_Integer_Type_Representation PPL_UNSIGNED PPL_SIGNED_2_C OMPLEMENT Representation of bounded integer types enum ppl_enum_Bounded_Integer_Type_Overflow PPL_OVERFLOW_WRAPS PPL_OVERF LOW_UNDEFINED PPL_OVERFLOW_IMPOSSIBLE Overflow behavior of bounded integer types Functions e int ppl_max_space_dimension ppl_dimension_type m Writes to m the maximum space dimension this library can handle int ppl_not_a_dimension ppl_dimension_type m Writes to ma value that does not designate a valid dimension int ppl_io_print_variable ppl_dimension_type v
43. Writes to m the space dimension of c int ppl_Constraint_type ppl_const_Constraint_t c Returns the type of constraint c int ppl_Constraint_coefficient ppl_const_Constraint_t c ppl dimension_type var ppl_Coefficient _tn Copies into n the coefficient of variable var in constraint c int ppl_Constraint_inhomogeneous_term ppl_const_Constraint_t c ppl_Coefficient_t n Copies into n the inhomogeneous term of constraint c int ppl_Constraint_OK ppl_const_Constraint_t c Returns a positive integer if c is well formed i e if it satisfies all its implementation invariants returns 0 and perhaps makes some noise if c is broken Useful for debugging purposes The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 10 ppl Generator System const iterator tag Interface Reference 45 Input Output Functions e int ppl_io_print_Constraint ppl_const_Constraint_t x Prints x to stdout int ppl_io_fprint_Constraint FILE xstream ppl_const_Constraint_t x Prints x to the given output stream e int ppl_io_asprint_Constraint char strp ppl_const_Constraint_t x Prints x to a malloc allocated string a pointer to which is returned via st rp e int ppl_Constraint_ascii_dump ppl_const_Constraint_t x FILE xstream Dumps an ascii representation of x on stream int ppl_Constraint_ascii_load ppl_Constraint_t x FILE stream Loads an ascii representation of x from stream 7 91 Detai
44. _Coefficient_t inf_d int pminimum ppl_Generator_t point Returns a positive integer if ph is not empty and le is bounded from below in ph in which case the infimum value and a point where le reaches it are computed int ppl_Polyhedron_minimize_with_point ppl_const_Polyhedron_t ph ppl_const_Linear_Expression _tle ppl_Coefficient_t inf_n ppl_Coefficient_t inf_d int pminimum The same as ppl_Polyhedron_minimize_with_point but without the output argument for the location where the infimum value is reached int ppl_Polyhedron_contains_Polyhedron ppl_const_Polyhedron_t x ppl_const_Polyhedron _t y Returns a positive integer if x contains or is equal to y returns 0 if it does not int ppl_Polyhedron_strictly_contains_Polyhedron ppl_const_Polyhedron_t x ppl_const_Polyhedron ty Returns a positive integer if x strictly contains y returns 0 if it does not int ppl_Polyhedron_is_disjoint_from_Polyhedron ppl_const_Polyhedron_t x ppl_const_Polyhedron ty Returns a positive integer if x and y are disjoint returns 0 if they are not int ppl_Polyhedron_eguals_Polyhedron ppl_const_Polyhedron_t x ppl_const_Polyhedron_t y Returns a positive integer if x and y are the same polyhedron returns 0 if they are different int ppl _Polyhedron_OK ppl_const_Polyhedron_t ph Returns a positive integer if ph is well formed i e if it satisfies all its implementation invariants returns 0 and perhaps makes some noise if ph is broken Us
45. _Linear_Expression_t x FILE stream Loads an ascii representation of x from st ream 7 16 1 Detailed Description Types and functions for linear expressions The types and functions for linear expression provide an interface towards Linear_Expression The documentation for this interface was generated from the following file ppl_c_header h The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 17 ppl MIP_Problem_tag Interface Reference 55 7 17 ppl_MIP_Problem_tag Interface Reference Types and functions for MIP problems include lt ppl_c header h gt Related Functions Note that these are not member functions Symbolic Constants int PPL_OPTIMIZATION_MODE_MAXIMIZATION Code of the maximization optimization mode int PPL_OPTIMIZATION_MODE_MINIMIZATION Code of the minimization optimization mode int PPL MIP PROBLEM STATUS_UNFEASIBLE Code of the unfeasible MIP problem status int PPL_MIP_PROBLEM_STATUS_UNBOUNDED Code of the unbounded MIP problem status int PPL MIP PROBLEM STATUS_OPTIMIZED Code of the optimized MIP problem status int PPL MIP PROBLEM CONTROL _PARAMETER_NAME_PRICING Code for the MIP problem s pricing control parameter name int PPL_MIP_PROBLEM_CONTROL_PARAMETER_PRICING_TEXTBOOK Code of MIP problem s textbook pricing method int PPL MIP PROBLEM CONTROL _PARAMETER_ PRICING_STEEPEST_EDGE_ EXAC T Code of MIP problem s exa
46. _Problenm If that is not the case e g if a null pointer is passed in the behavior is undefined The PPU C interface is initialized by means of the pp1_initialize function This function must be called before using any other interface of the library The application can release the resources allocated by the library by calling the pp1_finalize function After this function is called no other interface of the library may be used until the interface is re initialized usingppl_initialize Any application using the PPL should make sure that only the intended version s of the library are ever used The version used can be checked at compile time thanks to the macros PPL_VERSION_MAJOR PPL_VERSION_MINOR PPL VERSION REVISION and PPL VERSION BETA which give respec tively major minor revision and beta numbers of the PPL version This is an example of their use if PPL VERSION MAJOR O amp amp PPL VERSION MINOR lt 6 f error PPL version 0 6 or following is reguired fendif Compile time checking however is not normally enough particularly in an environment where there is dynamic linking Run time checking can be performed by means of the functions ppl version major ppl_version_ minor ppl_version_revision and ppl_version_beta The P PL s C interface also provides functions ppl_version returning character string containing the full version number and ppl_ banner returning a string that in addition provides pointers to other u
47. _c_header h 7 8 ppl Constraint System tag Interface Reference Types and functions for constraint systems include lt ppl_c_header h gt Related Functions Note that these are not member functions Constructors Assignment and Destructor e int ppl_new_Constraint_System ppl_Constraint_System_t pcs Builds an empty system of constraints and writes a handle to it at address pcs e intppl new Constraint System zero dim empty ppl_Constraint_System_t pcs Builds a zero dimensional unsatisfiable constraint system and writes a handle to it at address pcs e int ppl new_Constraint_System_from_Constraint ppl_Constraint_System_t pcs ppl_const_Constraint to Builds the singleton constraint system containing only a copy of constraint c writes a handle for the newly created system at address pcs The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 8 ppl Constraint System tag Interface Reference 43 e intppl new Constraint System from Constraint System ppl_Constraint_System_t pcs ppl_ const_Constraint_System_t cs Builds a constraint system that is a copy of cs writes a handle for the newly created system at address pcs e int ppl_assign_Constraint_System_from_Constraint_System ppl_Constraint_System_t dst ppl _const_Constraint_System_t src Assigns a copy of the constraint system src to dst e int ppl delete Constraint System ppl_const_Constraint_System_t c
48. _zero_dim closure point ppl_Generator_t pg Creates as a closure point the point that is the origin of the zero dimensional space R9 Writes a handle for the new generator at address pg e int ppl_new_Generator_from_Generator ppl_Generator_t pg ppl_const_Generator_t g Builds a generator that is a copy of g writes a handle for the newly created generator at address pg e int ppl_assign_Generator_from_ Generator ppl_Generator_t dst ppl_const_Generator_t src Assigns a copy of the generator src to dst e int ppl_delete_Generator ppl_const_Generator_t g Invalidates the handle g this makes sure the corresponding resources will eventually be released Functions that Do Not Modify the Generator int ppl_Generator_space_dimension ppl_const_Generator_t g ppl_dimension_type m Writes to m the space dimension of g int ppl_Generator_type ppl_const_Generator_t g Returns the type of generator g e intppl_Generator_coefficient ppl_const_Generator_t g ppl_dimension_type var ppl_Coefficient _tn Copies into n the coefficient of variable var in generator g e int ppl_Generator_divisor ppl_const_Generator_t g ppl_Coefficient_t n If g is a point or a closure point assigns its divisor to n e int ppl_Generator_OK ppl_const_Generator_t g Returns a positive integer if g is well formed i e if it satisfies all its implementation invariants returns 0 and perhaps makes some noise if g is broken Useful for debugging purposes
49. a handle for the newly created coefficient at address cC int TT oe from_mpz_t ppl_Coefficient_t pc mpz_t z Creates a new coefficient with the value given by the GMP integer z and writes a handle for the newly created coefficient at address pc e int ppl_new_Coefficient_from_Coefficient ppl_Coefficient_t pc ppl_const_Coefficient_t c Builds a coefficient that is a copy of c writes a handle for the newly created coefficient at address pc int ppl_assign_Coefficient_from_mpz_t ppl_Coefficient_t dst mpz_t z Assign to dst the value given by the GMP integer z e int ppl_assign_Coefficient_from_Coefficient ppl_Coefficient_t dst ppl_const_Coefficient_t src Assigns a copy of the coefficient src to dst int ppl_delete_Coefficient ppl_const_Coefficient_t c Invalidates the handle c this makes sure the corresponding resources will eventually be released Read Only Accessor Functions int ppl_Coefficient_to_mpz_t ppl_const_Coefficient_t c mpz_t z Sets the value of the GMP integer z to the value of c e int ppl_Coefficient_OK ppl_const_Coefficient_t c Returns a positive integer if c is well formed i e if it satisfies all its implementation invariants returns 0 and perhaps makes some noise if c is broken Useful for debugging purposes int ppl_Coefficient_is_bounded void Returns a positive integer if coefficients are bounded returns O otherwise int ppl_Coefficient_min mpz_t min Returns a positive integer
50. age itself plus such following pages as are needed to hold legibly the material this License reguires to appear in the title page For works in formats which do not have any title page as such Title Page means the text near the most prominent appearance of the work s title preceding the beginning of the body of the text A section Entitled XYZ means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language Here XYZ stands for The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 3 GNU Free Documentation License 13 a specific section name mentioned below such as Acknowledgements Dedications Endorsements or History To Preserve the Title of such a section when you modify the Document means that it remains a section Entitled XYZ according to this definition The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document These Warranty Disclaimers are considered to be included by reference in this License but only as regards disclaiming warranties any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License 2 VERBATIM COPYING You may copy and distribute the Document in any medium either commercially or noncommercially provided that this License the
51. and or modify this document under the terms of the GNU Free Documentation License Version 1 2 or any later version published by the Free Software Foundation with no Invariant Sections no Front Cover Texts and no Back Cover Texts A copy of the license is included in the section entitled GNU Free Documentation License If you have Invariant Sections Front Cover Texts and Back Cover Texts replace the with Texts line with this with the Invariant Sections being LIST THEIR TITLES with the Front Cover Texts being LIST and with the Back Cover Texts being LIST If you have Invariant Sections without Cover Texts or some other combination of the three merge those two alternatives to suit the situation If your document contains nontrivial examples of program code we recommend releasing these examples in parallel under your choice of free software license such as the GNU General Public License to permit their use in free software 4 Module Index 4 1 Modules Here is a list of all modules C Language Interface 18 Library Initialization and Finalization 19 The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 5 Class Index 17 Version Checking 21 Error Handling 23 Timeout Handling 25 Library Datatypes 27 5 Class Index 5 1 Class List Here are the classes structs unions and interfaces with brief descriptions ppl Artificia
52. ar Pretty prints var to stdout int ppl_io_fprint_variable FILE stream ppl_dimension_type var Pretty prints var to the given output st ream int ppl_io_asprint_variable char xstrp ppl dimension_type var Pretty prints var to a malloc allocated string a pointer to which is returned via strp int ppl_io_set_variable_output_function ppl_io_variable_output_function_type p Sets the output function to be used for printing variables to p int ppl_io_get_variable_output_function ppl_io_variable_output_function_type pp Writes a pointer to the current variable output function to pp char ppl io wrap string const char src unsigned indent depth unsigned preferred first line length unsigned preferred_line_length Utility function for the wrapping of lines of text Variables unsigned int PPL COMPLEXITY CLASS POLYNOMIAL Code of the worst case polynomial complexity class unsigned int PPL_COMPLEXITY_CLASS_SIMPLEX Code of the worst case exponential but typically polynomial complexity class unsigned int PPL_COMPLEXITY_CLASS_ANY Code of the universal complexity class unsigned int PPL_POLY_CON_RELATION_IS_DISJOINT Individual bit saying that the polyhedron and the set of points satisfying the constraint are disjoint unsigned int PPL_POLY_CON_RELATION_STRICTLY_INTERSECTS Individual bit saying that the polyhedron intersects the set of points satisfying the constraint but it is not included in it
53. ases when you modify the work You may place additional permissions on material added by you to a covered work for which you have or can give appropriate copyright permission Notwithstanding any other provision of this License for material you add to a covered work you may if authorized by the copyright holders of that material supplement the terms of this License with terms a Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License or e b Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it or e c Prohibiting misrepresentation of the origin of that material or requiring that modified versions of such material be marked in reasonable ways as different from the original version or d Limiting the use for publicity purposes of names of licensors or authors of the material or e Declining to grant rights under trademark law for use of some trade names trademarks or service marks or f Reguiring indemnification of licensors and authors of that material by anyone who conveys the material or modified versions of it with contractual assumptions of liability to the recipient for any liability that these contractual assumptions directly impose on those licensors and authors All other non permissive additional terms are considered further restrictions
54. ate you to collect a royalty for further conveying from those to whom you convey the Program the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program 13 Use with the GNU Affero General Public License Notwithstanding any other provision of this License you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single com bined work and to convey the resulting work The terms of this License will continue to apply to the part which is the covered work but the special reguirements of the GNU Affero General Public License section 13 concerning interaction through a network will apply to the combination as such 14 Revised Versions of this License The Free Software Foundation may publish revised and or new versions of the GNU General Public License from time to time Such new versions will be similar in spirit to the present version but may differ in detail to address new problems or concerns Each version is given a distinguishing version number If the Program specifies that a certain numbered version of the GNU General Public License or any later version applies to it you have the option of following the terms and conditions either of that numbered version or of any later version published by the The PPL C Language Interface User s Manual version 1 0 See http bugseng com for m
55. atisfiable but there is no finite bound to the value of the objective function PPL MIP_PROBLEM_STATUS_OPTIMIZED if the MIP problem admits an optimal solution The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 58 CONTENTS 7 17 2 2 int ppl_MIP_Problem_evaluate_ objective function ppl const MIP Problem t mip ppl_const_Generator_t g ppl_Coefficient_t num ppl_Coefficient_t den related Evaluates the objective function of mip on point g Parameters mip The MIP problem defining the objective function g The generator on which the objective function will be evaluated num Will be assigned the numerator of the objective function value den Will be assigned the denominator of the objective function value 7 17 2 3 int ppl MIP Problem optimal value ppl_const_MIP_Problem_t mip ppl_Coefficient_t num ppl_Coefficient_t den related Returns the optimal value for mip Parameters mip The MIP problem num Will be assigned the numerator of the optimal value den Will be assigned the denominator of the optimal value The documentation for this interface was generated from the following file ppl_c_header h 7 18 ppl_PIP_Decision_Node_tag Interface Reference Types and functions for PIP decision nodes include lt ppl_c_header h gt Related Functions Note that these
56. blem_t Opague pointer typedef struct ppl_MIP_Problem_tag const ppl_const_MIP_Problem_t Opague pointer to const object typedef struct ppl_PIP_Problem_tag ppl_PIP_Problem_t Opague pointer typedef struct ppl_PIP_Problem_tag const ppl_const_PIP_Problem_t Opaque pointer to const object typedef struct ppl_PIP_Tree_Node_tag x ppl_PIP_Tree_Node_t Opague pointer typedef struct ppl_PIP_Tree_Node_tag const x ppl_const_PIP_Tree_Node_t Opague pointer to const object typedef struct ppl_PIP_Decision_Node_tag ppl_PIP_Decision_Node_t Opague pointer typedef struct ppl_PIP_Decision_Node_tag const ppl_const_PIP_Decision_Node_t Opague pointer to const object typedef struct ppl_PIP_Solution_Node_tag ppl_PIP_Solution_Node_t Opague pointer typedef struct ppl_PIP_Solution_Node_tag const ppl_const_PIP_Solution_Node_t Opague pointer to const object typedef struct ppl Artificial Parameter tag x ppl_Artificial_Parameter_t Opaque pointer typedef struct ppl Artificial Parameter tag const ppl const Artificial Parameter t Opaque pointer to const object typedef struct ppl Artificial Parameter Sequence tag x ppl_Artificial_Parameter_Sequence_t Opaque pointer typedef struct ppl Artificial Parameter Sequence tag const ppl const Artificial Parameter Sequence t Opaque pointer to const object typedef struct ppl Artificial Parameter Sequence const iterator tag ppl_Artificial_Parameter_S
57. braries or general purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work For example Corresponding Source includes interface definition files associated with source files for the work and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to reguire such as by intimate data communication or control flow between those subprograms and other parts of the work The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source The Corresponding Source for a work in source code form is that same work 2 Basic Permissions All rights granted under this License are granted for the term of copyright on the Program and are irrevo cable provided the stated conditions are met This License explicitly affirms your unlimited permission to run the unmodified Program The output from running a covered work is covered by this License only if the output given its content constitutes a covered work This License acknowledges your rights of fair use or other eguivalent as provided by copyright law You may make run and propagate covered works that you do not convey without conditions so long as your license otherwise remains in force You may convey covered works to others for the sole purpose of having them make modifications exclusively f
58. ced on covers that bracket the Document within the aggregate or the electronic eguivalent of covers if the Document is in electronic form Otherwise they must appear on printed covers that bracket the whole aggregate 8 TRANSLATION Translation is considered a kind of modification so you may distribute translations of the Document under the terms of section 4 Replacing Invariant Sections with translations reguires special permission from their copyright holders but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections You may include a translation of this License and all the license notices in the Document and any Warranty Disclaimers provided that you also include the original English version of this License and the original versions of those notices and disclaimers In case of a disagreement between the translation and the original version of this License or a notice or disclaimer the original version will prevail If a section in the Document is Entitled Acknowledgements Dedications or History the requirement section 4 to Preserve its Title section 1 will typically reguire changing the actual title 9 TERMINATION The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 16 CONTENTS You may not copy modify sublicense or distribute the Document except as expressly provided for under this Lice
59. ct steepest edge pricing method int PPL MIP PROBLEM CONTROL _PARAMETER_PRICING_STEEPEST_EDGE_FLOAT Code of MIP problem s float steepest edge pricing method Constructors Assignment and Destructor int ppl new_MIP_Problem_from_space_dimension ppl_MIP_Problem_t pmip ppl_dimension _type d Builds a trivial MIP problem of dimension d and writes a handle to it at address pmip int ppl new_MIP_Problem ppl_MIP_Problem_t pmip ppl dimension_type d ppl_const_Constraint System _t cs ppl_const_Linear_Expression_t le int m Builds a MIP problem of space dimension d having feasible region cs objective function 1e and opti mization mode m writes a handle to it at address pmip int ppl new MIP Problem from MIP Problem ppl_MIP_Problem_t pmip ppl_const_MIP_ Problem t mip Builds a MIP problem that is a copy of mip writes a handle for the newly created system at address pmip int ppl_assign_MIP_Problem_from_MIP_Problem ppl_MIP_Problem_t dst ppl_const_MIP_ Problem t src Assigns a copy of the MIP problem src to dst int ppl_delete_MIP_Problem ppl_const_MIP_Problem_t mip Invalidates the handle mip this makes sure the corresponding resources will eventually be released Functions that Do Not Modify the MIP_Problem The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 56 CONTENTS int ppl MIP_Problem_space_dimension ppl_const_MIP_Problem_t mip ppl_di
60. de pip_tree e int ppl_PIP_Tree_Node_end ppl_const_PIP_Tree_Node_t pip_tree ppl_Artificial_Parameter_Sequence _const_iterator_t pit Assigns to pit a const iterator pointing to the end of the artificial parameter sequence in the pip tree node pip_tree Input Output Functions e int ppl_io_print_PIP_Tree_Node ppl_const_PIP_Tree_Node_t x Prints x to stdout e int ppl_io_fprint_PIP_Tree_Node FILE stream ppl_const_PIP_Tree_Node_t x Prints x to the given output st ream e int ppl_io_asprint_PIP_Tree_Node char strp ppl_const_PIP_Tree_Node_t x Prints x to a malloc allocated string a pointer to which is returned via st rp int ppl_PIP_Tree_Node_ascii_dump ppl_const_PIP_Tree_Node_t x FILE xstream Dumps an ascii representation of x on stream int ppl_PIP_Tree_Node_ascii_load ppl_PIP_Tree_Node_t x FILE xstream Loads an ascii representation of x from stream 7 21 1 Detailed Description Types and functions for generic PIP tree nodes The types and functions for tree nodes provide an interface towards PIP_Tree_Node The documentation for this interface was generated from the following file ppl_c_header h 7 22 ppl_Pointset_Powerset_C_Polyhedron_const iterator_tag Interface Reference Types and functions for iterating on the disjuncts of a const ppl_Pointset_Powerset_C_Polyhedron_tag Related Functions Note that these are not member functions Construction Initializatio
61. deterministic because it is not based on actual elapsed time Its behavior will only depend on some of the computations performed in the PP L library and it will be otherwise independent from the computation environment CPU operating system compiler etc Warning The weight mechanism is under beta testing In particular there is still no clear relation between the weight threshold and the actual computational complexity As a consequence client applications should be ready to reconsider the tuning of these weight thresholds when upgrading to newer version of the PPL The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 6 6 Library Datatypes 27 6 6 Library Datatypes Typedefs for the library datatypes and related symbolic constants Typedefs typedef size_t ppl_dimension_type An unsigned integral type for representing space dimensions typedef const char x ppl_io_variable_output_function_type ppl_dimension_type var The type of output functions used for printing variables typedef struct ppl_Coefficient_tag ppl_Coefficient_t Opague pointer typedef struct ppl_Coefficient_tag const ppl_const_Coefficient_t Opaque pointer to const object typedef struct ppl_Linear_Expression_tag ppl_Linear_Expression_t Opague pointer typedef struct ppl_Linear_Expression_tag const ppl_const_Linear_Expression_t Opaque pointer to const object typedef str
62. dle for the newly created polyhedron at address pph Note The complexity argument which can take values PPL_COMPLEXITY_CLASS_POLYNOMIAL P PL_COMPLEXITY_CLASS_SIMPLEX and PPL_COMPLEXITY_CLASS_ANY is ignored since the exact constructor has polynomial complexity The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 25 ppl Polyhedron_tag Interface Reference 79 7 25 2 13 int ppl_Polyhedron_relation_with_Constraint ppl_const_Polyhedron_t ph ppl_const_Constraint tc related Checks the relation between the polyhedron ph and the constraint c If successful returns a non negative integer that is obtained as the bitwise or of the bits chosen among PPL _POLY_CON_RELATION_IS_DISJOINT PPL_POLY_CON_RELATION_STRICTLY_INTERSECTS PPL_POLY_CON_RELATION_IS_ INCLUDED and PPL_POLY_CON_RELATION_SATURATES that describe the relation between ph and c 7 25 2 14 int ppl_Polyhedron_relation_with_Generator ppl const Polyhedron t ph ppl_const_Generator_tg related Checks the relation between the polyhedron ph and the generator g If successful returns a non negative integer that is obtained as the bitwise or of the bits only PPL_POLY _GEN_RELATION_SUBSUMES at present that describe the relation between ph and g 7 25 2 15 int ppl_Polyhedron_maximize_with_point ppl_const_Polyhedron_t ph ppl_const_Linear_Expression_t le ppl_Coefficient_t sup_n ppl_Coefficient_
63. e integer if the iterators corresponding to x and y are equal returns O if they are different The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 50 CONTENTS 7 13 1 Detailed Description Types and functions for iterating on grid generator systems The types and functions for grid generator systems iterators provide read only access to the elements of a grid generator system by interfacing Grid_Generator_System const_iterator The documentation for this interface was generated from the following file ppl_c_header h 7 14 ppl_Grid_Generator_System_tag Interface Reference Types and functions for grid generator systems finclude lt ppl_c header h gt Related Functions Note that these are not member functions Constructors Assignment and Destructor e int ppl_new_Grid_Generator_System ppl_Grid_Generator_System_t pgs Builds an empty system of grid generators and writes a handle to it at address pgs e int ppl new Grid Generator System from Grid Generator ppl_Grid Generator_System_t pgs ppl_const_Grid_Generator_t g Builds the singleton grid generator system containing only a copy of generator g writes a handle for the newly created system at address pgs intppl_new_Grid_Generator_System_from_Grid_Generator_System ppl_Grid_Generator_System _t pgs ppl_const_Grid_Generator_System_t gs Builds a grid generator system that is a copy of gs writes a
64. e licensing the lack of any warranty whatsoever the C compiler used to build the library where to report bugs and where to look for further information The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 6 4 Error Handling 23 6 4 Error Handling Enumerations enum ppl_enum_error_code PPL_ERROR_OUT_OF_MEMORY PPL_ERROR_INVALID_ARGUMENT PPL_ERROR_DO MAIN_ERROR PPL_ERROR_LENGTH_ERROR PPL_ARITHMETIC_OVERFLOW PPL_STDIO_ERROR PPL ERROR INTERNAL ERROR PPL_ERROR_UNKNOWN_STANDARD_EXCEPTION PPL_ERROR_UNEXPECTED_ERROR PPL_TIMEOUT_EXCEPTION PPL_ERROR_LOGIC _ERROR Defines the error codes that any function may return Functions e int ppl_set_error_handler void x h enum ppl enum error code code const char description Installs the user defined error handler pointed at by h 6 4 1 Detailed Description Symbolic constants and functions related to error reporting handling 6 4 2 Enumeration Type Documentation 6 4 2 1 enum ppl_enum_error_code Defines the error codes that any function may return Enumerator PPL ERROR OUT OF MEMORY The virtual memory available to the process has been exhausted PPL ERROR INVALID ARGUMENT A function has been invoked with an invalid argument PPL ERROR DOMAIN_ ERROR A function has been invoked outside its domain of definition PPL_ERROR_LENGTH_ERROR The construction of an object that would exceed its maximum permit
65. e may be on a different server operated by you or a third party that supports eguivalent copying facilities provided you maintain clear directions next to the object code saying where to find the Corresponding Source Regardless of what server hosts the Corresponding Source you remain obligated to ensure that it is available for as long as needed to satisfy these reguirements e Convey the object code using peer to peer transmission provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d A separable portion of the object code whose source code is excluded from the Corresponding Source as a System Library need not be included in conveying the object code work A User Product is either 1 a consumer product which means any tangible personal property which is normally used for personal family or household purposes or 2 anything designed or sold for incor poration into a dwelling In determining whether a product is a consumer product doubtful cases shall be resolved in favor of coverage For a particular product received by a particular user normally used refers to a typical or common use of that class of product regardless of the status of the particular user or of the way in which the particular user actually uses or expects or is expected to use the product A product is a consumer product regardless of whe
66. e systems The types and functions for congruence systems provide an interface towards Congruence_System The documentation for this interface was generated from the following file ppl_c_header h 7 6 ppl Congruence tag Interface Reference Types and functions for congruences finclude lt ppl_c header h gt Related Functions Note that these are not member functions Constructors Assignment and Destructor int ppl new_Congruence ppl_Congruence_t pc ppl_const_Linear_Expression_t le ppl_const _Coefficient_t m Creates the new congruence le 0 mod m and writes a handle for it at address pc The space dimension of the new congruence is equal to the space dimension of le e int ppl_new_Congruence_zero_dim_false ppl_Congruence_t pc Creates the unsatisfiable zero dimension space congruence 0 1 mod 0 and writes a handle for it at address pc e int ppl_new_Congruence_zero_dim_integrality ppl_Congruence_t pc Creates the true zero dimension space congruence 0 1 mod 1 also known as integrality congru ence A handle for the newly created congruence is written at address pc e intppl_new_Congruence_from_Congruence ppl_Congruence_t pc ppl_const_Congruence_t c Builds a congruence that is a copy of c writes a handle for the newly created congruence at address pc int ppl_assign_Congruence_from_Congruence ppl_Congruence_t dst ppl_const_Congruence_t src Assigns a copy of the congruence src to dst
67. ear_Expression_t lb ppl_const_Linear_Expression_t ub ppl_const_Coefficient_t d Assigns to ph the preimage of ph with respect to the generalized affine transfer relation Mn lt var lt 2b int ppl_Polyhedron_generalized_affine_image ppl_Polyhedron_t ph ppl dimension_type var enum ppl_enum_Constraint_Type relsym ppl_const_Linear_Expression_t le ppl_const_Coefficient _td Assigns to ph the image of ph with respect to the generalized affine transfer relation var va b where gt lt is the relation symbol encoded by relsym int ppl_Polyhedron_generalized_affine_preimage ppl_Polyhedron_t ph ppl_dimension_type var enum ppl_enum_Constraint_Type relsym ppl_const_Linear_Expression_t le ppl_const_Coefficient _td Assigns to ph the preimage of ph with respect to the generalized affine transfer relation var ba e where bd is the relation symbol encoded by relsym int ppl_Polyhedron_generalized_affine_image_lhs_rhs ppl_Polyhedron_t ph ppl const Linear _Expression_t lhs enum ppl_enum_Constraint_Type relsym ppl_const_Linear_Expression_t rhs Assigns to ph the image of ph with respect to the generalized affine transfer relation lhs gt a rhs where D lt is the relation symbol encoded by relsym int ppl_Polyhedron_generalized_affine_preimage_lhs_rhs ppl_Polyhedron_t ph ppl_const_Linear _Expression_t lhs enum ppl_enum_Constraint_Type relsym ppl_const_Linear_Expression_t rhs Assigns to ph the preimage of ph with respect to
68. ecessarily due to the imprecision of the analysis The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 34 CONTENTS 6 6 4 Function Documentation 6 6 4 1 char ppl_io wrap string const char x src unsigned indent depth unsigned preferred first line length unsigned preferred_line_length Utility function for the wrapping of lines of text Parameters STC The source string holding the text to wrap indent_depth The indentation depth preferred_first _line_length The preferred length for the first line of text preferred_line _length The preferred length for all the lines but the first one Returns The wrapped string in a malloc allocated buffer The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 Class Documentation 35 7 Class Documentation 7 1 ppl Artificial Parameter Sequence const iterator tag Interface Reference Types and functions for iterating on PIP artificial parameters finclude lt ppl_c header h gt Related Functions Note that these are not member functions Constructors Assignment and Destructor int ppl_new_Artificial_Parameter_Sequence_const_iterator ppl_Artificial_Parameter_Seguence _const_iterator_t papit Builds a new const iterator and writes a handle to it at address papit e int ppl new Artificial Parameter Seque
69. edron_t ph ppl_const_Congruence_System _tx pcs Writes at address pcs a const handle to a system of congruences approximating the polyhedron ph int ppl_Polyhedron_get_minimized_constraints ppl_const_Polyhedron_t ph ppl_const_Constraint _System_t pcs Writes a const handle to the minimized constraint system defining the polyhedron ph at address pcs int ppl_Polyhedron_get_minimized_congruences ppl_const_Polyhedron_t ph ppl_const_Congruence _System_t pcs The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 25 ppl Polyhedron_tag Interface Reference 71 Writes at address pcs a const handle to a system of minimized congruences approximating the polyhe dron ph int ppl Polyhedron is empty ppl_const_Polyhedron_t ph Returns a positive integer if ph is empty returns 0 if ph is not empty int ppl_Polyhedron_is_universe ppl_const_Polyhedron_t ph Returns a positive integer if ph is a universe polyhedron returns 0 if it is not int ppl_Polyhedron_is_bounded ppl_const_Polyhedron_t ph Returns a positive integer if ph is bounded returns O if ph is unbounded int ppl _Polyhedron_contains_integer_point ppl_const_Polyhedron_t ph Returns a positive integer if ph contains at least one integer point returns O otherwise int ppl_Polyhedron_is_topologically_closed ppl_const_Polyhedron_t ph Returns a positive integer if ph is topologically closed returns 0 if ph is not topologica
70. eful for debugging purposes int ppl Polyhedron external memory in bytes ppl_const_Polyhedron_t ph size_t sz The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 72 CONTENTS Writes to sz a lower bound to the size in bytes of the memory managed by ph intppl Polyhedron total memory in bytes ppl_const_Polyhedron_t ph size_t sz Writes to sz a lower bound to the size in bytes of the memory managed by ph Space Dimension Preserving Functions that May Modify the Polyhedron e int ppl_Polyhedron_add_constraint ppl_Polyhedron_t ph ppl_const_Constraint_t c Adds a copy of the constraint c to the system of constraints of ph int ppl_Polyhedron_add_ congruence ppl_Polyhedron_t ph ppl_const_Congruence_t c Adds a copy of the congruence c to polyhedron of ph int ppl_Polyhedron_add_constraints ppl_Polyhedron_t ph ppl_const_Constraint_System_t cs Adds a copy of the system of constraints cs to the system of constraints of ph int ppl_Polyhedron_add_congruences ppl_Polyhedron_t ph ppl_const_Congruence_System_ t cs Adds a copy of the system of congruences cs to the polyhedron ph int ppl_Polyhedron_add_recycled_constraints ppl_Polyhedron_t ph ppl_Constraint_System_ tcs Adds the system of constraints cs to the system of constraints of ph int ppl_Polyhedron_add recycled_congruences ppl_Polyhedron_t ph ppl_Congruence_System _t cs Adds the system of congruences c
71. eive it in any medium provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice keep intact all notices stating that this License and any non permissive terms added in accord with section 7 apply The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 2 GNU General Public License 5 to the code keep intact all notices of the absence of any warranty and give all recipients a copy of this License along with the Program You may charge any price or no price for each copy that you convey and you may offer support or warranty protection for a fee 5 Conveying Modified Source Versions You may convey a work based on the Program or the modifications to produce it from the Program in the form of source code under the terms of section 4 provided that you also meet all of these conditions a The work must carry prominent notices stating that you modified it and giving a relevant date b The work must carry prominent notices stating that it is released under this License and any conditions added under section 7 This reguirement modifies the reguirement in section 4 to keep intact all notices c You must license the entire work as a whole under this License to anyone who comes into pos session of a copy This License will therefore apply along with any applicable section 7 additional terms to the whole of the work and al
72. eng com for more information INDEX 87 ppl_Polyhedron _ affine image 80 ppl_Polyhedron affine_preimage 80 ppl_Polyhedron_bounded_affine_image 81 ppl_Polyhedron_bounded_affine_preimage 81 ppl_Polyhedron_eguals_Polyhedron 79 ppl_Polyhedron_generalized_affine image 81 ppl_new_C_Polyhedron_recycle_Generator_System ppl_Polyhedron_tag 83 ppl_restore_pre_PPL_rounding Library Initialization and Finalization 19 ppl_set_deterministic_timeout Timeout Handling 25 ppl_Polyhedron_generalized_affine_image_lhs ppl set error handler _rhs 82 Error Handling 24 ppl_Polyhedron_generalized_affine_preimage 8 lppl_set_irrational_precision ppl_Polyhedron_generalized_affine_preimage _lhs_rhs 82 ppl_Polyhedron_map_space_dimensions 82 ppl_Polyhedron_maximize_with_point 79 ppl_Polyhedron_minimize_with_point 79 ppl_Polyhedron_relation_with_Constraint 78 ppl_Polyhedron_relation_with_Generator 79 ppl_Polyhedron_upper_bound_assign 80 wrap_assign 83 ppl_Polyhedron_upper_bound_assign ppl_Polyhedron_tag 80 ppl_banner Version Checking 22 ppl_enum_Bounded_Integer_Type_Overflow Library Datatypes 33 ppl_enum_Bounded_Integer_Type_Representation Library Datatypes 33 ppl_enum_Bounded_Integer_Type_Width Library Datatypes 33 ppl_enum_Constraint_Type Library Datatypes 32 ppl_enum_Generator_Type Library Datatypes 32 ppl_enum_Grid_Generator_Type Library Datatypes 32 ppl_enum_error_code Error Handling 23 ppl_finalize
73. ension i If the function is defined on dimension i then dimension i is mapped onto dimension maps i The result is undefined if maps does not encode a partial function with the properties described in the The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 25 ppl Polyhedron_tag Interface Reference 83 specification of the mapping operator 7 25 2 30 int ppl_new_C_Polyhedron_from_Generator_System ppl_Polyhedron_t x pph ppl const Generator System tgs related Builds a new C polyhedron from the system of generators gs and writes a handle for the newly created polyhedron at address pph The new polyhedron will inherit the space dimension of gs 7 25 2 31 int ppl new C Polyhedron recycle Generator System ppl_Polyhedron_t x pph ppl_Generator_System tgs related Builds a new C polyhedron recycling the system of generators gs and writes a handle for the newly created polyhedron at address pph The new polyhedron will inherit the space dimension of gs Warning This function modifies the generator system referenced by gs upon return no assumption can be made on its value 7 25 2 32 intppl new NNC Polyhedron from Generator System ppl_Polyhedron_t pph ppl const Generator System tgs related Builds a new NNC polyhedron from the system of generators gs and writes a handle for the newly created polyhedron at address pph The new polyhedron will
74. equence_const iterator t The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 30 CONTENTS Opague pointer typedef struct ppl_Artificial_Parameter_Sequence_const_iterator_tag const ppl_const_Artificial_Parameter_Sequence_const_iterator_t Opaque pointer to const object typedef struct ppl_Polyhedron_tag ppl_Polyhedron_t Opaque pointer typedef struct ppl_Polyhedron_tag const ppl_const_Polyhedron_t Opaque pointer to const object typedef struct ppl_Pointset_Powerset_C_Polyhedron_tag ppl_Pointset_Powerset_C_Polyhedron_t Opaque pointer typedef struct ppl_Pointset_Powerset_C_Polyhedron_tag const ppl_const_Pointset_Powerset_C_Polyhedron_t Opaque pointer to const object typedef struct ppl_Pointset_Powerset_C_Polyhedron_iterator_tag x ppl_Pointset_Powerset_C_Polyhedron_iterator t Opaque pointer typedef struct ppl_Pointset_Powerset_C_Polyhedron_iterator_tag const ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t Opaque pointer to const object typedef struct ppl_Pointset_Powerset_C_Polyhedron_const_iterator_tag ppl_Pointset_Powerset_C_Polyhedron _const_iterator_t Opaque pointer typedef struct ppl_Pointset_Powerset_C_Polyhedron_const_iterator_tag const ppl_const_Pointset_Powerset_C_Polyhedron_const_iterator_t Opaque pointer to const object Enumerations enum ppl_enum_Constraint_Type PPL_CONSTRAINT_TYPE_LESS_
75. erator is a point 6 6 3 4 enum ppl_enum_Bounded_Integer_Type_Width Widths of bounded integer types Enumerator PPL_BITS_8 8 bits PPL_BITS_16 16 bits PPL_BITS_32 32 bits PPL_BITS_64 64 bits PPL_BITS_128 128 bits 6 6 3 5 enum ppl_enum_Bounded_Integer_Type_Representation Representation of bounded integer types Enumerator PPL_UNSIGNED Unsigned binary PPL_SIGNED_2 COMPLEMENT Signed binary where negative values are represented by the two s complement of the absolute value 6 6 3 6 enum ppl_enum_Bounded_Integer_Type_Overflow Overflow behavior of bounded integer types Enumerator PPL_OVERFLOW_WRAPS On overflow wrapping takes place This means that for a w bit bounded integer the computation happens modulo 2 PPL_OVERFLOW_UNDEFINED On overflow the result is undefined This simply means that the result of the operation resulting in an overflow can take any value Note Even though something more serious can happen in the system being analyzed due to e g C s undefined behavior here we are only concerned with the results of arithmetic operations It is the responsibility of the analyzer to ensure that other manifestations of undefined behavior are conservatively approximated PPL_OVERFLOW_IMPOSSIBLE Overflow is impossible This is for the analysis of languages where overflow is trapped before it affects the state for which thus any indication that an over flow may have affected the state is n
76. erator_tag Interface Reference 51 Returns a positive integer if gs is well formed i e if it satisfies all its implementation invariants returns 0 and perhaps makes some noise if gs is broken Useful for debugging purposes Functions that May Modify the Grid Generator System e int ppl_Grid_Generator_System_clear ppl_Grid_Generator_System_t gs Removes all the generators from the grid generator system gs and sets its space dimension to 0 e int ppl_Grid_Generator_System_insert_Grid_Generator ppl_Grid_Generator_System_t gs ppl _const Grid Generator_t g Inserts a copy of the grid generator g into gs the space dimension is increased if necessary Input Output Functions e intppl io print Grid Generator System ppl_const_Grid_Generator_System_t x Prints x to stdout e int ppl io_fprint Grid Generator System FILE stream ppl_const_Grid_Generator_System_t x Prints x to the given output stream e int ppl_io_asprint_Grid_Generator_System char xstrp ppl_const_Grid_Generator_System_t x Prints x to a malloc allocated string a pointer to which is returned via strp e intppl Grid Generator_System_ascii_dump ppl_const_Grid_Generator_System_t x FILE stream Dumps an ascii representation of x on stream e int ppl_Grid_Generator_System_ascii_load ppl_Grid_Generator_System_t x FILE stream Loads an ascii representation of x from stream 7 14 1 Detailed Description Types and functions for grid generator systems The t
77. ersion int ppl_version_minor void Returns the minor number of the PPL version int ppl_version_revision void Returns the revision number of the PPL version int ppl_version_beta void Returns the beta number of the PPL version int ppl version const char p Writes to xp a pointer to a character string containing the PPL version int ppl banner const char p Writes to p a pointer to a character string containing the PPL banner 6 3 1 Detailed Description Symbolic constants and functions related to library version checking 6 3 2 Macro Definition Documentation 6 3 2 1 define PPL VERSION 1 0 A string containing the PPL version Let M and m denote the numbers associated to PPL VERSION MAJOR and PPL VERSION MINOR respectively The format of PPL_VERSION is M m if both PPL_ VERSION_REVISION r and PPL_VERSION_BETA b are zero M m pre b if PPL VERSION REVISION is zero and PPL_VERSION_BETA is not zero M m rifPPL VERSION REVISION is not zero and P PL VERSION BETA is zero M m r pre bifneither PPL VERSION _REVISION nor PPL VERSION BETA are zero The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 22 CONTENTS 6 3 3 Function Documentation 6 3 3 1 int ppl_ banner const char xx p Writes to p a pointer to a character string containing the PPL banner The banner provides information about the PPL version th
78. escriptions e intppl_new_C_Polyhedron_from_Generator_System ppl_Polyhedron_t pph ppl_const_Generator _System_t gs Builds a new C polyhedron from the system of generators gs and writes a handle for the newly created polyhedron at address pph e int ppl_new_C_Polyhedron_recycle_Generator_System ppl_Polyhedron_t pph ppl_Generator _System_t gs Builds a new C polyhedron recycling the system of generators gs and writes a handle for the newly created polyhedron at address pph int ppl new_NNC_Polyhedron_from_Generator_System ppl_Polyhedron_t pph ppl_const_ Generator_System_t gs Builds a new NNC polyhedron from the system of generators gs and writes a handle for the newly created polyhedron at address pph e intppl_new_NNC_Polyhedron_recycle_Generator_System ppl_Polyhedron_t pph ppl_Generator _System_t gs Builds a new NNC polyhedron recycling the system of generators gs and writes a handle for the newly created polyhedron at address pph e int ppl_Polyhedron_get_generators ppl_const_Polyhedron_t ph ppl_const_Generator_System_t pgs Writes a const handle to the generator system defining the polyhedron ph at address pgs e int ppl_Polyhedron_get_minimized_generators ppl_const_Polyhedron_t ph ppl_const_Generator _System_t pgs Writes a const handle to the minimized generator system defining the polyhedron ph at address pgs int ppl Polyhedron_add_generator ppl_Polyhedron_t ph ppl_const_Generator_t g Adds a copy of the genera
79. hange b Convey the object code in or embodied in a physical product including a physical distribution medium accompanied by a written offer valid for at least three years and valid for as long as you offer spare parts or customer support for that product model to give anyone who possesses the object code either 1 a copy of the Corresponding Source for all the software in the product that is covered by this License on a durable physical medium customarily used for software interchange for a price no more than your reasonable cost of physically performing this conveying of source or 2 access to copy the Corresponding Source from a network server at no charge c Convey individual copies of the object code with a copy of the written offer to provide the Cor responding Source This alternative is allowed only occasionally and noncommercially and only if you received the object code with such an offer in accord with subsection 6b The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 6 CONTENTS d Convey the object code by offering access from a designated place gratis or for a charge and offer eguivalent access to the Corresponding Source in the same way through the same place at no further charge You need not reguire recipients to copy the Corresponding Source along with the object code If the place to copy the object code is a network server the Corresponding Sourc
80. he new linear expression at address ple e int ppl_new_Linear_Expression_from_Linear_Expression ppl_Linear_Expression_t ple ppl_ const_Linear_Expression_t le Builds a linear expression that is a copy of le writes a handle for the newly created linear expression at address ple e intppl_new_Linear_Expression_from_Constraint ppl_Linear_Expression_t ple ppl_const_Constraint tc Builds a linear expression corresponding to constraint c writes a handle for the newly created linear expression at address ple e intppl_new_Linear_Expression_from_Generator ppl_Linear_Expression_t ple ppl_const_Generator tg Builds a linear expression corresponding to generator g writes a handle for the newly created linear expression at address ple e int ppl_new_Linear_Expression_from_Congruence ppl_Linear_Expression_t ple ppl_const_ Congruence_t c Builds a linear expression corresponding to congruence c writes a handle for the newly created linear expression at address ple e int ppl_new_Linear_Expression_from_Grid_Generator ppl_Linear_Expression_t ple ppl_const _Grid_Generator_t g Builds a linear expression corresponding to grid generator g writes a handle for the newly created linear expression at address ple e int ppl_assign_Linear_Expression_from_Linear_Expression ppl_Linear_Expression_t dst ppl_ const_Linear_Expression_t src Assigns a copy of the linear expression src to dst e int ppl_delete_Linear_Expression ppl_const_Linear_Express
81. he system of congruences cs and writes a handle for the newly created polyhedron at address pph The new polyhedron will inherit the space dimension of cs 7 25 2 10 int ppl new NNC Polyhedron_recycle Congruence System ppl_Polyhedron_t x pph ppl_Congruence_System_tcs related Builds a new NNC polyhedron recycling the system of congruences cs and writes a handle for the newly created polyhedron at address pph The new polyhedron will inherit the space dimension of cs Warning This function modifies the congruence system referenced by cs upon return no assumption can be made on its value 7 25 2 11 int pp _new_C Polyhedron from NNC_Polyhedron with complexity ppl_Polyhedron_t pph ppl_const_Polyhedron_t ph int complexity related Builds a C polyhedron that approximates NNC_Polyhedron ph using an algorithm whose complexity does not exceed complexity writes a handle for the newly created polyhedron at address pph Note The complexity argument which can take values PPL_COMPLEXITY_CLASS_POLYNOMIAL P PL_COMPLEXITY_CLASS_SIMPLEX and PPL_COMPLEXITY_CLASS_ANY is ignored since the exact constructor has polynomial complexity 7 25 2 12 int ppl_new_NNC_Polyhedron_from_C_Polyhedron_with_complexity ppl_Polyhedron_t pph ppl_const_Polyhedron_t ph int complexity related Builds an NNC polyhedron that approximates C_Polyhedron ph using an algorithm whose complexity does not exceed complexity writes a han
82. ho authorizes use under this License of the Program or a work on which the Program is based The work thus licensed is called the contributor s contributor version A contributor s essential patent claims are all patent claims owned or controlled by the contributor whether already acguired or hereafter acguired that would be infringed by some manner permitted by this License of making using or selling its contributor version but do not include claims that would be infringed only as a conseguence of further modification of the contributor version For purposes of this definition control includes the right to grant patent sublicenses in a manner consistent with the reguirements of this License Each contributor grants you a non exclusive worldwide royalty free patent license under the contributor s essential patent claims to make use sell offer for sale import and otherwise run modify and propagate the contents of its contributor version In the following three paragraphs a patent license is any express agreement or commitment however denominated not to enforce a patent such as an express permission to practice a patent or covenant not to sue for patent infringement To grant such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party If you convey a covered work knowingly relying on a patent license and the Corresponding Source of the work
83. if coefficients are bounded in which case min is set to their minimum value returns O otherwise int ppl_Coefficient_max mpz_t max Returns a positive integer if coefficients are bounded in which case max is set to their maximum value returns O otherwise T O Functions int ppl_io_print_Coefficient ppl_const_Coefficient_t x Prints x to stdout e int ppl_io_fprint_Coefficient FILE xstream ppl_const_Coefficient_t x Prints x to the given output stream e int ppl_io_asprint_Coefficient char x strp ppl_const_Coefficient_t x Prints x to a malloc allocated string a pointer to which is returned via strp 7 3 1 Detailed Description Types and functions for coefficients The types and functions for coefficients provide an interface towards Coefficient Depending on configu ration the PPL coefficients may be implemented by the unbounded precision integers provided by GMP default or by bounded precision integers with checks for overflows The documentation for this interface was generated from the following file ppl_c_header h The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 38 CONTENTS 7 4 ppl_Congruence_System_const_iterator_tag Interface Reference Types and functions for iterating on congruence systems include lt ppl_c header h gt Related Functions Note that these are not member functions Constructors Assignment and Destructor
84. ifies the space dimensions to be wrapped n The first n space dimensions in the array ds will be wrapped w The width of the bounded integer type corresponding to all the dimensions to be wrapped The representation of the bounded integer type corresponding to all the dimensions to be wrapped The overflow behavior of the bounded integer type corresponding to all the dimensions to be wrapped Possibly null pointer to a constraint system whose space dimensions are the first n dimensions in ds If xpcs depends on variables not in vars the behavior is unde fined When non null the constraint system is assumed to represent the conditional or looping construct guard with respect to which wrapping is performed Since wrapping requires the computation of upper bounds and due to non distributivity of constraint refinement over upper bounds passing a constraint system in this way can be more precise than refining the result of the wrapping operation with the constraints in cs complexity_ threshold A precision parameter where higher values result in possibly improved precision wrap_ individually Non zero if the dimensions should be wrapped individually something that results in much greater efficiency to the detriment of precision The documentation for this interface was generated from the following file e C_interface dox The PPL C Language Interface User s Manual version 1 0 See h
85. ii representation of x on st ream e int ppl_Generator_System_ascii_load ppl_Generator_System_t x FILE xstream Loads an ascii representation of x from stream 7 11 1 Detailed Description Types and functions for generator systems The types and functions for generator systems provide an interface towards Generator_System The documentation for this interface was generated from the following file ppl_c_header h 7 12 ppl Generator tag Interface Reference Types and functions for generators include lt ppl_c header h gt The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 48 CONTENTS Related Functions Note that these are not member functions Constructors Assignment and Destructor e intppl_new_Generator ppl_Generator_t pg ppl_const_Linear_Expression_t le enum ppl_enum _Generator_Type t ppl_const_Coefficient_t d Creates a new generator of direction le and type t If the generator to be created is a point or a closure point the divisor dis applied to 1e For other types of generators d is simply disregarded A handle for the new generator is written at address pg The space dimension of the new generator is egual to the space dimension of 1e e intppl new Generator zero dim point ppl_Generator_t pg Creates the point that is the origin of the zero dimensional space R9 Writes a handle for the new generator at address pg e int ppl_new_Generator
86. imension 0 e int ppl_PIP_Problem_add_space_dimensions_and_embed ppl_PIP_Problem_t pip ppl dimension _type pip_vars ppl_dimension_type pip_params Adds pip_vars pip params new space dimensions and embeds the PIP problem pip in the new vector space e int ppl_PIP_Problem_add_to_parameter_space_dimensions ppl_PIP_Problem_t pip ppl_dimension _type ds size_t n Sets the space dimensions that are specified in first n positions of the array ds to be parameter dimen sions of problem pip The presence of duplicates in ds is a waste but an innocuous one int ppl_PIP_Problem_set_big_parameter_dimension ppl_PIP_Problem_t pip ppl_dimension_ type d The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 19 ppl PIP_Problem_tag Interface Reference 61 Sets the big parameter dimension of PIP problem pip to d int ppl_PIP_Problem_add_constraint ppl_PIP_Problem_t pip ppl_const_Constraint_t c Modifies the feasible region of the PIP problem pip by adding a copy of the constraint c e int ppl PIP _Problem_add_constraints ppl_PIP_Problem_t pip ppl const Constraint System t cs Modifies the feasible region of the PIP problem pip by adding a copy of the constraints in cs Computing and Printing the Solution of the PIP_Problem e int ppl_PIP_ Problem is_satisfiable ppl_const_PIP_Problem_t pip Returns a positive integer if pip is satisfiable and an optimal solu
87. in which it has been modified or installed Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network Corresponding Source conveyed and Installation Information provided in accord with this section must be in a format that is publicly documented and with an implementation available to the public in source code form and must reguire no special password or key for unpacking reading or copying 7 Additional Terms Additional permissions are terms that supplement the terms of this License by making exceptions from one or more of its conditions Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License to the extent that they are valid under applicable law If additional permissions apply only to part of the Program that part may be used separately under those The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 2 GNU General Public License 7 permissions but the entire Program remains governed by this License without regard to the additional permissions When you convey a copy of a covered work you may at your option remove any additional permissions from that copy or from any part of it Additional permissions may be written to reguire their own removal in certain c
88. include lt ppl_c header h gt Related Functions Note that these are not member functions Symbolic Constants int PPL_PIP PROBLEM STATUS_UNFEASIBLE Code of the unfeasible PIP problem status int PPL_PIP PROBLEM STATUS_OPTIMIZED Code of the optimized PIP problem status int PPL_PIP PROBLEM CONTROL _PARAMETER_NAME_CUTTING_STRATEGY Code for the PIP problem s cutting strategy control parameter name int PPL PIP PROBLEM CONTROL_PARAMETER_NAME PIVOT_ROW_STRATEGY Code for the PIP problem s pivot row strategy control parameter name int PPL_PIP_PROBLEM_CONTROL_PARAMETER_CUTTING_STRATEGY_FIRST Code of PIP problem s first cutting strategy int PPL PIP PROBLEM CONTROL _PARAMETER_CUTTING_STRATEGY_DEEPEST Code of PIP problem s deepest cutting strategy int PPL_PIP PROBLEM CONTROL _PARAMETER_CUTTING_STRATEGY_ALL Code of PIP problem s all cutting strategy int PPL PIP PROBLEM CONTROL _PARAMETER_PIVOT_ROW_STRATEGY_FIRST Code of PIP problem s first pivot row strategy int PPL_PIP_PROBLEM_CONTROL_PARAMETER_PIVOT_ROW_STRATEGY_MAX_CO LUMN Code of PIP problem s max column pivot row strategy Constructors Assignment and Destructor e int ppl_new_PIP_Problem_from_space_dimension ppl_PIP_Problem_t ppip ppl_dimension_ type d Builds a trivial PIP problem of dimension d and writes a handle to it at address ppip e intppl new PIP Problem from PIP Problem ppl_PIP_Problem_t ppip ppl_const_PIP_Problem _t pip Builds
89. inherit the space dimension of gs 7 25 2 33 int ppl new NNC Polyhedron recycle Generator System ppl_Polyhedron_t x pph ppl Generator System tgs related Builds a new NNC polyhedron recycling the system of generators gs and writes a handle for the newly created polyhedron at address pph The new polyhedron will inherit the space dimension of gs Warning This function modifies the generator system referenced by gs upon return no assumption can be made on its value 7 25 2 34 int ppl Polyhedron add recycled generators ppl_Polyhedron_t ph ppl _Generator_System_tgs related Adds the system of generators gs to the system of generators of ph Warning This function modifies the generator system referenced by gs upon return no assumption can be made on its value The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information BS 84 CONTENTS 7 25 2 35 int wrap_assign ppl_Polyhedron_t ph ppl dimension type ds size_t n ppl_enum_ Bounded_Integer_Type_Width w ppl enum_Bounded_Integer_Type_Representation r ppl_enum_Bounded_Integer_Type_Overflow o const ppl_const_Constraint_System_t x pcs unsigned complexity_threshold int wrap_individually related Assigns to ph the polyhedron obtained from ph by wrapping the vector space defined by the first n space dimensions in ds Parameters ph The polyhedron that is transformed ds Spec
90. int ppl_delete_Congruence ppl_const_Congruence_t c Invalidates the handle c this makes sure the corresponding resources will eventually be released Functions that Do Not Modify the Congruence The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 7 ppl Constraint System const iterator tag Interface Reference 41 intppl Congruence space dimension ppl const Congruence tc ppl dimension type m Writes to m the space dimension of c e intppl_Congruence_coefficient ppl_const_Congruence_t c ppl_dimension_type var ppl_Coefficient ta Copies into n the coefficient of variable var in congruence c e int ppl_Congruence_inhomogeneous_term ppl_const_Congruence_t c ppl_Coefficient_t n Copies into n the inhomogeneous term of congruence c e int ppl_Congruence_modulus ppl_const_Congruence_t c ppl_Coefficient_t m Copies into m the modulus of congruence c int ppl_Congruence_OK ppl_const_Congruence_t c Returns a positive integer if c is well formed i e if it satisfies all its implementation invariants returns 0 and perhaps makes some noise if c is broken Useful for debugging purposes Input Output Functions e int ppl_io_print_Congruence ppl_const_Congruence_t x Prints x to stdout int ppl_io_fprint_Congruence FILE stream ppl_const_Congruence_t x Prints x to the given output st ream e int ppl_io_asprint_Congruence char strp ppl_const_Congruence_t x
91. ion that gives further information about the actual error The C string containing the textual description is read only and its existence is not guaranteed after the handler has returned The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 6 5 Timeout Handling 25 6 5 Timeout Handling Functions e int ppl_set_timeout unsigned csecs Sets the timeout for computations whose completion could require an exponential amount of time e int ppl_reset_timeout void Resets the timeout time so that the computation is not interrupted int ppl_set_deterministic_timeout unsigned long unscaled_weight unsigned scale Sets a threshold for computations whose completion could require an exponential amount of time e int ppl_reset_deterministic_timeout void Resets the deterministic timeout so that the computation is not interrupted 6 5 1 Detailed Description Functions for setting and resetting timeouts 6 5 2 Function Documentation 6 5 2 1 int ppl_set_timeout unsigned csecs Sets the timeout for computations whose completion could require an exponential amount of time Parameters csecs The number of centiseconds sometimes after which a timeout will occur it must be strictly greater than zero Computations taking exponential time will be interrupted some time after csecs centiseconds have elapsed since the call to the timeout setting function If the comp
92. ion_t le Invalidates the handle le this makes sure the corresponding resources will eventually be released Functions that Do Not Modify the Linear Expression e int ppl_Linear_Expression_space_dimension ppl_const_Linear_Expression_t le ppl_dimension _type m Writes to m the space dimension of le int ppl_Linear_Expression_coefficient ppl_const_Linear_Expression_t le ppl_dimension_type var ppl_Coefficient_t n Copies into n the coefficient of variable var in the linear expression le The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 54 CONTENTS e int ppl_Linear_Expression_inhomogeneous_term ppl_const_Linear_Expression_t le ppl_Coefficient _tn Copies into n the inhomogeneous term of linear expression le int ppl_Linear_Expression_OK ppl_const_Linear_Expression_t le Returns a positive integer if Le is well formed i e if it satisfies all its implementation invariants returns O and perhaps makes some noise if 1e is broken Useful for debugging purposes e int ppl_Linear_Expression_is_zero ppl_const_Linear_Expression_t le Returns true if and only if this is 0 e int ppl_Linear_Expression_all_homogeneous_terms_are_zero ppl_const_Linear_Expression_t le Returns t rue if and only if all the homogeneous terms of t his are 0 Functions that May Modify the Linear Expression e int ppl_Linear_Expression_add_to_coefficient ppl_Linear_Expression_t le p
93. iption Types and functions for PIP problems The types and functions for PIP problems provide an interface towards PIP_Problem 7 19 2 Friends And Related Function Documentation 7 19 2 1 int ppl PIP Problem space dimension ppl_const_PIP_Problem_t pip ppl_dimension_type m related Writes to m the dimension of the vector space enclosing pip The vector space dimensions includes both the problem variables and the problem parameters but they do not include the artificial parameters The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 62 CONTENTS 7 19 2 2 int ppl_PIP_Problem_add_space_dimensions_and_embed ppl_PIP_Problem_t pip ppl_dimension_type pip_vars ppl_dimension_type pip_ params related Adds pip_vars pip_params new space dimensions and embeds the PIP problem pip in the new vector space Parameters pip The PIP problem to be embedded in the new vector space pip_vars The number of space dimensions to add that are interpreted as PIP problem variables i e non parameters These are added before adding the pip_params parameters pip_params The number of space dimensions to add that are interpreted as PIP problem parameters These are added after having added the pip_vars problem variables The new space dimensions will be those having the highest indexes in the new PIP problem they are initially unconstrained 7 19 2
94. irst ones listed as many as fit reasonably on the actual cover and continue the rest onto adjacent pages If you publish or distribute Opague copies of the Document numbering more than 100 you must either include a machine readable Transparent copy along with each Opague copy or state in or with each Opague copy a computer network location from which the general network using public has access to download using public standard network protocols a complete Transparent copy of the Document free of added material If you use the latter option you must take reasonably prudent steps when you begin distribution of Opague copies in guantity to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opague copy directly or through your agents or retailers of that edition to the public It is reguested but not reguired that you contact the authors of the Document well before redistributing any large number of copies to give them a chance to provide you with an updated version of the Document 4 MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above provided that you release the Modified Version under precisely this License with the Modified Ver sion filling the role of the Document thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it I
95. is not available for anyone to copy free of charge and under the terms of this License through The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 2 GNU General Public License 9 a publicly available network server or other readily accessible means then you must either 1 cause the Corresponding Source to be so available or 2 arrange to deprive yourself of the benefit of the patent li cense for this particular work or 3 arrange in a manner consistent with the reguirements of this License to extend the patent license to downstream recipients Knowingly relying means you have actual knowl edge that but for the patent license your conveying the covered work in a country or your recipient s use of the covered work in a country would infringe one or more identifiable patents in that country that you have reason to believe are valid If pursuant to or in connection with a single transaction or arrangement you convey or propagate by procuring conveyance of a covered work and grant a patent license to some of the parties receiving the covered work authorizing them to use propagate modify or convey a specific copy of the covered work then the patent license you grant is automatically extended to all recipients of the covered work and works based on it A patent license is discriminatory if it does not include within the scope of its coverage prohibits the exerci
96. it at address pgit e intppl_new_Grid_Generator_System_const_iterator_from_Grid_Generator_System_const_iterator ppl Grid Generator System const iterator t pgit ppl_const_Grid_Generator_System_const _iterator_t git Builds a const iterator that is a copy of git writes a handle for the newly created const iterator at address pgit int ppl_assign_Grid_Generator_System_const_iterator_from_Grid_Generator_System_const_iterator ppl_Grid_Generator_System_const_iterator_t dst ppl_const_Grid_Generator_System_const_iterator _t src Assigns a copy of the const iterator src to dst int ppl_delete_Grid_Generator_System_const_iterator ppl_const_Grid_Generator_System_const _iterator_t git Invalidates the handle git this makes sure the corresponding resources will eventually be released Dereferencing Incrementing and Equality Testing e int ppl_Grid_Generator_System_const_iterator_dereference ppl_const_Grid_Generator_System const_iterator_t git ppl_const_Grid_Generator_t pg Dereference git writing a const handle to the resulting grid generator at address pg e int ppl_Grid_Generator_System_const_iterator_increment ppl_Grid Generator System const iterator_t git Increment git so that it points to the next grid generator int ppl_Grid_Generator_System_const_iterator_equal_test ppl_const_Grid_Generator_System const_iterator_t x ppl_const_Grid_Generator_System_const_iterator_t y Returns a positiv
97. iterator_t git Assigns to git a const iterator pointing to the beginning of the generator system gs intppl_Generator_System_end ppl_const_Generator_System_t gs ppl_Generator_System_const _iterator_t git Assigns to git a const iterator pointing past the end of the generator system gs e int ppl_Generator_System_OK ppl_const_Generator_System_t gs Returns a positive integer if gs is well formed i e if it satisfies all its implementation invariants returns 0 and perhaps makes some noise if gs is broken Useful for debugging purposes Functions that May Modify the Generator System e int ppl_Generator_System_ clear ppl_Generator_System_t gs Removes all the generators from the generator system gs and sets its space dimension to 0 e int ppl_Generator_System_insert_Generator ppl_Generator_System_t gs ppl_const_Generator te Inserts a copy of the generator g into gs the space dimension is increased if necessary Input Output Functions e intppl io print Generator System ppl_const_Generator_System_t x Prints x to stdout e int ppl_io_fprint_Generator_System FILE stream ppl_const_Generator_System_t x Prints x to the given output st ream e int ppl_io_asprint_Generator_System char strp ppl_const_Generator_System_t x Prints x to a malloc allocated string a pointer to which is returned via st rp e int ppl_Generator_System_ascii_dump ppl_const_Generator_System_t x FILE stream Dumps an asc
98. ites a handle to it at address pgs e int ppl new Generator System from Generator ppl_Generator_System_t pgs ppl_const_Generator te Builds the singleton generator system containing only a copy of generator g writes a handle for the newly created system at address pgs int ppl new Generator System from Generator System ppl Generator System t pgs ppl const Generator System t gs Builds a generator system that is a copy of gs writes a handle for the newly created system at address pgs e int ppl_assign_Generator_System_from_Generator_System ppl_Generator_System_t dst ppl_ const_Generator_System_t src Assigns a copy of the generator system src to dst e int ppl_delete_Generator_System ppl_const_Generator_System_t gs Invalidates the handle gs this makes sure the corresponding resources will eventually be released Functions that Do Not Modify the Generator System e int ppl_Generator_System_space_dimension ppl_const_Generator_System_t gs ppl_dimension _type m Writes to m the dimension of the vector space enclosing gs The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 12 ppl_Generator_tag Interface Reference 47 int ppl_Generator_System_empty ppl_const_Generator_System_t gs Returns a positive integer if gs contains no generators returns O otherwise int ppl_Generator_System_begin ppl_const_Generator_System_t gs ppl_Generator_System_ const_
99. know you can do these things To protect your rights we need to prevent others from denying you these rights or asking you to surrender the rights Therefore you have certain responsibilities if you distribute copies of the software or if you modify it responsibilities to respect the freedom of others For example if you distribute copies of such a program whether gratis or for a fee you must pass on to the recipients the same freedoms that you received You must make sure that they too receive or can get the source code And you must show them these terms so they know their rights Developers that use the GNU GPL protect your rights with two steps 1 assert copyright on the software and 2 offer you this License giving you legal permission to copy distribute and or modify it For the developers and authors protection the GPL clearly explains that there is no warranty for this free software For both users and authors sake the GPL requires that modified versions be marked as changed so that their problems will not be attributed erroneously to authors of previous versions Some devices are designed to deny users access to install or run modified versions of the software inside them although the manufacturer can do so This is fundamentally incompatible with the aim of protecting The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 2 GNU General Public License 3
100. l Parameter Sequence const iterator tag Types and functions for iterating on PIP artificial parameters 35 ppl Artificial Parameter_tag Types and functions for PIP artificial parameters 36 ppl_Coefficient_tag Types and functions for coefficients 36 ppl_Congruence_System_const_iterator_tag Types and functions for iterating on congruence systems 38 ppl_Congruence_System_tag Types and functions for congruence systems 38 ppl_Congruence_tag Types and functions for congruences 40 ppl Constraint System const iterator tag Types and functions for iterating on constraint systems 41 ppl_Constraint_System_tag Types and functions for constraint systems 42 ppl_Constraint_tag Types and functions for constraints 44 ppl Generator System const iterator tag Types and functions for iterating on generator systems 45 ppl_Generator_System_tag Types and functions for generator systems 46 ppl_Generator_tag Types and functions for generators 47 ppl_Grid_Generator_System_const_iterator_tag Types and functions for iterating on grid generator systems 49 ppl_Grid_Generator_System_tag Types and functions for grid generator systems 50 The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 18 CONTENTS ppl_Grid_Generator_tag Types and functions for grid generators ppl_Linear_Expression_tag Types and functions for linear expressions ppl_MIP_Problem_tag Types and functions for MIP problems ppl_P
101. l its parts regardless of how they are packaged This License gives no permission to license the work in any other way but it does not invalidate such permission if you have separately received it d If the work has interactive user interfaces each must display Appropriate Legal Notices however if the Program has interactive interfaces that do not display Appropriate Legal Notices your work need not make them do so A compilation of a covered work with other separate and independent works which are not by their nature extensions of the covered work and which are not combined with it such as to form a larger program in or on a volume of a storage or distribution medium is called an aggregate if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation s users beyond what the individual works permit Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate 6 Conveying Non Source Forms You may convey a covered work in object code form under the terms of sections 4 and 5 provided that you also convey the machine readable Corresponding Source under the terms of this License in one of these ways a Convey the object code in or embodied in a physical product including a physical distribution medium accompanied by the Corresponding Source fixed on a durable physical medium customar ily used for software interc
102. l to the polyhedron x assigns to x the H79 widening of x and y intersected with the constraints in cs that are satisfied by all the points of x further intersected with all the constraints of the form v lt r and v lt r with r Q that are satisfied by all the points of x 7 25 1 Detailed Description Types and functions for the domains of C and NNC convex polyhedra The types and functions for convex polyhedra provide a single interface for accessing both topologically closed C and not necessarily closed NNC convex polyhedra The distinction between C and NNC polyhedra need only be explicitly stated when creating or assigning a polyhedron object by means of one of the functions ppl_new_ and ppl_assign_ Having a single datatype does not mean that C and NNC polyhedra can be freely interchanged as spec ified in the main manual most library functions reguire their arguments to be topologically and or space dimension compatible 7 25 2 Friends And Related Function Documentation 7 25 2 1 int ppl_new_C_Polyhedron_from_C_Polyhedron_with_complexity ppl_Polyhedron_t x pph ppl_const_Polyhedron_t ph int complexity related Builds a C polyhedron that is a copy of ph writes a handle for the newly created polyhedron at address pph Note The complexity argument is ignored 7 25 2 2 int ppl_new_C_Polyhedron_from_Constraint_System ppl_Polyhedron_t pph ppl const Constraint System tcs related Builds a ne
103. l_const_Coefficient_t d related le Assigns to ph the image of ph with respect to the generalized affine transfer relation var p lt q Where gt lt is the relation symbol encoded by rel sym Parameters ph The polyhedron that is transformed var The left hand side variable of the generalized affine transfer relation relsym The relation symbol le The numerator of the right hand side affine expression d The denominator of the right hand side affine expression The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 82 CONTENTS 7 25 2 26 int ppl_Polyhedron_generalized_affine_preimage ppl_Polyhedron_t ph ppl dimension_type var enum ppl_enum_ Constraint_Type relsym ppl_const_Linear_Expression_t le ppl_const_Coefficient td related le Assigns to ph the preimage of ph with respect to the generalized affine transfer relation var gt a Z where Parameters gt is the relation symbol encoded by rel sym ph The polyhedron that is transformed var The left hand side variable of the generalized affine transfer relation relsym The relation symbol le The numerator of the right hand side affine expression d The denominator of the right hand side affine expression 7 25 2 27 int ppl Polyhedron generalized affine image Ihs_rhs ppl Polyhedron_t
104. last Drops from ps all the disjuncts from first to last excluded e int ppl_Pointset_Powerset_C_Polyhedron_pairwise_reduce ppl_Pointset_Powerset_C_Polyhedron _t ps Modifies ps by recursively merging together the pairs of disjuncts whose upper bound is the same as their set theoretical union The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 68 CONTENTS 7 244 Detailed Description Types and functions for the Pointset_Powerset of C_Polyhedron objects The powerset domains can be instantiated by taking as a base domain any fixed semantic geometric de scription C and NNC polyhedra BD and octagonal shapes boxes and grids An element of the powerset domain represents a disjunctive collection of base objects its disjuncts all having the same space dimen sion Besides the functions that are available in all semantic geometric descriptions whose documentation is not repeated here the powerset domain also provides several ad hoc functions In particular the iterator types allow for the examination and manipulation of the collection of disjuncts 7 24 2 Friends And Related Function Documentation 7 24 2 1 int ppl_Pointset_Powerset_C_Polyhedron_size ppl_const_Pointset_Powerset_C_Polyhedron_t ps sizet sz related Writes to sz the number of disjuncts in ps Note If present Omega redundant elements will be counted too The documentatio
105. led Description Types and functions for constraints The types and functions for constraints provide an interface towards Constraint The documentation for this interface was generated from the following file ppl_c_header h 7 10 _ppl Generator System const iterator_tag Interface Reference Types and functions for iterating on generator systems include lt ppl_c header h gt Related Functions Note that these are not member functions Constructors Assignment and Destructor e intppl new Generator System const iterator ppl Generator System const iterator t pgit Builds a new const iterator and writes a handle to it at address pgit e int ppl new Generator System const iterator from Generator System const iterator ppl_ Generator System const iterator t pgit ppl const Generator System const iterator t git Builds a const iterator that is a copy of git writes a handle for the newly created const iterator at address pgit int ppl_assign_Generator_System_const_iterator_from_Generator_System_const_iterator ppl_ Generator_System_const_iterator_t dst ppl_const_Generator_System_const_iterator_t src Assigns a copy of the const iterator src to dst int ppl_delete_Generator_System_const_iterator ppl_const_Generator_System_const_iterator_t git Invalidates the handle git this makes sure the corresponding resources will eventually be released Dereferencing Incrementing and Equality Testing
106. lly closed int ppl_Polyhedron is discrete ppl_const_Polyhedron_t ph Returns a positive integer if ph is a discrete set returns 0 if ph is not a discrete set int ppl _Polyhedron_constrains ppl_Polyhedron_t ph ppl_dimension_type var Returns a positive integer if ph constrains var returns O if ph does not constrain var int ppl_Polyhedron_bounds_from_above ppl_const_Polyhedron_t ph ppl_const_Linear_Expression _tle Returns a positive integer if 1e is bounded from above in ph returns O otherwise int ppl_Polyhedron_bounds_from_below ppl_const_Polyhedron_t ph ppl_const_Linear_Expression _tle Returns a positive integer if 1e is bounded from below in ph returns 0 otherwise int ppl_Polyhedron_maximize_with_point ppl_const_Polyhedron_t ph ppl_const_Linear_Expression _tle ppl_Coefficient_t sup_n ppl_Coefficient_t sup_d int pmaximum ppl_Generator_t point Returns a positive integer if ph is not empty and le is bounded from above in ph in which case the supremum value and a point where le reaches it are computed int ppl_Polyhedron_maximize ppl_const_Polyhedron_t ph ppl_const_Linear_Expression_t le ppl_Coefficient_t sup_n ppl_Coefficient_t sup d int pmaximum The same as ppl_Polyhedron_maximize_with_point but without the output argument for the location where the supremum value is reached int ppl_Polyhedron_minimize_with_point ppl_const_Polyhedron_t ph ppl_const_Linear_Expression _t le ppl_Coefficient_t inf_n ppl
107. lyhedron_with_complexity ppl_Polyhedron_t xpph ppl_const_Polyhedron_t ph int complexity Builds an NNC polyhedron that approximates C_Polyhedron ph using an algorithm whose complexity does not exceed complexit y writes a handle for the newly created polyhedron at address pph Destructor for C or NNC Polyhedra int ppl_delete_Polyhedron ppl_const_Polyhedron_t ph Invalidates the handle ph this makes sure the corresponding resources will eventually be released Functions that Do Not Modify the Polyhedron e int ppl_Polyhedron_space_dimension ppl_const_Polyhedron_t ph ppl_dimension_type m Writes to m the dimension of the vector space enclosing ph e int ppl_Polyhedron affine_dimension ppl_const_Polyhedron_t ph ppl_dimension_type m Writes to m the affine dimension of ph not to be confused with the dimension of its enclosing vector space or 0 if ph is empty e int ppl_Polyhedron_relation_with_Constraint ppl_const_Polyhedron_t ph ppl_const_Constraint tc Checks the relation between the polyhedron ph and the constraint c e int ppl Polyhedron relation with Generator ppl_const_Polyhedron_t ph ppl_const_Generator te Checks the relation between the polyhedron ph and the generator g int ppl_Polyhedron_get_constraints ppl const Polyhedron t ph ppl_const_Constraint_System _t pcs Writes a const handle to the constraint system defining the polyhedron ph at address pcs int ppl_Polyhedron_get_congruences ppl_const_Polyh
108. mension_type xm Writes to m the dimension of the vector space enclosing mip int pplMIP_Problem_number_of_integer_space_dimensions ppl_const_MIP_Problem_t mip ppl _dimension_type m Writes to m the number of integer space dimensions of mip int ppl_MIP_Problem_integer_space_dimensions ppl_const_MIP_Problem_t mip ppl_dimension _type ds Writes in the first positions of the array ds all the integer space dimensions of problem mip If the array is not big enough to hold all of the integer space dimensions the behavior is undefined int pplMIP_Problem_number_of_constraints ppl_const_MIP_Problem_t mip ppl_dimension _type m Writes to m the number of constraints defining the feasible region of mip int ppl_MIP_Problem_constraint_at_index ppl_const_MIP_Problem_t mip ppl_dimension_type i ppl_const_Constraint_t pc Writes at address pc a const handle to the i th constraint defining the feasible region of the MIP problem mip int ppl_MIP_Problem_objective_function ppl_const_MIP_Problem_t mip ppl_const_Linear_ Expression_t ple Writes a const handle to the linear expression defining the objective function of the MIP problem mip at address ple int ppl MIP_Problem_optimization_mode ppl_const_MIP_Problem_t mip Returns the optimization mode of the MIP problem mip int ppl MIP_Problem_OK ppl_const_MIP_Problem_t mip Returns a positive integer if mip is well formed i e if it satisfies all its im
109. n addition you must do these things in the Modified Version A Use in the Title Page and on the covers if any a title distinct from that of the Document and from those of previous versions which should if there were any be listed in the History section of the Document You may use the same title as a previous version if the original publisher of that version gives permission B List on the Title Page as authors one or more persons or entities responsible for authorship of the modifications in the Modified Version together with at least five of the principal authors of the The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 14 CONTENTS Document all of its principal authors if it has fewer than five unless they release you from this reguirement e C State on the Title page the name of the publisher of the Modified Version as the publisher e D Preserve all the copyright notices of the Document e E Add an appropriate copyright notice for your modifications adjacent to the other copyright notices F Include immediately after the copyright notices a license notice giving the public permission to use the Modified Version under the terms of this License in the form shown in the Addendum below e G Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document s license notice H Include an unaltered
110. n and Destruction The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 22 ppl Pointset_Powerset_C_Polyhedron_const_iterator_tag Interface Reference 65 e intppl_new_Pointset_Powerset_C_Polyhedron_const_iterator ppl_Pointset_Powerset_C_Polyhedron _const_iterator_t pit Builds a new const iterator and writes a handle to it at address pit e int ppl_new_Pointset_Powerset_C_Polyhedron_const_iterator_from_const_iterator ppl_Pointset _Powerset_C_Polyhedron_const_iterator_t pit ppl_const_Pointset_Powerset_C_ Polyhedron_const _iterator_t y Builds a copy of y and writes a handle to it at address pit e int ppl_Pointset_Powerset_C_Polyhedron_const iterator_begin ppl_const_Pointset_Powerset_ C_Polyhedron_t ps ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t psit Assigns to psit a const iterator pointing to the beginning of the sequence of disjuncts of ps int ppl_Pointset_Powerset_C_Polyhedron_const_iterator_end ppl_const_Pointset_Powerset_C _Polyhedron_t ps ppl_Pointset_Powerset_C_Polyhedron_const_iterator_t psit Assigns to psit a const iterator pointing past the end of the sequence of disjuncts of ps e int ppl_delete_Pointset_Powerset_C_Polyhedron_const_iterator 1 const_Pointset_Powerset_ Pp y pp C_Polyhedron_const_iterator_t it Invalidates the handle it this makes sure the corresponding resources will eventually be released Dereferencing
111. n for this interface was generated from the following file e C_interface dox 7 25 ppl Polyhedron tag Interface Reference Types and functions for the domains of C and NNC convex polyhedra Related Functions Note that these are not member functions Constructors and Assignment for C_Polyhedron int ppl_new_C_Polyhedron_from_space_dimension ppl_Polyhedron_t pph ppl_dimension_ type d int empty Builds a C polyhedron of dimension d and writes an handle to it at address pph If empty is different from zero the newly created polyhedron will be empty otherwise it will be a universe polyhedron intppl_new_C_Polyhedron_from_C_Polyhedron ppl_Polyhedron_t pph ppl_const_Polyhedron _t ph Builds a C polyhedron that is a copy of ph writes a handle for the newly created polyhedron at address pph e int ppl_new_C_Polyhedron_from_C_Polyhedron_with_complexity ppl_Polyhedron_t pph ppl _const_Polyhedron_t ph int complexity Builds a C polyhedron that is a copy of ph writes a handle for the newly created polyhedron at address pph e intppl new C Polyhedron from Constraint System ppl_Polyhedron_t pph ppl_const_Constraint _System_t cs The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 25 ppl Polyhedron_ tag Interface Reference 69 Builds a new C polyhedron from the system of constraints cs and writes a handle for the newly created polyhedron at address pph int
112. nce const iterator from Artificial Parameter Sequence _const_iterator ppl Artificial Parameter Sequence const iterator t papit ppl const Artificial _Parameter_Sequence_const_iterator_t apit Builds a const iterator that is a copy of apit writes a handle for the newly created const iterator at address papit e intppl assign Artificial Parameter Sequence const iterator from Artificial Parameter_Seguence _const_iterator ppl Artificial Parameter Sequence const iterator t dst ppl const Artificial Parameter_Seguence_const_iterator_t src Assigns a copy of the const iterator src to dst e int ppl delete_Artificial_Parameter_Seguence_const_iterator ppl_const_Artificial_Parameter_Seguence _const_iterator_t apit Invalidates the handle apit this makes sure the corresponding resources will eventually be released Dereferencing Incrementing and Eguality Testing int ppl_Artificial_Parameter_Sequence_const_iterator_dereference ppl_const_Artificial_Parameter _Sequence_const_iterator_t apit ppl_const_Artificial_Parameter_t pap Dereference apit writing a const handle to the resulting artificial parameter at address pap int ppl_Artificial_Parameter_Sequence_const_iterator_increment ppl_Artificial_Parameter_Seguence _const_iterator_t apit Increment apit so that it points to the next artificial parameter int ppl_Artificial_Parameter_Sequence_const_iterator_equal_test ppl_const_Artificial_Parameter _Sequence_const_iterator_t
113. nce of this License to do so 10 Automatic Licensing of Downstream Recipients Each time you convey a covered work the recipient automatically receives a license from the original licensors to run modify and propagate that work subject to this License You are not responsible for enforcing compliance by third parties with this License An entity transaction is a transaction transferring control of an organization or substantially all assets of one or subdividing an organization or merging organizations If propagation of a covered work results from an entity transaction each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party s predecessor in interest had or could give under the previous paragraph plus a right to possession of the Corresponding Source of the work from the predecessor in interest if the predecessor has it or can get it with reasonable efforts You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License For example you may not impose a license fee royalty or other charge for exercise of rights granted under this License and you may not initiate litigation including a cross claim or counterclaim in a lawsuit alleging that any patent claim is infringed by making using selling offering for sale or importing the Program or any portion of it 11 Patents A contributor is a copyright holder w
114. nd assign ppl_Polyhedron_t x ppl_const_Polyhedron_t y related Assigns to x an upper bound of x and y For the domain of polyhedra this is the same as pp1_Polyhedron_poly_hull_assign x y 7 25 2 21 int ppl_Polyhedron_affine_image ppl_Polyhedron_t ph ppl dimension type var ppl_const_Linear_Expression_t le ppl_const_Coefficient td related Transforms the polyhedron ph assigning an affine expression to the specified variable Parameters ph The polyhedron that is transformed var The variable to which the affine expression is assigned le The numerator of the affine expression d The denominator of the affine expression 7 25 2 22 int ppl Polyhedron affine_preimage ppl Polyhedron_t ph ppl dimension_type var ppl const Linear Expression t le ppl const_Coefficient td related Transforms the polyhedron ph substituting an affine expression to the specified variable The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 25 ppl Polyhedron_tag Interface Reference 81 Parameters ph The polyhedron that is transformed var The variable to which the affine expression is substituted le The numerator of the affine expression d The denominator of the affine expression 7 25 2 23 int ppl Polyhedron bounded affine image ppl_Polyhedron_t ph ppl dimension type var ppl_const_Linear_Expression_t Ib p
115. ngruence system referenced by cs upon return no assumption can be made on its value 7 25 2 6 int ppl_new_NNC_Polyhedron_from_NNC_Polyhedron_with_complexity ppl_Polyhedron_t x pph ppl_const_Polyhedron_t ph int complexity related Builds an NNC polyhedron that is a copy of ph writes a handle for the newly created polyhedron at address pph Note The complexity argument is ignored 7 25 2 7 int ppl_new_NNC_Polyhedron from Constraint System ppl_Polyhedron_t pph ppl_const_Constraint_System_tcs related Builds a new NNC polyhedron from the system of constraints cs and writes a handle for the newly created polyhedron at address pph The new polyhedron will inherit the space dimension of cs 7 25 2 8 int ppl new NNC_Polyhedron recycle_Constraint_ System ppl_Polyhedron_t x pph ppl_Constraint System tcs related Builds a new NNC polyhedron recycling the system of constraints cs and writes a handle for the newly created polyhedron at address pph The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information BS 78 CONTENTS The new polyhedron will inherit the space dimension of cs Warning This function modifies the constraint system referenced by cs upon return no assumption can be made on its value 7 25 2 9 int pplnew_NNC_Polyhedron from Congruence System ppl_Polyhedron_t pph ppl_const_Congruence System tes related Builds a new NNC polyhedron from t
116. nse Any other attempt to copy modify sublicense or distribute the Document is void and will automatically terminate your rights under this License However parties who have received copies or rights from you under this License will not have their licenses terminated so long as such parties remain in full compliance 10 FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new revised versions of the GNU Free Documentation License from time to time Such new versions will be similar in spirit to the present version but may differ in detail to address new problems or concerns Seehttp www gnu org copyleft Each version of the License is given a distinguishing version number If the Document specifies that a particular numbered version of this License or any later version applies to it you have the option of following the terms and conditions either of that specified version or of any later version that has been published not as a draft by the Free Software Foundation If the Document does not specify a version number of this License you may choose any version ever published not as a draft by the Free Software Foundation How to use this License for your documents To use this License in a document you have written include a copy of the License in the document and put the following copyright and license notices just after the title page Copyright c YEAR YOUR NAME Permission is granted to copy distribute
117. nt copy of the Document means a machine readable copy represented in a format whose specification is available to the general public that is suitable for revising the document straightforwardly with generic text editors or for images composed of pixels generic paint programs or for drawings some widely available drawing editor and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters A copy made in an otherwise Transparent file format whose markup or absence of markup has been arranged to thwart or discourage subseguent modification by readers is not Transparent An image format is not Transparent if used for any substantial amount of text A copy that is not Transparent is called Opaque Examples of suitable formats for Transparent copies include plain ASCII without markup Texinfo input format LaTeX input format SGML or XML using a publicly available DTD and standard conforming simple HTML PostScript or PDF designed for human modification Examples of transparent image for mats include PNG XCF and JPG Opague formats include proprietary formats that can be read and edited only by proprietary word processors SGML or XML for which the DTD and or processing tools are not generally available and the machine generated HTML PostScript or PDF produced by some word proces sors for output purposes only The Title Page means for a printed book the title p
118. ntitled Dedications You must delete all sections Entitled Endorsements 6 COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License and replace the individual copies of this License in the various documents with a single copy thatis included in the collection provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects You may extract a single document from such a collection and distribute it individually under this License provided you insert a copy of this License into the extracted document and follow this License in all other respects regarding verbatim copying of that document 7 AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works in or on a volume of a storage or distribution medium is called an aggregate if the copyright resulting from the compilation is not used to limit the legal rights of the compilation s users beyond what the indi vidual works permit When the Document is included in an aggregate this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document If the Cover Text reguirement of section 3 is applicable to these copies of the Document then if the Document is less than one half of the entire aggregate the Document s Cover Texts may be pla
119. ntset_Powerset_C_Polyhedron_const_iterator _tag 64 ppl_Pointset_Powerset_C_Polyhedron_iterator_tag 66 ppl_Pointset_Powerset_C_Polyhedron_tag 67 ppl_Polyhedron_add_recycled_congruences ppl_Polyhedron_tag 80 ppl_Polyhedron_add_recycled_constraints ppl_Polyhedron_tag 80 ppl_Polyhedron_add_recycled_generators ppl_Polyhedron_tag 83 ppl_Polyhedron_affine_image ppl_Polyhedron_tag 80 ppl_Polyhedron_affine_preimage ppl_Polyhedron_tag 80 ppl_Polyhedron_bounded_affine_image ppl_Polyhedron_tag 81 ppl_Polyhedron_bounded_affine_preimage ppl_Polyhedron_tag 81 ppl_Polyhedron_equals_Polyhedron ppl_Polyhedron_tag 79 ppl_Polyhedron_generalized_affine_image ppl_Polyhedron_tag 81 ppl_Polyhedron_generalized_affine_image_lhs_rhs ppl_Polyhedron_tag 82 ppl_Polyhedron_generalized_affine_preimage ppl_Polyhedron_tag 81 ppl_Polyhedron_generalized_affine_preimage_lhs_ ths ppl_Polyhedron_tag 82 ppl_Polyhedron_map_space_dimensions ppl_Polyhedron_tag 82 ppl_Polyhedron_maximize_with_point ppl_Polyhedron_tag 79 ppl_Polyhedron_minimize_with_point ppl_Polyhedron_tag 79 ppl_Polyhedron_relation_with_Constraint ppl_Polyhedron_tag 78 ppl_Polyhedron_relation_with_Generator ppl_Polyhedron_tag 79 ppl_Polyhedron_tag 68 ppl_Polyhedron_add_recycled_congruences 80 ppl_Polyhedron_add_recycled_constraints 80 ppl_Polyhedron_add_recycled_generators 83 The PPL C Language Interface User s Manual version 1 0 See http bugs
120. of disjuncts in ps all the non maximal elements so that ps is non redundant e int ppl_Pointset_Powerset_C_Polyhedron_size ppl_const_Pointset_Powerset_C_Polyhedron_t ps size_t sz Writes to sz the number of disjuncts in ps e int ppl_Pointset_Powerset_C_Polyhedron_geometrically_covers_Pointset_Powerset_C_Polyhedron ppl_const_Pointset_Powerset_C_Polyhedron_t x ppl_const_Pointset_Powerset_C_Polyhedron ty Returns a positive integer if powerset x geometrically covers powerset y returns O otherwise e intppl_Pointset_Powerset_C_Polyhedron_geometrically_equals_Pointset_Powerset_C_Polyhedron ppl_const_Pointset_Powerset_C_Polyhedron_t x ppl_const_Pointset_Powerset_C_Polyhedron ty Returns a positive integer if powerset x is geometrically equal to powerset y returns 0 otherwise int ppl_Pointset_Powerset_C_Polyhedron_add_disjunct ppl_Pointset_Powerset_C_Polyhedron _t ps ppl_const_Polyhedron_t d Adds to ps a copy of disjunct a e int ppl_Pointset_Powerset_C_Polyhedron_drop_disjunct ppl_Pointset_Powerset_C_Polyhedron tps ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t cit ppl_Pointset_Powerset_C_Polyhedron _iterator_t it Drops from ps the disjunct pointed to by cit assigning to it an iterator to the disjunct following cit e int ppl_Pointset_Powerset_C_Polyhedron_drop_disjuncts ppl_Pointset_Powerset_C_Polyhedron t ps ppl_const_Pointset_Powerset_C_Polyhedron_iterator_t first ppl_const_Pointset_Powerset _C_Polyhedron_iterator_t
121. ointer typedef struct ppl_Congruence_tag const ppl_const_Congruence_t Opague pointer to const object typedef struct ppl Congruence System tag ppl Congruence System t Opaque pointer typedef struct ppl Congruence System tag const ppl const Congruence System t Opaque pointer to const object typedef struct ppl Congruence System const iterator tag ppl Congruence System const iterator t Opaque pointer typedef struct ppl Congruence System const iterator tag const ppl const Congruence System const iterator t Opaque pointer to const object typedef struct ppl_Grid_Generator_tag ppl Grid Generator t Opaque pointer typedef struct ppl Grid Generator tag const x ppl_const_Grid_Generator_t Opaque pointer to const object typedef struct ppl Grid Generator System tag ppl_Grid_Generator_System_t Opaque pointer typedef struct ppl Grid Generator System tag const ppl const Grid Generator System t Opaque pointer to const object typedef struct ppl_Grid_Generator_System_const_iterator_tag ppl Grid Generator System const iterator t Opaque pointer typedef struct ppl Grid Generator System const iterator tag const ppl const Grid Generator System const iterator t The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 6 6 Library Datatypes 29 Opague pointer to const object typedef struct ppl_MIP_Problem_tag ppl_MIP_Pro
122. ological closure int ppl_Polyhedron_unconstrain_space_dimension ppl_Polyhedron_t ph ppl_dimension_type var Modifies ph by unconstraining the space dimension var int ppl_Polyhedron_unconstrain_space_dimensions ppl_Polyhedron_t ph ppl_dimension_type ds size_t n Modifies ph by unconstraining the space dimensions that are specified in the first n positions of the array ds The presence of duplicates in ds is a waste but an innocuous one The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 25 ppl Polyhedron_ tag Interface Reference 73 int ppl_Polyhedron affine image ppl_Polyhedron_t ph ppl_dimension_type var ppl_const_ Linear_Expression_t le ppl_const_Coefficient_t d Transforms the polyhedron ph assigning an affine expression to the specified variable int ppl_Polyhedron_affine_preimage ppl_Polyhedron_t ph ppl_dimension_type var ppl_const _Linear_Expression_t le ppl_const_Coefficient_t d Transforms the polyhedron ph substituting an affine expression to the specified variable int ppl_Polyhedron_bounded_affine_image ppl_Polyhedron_t ph ppl_dimension_type var ppl _const_Linear_Expression_t lb ppl_const_Linear_Expression_t ub ppl_const_Coefficient_t d Assigns to ph the image of ph with respect to the generalized affine transfer relation Ib lt var lt ub int ppl_Polyhedron_bounded affine_preimage ppl_Polyhedron_t ph ppl dimension_type var ppl_const_Lin
123. ons for constraints include lt ppl_c header h gt Related Functions Note that these are not member functions Constructors Assignment and Destructor int ppl_new_Constraint ppl_Constraint_t pc ppl_const_Linear_Expression_t le enum ppl_ enum_ Constraint_Type rel Creates the new constraint le rel 0 and writes a handle for it at address pc The space dimension of the new constraint is equal to the space dimension of le int ppl new Constraint zero dim false ppl_Constraint_t pc Creates the unsatisfiable zero dimension space constraint O 1 and writes a handle for it at address pc int ppl_new_Constraint_zero_dim_positivity ppl_Constraint_t pc Creates the true zero dimension space constraint 0 lt 1 also known as positivity constraint A handle for the newly created constraint is written at address pc int ppl_new_Constraint_from_Constraint ppl_Constraint_t pc ppl_const_Constraint_t c Builds a constraint that is a copy of c writes a handle for the newly created constraint at address pc int ppl_assign_Constraint_from_Constraint ppl_Constraint_t dst ppl_const_Constraint_t src Assigns a copy of the constraint src to dst int ppl_delete_Constraint ppl_const_Constraint_t c Invalidates the handle c this makes sure the corresponding resources will eventually be released Functions that Do Not Modify the Constraint int ppl_Constraint_space_dimension ppl_const_Constraint_t c ppl_dimension_type m
124. or you or provide you with facilities for running those works provided that you comply with the terms of this License in conveying all material for which you do not control copyright Those thus making or running the covered works for you must do so exclusively on your behalf under your direction and control on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you Conveying under any other circumstances is permitted solely under the conditions stated below Sublicens ing is not allowed section 10 makes it unnecessary 3 Protecting Users Legal Rights From Anti Circumvention Law No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996 or similar laws prohibiting or restricting circumvention of such measures When you convey a covered work you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work and you disclaim any intention to limit operation or modification of the work as a means of enforcing against the work s users your or third parties legal rights to forbid circumvention of technological measures 4 Conveying Verbatim Copies You may convey verbatim copies of the Program s source code as you rec
125. ore information 10 CONTENTS Free Software Foundation If the Program does not specify a version number of the GNU General Public License you may choose any version ever published by the Free Software Foundation If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used that proxy s public statement of acceptance of a version permanently authorizes you to choose that version for the Program Later license versions may give you additional or different permissions However no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version 15 Disclaimer of Warranty THERE IS NO WARRANTY FOR THE PROGRAM TO THE EXTENT PERMITTED BY APPLIC ABLE LAW EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND OR OTHER PARTIES PROVIDE THE PROGRAM AS IS WITHOUT WARRANTY OF ANY KIND EITHER EXPRESSED OR IMPLIED INCLUDING BUT NOT LIMITED TO THE IMPLIE D WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU SHOULD THE PROGRAM PROVE DEFECTIVE YOU ASSUME THE COST OF ALL NECESSARY SERVICING REPAIR OR CORRECTION 16 Limitation of Liability IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER OR ANY OTHER PARTY WHO MODIFIES AND OR CONVEYS THE PROGRAM AS PERMITTED ABOVE BE LIAB
126. ph ppl_const_Linear_Expression_t hs enum ppl_enum_Constraint_Type relsym ppl_const_Linear_Expression_t rhs related Assigns to ph the image of ph with respect to the generalized affine transfer relation lhs va rhs where ba is the relation symbol encoded by rel sym Parameters ph The polyhedron that is transformed lhs The left hand side affine expression relsym The relation symbol rhs The right hand side affine expression 7 25 2 28 int ppl Polyhedron generalized affine preimage Ihs rhs ppl Polyhedron_t ph ppl_const_Linear_Expression_t hs enum ppl_enum_Constraint_Type relsym ppl_const_Linear_Expression_t rhs related Assigns to ph the preimage of ph with respect to the generalized affine transfer relation lhs gt a rhs where gt is the relation symbol encoded by rel sym Parameters ph The polyhedron that is transformed lhs The left hand side affine expression relsym The relation symbol rhs The right hand side affine expression 7 25 2 29 int ppl_Polyhedron_map_space_dimensions ppl_Polyhedron_t ph ppl_dimension_type maps size tn related Remaps the dimensions of the vector space according to a partial function This function is specified by means of the maps array which has n entries The partial function is defined on dimension i ifi lt nandmaps i l ppl not a dimension otherwise it is undefined on dim
127. pl const_Linear_Expression_t ub ppl_const_Coefficient_t d related lb ub Assigns to ph the image of ph with respect to the generalized affine transfer relation Z lt var lt Y Parameters ph The polyhedron that is transformed var The variable bounded by the generalized affine transfer relation lb The numerator of the lower bounding affine expression ub The numerator of the upper bounding affine expression d The common denominator of the lower and upper bounding affine expressions 7 25 2 24 int ppl Polyhedron bounded affine preimage ppl_Polyhedron_t ph ppl_dimension_type var ppl_const_Linear_Expression_t Ib ppl_const_Linear_Expression_t ub ppl_const_Coefficient_t d related o lb I ub Assigns to ph the preimage of ph with respect to the generalized affine transfer relation Z lt var lt gt Parameters ph The polyhedron that is transformed var The variable bounded by the generalized affine transfer relation lb The numerator of the lower bounding affine expression ub The numerator of the upper bounding affine expression d The common denominator of the lower and upper bounding affine expressions 7 25 2 25 int ppl Polyhedron generalized affine image ppl_Polyhedron_t ph ppl_dimension_type var enum ppl_enum_ Constraint_Type relsym ppl_const_Linear_Expression_t le pp
128. pl_dimension_type var ppl_const_Coefficient_t n Adds n to the coefficient of variable var in the linear expression le The space dimension is set to be the maximum between var 1 and the old space dimension e int ppl_Linear_Expression_add_to_inhomogeneous ppl_Linear_Expression_t le ppl_const_Coefficient _tn Adds n to the inhomogeneous term of the linear expression le e int ppl_add_Linear_Expression_to_Linear_Expression ppl_Linear_Expression_t dst ppl_const _Linear_Expression_t src Adds the linear expression src to dst e int ppl_subtract_Linear_Expression_from_Linear_Expression ppl_Linear_Expression_t dst ppl _const_Linear_Expression_t src Subtracts the linear expression src from dst e int ppl_multiply_Linear_Expression_by_Coefficient ppl_Linear_Expression_t le ppl_const_Coefficient _tn Multiply the linear expression dst by n Input Output Functions int ppl_io_print_Linear_Expression ppl_const_Linear_Expression_t x Prints x to stdout e int ppl_io_fprint_Linear_Expression FILE stream ppl_const_Linear_Expression_t x Prints x to the given output st ream e int ppl_io_asprint_Linear_Expression char strp ppl_const_Linear_Expression_t x Prints x to a malloc allocated string a pointer to which is returned via st rp e int ppl_Linear_Expression_ascii_dump ppl_const_Linear_Expression_t x FILE xstream Dumps an ascii representation of x on st ream e int ppl_Linear_Expression_ascii_load ppl
129. plementation invariants returns O and perhaps makes some noise if mip is broken Useful for debugging purposes Functions that May Modify the MIP_Problem int ppl_ MIP_Problem_clear ppl_MIP_Problem_t mip Resets the MIP problem to be a trivial problem of space dimension 0 int ppl_MIP_Problem_add_space_dimensions_and_embed ppl_MIP_Problem_t mip ppl_dimension _type d Adds d new dimensions to the space enclosing the MIP problem mip and to mip itself int ppl_MIP_Problem_add_to_integer_space_dimensions ppl_MIP_Problem_t mip ppl_dimension _type ds size_t n Sets the space dimensions that are specified in first n positions of the array ds to be integer dimensions of problem mip The presence of duplicates in ds is a waste but an innocuous one int ppl MIP_Problem_add_constraint ppl_MIP_Problem_t mip ppl_const_Constraint_t c Modifies the feasible region of the MIP problem mip by adding a copy of the constraint c int ppl_MIP_Problem_add_constraints ppl_MIP_Problem_t mip ppl_const_Constraint_System _t cs Modifies the feasible region of the MIP problem mip by adding a copy of the constraints in cs intppl MIP Problem set objective function ppl_MIP_Problem_t mip ppl_const_Linear_Expression _tle Sets the objective function of the MIP problem mip to a copy of 1e int ppl_MIP_Problem_set_optimization_mode ppl_MIP_Problem_t mip int mode Sets the optimization mode of the MIP problem mip to mode Computing
130. ppl_const_Grid_Generator_t x Prints x to a malloc allocated string a pointer to which is returned via strp e int ppl_Grid_Generator_ascii_dump ppl_const_Grid_Generator_t x FILE stream Dumps an ascii representation of x on stream e int ppl_Grid_Generator_ascii_load ppl_Grid_Generator_t x FILE stream Loads an ascii representation of x from stream 7 15 1 Detailed Description Types and functions for grid generators The types and functions for grid generators provide an interface towards Grid_Generator The documentation for this interface was generated from the following file ppl_c_header h The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 16 ppl Linear Expression tag Interface Reference 53 7 16 ppl_Linear_Expression_tag Interface Reference Types and functions for linear expressions finclude lt ppl_c header h gt Related Functions Note that these are not member functions Constructors Assignment and Destructor e int ppl_new_Linear_Expression ppl_Linear_Expression_t ple Creates a new linear expression corresponding to the constant 0 in a zero dimensional space writes a handle for the new linear expression at address ple e int ppl new Linear Expression with dimension ppl_Linear_Expression_t ple ppl_dimension _type d Creates a new linear expression corresponding to the constant O in a d dimensional space writes a handle for t
131. ppl_new_C_Polyhedron_recycle_Constraint_System ppl_Polyhedron_t pph ppl_Constraint _System_t cs Builds a new C polyhedron recycling the system of constraints cs and writes a handle for the newly created polyhedron at address pph int ppl_new_C_Polyhedron_from_Congruence_System ppl_Polyhedron_t pph ppl_const_Congruence _System_t cs Builds a new C polyhedron from the system of congruences cs and writes a handle for the newly created polyhedron at address pph int ppl_new_C_Polyhedron_recycle_Congruence_System ppl_Polyhedron_t pph ppl_Congruence _System_t cs Builds a new C polyhedron recycling the system of congruences cs and writes a handle for the newly created polyhedron at address pph int ppl_assign_C_Polyhedron_from_C_Polyhedron ppl_Polyhedron_t dst ppl_const_Polyhedron _t src Assigns a copy of the C polyhedron src to the C polyhedron dst Constructors and Assignment for NNC_Polyhedron int ppl_new_NNC_Polyhedron_from_space_dimension ppl_Polyhedron_t pph ppl_dimension _type d int empty Builds an NNC polyhedron of dimension d and writes an handle to it at address pph If empt y is differ ent from zero the newly created polyhedron will be empty otherwise it will be a universe polyhedron int ppl_new_NNC_Polyhedron_from_NNC_Polyhedron ppl_Polyhedron_t pph ppl_const_Polyhedron _t ph Builds an NNC polyhedron that is a copy of ph writes a handle for the newly created polyhedron at address pph int pplnew_NNC_Polyhed
132. r_PPL void Sets the FPU rounding mode so that the PPL abstractions based on floating point numbers work correctly e int ppl restore_pre_PPL rounding void Sets the FPU rounding mode as it was before initialization of the PPL e int ppl irrational precision unsigned p Writes to p the precision parameter used for irrational calculations e int ppl_set irrational precision unsigned p Sets the precision parameter used for irrational calculations 6 2 1 Detailed Description Functions for initialization finalization of the library as well as setting resetting of floating point rounding mode 6 2 2 Function Documentation 6 2 2 1 int ppl initialize void Initializes the Parma Polyhedra Library This function must be called before any other function Returns PPL_ERROR_INVALID_ARGUMENT if the library was already initialized 6 2 2 2 int ppl finalize void Finalizes the Parma Polyhedra Library This function must be called after any other function Returns PPL_ERROR_INVALID_ARGUMENT if the library was already finalized 6 2 2 3 int ppl set rounding for PPL void Sets the FPU rounding mode so that the PPL abstractions based on floating point numbers work correctly This is performed automatically at initialization time Calling this function is needed only if restore_pre_ PPL_rounding has been previously called 6 2 2 4 int ppl_restore_pre PPL_rounding void Sets the FPU rounding mode as it
133. rface you would use an about box You should also get your employer if you work as a programmer or school if any to sign a copyright disclaimer for the program if necessary For more information on this and how to apply and follow the GNU GPL seehttp www gnu org licenses The GNU General Public License does not permit incorporating your program into proprietary programs If your program is a subroutine library you may consider it more useful to permit linking proprietary applica tions with the library If this is what you want to do use the GNU Lesser General Public License instead of this License But first please read http www gnu org philosophy why not lgpl html 3 GNU Free Documentation License Version 1 2 November 2002 Copyright C 2000 2001 2002 Free Software Foundation Inc 51 Franklin St Fifth Floor Boston MA 02110 1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document but changing it is not allowed 0 PREAMBLE The purpose of this License is to make a manual textbook or other functional and useful document free in the sense of freedom to assure everyone the effective freedom to copy and redistribute it with or without modifying it either commercially or noncommercially Secondarily this License preserves for the author and publisher a way to get credit for their work while not being considered responsible for modifications made by others
134. ring copyright permission other than the making of an exact copy The resulting work is called a modified version of the earlier work or a work based on the earlier work A covered work means either the unmodified Program or a work based on the Program To propagate a work means to do anything with it that without permission would make you directly or secondarily liable for infringement under applicable copyright law except executing it on a computer or modifying a private copy Propagation includes copying distribution with or without modification making available to the public and in some countries other activities as well To convey a work means any kind of propagation that enables other parties to make or receive copies Mere interaction with a user through a computer network with no transfer of a copy is not conveying An interactive user interface displays Appropriate Legal Notices to the extent that it includes a convenient and prominently visible feature that 1 displays an appropriate copyright notice and 2 tells the user that there is no warranty for the work except to the extent that warranties are provided that licensees may convey the work under this License and how to view a copy of this License If the interface presents a list of user commands or options such as a menu a prominent item in the list meets this criterion 1 Source Code The source code for a work means the
135. ron_from_NNC_Polyhedron_with_complexity ppl_Polyhedron_t pph ppl_const_Polyhedron_t ph int complexity Builds an NNC polyhedron that is a copy of ph writes a handle for the newly created polyhedron at address pph int ppl new NNC Polyhedron from Constraint System ppl_Polyhedron_t pph ppl_const_ Constraint_System_t cs Builds a new NNC polyhedron from the system of constraints cs and writes a handle for the newly created polyhedron at address pph int ppl_new_NNC_Polyhedron_recycle_Constraint_System ppl_Polyhedron_t pph ppl_Constraint _System_t cs Builds a new NNC polyhedron recycling the system of constraints cs and writes a handle for the newly created polyhedron at address pph int ppl new NNC Polyhedron from Congruence System ppl_Polyhedron_t pph ppl_const_ Congruence_System_t cs Builds a new NNC polyhedron from the system of congruences cs and writes a handle for the newly created polyhedron at address pph int ppl_new_NNC_Polyhedron_recycle_Congruence_System ppl_Polyhedron_t pph ppl_Congruence _System_t cs Builds a new NNC polyhedron recycling the system of congruences cs and writes a handle for the newly created polyhedron at address pph int ppl_assign_NNC_Polyhedron_from_NNC_Polyhedron ppl_Polyhedron_t dst ppl_const_Polyhedron _t src Assigns a copy of the NNC polyhedron src to the NNC polyhedron dst Constructors Behaving as Conversion Operators The PPL C Language Interface User s Manual version 1 0 See h
136. rp e int ppl_PIP_Solution_Node_ascii_dump ppl_const_PIP_Solution_Node_t x FILE xstream Dumps an ascii representation of x on stream e int ppl_PIP_Solution_Node_ascii_load ppl_PIP_Solution_Node_t x FILE xstream Loads an ascii representation of x from stream 7 201 Detailed Description Types and functions for PIP solution nodes The types and functions for solution nodes provide an interface towards PIP_Solution_Node 7 20 2 Friends And Related Function Documentation 7 20 2 1 int ppl PIP_Solution Node get parametric values ppl_const_PIP_Solution_Node_t pip sol ppl_dimension_type var ppl_const_Linear_Expression txle related Writes to le a const pointer to the parametric expression of the values of variable var in solution node pip sol The linear expression assigned to 1e will only refer to problem or artificial parameters Parameters pip_sol The solution tree node var The variable which is gueried about le The returned expression for variable var Returns PPL_ERROR_INVALID_ARGUMENT Returned if var is dimension incompatible with this or if var is a problem parameter The documentation for this interface was generated from the following file ppl_c_header h 7 21 ppl_PIP_Tree_Node_tag Interface Reference Types and functions for generic PIP tree nodes finclude lt ppl_c header h gt Related Functions Note that these are not member functions e intppl_PI
137. s Invalidates the handle cs this makes sure the corresponding resources will eventually be released Functions that Do Not Modify the Constraint System intppl_Constraint_System_space_dimension ppl_const_Constraint_System_tcs ppl_dimension _type m Writes to m the dimension of the vector space enclosing cs int ppl_Constraint_System_empty ppl_const_Constraint_System_t cs Returns a positive integer if cs contains no non trivial constraint returns O otherwise int ppl_Constraint_System_has_strict_inequalities ppl_const_Constraint_System_t cs Returns a positive integer if cs contains any non trivial strict ineguality returns O otherwise int ppl_Constraint_System_begin ppl const Constraint System t cs ppl_Constraint_System_ const_iterator_t cit Assigns to cit a const iterator pointing to the beginning of the constraint system cs intppl_Constraint_System_end ppl_const_Constraint_System_tcs ppl_Constraint_System_const _iterator_t cit Assigns to cit a const iterator pointing past the end of the constraint system cs int ppl_Constraint_System_OK ppl_const_Constraint_System_t cs Returns a positive integer if cs is well formed i e if it satisfies all its implementation invariants returns O and perhaps makes some noise if cs is broken Useful for debugging purposes Functions that May Modify the Constraint System e int ppl_Constraint_System_clear ppl_Constraint_System_t cs Remo
138. s of the GNU Free Documentation License Version 1 2 or any later version published by the Free Software Foundation with no Invariant Sections no Front Cover Texts and no Back Cover Texts A copy of the license is included in the section entitled GNU Free Documentation License The PPL is free software you can redistribute it and or modify it under the terms of the GNU General Public License as published by the Free Software Foundation either version 3 of the License or at your option any later version A copy of the license is included in the section entitled GNU GENERAL PUBLIC LICENSE The PPL is distributed in the hope that it will be useful buu WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details If you have not received a copy of one or both the above mentioned licenses along with the PPL write to the Free Software Foundation Inc 51 Franklin Street Fifth Floor Boston MA 02111 1307 USA For the most up to date information see the Parma Polyhedra Library site http bugseng com products ppl bugSeng The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information CONTENTS Contents 1 Main Page 2 GNU General Public License 3 GNU Free Documentation License 4 Module Index 4 1 A a we ee bem ws eee be HNN HN 5 Class Index Ss CS A
139. s to the polyhedron ph int ppl_Polyhedron_refine_with_constraint ppl_Polyhedron_t ph ppl_const_Constraint_t c Refines ph using constraint c int ppl_Polyhedron _refine_with_congruence ppl_Polyhedron_t ph ppl_const_Congruence_t c Refines ph using congruence c int ppl_Polyhedron_refine_with_constraints ppl_Polyhedron_t ph ppl_const_Constraint_System _t cs Refines ph using the constraints in cs int ppl_Polyhedron_refine_with_congruences ppl_Polyhedron_t ph ppl_const_Congruence_System _t cs Refines ph using the congruences in cs int ppl_Polyhedron_intersection_assign ppl_Polyhedron_t x ppl_const_Polyhedron_t y Intersects x with polyhedron y and assigns the result to x int ppl_Polyhedron_upper_bound_assign ppl_Polyhedron_t x ppl_const_Polyhedron_t y Assigns to x an upper bound of x and y int ppl_Polyhedron difference_assign ppl_Polyhedron_t x ppl_const_Polyhedron t y Same as ppl_Polyhedron_poly_difference_assign x y int ppl_Polyhedron_simplify_using_context_assign ppl_Polyhedron_t x ppl_const_Polyhedron ty Assigns to x the meet preserving simplification of x with respect to context y Returns a positive integer if x and y have a nonempty intersection returns O if they are disjoint int ppl_Polyhedron_time_elapse_assign ppl_Polyhedron_t x ppl_const_Polyhedron_t y Assigns to x the time elapse between the polyhedra x and y int ppl_Polyhedron_topological_closure_assign ppl_Polyhedron_t ph Assigns to ph its top
140. se of or is conditioned on the non exercise of one or more of the rights that are specifically granted under this License You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software under which you make payment to the third party based on the extent of your activity of conveying the work and under which the third party grants to any of the parties who would receive the covered work from you a discriminatory patent license a in connection with copies of the covered work conveyed by you or copies made from those copies or b primarily for and in connection with specific products or compilations that contain the covered work unless you entered into that arrangement or that patent license was granted prior to 28 March 2007 Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law 12 No Surrender of Others Freedom If conditions are imposed on you whether by court order agreement or otherwise that contradict the conditions of this License they do not excuse you from the conditions of this License If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations then as a conseguence you may not convey it at all For example if you agree to terms that oblig
141. seful information for the library user All programs using the PPL s C interface must link with the following libraries 1ibppl_c PPL s C interface 1ibpp1 PPU core 1ibgmpxx GMP s C interface and 1 ibgmp GMP s library core On most Unix like systems this is done by adding lppl_c lppl lgmpxx and lgmp to the compiler s or linker s command line For example The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 2 CONTENTS gcc myprogram o lppl_c lppl lgmpxx lgmp If this does not work it means that your compiler linker is not finding the libraries where it expects Again this could be because you forgot to install the library or you installed it in a non standard location In the latter case you will need to use the appropriate options usually L and if you use shared libraries some sort of run time path selection mechanisms Consult your compiler s documentation for details Notice that the PPL is built using Libtool and an application can exploit this fact to significantly simplify the linking phase See Libtool s documentation for details Those working under Linux can find a lot of useful information on how to use program libraries including static shared and dynamically loaded libraries in the Program Library HOWTO For examples on how to use the functions provided by the C interface you are referred to the direc tory demos ppl_lpsol in the so
142. stem_const_iterator_from_Constraint_System_const_iterator ppl_ Constraint_System_const_iterator_t dst ppl_const_Constraint_System_const_iterator_t src Assigns a copy of the const iterator src to dst e int ppl delete_Constraint_System_const_iterator ppl_const_Constraint_System_const_iterator _t cit Invalidates the handle cit this makes sure the corresponding resources will eventually be released Dereferencing Incrementing and Equality Testing e int ppl_Constraint_System_const_iterator_dereference ppl const Constraint System const iterator _t cit ppl_const_Constraint_t pc Dereference cit writing a const handle to the resulting constraint at address pc intppl_Constraint_System_const_iterator_increment ppl_Constraint_System_const_iterator_t cit Increment cit so that it points to the next constraint intppl_Constraint_System_const_iterator_equal_test ppl_const_Constraint_System_const_iterator _t x ppl_const_Constraint_System_const_iterator_t y Returns a positive integer if the iterators corresponding to x and y are equal returns O if they are different 7 71 Detailed Description Types and functions for iterating on constraint systems The types and functions for constraint systems iterators provide read only access to the elements of a constraint system by interfacing Constraint_System const_iterator The documentation for this interface was generated from the following file ppl
143. t sup_d int x pmaximum ppl_Generator_t point related Returns a positive integer if ph is not empty and le is bounded from above in ph in which case the supremum value and a point where le reaches it are computed Parameters The polyhedron constraining le The linear expression to be maximized subject to ph ph le sup_n Will be assigned the numerator of the supremum value sup_d Will be assigned the denominator of the supremum value pmaximum Will store 1 in this location if the supremum is also the maximum will store O other wise point Will be assigned the point or closure point where le reaches the extremum value If ph is empty or 1 Le is not bounded from above O will be returned and sup_n sup_d pmaximum and point will be left untouched 7 25 2 16 int ppl Polyhedron minimize with point ppl_const_Polyhedron_t ph ppl_const_Linear_Expression_t le ppl_Coefficient_t inf_n ppl_Coefficient_t inf_d int x pminimum ppl_Generator_t point related Returns a positive integer if ph is not empty and le is bounded from below in ph in which case the infimum value and a point where le reaches it are computed Parameters ph The polyhedron constraining le le The linear expression to be minimized subject to ph inf_n Will be assigned the numerator of the infimum value inf_d Will be assigned the denominator of the infimum value
144. ted size was attempted PPL ARITHMETIC OVERFLOW An arithmetic overflow occurred and the computation was con seguently interrupted This can on y happen in library s incarnations using bounded integers as coefficients PPL_STDIO_ERROR An error occurred during a C input output operation A more precise indica tion of what went wrong is available via errno PPL ERROR INTERNAL ERROR An internal error that was diagnosed by the PPL itself This indicates a bug in the PPL PPL_ERROR_UNKNOWN_STANDARD_ EXCEPTION A standard exception has been raised by the C run time environment This indicates a bug in the PPL PPL ERROR UNEXPECTED ERROR A totally unknown totally unexpected error happened This indicates a bug in the PPL PPL TIMEOUT EXCEPTION An exception has been raised by the PPL as a timeout previously set by the user has expired The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 24 CONTENTS PPL ERROR LOGIC ERROR The client program attempted to use the PPL in a way that violates its internal logic This happens for instance when the client attempts to use the timeout facilities on a system that does not support them 6 4 3 Function Documentation 6 4 3 1 int ppl_set_error_handler void enum ppl enum error code code const char description h Installs the user defined error handler pointed at by h The error handler takes an error code and a textual descript
145. th tokens delay technique is applied with xt p available tokens The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 76 CONTENTS e int ppl_Polyhedron_bounded_H79_extrapolation_assign_with_tokens ppl_Polyhedron_t x ppl _const_Polyhedron_t y ppl_const_Constraint_System_t cs unsigned xtp If the polyhedron y is contained in or equal to the polyhedron x assigns to x the H79 widening of x and y intersected with the constraints in cs that are satisfied by all the points of x further intersected with all the constraints of the form v lt r and v lt r with r Q that are satisfied by all the points of x If tp is not the null pointer the widening with tokens delay technique is applied with x t p available tokens e int ppl Polyhedron_bounded_BHRZ03_extrapolation_assign ppl_Polyhedron_t x ppl const Polyhedron_t y ppl_const_Constraint_System_t cs If the polyhedron y is contained in or equal to the polyhedron x assigns to x the BHRZ03 widening of x and y intersected with the constraints in cs that are satisfied by all the points of x further intersected with all the constraints of the form v lt r and v lt r with r Q that are satisfied by all the points of x intppl_Polyhedron_bounded_H79_extrapolation_assign ppl_Polyhedron_t x ppl_const_Polyhedron _t y ppl_const_Constraint_System_t cs If the polyhedron y is contained in or equa
146. the Solution of the MIP_Problem int ppl_MIP_Problem_is_satisfiable ppl_const_MIP_Problem_t mip Returns a positive integer if mi p is satisfiable returns O otherwise The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 17 ppl MIP_Problem_tag Interface Reference 57 e int ppl MIP_Problem_solve ppl_const_MIP_Problem_t mip Solves the MIP problem mip returning an exit status e int ppl MIP_Problem_evaluate_objective_function ppl_const_MIP_Problem_t mip ppl_const_ Generator_t g ppl_Coefficient_t num ppl_Coefficient_t den Evaluates the objective function of mip on point g e intppl_MIP_Problem_feasible_point ppl_const_MIP_Problem_tmip ppl_const_Generator_t pg Writes a const handle to a feasible point for the MIP problem mip at address pg e int ppl MIP_Problem_optimizing_point ppl_const_MIP_Problem_t mip ppl_const_Generator _t pg Writes a const handle to an optimizing point for the MIP problem mip at address pg e int ppl_MIP_Problem_optimal_value ppl_const_MIP_Problem_t mip ppl_Coefficient_t num ppl_Coefficient_t den Returns the optimal value for mip Querying Setting Control Parameters int ppl MIP_Problem_get_control_parameter ppl_const_MIP_Problem_t mip int name Returns the value of control parameter name in problem mip e int ppl MIP Problem set control parameter ppl_MIP_Problem_t mip int value Sets control parameter
147. ther the product has substantial commercial industrial or non consumer uses unless such uses represent the only significant mode of use of the product Installation Information for a User Product means any methods procedures authorization keys or other information reguired to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modifica tion has been made If you convey an object code work under this section in or with or specifically for use in a User Product and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term regardless of how the transaction is characterized the Corresponding Source conveyed under this section must be accompanied by the Installation Information But this reguirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product for example the work has been installed in ROM The reguirement to provide Installation Information does not include a reguirement to continue to provide support service warranty or updates for a work that has been modified or installed by the recipient or for the User Product
148. tion can be found returns 0 otherwise e int ppl_PIP_Problem_solve ppl_const_PIP_Problem_t pip Solves the PIP problem pip returning an exit status e int ppl_PIP_Problem_solution ppl_const_PIP_Problem_t pip ppl_const_PIP_Tree_Node_t xpip _tree Writes to pip_treea solution for pip if it exists int ppl_PIP_Problem_optimizing_solution ppl_const_PIP_Problem_t pip ppl_const_PIP_Tree _Node_t xpip_tree Writes to pip_t ree an optimizing solution for pip if it exists Ouerying Setting Control Parameters int ppl_PIP_Problem_get_control_parameter ppl_const_PIP_Problem_t pip int name Returns the value of control parameter name in problem pip e int ppl_PIP_Problem_set_control_parameter ppl_PIP_Problem_t pip int value Sets control parameter value in problem pip Input Output Functions int ppl_io_print_PIP_Problem ppl_const_PIP_Problem_t x Prints x to stdout e int ppl_io_fprint_PIP_Problem FILE stream ppl_const_PIP_Problem_t x Prints x to the given output st ream e int ppl_io_asprint_PIP_Problem char strp ppl_const_PIP_Problem_t x Prints x to a malloc allocated string a pointer to which is returned via st rp e int ppl_PIP_Problem_ascii_dump ppl_const_PIP_Problem_t x FILE xstream Dumps an ascii representation of x on stream e int ppl_PIP_Problem ascii_load ppl_PIP_Problem_t x FILE xstream Loads an ascii representation of x from stream 71941 Detailed Descr
149. tions of the array ds all the parameter space dimensions of problem pip If the array is not big enough to hold all of the parameter space dimensions the behavior is undefined int ppl_PIP_Problem_get_big_parameter_dimension ppl_const_PIP_Problem_t pip ppl_dimension _type pd Writes into pd the big parameter dimension of PIP problem pip int ppl_PIP_Problem_number_of_constraints ppl_const_PIP_Problem_t pip ppl_dimension_type m Writes to m the number of constraints defining the feasible region of pip int ppl_PIP_Problem_constraint_at_index ppl_const_PIP_Problem_t pip ppl_dimension_type i ppl_const_Constraint_t pc Writes at address pc a const handle to the i th constraint defining the feasible region of the PIP problem pip int ppl PIP Problem total memory in bytes ppl_const_PIP_Problem_t pip size_t sz Writes into sz the size in bytes of the memory occupied by pip int ppl PIP Problem external memory in bytes ppl_const_PIP_Problem _t pip size_t sz Writes into xsz the size in bytes of the memory managed by pip int ppl_PIP_Problem_OK ppl_const_PIP_Problem_t pip Returns a positive integer if pip is well formed i e if it satisfies all its implementation invariants returns O and perhaps makes some noise if pip is broken Useful for debugging purposes Functions that May Modify the PIP_Problem e int ppl_PIP_Problem_clear ppl_PIP_Problem_t pip Resets the PIP problem to be a trivial problem of space d
150. tor g to the system of generators of ph The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 25 ppl Polyhedron_tag Interface Reference 75 int ppl_Polyhedron_add_generators ppl_Polyhedron_t ph ppl_const_Generator_System_t gs Adds a copy of the system of generators gs to the system of generators of ph int ppl_Polyhedron_add_recycled_generators ppl_Polyhedron_t ph ppl_Generator_System_t gs Adds the system of generators gs to the system of generators of ph int ppl_Polyhedron_poly_hull_assign ppl_Polyhedron_t x ppl const Polyhedron t y Assigns to x the poly hull of x and y int ppl_Polyhedron_poly_difference_assign ppl_Polyhedron_t x ppl_const_Polyhedron_t y Assigns to x the poly difference of x and y e int wrap_assign ppl_Polyhedron_t ph ppl_dimension_type ds size_t n ppl_enum_Bounded_ Integer_Type_Width w ppl_enum_Bounded_Integer_Type_Representation r ppl_enum_Bounded _Integer_Type_Overflow o const ppl_const_Constraint_System_t pcs unsigned complexity_ threshold int wrap_individually Assigns to ph the polyhedron obtained from ph by wrapping the vector space defined by the first n space dimensions in ds int ppl_Polyhedron_BHRZ03_widening_assign_with_tokens ppl_Polyhedron_t x ppl const Polyhedron_t y unsigned xtp If the polyhedron y is contained in or equal to the polyhedron x assigns to x the BHRZ03 widening of x and y If tp is not the n
151. ttp bugseng com for more information 70 CONTENTS Besides the conversions listed here below the library also provides conversion operators that build a semantic geometric description starting from any other semantic geometric description e g ppl _new_Grid_from_C_Polyhedron ppl_new_C_Polyhedron_from_BD_Shape_mpq_class etc Clearly the conversion operators are only available if both the source and the target semantic geometric de scriptions have been enabled when configuring the library The conversions also taking as argument a complexity class sometimes provide non trivial precision efficiency trade offs e int ppl_new_C_Polyhedron_from_NNC_Polyhedron ppl_Polyhedron_t pph ppl_const_Polyhedron _t ph Builds a C polyhedron that is a copy of the topological closure of the NNC polyhedron ph writes a handle for the newly created polyhedron at address pph e int ppl_new_C_Polyhedron_from_NNC_Polyhedron_with_complexity ppl_Polyhedron_t xpph ppl_const_Polyhedron_t ph int complexity Builds a C polyhedron that approximates NNC_Polyhedron ph using an algorithm whose complexity does not exceed complexit y writes a handle for the newly created polyhedron at address pph intppl_new_NNC_Polyhedron_from_C_Polyhedron ppl_Polyhedron_t pph ppl_const_Polyhedron _tph Builds an NNC polyhedron that is a copy of the C polyhedron ph writes a handle for the newly created polyhedron at address pph e int ppl new_NNC_Polyhedron_from_C_Po
152. ttp bugseng com for more information Index C Language Interface 18 Error Handling 23 PPL_ARITHMETIC_OVERFLOW 23 PPL_ERROR_DOMAIN_ERROR 23 PPL_ERROR_INTERNAL_ERROR 23 PPL_ERROR_INVALID_ARGUMENT 23 PPL_ERROR_LENGTH_ERROR 23 PPL_ERROR_LOGIC_ERROR 23 PPL_ERROR_OUT_OF_MEMORY 23 PPL_ERROR_UNEXPECTED_ERROR 23 PPL_ERROR_UNKNOWN_STANDARD_EX CEPTION 23 PPL_STDIO_ERROR 23 PPL_TIMEOUT_EXCEPTION 23 ppl_enum_error_code 23 ppl_set_error_handler 24 Library Datatypes 27 PPL_BITS_128 33 PPL_BITS_16 33 PPL_BITS_32 33 PPL_BITS_64 33 PPL_BITS_8 33 PPL_CONSTRAINT_TYPE_EQUAL 32 PPL_CONSTRAINT_TYPE_GREATER_OR _EQUAL 32 PPL_CONSTRAINT_TYPE_GREATER_TH AN 32 PPL_CONSTRAINT_TYPE_LESS_OR_EQU AL 32 PPL_CONSTRAINT_TYPE_LESS_THAN 32 PPL_GENERATOR_TYPE_CLOSURE_POI NT 32 PPL_GENERATOR_TYPE_LINE 32 PPL_GENERATOR_TYPE_POINT 32 PPL_GENERATOR_TYPE_RAY 32 PPL_GRID_GENERATOR_TYPE_LINE 33 PPL_GRID_GENERATOR_TYPE_PARAME TER 33 PPL_GRID_GENERATOR_TYPE_POINT 33 PPL_OVERFLOW_IMPOSSIBLE 33 PPL_OVERFLOW_UNDEFINED 33 PPL_OVERFLOW_WRAPS 33 PPL_SIGNED_2_COMPLEMENT 33 PPL_UNSIGNED 33 ppl_enum_Generator_Type 32 ppl_enum_Grid_Generator_Type 32 ppl_io_variable_output_function_type 32 ppl_io_wrap_string 34 Library Initialization and Finalization 19 ppl_finalize 19 ppl_initialize 19 ppl_restore_pre_PPL_rounding 19 ppl_set_irrational_precision 19 ppl set rounding for PPL 19 PPL ARIT
153. ual version 1 0 See http bugseng com for more information 3 GNU Free Documentation License 15 The author s and publisher s of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version 5 COMBINING DOCUMENTS You may combine the Document with other documents released under this License under the terms defined in section 4 above for modified versions provided that you include in the combination all of the Invari ant Sections of all of the original documents unmodified and list them all as Invariant Sections of your combined work in its license notice and that you preserve all their Warranty Disclaimers The combined work need only contain one copy of this License and multiple identical Invariant Sections may be replaced with a single copy If there are multiple Invariant Sections with the same name but different contents make the title of each such section unigue by adding at the end of it in parentheses the name of the original author or publisher of that section if Known or else a unigue number Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work In the combination you must combine any sections Entitled History in the various original documents forming one section Entitled History likewise combine any sections Entitled Acknowledgements and any sections E
154. uct ppl_Constraint_tag ppl_Constraint_t Opaque pointer typedef struct ppl_Constraint_tag const x ppl_const_Constraint_t Opaque pointer to const object typedef struct ppl_Constraint_System_tag ppl_Constraint_System_t Opague pointer typedef struct ppl_Constraint_System_tag const ppl_const_Constraint_System_t Opaque pointer to const object typedef struct ppl_Constraint_System_const_iterator_tag ppl_Constraint_System_const_iterator_t Opaque pointer typedef struct ppl_Constraint_System_const_iterator_tag const ppl_const_Constraint_System_const_iterator_t Opaque pointer to const object typedef struct ppl_Generator_tag ppl_Generator_t Opaque pointer typedef struct ppl_Generator_tag const ppl_const_Generator_t Opaque pointer to const object typedef struct ppl Generator System tag ppl_Generator_System_t The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 28 CONTENTS Opaque pointer typedef struct ppl Generator System tag const ppl_const_Generator_System_t Opaque pointer to const object typedef struct ppl Generator System const iterator tag ppl Generator System const iterator t Opaque pointer typedef struct ppl Generator System const iterator tag const ppl const Generator System const iterator t Opaque pointer to const object typedef struct ppl_Congruence_tag ppl Congruence t Opaque p
155. ull pointer the widening with tokens delay technique is applied with tp available tokens int ppl_Polyhedron_H79_widening_assign_with_tokens ppl_Polyhedron_t x ppl_const_Polyhedron _t y unsigned xtp If the polyhedron y is contained in or equal to the polyhedron x assigns to x the H79 widening of x and y If tp is not the null pointer the widening with tokens delay technique is applied with tp available tokens int ppl_Polyhedron_BHRZ03_widening_assign ppl_Polyhedron_t x ppl_const_Polyhedron_t y If the polyhedron y is contained in or equal to the polyhedron x assigns to x the BHRZ03 widening of xand y int ppl Polyhedron_H79_widening_assign ppl_Polyhedron_t x ppl_const_Polyhedron_t y If the polyhedron y is contained in or equal to the polyhedron x assigns to x the H79 widening of x and y int ppl_Polyhedron_limited_BHRZ03_extrapolation_assign_with_tokens ppl_Polyhedron_t x ppl _const_Polyhedron_t y ppl_const_Constraint_System_t cs unsigned xtp If the polyhedron y is contained in or equal to the polyhedron x assigns to x the BHRZ03 widening of x and y intersected with the constraints in cs that are satisfied by all the points of x If tp is not the null pointer the widening with tokens delay technique is applied with xt p available tokens int ppl_Polyhedron_limited_H79_extrapolation_assign_with_tokens ppl_Polyhedron_t x ppl_ const_Polyhedron_t y ppl_const_Constraint_System_t cs unsigned tp If the polyhedron
156. urce distribution It contains a Mixed Integer Linear Programming solver written in C In order to use this solver you will need to install GLPK the GNU Linear Programming Kit this is used to read linear programs in MPS format 2 GNU General Public License Version 3 29 June 2007 Copyright C 2007 Free Software Foundation Inc http fsf org Everyone is permitted to copy and distribute verbatim copies of this license document but changing it is not allowed Preamble The GNU General Public License is a free copyleft license for software and other kinds of works The licenses for most software and other practical works are designed to take away your freedom to share and change the works By contrast the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program to make sure it remains free software for all its users We the Free Software Foundation use the GNU General Public License for most of our software it applies also to any other work released this way by its authors You can apply it to your programs too When we speak of free software we are referring to freedom not price Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software and charge for them if you wish that you receive source code or can get it if you want it that you can change the software or use pieces of it in new free programs and that you
157. utation is interrupted that way the interrupted function will return error code PPL_TIMEOUT_EXCEPTION Otherwise if the computation completes without being interrupted then the timeout should be reset by calling pp1_reset_timeout 6 5 2 2 int ppl set deterministic timeout unsigned long unscaled_weight unsigned scale Sets a threshold for computations whose completion could require an exponential amount of time Returns PPL_ERROR_INVALID_ARGUMENT if unscaled_weight is zero or if the computed weight threshold exceeds the maximum allowed value Parameters unscaled_ The unscaled maximum computational weight it has to be non zero weight scale The scaling factor to be applied to unscaled_weight If unscaled_weight has value u and scale has value s then the scaled weight threshold is com puted as w u 2 Computations taking exponential time will be interrupted some time after reaching the complexity threshold w If the computation is interrupted that way the interrupted function will return error The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 26 CONTENTS code PPL_TIMEOUT_EXCEPTION Otherwise if the computation completes without being interrupted then the deterministic timeout should be reset by calling pp1_reset_deterministic_timeout Note This timeout checking functionality is said to be
158. utput Functions e intppl io print Artificial Parameter ppl_const_Artificial_Parameter_t x Prints x to stdout int ppl_io_fprint_Artificial_Parameter FILE xstream ppl_const_Artificial_Parameter_t x Prints x to the given output stream e int ppl_io_asprint_Artificial_Parameter char strp ppl_const_Artificial_Parameter_t x Prints x to a malloc allocated string a pointer to which is returned via strp e int ppl_Artificial_Parameter_ascii_dump ppl_const_Artificial_Parameter_t x FILE xstream Dumps an ascii representation of x on stream e int ppl_Artificial_Parameter_ascii_load ppl_Artificial_Parameter_t x FILE xstream Loads an ascii representation of x from stream 7 21 Detailed Description Types and functions for PIP artificial parameters The types and functions for PIP artificial parameters provide an interface towards Artificial_Parameter The documentation for this interface was generated from the following file ppl_c_header h 7 3 ppl_Coefficient_tag Interface Reference Types and functions for coefficients include lt ppl_c header h gt The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 3 ppl_Coefficient_tag Interface Reference 37 Related Functions Note that these are not member functions Constructors Assignment and Destructor e int ppl_new_Coefficient ppl_Coefficient_t pc Creates a new coefficient with value 0 and writes
159. ves all the constraints from the constraint system cs and sets its space dimension to 0 e intppl_Constraint_System_insert_Constraint ppl_Constraint_System_t cs ppl_const_Constraint tc Inserts a copy of the constraint c into cs the space dimension is increased if necessary Input Output Functions e int ppl_io_print_Constraint_System ppl_const_Constraint_System_t x Prints x to stdout e intppl io fprint Constraint_System FILE x stream ppl_const_Constraint_System_t x Prints x to the given output stream e int ppl_io_asprint_Constraint_System char strp ppl_const_Constraint_System_t x Prints x to a malloc allocated string a pointer to which is returned via strp e int ppl_Constraint_System_ascii_dump ppl_const_Constraint_System_t x FILE xstream Dumps an ascii representation of x on stream e in _ Constraint_System_ascii_loa _Constraint_System_t x stream t ppl_Constraint_Syst load ppl_Constraint_System_t x FILE xst Loads an ascii representation of x from st ream The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 44 CONTENTS 7 8 1 Detailed Description Types and functions for constraint systems The types and functions for constraint systems provide an interface towards Constraint_System The documentation for this interface was generated from the following file ppl_c_header h 7 9 ppl_Constraint_tag Interface Reference Types and functi
160. w C polyhedron from the system of constraints cs and writes a handle for the newly created polyhedron at address pph The new polyhedron will inherit the space dimension of cs The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 7 25 ppl Polyhedron_tag Interface Reference 77 7 25 2 3 int ppl_new_C_Polyhedron _recycle_Constraint_System ppl_Polyhedron_t x pph ppl_Constraint_System_tcs related Builds a new C polyhedron recycling the system of constraints cs and writes a handle for the newly created polyhedron at address pph The new polyhedron will inherit the space dimension of cs Warning This function modifies the constraint system referenced by cs upon return no assumption can be made on its value 7 25 2 4 int ppl_new_C_Polyhedron_from_Congruence_System ppl_Polyhedron_t x pph ppl_const_Congruence System tcs related Builds a new C polyhedron from the system of congruences cs and writes a handle for the newly created polyhedron at address pph The new polyhedron will inherit the space dimension of cs 7 25 2 5 int ppl_new_C_Polyhedron_recycle_Congruence System ppl_Polyhedron_t pph ppl_Congruence System tes related Builds a new C polyhedron recycling the system of congruences cs and writes a handle for the newly created polyhedron at address pph The new polyhedron will inherit the space dimension of cs Warning This function modifies the co
161. was before initialization of the PPL After calling this function it is absolutely necessary to call set_rounding_for_PPL before using any PPL abstractions based on floating point numbers This is performed automatically at finalization time The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 20 CONTENTS 6 2 2 5 int ppl set irrational precision unsigned p Sets the precision parameter used for irrational calculations If p is less than or egual to INT_MAX sets the precision parameter used for irrational calculations to p Then in the irrational calculations returning an unbounded rational e g when computing a sguare root the lesser between numerator and denominator will be limited to 2x p The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 6 3 Version Checking 21 6 3 Version Checking Macros define PPL VERSION 1 0 A string containing the PPL version define PPL_VERSION_MAJOR 1 The major number of the PPL version define PPL_VERSION_MINOR 0 The minor number of the PPL version define PPL_VERSION_REVISION 0 The revision number of the PPL version define PPL_VERSION_BETA 0 The beta number of the PPL version This is zero for official releases and nonzero for development snap shots Functions int ppl_version_major void Returns the major number of the PPL v
162. what it does Copyright C year name of author The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 3 GNU Free Documentation License 11 El This program is free software you can redistribute it and or modify t under the terms of the GNU General Public License as published by he Free Software Foundation either version 3 of the License or at your option any later version ct e El This program is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE See the GNU General Public License for more details You should have received a copy of the GNU General Public License along with this program If not see http www gnu org licenses Also add information on how to contact you by electronic and paper mail If the program does terminal interaction make it output a short notice like this when it starts in an interactive mode program Copyright C year name of author This program comes with ABSOLUTELY NO WARRANTY for details type show w This is free software and you are welcome to redistribute it under certain conditions type show c for details The hypothetical commands show w and show c should show the appropriate parts of the General Public License Of course your program s commands might be different for a GUI inte
163. within the meaning of sec tion 10 If the Program as you received it or any part of it contains a notice stating that it is governed by this License along with a term that is a further restriction you may remove that term If a license document contains a further restriction but permits relicensing or conveying under this License you may add to a covered work material governed by the terms of that license document provided that the further restriction does not survive such relicensing or conveying If you add terms to a covered work in accord with this section you must place in the relevant source files a statement of the additional terms that apply to those files or a notice indicating where to find the applicable terms Additional terms permissive or non permissive may be stated in the form of a separately written license or stated as exceptions the above reguirements apply either way 8 Termination You may not propagate or modify a covered work except as expressly provided under this License Any attempt otherwise to propagate or modify it is void and will automatically terminate your rights under this License including any patent licenses granted under the third paragraph of section 11 However if you cease all violation of this License then your license from a particular copyright holder is reinstated a provisionally unless and until the copyright holder explicitly and finally terminates your license and b permanently
164. x ppl const Artificial Parameter Sequence const iterator t y Returns a positive integer if the iterators corresponding to x and y are equal returns O if they are different 7 1 1 Detailed Description Types and functions for iterating on PIP artificial parameters The documentation for this interface was generated from the following file ppl_c_header h The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 36 CONTENTS 7 2 ppl_Artificial_Parameter_tag Interface Reference Types and functions for PIP artificial parameters include lt ppl_c header h gt Related Functions Note that these are not member functions int ppl_Artificial_Parameter_get_Linear_Expression ppl_const_Artificial_Parameter_t ap ppl_Linear _Expression_t le Copies into 1e the linear expression in artificial parameter ap e int ppl_Artificial_Parameter_coefficient ppl const Artificial Parameter_t ap ppl_dimension_type var ppl Coefficient tn Copies into n the coefficient of variable var in the artificial parameter ap int ppl_Artificial_Parameter_get_inhomogeneous_term ppl_const_Artificial_Parameter_t ap ppl_ Coefficient_t n Copies into n the inhomogeneous term of the artificial parameter ap int ppl_Artificial_Parameter_denominator 1 const Artificial Parameter_t ap ppl_Coefficient_t Pp PP P Pp n Copies into n the denominator in artificial parameter ap Input O
165. ypes and functions for grid generator systems provide an interface towards Grid_Generator_System The documentation for this interface was generated from the following file ppl_c_header h 7 15 _ ppl Grid Generator tag Interface Reference Types and functions for grid generators include lt ppl_c header h gt Related Functions Note that these are not member functions Constructors Assignment and Destructor e int ppl new Grid Generator ppl_Grid_Generator_t pg ppl_const_Linear_Expression_t le enum ppl_enum_Grid_Generator_Type t ppl_const_Coefficient_t d Creates a new grid generator of direction le and type t If the grid generator to be created is a point or a parameter the divisor d is applied to le If it is a line dis simply disregarded A handle for the new grid generator is written at address pg The space dimension of the new grid generator is egual to the space dimension of 1e The PPL C Language Interface User s Manual version 1 0 See http bugseng com for more information 52 CONTENTS e int ppl_new_Grid_Generator_zero_dim_ point ppl_Grid_Generator_t pg Creates the point that is the origin of the zero dimensional space R9 Writes a handle for the new grid generator at address pg e int ppl new Grid Generator from Grid Generator ppl_Grid_Generator_t pg ppl_const_Grid _Generator_t g Builds a grid generator that is a copy of g writes a handle for the newly created grid generator at address pg

Download Pdf Manuals

image

Related Search

Related Contents

DT/Smart DT SERIES USER MANUAL  EVGA 01G-P3-1351-KR NVIDIA GeForce GTS 450 1GB graphics card  mode d`emploi roue de l`infortune - Collectif pour un audit citoyen de  Programme TLMD  RELEVE DE CONCLUSIONS DE LA REUNION DU 28 DECEMBRE  BTU Meter / Data Logger  Philips SWA2039W RCA in-line connectors  -111 - silex technology  ARM3265  Wagner 0513040 Use and Care Manual  

Copyright © All rights reserved.
Failed to retrieve file