An extflonum is an extended-precision (80-bit)
floating-point number. Extflonum arithmetic is supported on
platforms with extended-precision hardware and where the
extflonum implementation does not conflict with normal
double-precision arithmetic (i.e., on x86 and x86_64 platforms when
Racket is compiled to use SSE instructions for floating-point
operations, and on Windows when "longdouble.dll"
A extflonum is not a number in the sense of
number?. Only extflonum-specific operations such as
extfl+ perform extflonum arithmetic.
A literal extflonum is written like an inexact number,
but using an explicit t or T exponent marker (see
Reading Extflonums). For example, 3.5t0 is an
extflonum. The extflonum values for infinity are
+inf.t and -inf.t. The
extflonum value for not-a-number is +nan.t.
If (extflonum-available?) produces #f, then all
operations exported by racket/extflonum raise
exn:fail:unsupported, except for extflonum?,
extflonum-available?, and extflvector? (which always
work). The reader (see The Reader) always accepts extflonum
input; when extflonum operations are not supported, printing an
extflonum from the reader uses its source notation (as opposed to
normalizing the format).
Two extflonums are equal? if extfl=
produces #t for the extflonums. If extflonums
are not supported in a platform, extflonums are equal?
only if they are eq?.
Returns #t if v is an extflonum, #f
operations are supported on the
current platform, #f
188.8.131.52 Extflonum Arithmetic
, and flexpt
, but for extflonums
184.108.40.206 Extflonum Constants
, but with 80 bits precision.
220.127.116.11 Extflonum Vectors
An extflvector is like an flvector, but it holds only
extflonums. See also Unsafe Extflonum Operations.
Two extflvectors are equal? if they have the same length,
and if the values in corresponding slots of the extflvectors are
(for*/extflvector maybe-length (for-clause ...) body ...)
|maybe-length|| ||=|| |
| || ||||| ||#:length length-expr|
| || ||||| ||#:length length-expr #:fill fill-expr|
18.104.22.168 Extflonum Byte Strings
, but for extflonums
Converts the extended-precision floating-point number encoded in
from position start
(inclusive) to end
(exclusive) to an extflonum
. The difference between
must be 10 bytes.