Fuzion Logo
flang.dev — The Fuzion Language Portal
JavaScript seems to be disabled. Functionality is limited.

f64s.fz


# This file is part of the Fuzion language implementation.
#
# The Fuzion language implementation is free software: you can redistribute it
# and/or modify it under the terms of the GNU General Public License as published
# by the Free Software Foundation, version 3 of the License.
#
# The Fuzion language implementation is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU General Public License along with The
# Fuzion language implementation.  If not, see <https://www.gnu.org/licenses/>.


# -----------------------------------------------------------------------
#
#  Tokiwa Software GmbH, Germany
#
#  Source code of Fuzion standard library feature f64s
#
#  Author: Fridtjof Siebert (siebert@tokiwa.software)
#
# -----------------------------------------------------------------------

# f64s -- unit type defining features related to f64 but not requiring an
# instance
#
#
# f64 are binary64-numbers as defined in the IEEE 754-2019 standard, see
# https://ieeexplore.ieee.org/servlet/opac?punumber=8766227
#
f64s : floats<f64> is

  redef name => "f64"

  redef zero => f64 0
  redef one  => f64 1

  redef bytes => 8
  significandBits => 53
  exponentBits => 11

  exponentRange => -1024..1023

  # redef range => f64 # NYI: 4.9E-324..1.7976931348623157E308

  # minPositive => # NYI: 4.9E-324

  # nan => ...

  #  infinity =>

  # negInfinity =>


  from_i64(v i64) f64 is intrinsic