libppl_c man page on MacOSX

Man page or keyword search:  
man Server   23457 pages
apropos Keyword Search (all sections)
Output format
MacOSX logo
[printable version]

libppl_c(3)		       libppl_c overview		   libppl_c(3)

NAME
       libppl_c - the C interface of the Parma Polyhedra Library

SYNOPSIS
       #include <ppl_c.h>

       cc file.c -lppl


DESCRIPTION
       This  is	 a  short  overview  on how to use the Parma Polyhedra Library
       (PPL) in your C programs on Unix-like operating systems.	 Note that the
       PPL  has	 interfaces  also  for C++, Java, OCaml and a number of Prolog
       systems: look elsewhere for documentation on those.  Note also that the
       present	document  does	not  describe  the  library functionality, its
       classes or its methods and functions: see The Parma  Polyhedra  Library
       User's  Manual  (version 0.11.2) and The Parma Polyhedra Library C Lan‐
       guage Interface User's Manual (version 0.11.2) for this kind of	infor‐
       mation.

INCLUDING THE HEADER FILE
       The C interface of the PPL has only one header file, named ppl_c.h.  So
       your program should contain a directive of the form

       #include <ppl_c.h>

       Of course, you must make sure you installed the PPL in  a  place	 where
       the  compiler can find it, either by itself or with the help of a suit‐
       able -Idir command line option (see the file INSTALL for information on
       how  to	configure  the library so that it is installed in the place of
       your choice).

INITIALIZING AND FINALIZING THE LIBRARY
       In order to initialize the Parma Polyhedra Library you  must  call  the
       function

       int ppl_initialize(void)

       before  using  any  of  its functionalities.  It is also a good norm to
       call the function

       int ppl_finalize(void)

       when you are done with the library.

USING THE LIBRARY
       Keeping in mind that there is no substitute for a  careful  reading  of
       The  Parma  Polyhedra  Library  User's  Manual (version 0.11.2) and The
       Parma Polyhedra Library C Language  Interface  User's  Manual  (version
       0.11.2)	you  can  find	examples  of  use  in  the  directories inter‐
       faces/C/tests and demos/ppl_lpsol of the source distribution.

LINKING WITH THE LIBRARY
       Linking with the C interface of the Parma  Polyhedra  Library  is  best
       done  using the C compiler itself: usually, specifying the -lppl_c com‐
       mand line option is enough.  In fact, if you use a  shared  version  of
       the  library,  this  automatically  records the dependency from the PPL
       core and the GMP libraries, something that the  linker  ought  to  deal
       with gracefully.	 Otherwise you will have to add -lppl -lgmpxx -lgmp to
       the command line.  Things are more complex if  you  installed  the  PPL
       into  some  nonstandard	place.	 In this case you will have to use the
       -Ldir option and, if you use a shared version of the library,  possible
       take  further  steps:  see  the	documentation  of your system for more
       information on this subject (the Program Library	 HOWTO	is  especially
       valuable for GNU/Linux users).

RETURN VALUES
       All the PPL C interface functions return an int: a negative value means
       that an error occurred.	See The Parma  Polyhedra  Library  C  Language
       Interface User's Manual (version 0.11.2) for the error codes.

IMPLEMENTING MEMORY-GUARDED COMPUTATIONS
       One  of	the interesting features of the Parma Polyhedra Library is the
       possibility to implement memory-guarded computations.  The idea is that
       you  can	 limit	the amount of virtual memory available to the process,
       launch  a  PPL  computation,  and   be	ready	to   be	  returned   a
       PPL_ERROR_OUT_OF_MEMORY	error code.  You can then take the appropriate
       corrective measures (e.g., simplify the polyhedra  and/or  select  less
       precise	though	less complex algorithms), and restart the computation.
       In order to do that, you should define  alternative  memory  allocation
       functions  for  GMP  that  throw std::bad_alloc upon memory exhaustion.
       See libppl(3) for instructions on how to do that.

USING NATIVE FLOATING POINT NUMBERS
       At initialization time, the Parma Polyhedra Library sets the FPU round‐
       ing  mode in a way that allows its floating-point-based computations to
       be conservative (i.e., possibly approximated but correct)  and  reason‐
       ably  efficient.	  In case your application itself uses native floating
       point numbers and relies on a particular rounding mode (if you  are  in
       doubt,  assume  that it does rely on round-to-nearest to be in effect),
       you should use the function

       int ppl_restore_pre_PPL_rounding()

       after the PPL initialization and before	using  native  floating	 point
       numbers	in  the	 application.	If  your  application does not use any
       floating-point-based PPL abstraction,  no  further  measure  should  be
       taken.  Otherwise, it is imperative to call the function

       int ppl_set_rounding_for_PPL()

       before invoking any PPL interface related to such abstractions.

SEE ALSO
       ppl-config(1)

       libppl(3)

       Roberto	Bagnara,  Patricia  M.	Hill,  and Enea Zaffanella.  The Parma
       Polyhedra Library User's Manual (version 0.11.2), available (in several
       formats) at http://www.cs.unipr.it/ppl/ .

       Roberto	Bagnara,  Patricia  M.	Hill,  and Enea Zaffanella.  The Parma
       Polyhedra Library C Language Interface User's Manual (version  0.11.2),
       available (in several formats) at http://www.cs.unipr.it/ppl/ .

       David  A.  Wheeler.   Program Library HOWTO, available (in several for‐
       mats) at http://www.dwheeler.com/program-library/ .

AVAILABILITY
       The latest version of the Parma Polyhedra Library and all the  documen‐
       tation is available at http://www.cs.unipr.it/ppl/ .

AUTHOR
       See  the	 file  CREDITS	in  the source distribution or use the command
       ppl-config --credits for a list of contributors.

REPORTING BUGS
       Report bugs to <ppl-devel@cs.unipr.it>.

COPYRIGHT
       Copyright (C) 2001-2010 Roberto Bagnara <bagnara@cs.unipr.it> Copyright
       (C) 2010-2011 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	condi‐
       tions.	There  is NO warranty; not even for MERCHANTABILITY or FITNESS
       FOR A PARTICULAR PURPOSE.

PPL 0.11.2			 February 2011			   libppl_c(3)
[top]

List of man pages available for MacOSX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net