{-| Module: Numeric.Rounded.Hardware.Backend Although popular CPUs allow program to control the rounding direction of floating-point operations, such feature is not directly accessible to Haskell. Several options are available to control the rounding direction, including * Emulate the operations using 'Rational'. * Emulate the desired rounding behavior using the default rounding direction (i.e. round to nearest). * Provide the rounding-direction-controlled operations in C or assembly, and use FFI to call them from Haskell. * C FFI is portable, but has limitations (e.g. cannot return multiple values directly). * GHC-specific @foreign import prim@ can return multiple values efficiently, but cannot be implemented in C. This library implements the first and third options, in "Numeric.Rounded.Hardware.Backend.ViaRational" and "Numeric.Rounded.Hardware.Backend.C"/"Numeric.Rounded.Hardware.Backend.FastFFI" respectively. The default implementation for 'Float' and 'Double' depends on the platform and package flags. To help the programmer identify which implementation is used, this module provides a function to obtain the name of implementation. To disable use of FFI, enable the package flag @pure-hs@. -} module Numeric.Rounded.Hardware.Backend (backendName) where import Numeric.Rounded.Hardware.Internal (backendName)