qd-1.0: double-double and quad-double number type via libqd

Portabilityportable
Stabilityunstable
Maintainerclaudiusmaximus@goto10.org

Numeric.QD.FPU.Unsafe

Description

Unsafe FPU manipulation functions.

Synopsis

Documentation

unsafePreservingFPU :: IO a -> IO aSource

unsafePreservingFPU f executes the computation f, ensuring that the FPU control words are set to avoid problems from excess precision. See the libqd documentation for further details.

This function is unsafe in a threaded runtime as Haskell threads can migrate between OS threads, moreover there is no checking for nested calls - this results in race conditions.

Some steps can be taken to mitigate some of this badness; perhaps using (for example) GHC.Conc.forkOnIO might help.