Julia follows the IEEE754-2008 Standard for Floating Point Arithmetic. Float64, Float32 and Float16 values are stored and processed in accord with the standard. Each of these datatypes has a sign, a significand (mantissa) and an exponent.

LowLevelFloatFloatFunctions obtain, examine, alter, and reset each subfield.

After months carefully recording measured masses in grams,
you notice the balance has been set to measure hexagrams.
Data privacy prohibits seeing measurements after acquisition.

              :man_student:t4: :grey_question:         :woman_technologist:t3:  LowLevelFloatFunctions.jl :grey_exclamation:


What is the additional functionality compared to Base.Math.significand and Base.Math.exponent?


These functions allow you to alter each floating point field (get, modify, replace) individually while the rest of the floating point value’s bits are unmodified. As the system floats are immutable, replacing a subfield actually generates a new float with the bit logic as above.