version 1.52, 2000/08/09 20:04:06
|
version 1.55, 2000/08/14 21:15:01
|
Line 121 IF_TOS(TOS = sp[0]);
|
Line 121 IF_TOS(TOS = sp[0]);
|
EXEC(xt); |
EXEC(xt); |
|
|
perform ( a_addr -- ) gforth |
perform ( a_addr -- ) gforth |
""Equivalent to @code{@ execute}."" |
""@code{@@ execute}."" |
/* and pfe */ |
/* and pfe */ |
ip=IP; |
ip=IP; |
IF_TOS(TOS = sp[0]); |
IF_TOS(TOS = sp[0]); |
Line 819 w2 = ~w1;
|
Line 819 w2 = ~w1;
|
MAXU xor ; |
MAXU xor ; |
|
|
rshift ( u1 n -- u2 ) core r_shift |
rshift ( u1 n -- u2 ) core r_shift |
|
""Logical shift right by @i{n} bits."" |
u2 = u1>>n; |
u2 = u1>>n; |
: |
: |
0 ?DO 2/ MAXI and LOOP ; |
0 ?DO 2/ MAXI and LOOP ; |
Line 2260 c_addr=newline;
|
Line 2261 c_addr=newline;
|
u=sizeof(newline); |
u=sizeof(newline); |
: |
: |
"newline count ; |
"newline count ; |
Create "newline 1 c, $0A c, |
Create "newline e? crlf [IF] 2 c, $0D c, [ELSE] 1 c, [THEN] $0A c, |
|
|
|
\+os |
|
|
utime ( -- dtime ) gforth |
utime ( -- dtime ) gforth |
""Report the current time in microseconds since some epoch."" |
""Report the current time in microseconds since some epoch."" |
Line 2286 duser = timeval2us(&time1);
|
Line 2289 duser = timeval2us(&time1);
|
dsystem = (DCell)0; |
dsystem = (DCell)0; |
#endif |
#endif |
|
|
|
\+ |
|
|
|
\+floating |
|
|
v* ( f_addr1 nstride1 f_addr2 nstride2 ucount -- r ) gforth v_star |
v* ( f_addr1 nstride1 f_addr2 nstride2 ucount -- r ) gforth v_star |
""dot-product: r=v1*v2. The first element of v1 is at f_addr1, the |
""dot-product: r=v1*v2. The first element of v1 is at f_addr1, the |
next at f_addr1+nstride1 and so on (similar for v2). Both vectors have |
next at f_addr1+nstride1 and so on (similar for v2). Both vectors have |
Line 2295 for (r=0.; ucount>0; ucount--) {
|
Line 2302 for (r=0.; ucount>0; ucount--) {
|
f_addr1 = (Float *)(((Address)f_addr1)+nstride1); |
f_addr1 = (Float *)(((Address)f_addr1)+nstride1); |
f_addr2 = (Float *)(((Address)f_addr2)+nstride2); |
f_addr2 = (Float *)(((Address)f_addr2)+nstride2); |
} |
} |
|
: |
|
>r swap 2swap swap 0e r> 0 ?DO |
|
dup f@ over + 2swap dup f@ f* f+ over + 2swap |
|
LOOP 2drop 2drop ; |
|
|
faxpy ( ra f_x nstridex f_y nstridey ucount -- ) gforth |
faxpy ( ra f_x nstridex f_y nstridey ucount -- ) gforth |
""vy=ra*vx+vy"" |
""vy=ra*vx+vy"" |
Line 2303 for (; ucount>0; ucount--) {
|
Line 2314 for (; ucount>0; ucount--) {
|
f_x = (Float *)(((Address)f_x)+nstridex); |
f_x = (Float *)(((Address)f_x)+nstridex); |
f_y = (Float *)(((Address)f_y)+nstridey); |
f_y = (Float *)(((Address)f_y)+nstridey); |
} |
} |
|
: |
|
>r swap 2swap swap r> 0 ?DO |
|
fdup dup f@ f* over + 2swap dup f@ f+ dup f! over + 2swap |
|
LOOP 2drop 2drop fdrop ; |
|
|
|
\+ |