**** IEEE 754-1984 "single" format 32-bit floating point. Most of these functions presently just call the FLTD versions because of C double/float calling convention weirdness; this is the most portable way.

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.
 **** Approximation of 2/pi
 **** Approximation of 2*(pi.sqrt).
 **** An approximation of the base of the natural logarithms "e".
 **** The minimum x>0.0 such that 1.0+x/=x.
 **** Approximation of pi/2.
 **** Approximation of 1/pi.
 **** Approximation of 1/(2.sqrt).
 **** Approximation of e.log10.
 **** Approximation of e.log2.
 **** Approximation of 10.log.
 **** Approximation of 2.log.
 **** 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.
 ****
 **** An approximation of the mathematical value "pi".
 **** Approximation of pi/4.
 **** Approximation of 2.sqrt.
 **** See \$NUMBER.

Features
 **** The absolute value of self.
 **** The arc sine of self in the range [0.0, pi]. The 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. The 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
 **** The arc sine of self*pi in the range [0.0, pi] See comment at `acos'.
 **** The arc sine of self in the range [-pi/2, pi/2] See comment at `acos'.
 **** The inverse hyperbolic sine of self. See comment at `acosh'.
 **** The arc sine of self*pi in the range [-pi/2, pi/2] See comment at `acos'.
 **** Same as `self.max(arg)'
 **** Same as `self.min(arg)'
 **** The arc tangent of self divided by arg in the range [-pi/2, pi/2]. It chooses the quadrant specified by (self, arg). See comment at `acos'.
 **** The arc tangent of self*pi divided by arg in the range [-pi/2, pi/2]. It chooses the quadrant specified by (self, arg). See comment at `acos'.
 **** The arc tangent of self in the range [-pi/2, pi/2]. See comment at `acos'.
 **** The inverse hyperbolic tangent of self. See comment at `acosh'.
 **** The arc tangent of self*pi in the range [-pi/2, pi/2]. See comment at `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 at `acos'.
 **** The hyperbolic cosine of self. See comment at `acosh'.
 **** See comment at `acos'.
create(f:FLT):SAME
create(f:FLTD):SAME
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.
 **** error function: ___x.erf_=_(1/sqrt(pi))*integrate(0,x,exp(-t^2)dt)
 **** 10^self See comment at `exp'.
 **** 2^self See comment at `exp'.
 **** The exponential e^self. Exponential, logarithm, power functions. All these 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.
 **** Conversion to FLT (identity operation)
 **** An FLTD version of self. Built-in.
 **** Return a nicely formatted ascii representation of the number. See the separate documentation on FMT for a full description.
 **** gamma function.
 **** Get the data representing te flt. (endian independant)
 **** 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.
 **** Another name for `is_integral'.
 **** Conversion to INTI.
 **** Another name for `is_between'.
 **** True if self between l and u.
 **** True if self and `f' represent the same value. Built-in.
 **** 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 comment at "is_nil".
is_nil:BOOL
 **** returns true if normal
 **** returns true if subnormal
is_within(tolerance,val:SAME):BOOL
 **** returns true is zero
 **** The logarithm base ten of self. See comment at `exp'.
 **** The logarithm base two of self. See comment at `exp'.
 **** The natural logarithm of self. See comment at `exp'.
 **** log gamma function. x.ln_gamma=x.gamma.abs.log
 **** The larger of self and arg. Caution: may not work as one expects if an argument is NaN.
 **** The largest normalized positive number.
 **** The largest subnormal positive number.
 **** Maximal value; see \$NUMBER.
 **** The smaller of self and arg. Caution: may not work as one expects if an argument is NaN.
 **** The smallest normalized positive number.
 **** The smallest subnormal positive number.
 **** The difference between self and `f'. Built-in.
 **** Minimal value; see \$NUMBER.
 **** See comment at `remainder'.
 **** The negation of self. Same as zero minus self, except that IEEE does funny things for the sign bit and different rounding modes.
 **** return previous representable number from self.
 **** return next representable number from self.
 **** The value to be used to represent no element in sets.
 **** 1.0-self.erf, but computed in a way to avoid cancellation for large self.
 **** 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'.
 **** 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), infinity.remainder(y), and infinity.mod(y) are invalid operations that produce a NaN.
 **** The closest integer to self.
 **** 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.
 **** -1.0, 0.0, or 1.0, depending whether the sign of self is negative, zero, or positive.
 **** IEEE signalling NaN. `sig' is the significand (presently unused).
 **** returns true if sign bit of self is set
 **** Another name for `sign'.
 **** See comment at `acos'.
 **** Simultaneous computation of self.sin and self.cos. This is faster than independently computing them. See comment at `acos'.
 **** Simultaneous computation of self.sinpi and self.cospi. Faster than independently computing them. See comment at `acos'.
 **** The hyperbolic sine of self. See comment at `acosh'.
 **** See comment at `acos'.
 **** The square root of self.
 **** The square of self.
 **** A string version of self with arg digits of precision.
 **** A string version of self. The other str methods work this way too (they used to use a shared buffer.) if ((void(fbuf)) or (fbuf.size < 30)) then fbuf := #FSTR(30) end;
str_in(arg:FSTR):FSTR
str_in(arg: FSTR,
 **** See comment at `acos'.
 **** The hyperbolic tangent of self. See comment at `acosh'.
 **** See comment at `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.