version 1.268, 2012/03/17 22:18:59
|
version 1.273, 2012/07/15 12:03:07
|
Line 2026 free(string);
|
Line 2026 free(string);
|
|
|
newline ( -- c_addr u ) gforth |
newline ( -- c_addr u ) gforth |
""String containing the newline sequence of the host OS"" |
""String containing the newline sequence of the host OS"" |
char newline[] = { |
static const char newline[] = { |
#if DIRSEP=='/' |
#if DIRSEP=='/' |
/* Unix */ |
/* Unix */ |
'\n' |
'\n' |
Line 2262 representation. If the string represents
|
Line 2262 representation. If the string represents
|
true. Otherwise, @i{flag} is false. A string of blanks is a special |
true. Otherwise, @i{flag} is false. A string of blanks is a special |
case and represents the floating-point number 0."" |
case and represents the floating-point number 0."" |
Float r; |
Float r; |
flag = to_float(c_addr, u, &r); |
flag = to_float(c_addr, u, &r, '.'); |
if (flag) { |
if (flag) { |
fp--; |
fp--; |
fp[0]=r; |
fp[0]=r; |
Line 2325 CLOBBER_TOS_WORKAROUND_END;
|
Line 2325 CLOBBER_TOS_WORKAROUND_END;
|
|
|
flnp1 ( r1 -- r2 ) float-ext f_l_n_p_one |
flnp1 ( r1 -- r2 ) float-ext f_l_n_p_one |
""@i{r2}=ln(@i{r1}+1)"" |
""@i{r2}=ln(@i{r1}+1)"" |
|
CLOBBER_TOS_WORKAROUND_START; |
#ifdef HAVE_LOG1P |
#ifdef HAVE_LOG1P |
extern double |
extern double |
#ifdef NeXT |
#ifdef NeXT |
Line 2335 r2 = log1p(r1);
|
Line 2336 r2 = log1p(r1);
|
#else |
#else |
r2 = log(r1+1.); |
r2 = log(r1+1.); |
#endif |
#endif |
|
CLOBBER_TOS_WORKAROUND_END; |
|
|
flog ( r1 -- r2 ) float-ext f_log |
flog ( r1 -- r2 ) float-ext f_log |
""The decimal logarithm."" |
""The decimal logarithm."" |
Line 2357 CLOBBER_TOS_WORKAROUND_END;
|
Line 2359 CLOBBER_TOS_WORKAROUND_END;
|
fsincos ( r1 -- r2 r3 ) float-ext f_sine_cos |
fsincos ( r1 -- r2 r3 ) float-ext f_sine_cos |
""@i{r2}=sin(@i{r1}), @i{r3}=cos(@i{r1})"" |
""@i{r2}=sin(@i{r1}), @i{r3}=cos(@i{r1})"" |
CLOBBER_TOS_WORKAROUND_START; |
CLOBBER_TOS_WORKAROUND_START; |
r2 = sin(r1); |
sincos(r1, &r2, &r3); |
r3 = cos(r1); |
|
CLOBBER_TOS_WORKAROUND_END; |
CLOBBER_TOS_WORKAROUND_END; |
|
|
fsqrt ( r1 -- r2 ) float-ext f_square_root |
fsqrt ( r1 -- r2 ) float-ext f_square_root |
Line 2456 faxpy(ra, f_x, nstridex, f_y, nstridey,
|
Line 2457 faxpy(ra, f_x, nstridex, f_y, nstridey,
|
fdup dup f@ f* over + 2swap dup f@ f+ dup f! over + 2swap |
fdup dup f@ f* over + 2swap dup f@ f+ dup f! over + 2swap |
LOOP 2drop 2drop fdrop ; |
LOOP 2drop 2drop fdrop ; |
|
|
|
>float1 ( c_addr u c -- f:... flag ) gforth to_float1 |
|
""Actual stack effect: ( c_addr u c -- r t | f ). Attempt to convert the |
|
character string @i{c-addr u} to internal floating-point |
|
representation. If the string represents a valid floating-point number |
|
@i{r} is placed on the floating-point stack and @i{flag} is |
|
true. Otherwise, @i{flag} is false. A string of blanks is a special |
|
case and represents the floating-point number 0."" |
|
Float r; |
|
flag = to_float(c_addr, u, &r, c); |
|
if (flag) { |
|
fp--; |
|
fp[0]=r; |
|
} |
|
|
\+ |
\+ |
|
|
\ The following words access machine/OS/installation-dependent |
\ The following words access machine/OS/installation-dependent |
Line 2778 ip=IP;
|
Line 2793 ip=IP;
|
SUPER_END; |
SUPER_END; |
VM_JUMP(EXEC1((Xt)a_addr)); |
VM_JUMP(EXEC1((Xt)a_addr)); |
|
|
|
\+objects |
|
\g object_pointer |
|
|
|
>o ( c_addr -- r:c_old ) new to_o |
|
c_old = op; |
|
op = c_addr; |
|
|
|
o> ( r:c_addr -- ) new o_restore |
|
op = c_addr; |
|
|
|
o#+ ( #w -- c_addr ) new o_lit_plus |
|
c_addr = op + w; |
|
|
|
\+ |
\g static_super |
\g static_super |
|
|
ifdef(`STACK_CACHE_FILE', |
ifdef(`STACK_CACHE_FILE', |