www.delorie.com/gnu/docs/gforth/gforth_225.html   search  
 
Buy GNU books!


Gforth Manual

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

8.7.2 Ambiguous conditions

df@ or df! used with an address that is not double-float aligned:
System-dependent. Typically results in a -23 THROW like other alignment violations.

f@ or f! used with an address that is not float aligned:
System-dependent. Typically results in a -23 THROW like other alignment violations.

floating-point result out of range:
System-dependent. Can result in a -43 throw (floating point overflow), -54 throw (floating point underflow), -41 throw (floating point inexact result), -55 THROW (Floating-point unidentified fault), or can produce a special value representing, e.g., Infinity.

sf@ or sf! used with an address that is not single-float aligned:
System-dependent. Typically results in an alignment fault like other alignment violations.

base is not decimal (REPRESENT, F., FE., FS.):
The floating-point number is converted into decimal nonetheless.

Both arguments are equal to zero (FATAN2):
System-dependent. FATAN2 is implemented using the C library function atan2().

Using FTAN on an argument r1 where cos(r1) is zero:
System-dependent. Anyway, typically the cos of r1 will not be zero because of small errors and the tan will be a very large (or very small) but finite number.

d cannot be presented precisely as a float in D>F:
The result is rounded to the nearest float.

dividing by zero:
Platform-dependent; can produce an Infinity, NaN, -42 throw (floating point divide by zero) or -55 throw (Floating-point unidentified fault).

exponent too big for conversion (DF!, DF@, SF!, SF@):
System dependent. On IEEE-FP based systems the number is converted into an infinity.

float<1 (FACOSH):
Platform-dependent; on IEEE-FP systems typically produces a NaN.

float=<-1 (FLNP1):
Platform-dependent; on IEEE-FP systems typically produces a NaN (or a negative infinity for float=-1).

float=<0 (FLN, FLOG):
Platform-dependent; on IEEE-FP systems typically produces a NaN (or a negative infinity for float=0).

float<0 (FASINH, FSQRT):
Platform-dependent; for fsqrt this typically gives a NaN, for fasinh some platforms produce a NaN, others a number (bug in the C library?).

|float|>1 (FACOS, FASIN, FATANH):
Platform-dependent; IEEE-FP systems typically produce a NaN.

integer part of float cannot be represented by d in F>D:
Platform-dependent; typically, some double number is produced and no error is reported.

string larger than pictured numeric output area (f., fe., fs.):
Precision characters of the numeric output area are used. If precision is too high, these words will smash the data or code close to here.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

  webmaster     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003