[PPL-devel] Floating-point rounding mode

Roberto Bagnara bagnara at cs.unipr.it
Mon Nov 10 08:49:10 CET 2014


Hello Tor.

On 11/10/14 03:00, Tor Myklebust wrote:
> It appears that PPL 1.1 sets the rounding mode to "upward" at startup thanks to it calling ppl_test_rounding() at startup.
> 
> Is this intentional?  It does not appear to be documented.
> 
> Will anything break if I set the rounding mode back to "nearest" at the start of main()?

The following is excerpted from the PPL 1.1 main user's manual:

void Parma Polyhedra Library::set rounding for PPL ( ) [inline]

  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.

void Parma Polyhedra Library::restore pre PPL rounding ( ) [inline]

  Sets the FPU rounding mode as it was before initialization of the PPL.
  This is important if the application uses floating-point computations
  outside the PPL. It is crucial when the application uses functions
  from a mathematical library that are not guaranteed to work correctly
  under all rounding modes.
  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.

Please do not hesitate to come back to us if you have further questions.
Kind regards,

   Roberto

-- 
     Prof. Roberto Bagnara

Applied Formal Methods Laboratory - University of Parma, Italy
mailto:bagnara at cs.unipr.it
                              BUGSENG srl - http://bugseng.com
                              mailto:roberto.bagnara at bugseng.com



More information about the PPL-devel mailing list