PPL_PIPS(1)
β¨ NAME β¨
ppl_pips β bestie, this is a PPL-based parametric integer programming problem solver π (and the manual page you're reading right now is PPL_PIPS(1), so you're in exactly the right place π).
πΈ SYNOPSIS πΈ
ppl_pips [OPTION]... [FILE]
π DESCRIPTION π
Okay so here's the vibe: it reads the definition of a Parametric Integer Programming problem, and then it displays the lexicographic minimum in terms of the values of the parameters. That's it, that's the whole gig. Iconic behaviour, no cap. β¨
π¦ OPTIONS π¦
-RMB,--max-memory=MBβ caps how much memory it's allowed to eat at MB megabytes. Gotta keep it on a budget bestie π-h,--helpβ prints this help text to stdout. Classic.-oPATH,--output=PATHβ appends the output to PATH (note: appends, it does not overwrite, okay?)-P,--polylibβ reads the problem in PolyLib format (this is the default, so it's giving main character energy by default π)-p,--piplibβ reads the problem in PipLib format-t,--timingsβ prints timings to stderr-v,--verboseβ produces lots of output. Like, a lot a lot. π£οΈ-i,--iterations=Nβ executes the resolution N times (default is1)-V,--versionβ prints version information to stdout-cPATH,--check=PATHβ checks if the result is equal to what's in PATH
βοΈ Cut generation options:
-f,--cut-firstβ uses the first non-integer row (this is the default, periodt)-d,--cut-deepestβ tries to generate the deepest cut π₯-a,--cut-allβ always generates all possible cuts. Go big or go home fr fr
π― Pivot row strategy options:
-F,--row-firstβ uses the first row with negative parameter (also the default, we love a default π)-M,--row-maxβ chooses the row generating the lexico-maximal pivot column
π AVAILABILITY π
The latest version of the Parma Polyhedra Library and all the documentation is available at http://bugseng.com/products/ppl/ . Go get you some π«Ά
π NOTES π
Heads up bestie: the options -CSECS (--max-cpu=SECS) and -t (--timings) are not available on some platforms. So if they ghost you, that's why π
The PolyLib format is as follows:
- The first row describes the context matrix (i.e., constraints on the parameters). The first value is the number of rows (which can be zero) and the second value is the number of columns. The number of parameters is the number of columns minus 2.
- Starting from the second row, there are the rows of the context matrix, if any. Each row, which represents a constraint of the form
c1*p1 + ... + cn*pn + c0 =/>= 0, contains: the value0if the constraint is an equality,1if it is an inequality; the coefficients of the parametersc1, ..., cn; the constant termc0. For example, the inequality constraint on two parametersp1 + 2*p2 - 1 >= 0is encoded by the row1 1 2 -1. - The following row contains the parameter number for the so-called big parameter. If no big parameter is used, the value is
-1. - The following rows encode the problem inequality matrix. As for the context matrix, the first two values are the dimensions of the matrix. The number of variables is the number of columns in the matrix minus the number of parameters minus 2. Each row, which represents a constraint of the form
d1*v1 + ... + dm*vm + c1*p1 + ... + cn*pn + c0 =/>= 0, contains: the value0if the constraint is an equality,1if it is an inequality; the coefficients of the variablesd1, ..., dm; the coefficients of the parametersc1, ..., cn; the constant termc0.
The PipLib format is described in Section 2.2 of PIP/PipLib: A Solver for Parametric Integer Programming Problems (see below).
π AUTHOR π
See the file CREDITS in the source distribution or use the command ppl-config --credits for a list of contributors. Shoutout to the whole squad π«Ά
π REPORTING BUGS π
Report bugs to <ppl-devel@cs.unipr.it>. Not me manifesting a bug-free run for you tho β¨
π COPYRIGHT π
Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it> Copyright (C) 2010-2016 BUGSENG srl (http://bugseng.com)
This is free software; see the file COPYING in the source distribution or use the command ppl-config --copying to obtain the copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Like, zero. None. Nada. π
π§ SEE ALSO π§
ppl-config(1)- Paul Feautrier. Parametric Integer Programming. RAIRO Recherche Operationnelle, 22(3):243-268, 1988.
- Paul Feautrier, Jean-Francois Collard, and Cedric Bastoul. PIP/PipLib: A Solver for Parametric Integer Programming Problems, 5.0 edition, July 2007. Distributed with PIP/PipLib 1.4.0.
That's the whole page bestie, you ate it up π
This was ppl_pips version 1.2, dated February 2016 β catch you on the next manpage, mwah πβ¨
π¦ where this page comes from
- arch rolling: ppl 1.2-7 Β· GPL-3.0-or-later
- epel 9: ppl-utils 1.2-24.el9 Β· GPLv3+
- fedora 43: ppl-utils 1.2-37.fc43 Β· GPL-3.0-or-later
- fedora 44: ppl-utils 1.2-39.fc44 Β· GPL-3.0-or-later
- nixos 26.05: ppl 1.2
- nixpkgs unstable: ppl 1.2
- opensuse-leap 16.0: ppl 1.2-bp160.1.14 Β· GPL-3.0-or-later
- opensuse-leap 16.0: ppl 1.2-bp160.1.14 Β· GPL-3.0-or-later
- opensuse-leap 16.0: ppl 1.2-bp160.1.14 Β· GPL-3.0-or-later
- opensuse-leap 16.0: ppl 1.2-bp160.1.14 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms