**** IEEE 754-1984 "double" format 64-bit floating point.

Flattened version is here

Ancestors
 \$FMT \$HASH \$IS_EQ \$REAL_NUMBER{_} \$NUMBER{_} \$NFE{_} \$STR \$NIL \$IS_NIL \$IS_LT{_} \$FLT

Public

Constants
 **** The number of decimal digits of precision.
 **** The minimum x>0.0 such that 1.0+x/=x.
 **** The number of bits in the significand, including an implied bit.
 **** The maximum x such that 10^x is within range.
 **** The maximum allowable exponent.
 **** The minimum x such that 10^x is in the range of normalized floating point numbers.
 **** The minimum negative integer x such that b^(x-1) is in the range of normalized floating point numbers.
 ****
 **** See \$NUMBER.

Features
 **** The absolute value of self.
 **** The arc sine of self in the range [0.0, pi] Trigonometric functions handle exceptional arguments in the spirit of IEEE 754-1985. So: ____+-infinity.sin,_+-infinity.cos,_+-infinity.tan_return_NaN ____x.asin_and_x.acos_with_x.abs>1_return_NaN sinpi etc. are similar except they compute self.sinpi=(self*pi).sin avoiding range-reduction issues because their definition permits range reduction that is fast and exact for all self. The corresponding inverse functions compute asinpi(x).
 **** The inverse hyperbolic cosine of self. Hyperbolic functions handle exceptional arguments in the spirit of IEEE 754-1985. So: sinh and cosh return +-infinity on overflow acosh returns a NaN if its argument is less than 1.0 atanh returns a NaN if its argument has an absolute value >1.0
 **** (1/pi) times the arc cosine of self. Result in the range [0, 1] See comment for `acos'.
 **** The arc sine of self in the range [-pi/2, pi/2] See comment for `acos'.
 **** The inverse hyperbolic sine of self. See comment at `acosh'.
 **** (1/pi) times the arc sine of self. Result in the range [-1/2, 1/2] See comment for `acos'.
 **** Same as `self.max(arg)'
 **** Same as `self.min(arg)'
 **** The arc tangent of self divided by f in the range [-pi, pi]. It chooses the quadrant specified by (self, arg). See comment for `acos'.
 **** (1/pi) times the arc tangent of self divided by f. Result in the range [-1, 1]. It chooses the quadrant specified by (self, arg). See comment for `acos'.
 **** The arc tangent of self in the range [-pi/2, pi/2]. See comment for `acos'.
 **** The inverse hyperbolic tangent of self. See comment at `acosh'.
 **** (1/pi) times the arc tangent of self. Result in the range [-1/2, 1/2] See comment for `acos'.
 **** Bessel functions of the first and second kinds. y0, y1 and yn have logarithmic singularities at the origin, so they treat zero and negative arguments the way log does.
 **** See comment at `bessel_j0'.
 **** See comment at `bessel_j0'.
 **** See comment at `bessel_j0'.
 **** See comment at `bessel_j0'.
 **** See comment at `bessel_j0'.
 **** The smallest integer not less than self.
 **** return self with the sign bit set to the same as y's sign bit.
 **** See comment for `acos'.
 **** The hyperbolic cosine of self. See comment at `acosh'.
 **** See comment for `acos'.
create(f:FLT):SAME
 **** ____create(f:FLTX):SAME_is_return_f.fltd_end; ____create(f:FLTDX):SAME_is_return_f.fltd_end; ____create(f:FLTI):SAME_is_return_f.fltd_end;
create(f:INT):SAME
create(f:INTI):SAME
create (s: STR): SAME
 **** The cube of self.
 **** The cube root of self.
 **** The quotient of self and `f'. Built-in.
 **** Approximation of 2/pi. Built-in.
 **** Approximation of 2*(pi.sqrt). Built-in.
 **** An approximation of the base of the natural logarithms "e". Built-in.
 **** error function: ___x.erf_=_(1/sqrt(pi))*integrate(0,x,exp(-t^2)dt)
 **** 10^self. Built-in. See comment at `exp'.
 **** 2^self See comment at `exp'.
 **** The exponential e^self. Exponential, logarithm, power functions functions handle exceptional arguments in the spirit of IEEE 754-1985. So: ____0.log_is_-infinity_with_a_division_by_zero_exception ____For_x<0,_including_-infinity,_x.log_is_a_quiet_NaN_with_an ____invalid_op_exception ____For_x=+infinity_or_a_quiet_NaN,_x.log_is_x_without_exception ____For_a_signaling_NaN,_x.log_is_a_quiet_NaN_with_an_invalid_op_exception ____1.log_is_zero_without_exception For any other positive x, x.log is a normalized number with an inexact exception.
 **** e^self-1.0, accurate even for tiny self. See comment at `exp'.
 **** The largest integer not greater than self.
 **** A floating point version of self. It is an error if the value cannot be held in a FLT. Built-in.
 **** Convert to FLTD. Identity operation.
 **** Convert into a nice ascii string. See the separate document for FMT for the details.
 **** gamma function.
 **** Gets the internal representation as sequence of INTs.
 **** Approximation of pi/2. Built-in.
 **** A lousy hash function, can someone suggest better?
 **** sqrt(self*self+arg*arg), taking precautions against unwarranted IEEE exceptions. +-infinity.hypot(arg) is +infinity for any arg, even a NaN, and is exceptional only for a signaling NaN.
 **** IEEE Infinity.
 **** INT version of self. It is an error if self is not integral. Use truncate, floor, ceiling, or round to achieve this. Built-in.
 **** Same as `is_integral'
 **** Convert to INTI.
 **** Approximation of 1/pi. Built-in.
 **** Approximation of 1/(2.sqrt). Built-in.
 **** Another name for `is_between'.
 **** True if self between l and u.
 **** True if self and `b' have the same value
 **** returns true if zero, subnormal or normal.
 **** returns true if infinite
 **** Return true if self is integral.
 **** True if self is less than `f'. Built-in.
 **** returns true if NaN. See somment at "is_nil".
 **** True is self is a NaN.
 **** returns true if normal
 **** returns true if subnormal
 **** True if self close to (within absolute tolerance of) val.
 **** returns true is zero
 **** The logarithm base ten of self. See comment at `exp'.
 **** Approximation of e.log10. Built-in.
 **** The logarithm base two of self. See comment at `exp'.
 **** Approximation of e.log2. Built-in.
 **** The natural logarithm of self. See comment at `exp'.
 **** Approximation of 10.log. Built-in.
 **** Approximation of 2.log. Built-in.
 **** log gamma function. x.ln_gamma=x.gamma.abs.log
 **** The larger of self and arg. Caution: may not behave as expected if one argument is a NaN.
 **** The largest normal positive number.
 **** The largest subnormal positive number.
 **** Maximal value; see \$NUMBER.
 **** The smaller of self and arg. Caution: may not behave as expected if one argument is a NaN.
 **** The smallest normal positive number.
 **** The smallest subnormal positive number.
 **** The difference between self and `f'. Built-in.
 **** Minimal value; see \$NUMBER.
 **** See the comment at FLT::remainder
 **** The negation of self. Same as zero minus self, except for IEEE rounding modes and the sign bit.
 **** return previous representable number from self.
 **** return next representable number from self.
 **** See \$NIL for use of `nil'. nil for FLTD is a signalling NaN.
 **** 1.0-self.erf, but computed in a way to avoid cancellation for large self.
 **** An approximation of the mathematical value "pi". Built-in.
 **** The sum of self and `f'. Built-in.
 **** (self+1).log, accurate even for tiny self. See comment at `exp'.
 **** self raised to the arg'th power. x.pow(0.0)=1.0 for all x. See comment at `exp'.
 **** Approximation of pi/4. Built-in.
 **** IEEE quiet NaN. `sig' is the significand (presently unused).
 **** __x.remainder(y)_and_x.mod(y)_return_a_remainder_of_x_with_respect __to_y;_that_is,_the_result_r_is_one_of_the_numbers_that_differ_from __x_by_an_integral_multiple_of_y.__Thus_(x-r)/y__is_an_integral __value,_even_though_it_might_exceed_INT::maxint_if_it_were __explicitly_computed_as_an_INT.__Both_functions_return_one__of_the __two_such_r_smallest_in_magnitude.__remainder(x,y)_is_the_operation __specified_in_ANSI/IEEE_Std_754-1985;_the_result_of_x.mod(y)_may __differ_from_remainder's_result_by_+-y.__The_magnitude_of __remainder's_result_can_not_exceed_half_that_of_y;_its_sign_might __not_agree_with_either_x_or_y.__The_magnitude_of_mod's_result_is __less_than_that_of_y;_its_sign_agrees_with_that_of_x.__Neither __function_will_raise_an_exception_as_long_as_both_arguments_are __normal_or_subnormal.__x.remainder(0),_x.mod(0),_oo.remainder(y), __and_oo.mod(y)_are_invalid_operations_that_produce_a_NaN.
 **** The closest integer to self. Built-in.
 **** return x*2.pow(n) computed by exponent manipulation rather than by actually performing an exponentiation or a multiplication. 1 <= x.abs.scale_by(-x.unbiased_exponent) < 2 for every x except 0, infinity, and NaN.
 **** Returns -1.0d, 0.0d or 1.0d depending on sign of self.
 **** IEEE signalling NaN. `sig' is the significand (presently unused).
 **** returns true if sign bit of self is set
 **** Another name for `sign'.
 **** +-infinity.sin, +-infinity.cos, +-infinity.tan return NaN x.asin and x.acos with x.abs>1 return NaN sinpi etc. are similar except they compute self.sinpi=(self*pi).sin avoiding range-reduction issues because their definition permits range reduction that is fast and exact for all self. The corresponding inverse functions compute asinpi(x).
 **** Simultaneous computation of self.sin and self.cos. This is faster than independently computing them. See comment for `acos'.
 **** Simultaneous computation of self.sinpi and self.cospi. This is faster than independently computing them. See comment for `acos'.
 **** The hyperbolic sine of self. See comment at `acosh'.
 **** See comment for `acos'.
 **** The square root of self.
 **** Approximation of 2.sqrt. Built-in.
 **** The square of self.
 **** A string version of self with "prec" digits of precision.
 **** A string version of self. changed to make the class reentrant. Same thing happens in FLT. Other str methods do the same thing. if ((void(fdbuf)) or (fdbuf.size < 30)) then fdbuf := #FSTR(30) end;
 **** Return an FSTR representation of self using the space in arg if possible
 **** Return FSTR version of self with precicsion of "prec" using the space in arg if possible.
 **** See comment for `acos'.
 **** The hyperbolic tangent of self. See comment at `acosh'.
 **** See comment for `acos'.
 **** The signed product of self and `f'. Built-in.
 **** The nearest integer toward zero. Built-in.
 **** return unbiased exponent of self as an INT; for zero this is INT::maxint.negate, for an infinite it is INT::maxint. If subnormal, normalization occurs first.

Iters
 **** Yields the product of all previous values of `i'.
 **** Yields the sum of all previous values of `i'.

Private

 **** Store the acsii representation into s. Built-in.
 **** Store the acsii representation into s with precision p. Built-in.