Name

pfe-fpnostack-ext ? FpNoStack Floating point + extensions

Synopsis

>FLOAT ?=>? ();?
"EXTENSIONS";
?
D>F ?=>? ();?
"EXTENSIONS";
?
F! ?=>? ();?
"EXTENSIONS";
?
F* ?=>? ();?
"EXTENSIONS";
?
F+ ?=>? ();?
"EXTENSIONS";
?
F- ?=>? ();?
"EXTENSIONS";
?
F/ ?=>? ();?
"EXTENSIONS";
?
F0< ?=>? ();?
"EXTENSIONS";
?
F0= ?=>? ();?
"EXTENSIONS";
?
F< ?=>? ();?
"EXTENSIONS";
?
F> ?=>? ();?
"EXTENSIONS";
?
F= ?=>? ();?
"EXTENSIONS";
?
F<> ( f: a b -- s: a!=b ) ?=>? ();?
"EXTENSIONS";
?
F<= ?=>? ();?
"EXTENSIONS";
?
F>= ?=>? ();?
"EXTENSIONS";
?
F>D ?=>? ();?
"EXTENSIONS";
?
F@ ?=>? ();?
"EXTENSIONS";
?
FALIGN ?=>? ();?
"EXTENSIONS";
?
FALIGNED ?=>? ();?
"EXTENSIONS";
?
FDEPTH ?=>? ();?
"EXTENSIONS";
?
FDROP ?=>? ();?
"EXTENSIONS";
?
FDUP ?=>? ();?
"EXTENSIONS";
?
FLITERAL ?=>? ();?
"EXTENSIONS";
?
FLOAT+ ?=>? ();?
"EXTENSIONS";
?
FLOATS ?=>? ();?
"EXTENSIONS";
?
FLOOR ?=>? ();?
"EXTENSIONS";
?
FMAX ?=>? ();?
"EXTENSIONS";
?
FMIN ?=>? ();?
"EXTENSIONS";
?
FNEGATE ?=>? ();?
"EXTENSIONS";
?
FOVER ?=>? ();?
"EXTENSIONS";
?
FROT ?=>? ();?
"EXTENSIONS";
?
FROUND ?=>? ();?
"EXTENSIONS";
?
FSWAP ?=>? ();?
"EXTENSIONS";
?
REPRESENT ?=>? ();?
"EXTENSIONS";
?
DF! ?=>? ();?
"EXTENSIONS";
?
DF@ ?=>? ();?
"EXTENSIONS";
?
DFALIGN ?=>? ();?
"EXTENSIONS";
?
DFALIGNED ?=>? ();?
"EXTENSIONS";
?
DFLOAT+ ?=>? ();?
"EXTENSIONS";
?
DFLOATS ?=>? ();?
"EXTENSIONS";
?
F** ?=>? ();?
"EXTENSIONS";
?
F. ?=>? ();?
"EXTENSIONS";
?
FABS ?=>? ();?
"EXTENSIONS";
?
FACOS ?=>? ();?
"EXTENSIONS";
?
FACOSH ?=>? ();?
"EXTENSIONS";
?
FALOG ?=>? ();?
"EXTENSIONS";
?
FASIN ?=>? ();?
"EXTENSIONS";
?
FASINH ?=>? ();?
"EXTENSIONS";
?
FATAN ?=>? ();?
"EXTENSIONS";
?
FATAN2 ?=>? ();?
"EXTENSIONS";
?
FATANH ?=>? ();?
"EXTENSIONS";
?
FCOS ?=>? ();?
"EXTENSIONS";
?
FCOSH ?=>? ();?
"EXTENSIONS";
?
FE. ?=>? ();?
"EXTENSIONS";
?
FEXP ?=>? ();?
"EXTENSIONS";
?
FEXPM1 ?=>? ();?
"EXTENSIONS";
?
FLN ?=>? ();?
"EXTENSIONS";
?
FLNP1 ?=>? ();?
"EXTENSIONS";
?
FLOG ?=>? ();?
"EXTENSIONS";
?
FS. ?=>? ();?
"EXTENSIONS";
?
FSIN ?=>? ();?
"EXTENSIONS";
?
FSINCOS ?=>? ();?
"EXTENSIONS";
?
FSINH ?=>? ();?
"EXTENSIONS";
?
FSQRT ?=>? ();?
"EXTENSIONS";
?
FTAN ?=>? ();?
"EXTENSIONS";
?
FTANH ?=>? ();?
"EXTENSIONS";
?
F~ ?=>? ();?
"EXTENSIONS";
?
SET-PRECISION ?=>? ();?
"EXTENSIONS";
?
SF! ?=>? ();?
"EXTENSIONS";
?
SF@ ?=>? ();?
"EXTENSIONS";
?
SFALIGN ?=>? ();?
"EXTENSIONS";
?
SFALIGNED ?=>? ();?
"EXTENSIONS";
?
SFLOAT+ ?=>? ();?
"EXTENSIONS";
?
SFLOATS ?=>? ();?
"EXTENSIONS";
?
S>F ( n -- f: x ) ?=>? ();?
"EXTENSIONS";
?
FTRUNC>S (f: x -- s: n ) ?=>? ();?
"EXTENSIONS";
?
FROUND>S (f: x -- s: n) ?=>? ();?
"EXTENSIONS";
?
FTRUNC (f: x -- x' ) ?=>? ();?
"EXTENSIONS";
?
-FROT (f: x1 x2 x3 -- x3 x1 x2 ) ?=>? ();?
"EXTENSIONS";
?
FNIP (f: x1 x2 -- x2 ) ?=>? ();?
"EXTENSIONS";
?
FTUCK (f: x1 x2 -- x2 x1 x2 ) ?=>? ();?
"EXTENSIONS";
?
1/F (f: x -- 1/x ) ?=>? ();?
"EXTENSIONS";
?
F^2 (f: x -- x^2 ) ?=>? ();?
"EXTENSIONS";
?
F^N ( u f: x -- x^u ) ?=>? ();?
"EXTENSIONS";
?
F2/ (f: x -- x/2 ) ?=>? ();?
"EXTENSIONS";
?
F2* (f: x -- x*2 ) ?=>? ();?
"EXTENSIONS";
?
F0> (f: x -- s: flag ) ?=>? ();?
"EXTENSIONS";
?
F0<> (f: x -- s: flag ) ?=>? ();?
"EXTENSIONS";
?
MAX-FLOAT ?=>? ();?
"EXTENSIONS";
?

Description

>FLOAT - no description, sorry

D>F - no description, sorry

F! - no description, sorry

F* - no description, sorry

F+ - no description, sorry

F- - no description, sorry

F/ - no description, sorry

F0< - no description, sorry

F0= - no description, sorry

F< - no description, sorry

F> - no description, sorry

F= - no description, sorry

F<> ( f: a b -- s: a!=b ) => "EXTENSIONS"

F<= - no description, sorry

F>= - no description, sorry

F>D - no description, sorry

F@ - no description, sorry

FALIGN - no description, sorry

FALIGNED - no description, sorry

FDEPTH - no description, sorry

FDROP - no description, sorry

FDUP - no description, sorry

FLITERAL - no description, sorry

FLOAT+ - no description, sorry

FLOATS - no description, sorry

FLOOR - no description, sorry

FMAX - no description, sorry

FMIN - no description, sorry

FNEGATE - no description, sorry

FOVER - no description, sorry

FROT - no description, sorry

FROUND - no description, sorry

FSWAP - no description, sorry

REPRESENT - no description, sorry

DF! - no description, sorry

DF@ - no description, sorry

DFALIGN - no description, sorry

DFALIGNED - no description, sorry

DFLOAT+ - no description, sorry

DFLOATS - no description, sorry

F** - no description, sorry

F. - no description, sorry

FABS - no description, sorry

FACOS - no description, sorry

FACOSH - no description, sorry

FALOG - no description, sorry

FASIN - no description, sorry

FASINH - no description, sorry

FATAN - no description, sorry

FATAN2 - no description, sorry

FATANH - no description, sorry

FCOS - no description, sorry

FCOSH - no description, sorry

FE. - no description, sorry

FEXP - no description, sorry

FEXPM1 - no description, sorry

FLN - no description, sorry

FLNP1 - no description, sorry

FLOG - no description, sorry

FS. - no description, sorry

FSIN - no description, sorry

FSINCOS - no description, sorry

FSINH - no description, sorry

FSQRT - no description, sorry

FTAN - no description, sorry

FTANH - no description, sorry

F~ - no description, sorry

SET-PRECISION - no description, sorry

SF! - no description, sorry

SF@ - no description, sorry

SFALIGN - no description, sorry

SFALIGNED - no description, sorry

SFLOAT+ - no description, sorry

SFLOATS - no description, sorry

S>F ( n -- f: x ) => "EXTENSIONS"

it's inverse is F>S - convert a cell parameter to floating-point.

FTRUNC>S (f: x -- s: n ) => "EXTENSIONS"

The word F>S was sometimes defined with a different behavior than FTRUNC>S which is the type-cast behaviour of C according to C99 section 6.3.1.4 - truncation would also match the ANS-Forth specification for F>D.

Some systems used F>S defined to FROUND>S instead. The pfe provides explicit words for both conversions, the word FROUND>S and FTRUNC>S which return single-cell parameters for a floating point number with the conversion method of FTRUNC or FROUND.

In PFE, F>S is a synonym pointing to FTRUNC>S in analogy of the behavior of F>D where no explicit word exists. The inverse of F>S is the cast conversion of S>F.

FROUND>S (f: x -- s: n) => "EXTENSIONS"

complements FTRUNC>S for applications that expect F>S to be defined with a rounding behavior like

  : FROUND&gt;S FROUND FTRUNC&gt;S ;
  

FTRUNC (f: x -- x' ) => "EXTENSIONS"

truncate towards zero, discard a fractional part. See also FTRUNC>S conversion and the FROUND and FLOOR adaptors.

  : FTRUNC FDUP F0&lt; IF FCEIL ELSE FLOOR THEN ;

(When available, uses a single call to C99 trunc() internally)

-FROT (f: x1 x2 x3 -- x3 x1 x2 ) => "EXTENSIONS"

F-stack equivalent of -ROT

note, some systems call this work F-ROT, here it is the inverse of FROT

FNIP (f: x1 x2 -- x2 ) => "EXTENSIONS"

F-stack equivalent of NIP

FTUCK (f: x1 x2 -- x2 x1 x2 ) => "EXTENSIONS"

F-stack equivalent of TUCK

1/F (f: x -- 1/x ) => "EXTENSIONS"

F^2 (f: x -- x^2 ) => "EXTENSIONS"

F^N ( u f: x -- x^u ) => "EXTENSIONS"

For large exponents, use F** instead. Of course u=-1 is large.

F2/ (f: x -- x/2 ) => "EXTENSIONS"

F2* (f: x -- x*2 ) => "EXTENSIONS"

F0> (f: x -- s: flag ) => "EXTENSIONS"

F0<> (f: x -- s: flag ) => "EXTENSIONS"

MAX-FLOAT - no description, sorry