plutus-metatheory-1.70.0.0: Command line tool for running plutus core programs
Safe HaskellSafe-Inferred
LanguageHaskell2010

MAlonzo.RTE.Float

Synopsis

Documentation

doubleDenotEq ∷ Double → Double → Bool Source #

Denotational equality for floating point numbers, checks bitwise equality.

NOTE: Denotational equality distinguishes NaNs, so its results may vary depending on the architecture and compilation flags. Unfortunately, this is a problem with floating-point numbers in general.

doubleDenotOrd ∷ Double → Double → Ordering Source #

I guess "denotational orderings" are now a thing? The point is that we need an Ord instance which provides a total ordering, and is consistent with the denotational equality.

NOTE: The ordering induced via doubleToWord64 is total, and is consistent with doubleDenotEq. However, it is *deeply* unintuitive. For one, it considers all negative numbers to be larger than positive numbers.

asFinite ∷ Double → Maybe Double Source #

Return Just x if it's a finite number, otherwise return Nothing.

doubleToRatio ∷ Double → (Integer, Integer) Source #

Decode a Double to an integer ratio.

ratioToDouble ∷ Integer → Integer → Double Source #

Encode an integer ratio as a double.

doubleDecode ∷ Double → Maybe (Integer, Integer) Source #

Decode a Double to its mantissa and its exponent, normalised such that the mantissa is the smallest possible number without loss of accuracy.

isSafeInteger ∷ Double → Bool Source #

Checks whether or not the Double is within a safe range of operation.

minMantissa ∷ Integer Source #

The smallest representable mantissa. Simultaneously, the smallest integer which can be represented as a Double without loss of precision.

maxMantissa ∷ Integer Source #

The largest representable mantissa. Simultaneously, the largest integer which can be represented as a Double without loss of precision.

minExponent ∷ Integer Source #

The largest representable exponent.

maxExponent ∷ Integer Source #

The smallest representable exponent.

doubleEncode ∷ Integer → Integer → Maybe Double Source #

Encode a mantissa and an exponent as a Double.